{"version":3,"file":"xwiki-livedata-vue.umd.min.js","mappings":"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","sources":["webpack://xwiki-livedata-vue/webpack/universalModuleDefinition","webpack://xwiki-livedata-vue/./filters/ lazy ^\\.\\/Filter.*\\.vue$ namespace object","webpack://xwiki-livedata-vue/./layouts/ lazy ^\\.\\/.*\\.vue$ namespace object","webpack://xwiki-livedata-vue/./LivedataBottombar.vue","webpack://xwiki-livedata-vue/./LivedataBottombar.vue?3c9e","webpack://xwiki-livedata-vue/./LivedataBottombar.vue?29c3","webpack://xwiki-livedata-vue/./LivedataDropdownMenu.vue","webpack://xwiki-livedata-vue/./LivedataDropdownMenu.vue?3f0d","webpack://xwiki-livedata-vue/./LivedataDropdownMenu.vue?99e5","webpack://xwiki-livedata-vue/./LivedataEntrySelector.vue","webpack://xwiki-livedata-vue/./LivedataEntrySelector.vue?eb1e","webpack://xwiki-livedata-vue/./LivedataEntrySelector.vue?1faf","webpack://xwiki-livedata-vue/./LivedataEntrySelectorAll.vue","webpack://xwiki-livedata-vue/./LivedataEntrySelectorAll.vue?6661","webpack://xwiki-livedata-vue/./LivedataEntrySelectorAll.vue?ea91","webpack://xwiki-livedata-vue/./LivedataEntrySelectorInfoBar.vue","webpack://xwiki-livedata-vue/./LivedataEntrySelectorInfoBar.vue?7aea","webpack://xwiki-livedata-vue/./LivedataEntrySelectorInfoBar.vue?f6cc","webpack://xwiki-livedata-vue/./LivedataPagination.vue","webpack://xwiki-livedata-vue/./LivedataPagination.vue?337f","webpack://xwiki-livedata-vue/./LivedataPagination.vue?67db","webpack://xwiki-livedata-vue/./LivedataTopbar.vue","webpack://xwiki-livedata-vue/./LivedataTopbar.vue?2793","webpack://xwiki-livedata-vue/./LivedataTopbar.vue?9b0a","webpack://xwiki-livedata-vue/./displayers/LivedataDisplayer.vue","webpack://xwiki-livedata-vue/./displayers/DisplayerActions.vue","webpack://xwiki-livedata-vue/./displayers/displayerMixin.js","webpack://xwiki-livedata-vue/./displayers/BaseDisplayer.vue","webpack://xwiki-livedata-vue/./displayers/actions/ActionEdit.vue","webpack://xwiki-livedata-vue/./displayers/actions/BaseAction.vue","webpack://xwiki-livedata-vue/displayers/actions/BaseAction.vue","webpack://xwiki-livedata-vue/./displayers/actions/BaseAction.vue?6d04","webpack://xwiki-livedata-vue/./displayers/actions/BaseAction.vue?24ad","webpack://xwiki-livedata-vue/displayers/actions/ActionEdit.vue","webpack://xwiki-livedata-vue/./displayers/actions/ActionEdit.vue?e565","webpack://xwiki-livedata-vue/./displayers/actions/ActionEdit.vue?1317","webpack://xwiki-livedata-vue/./displayers/actions/ActionFollowLink.vue","webpack://xwiki-livedata-vue/displayers/actions/ActionFollowLink.vue","webpack://xwiki-livedata-vue/./displayers/actions/ActionFollowLink.vue?6185","webpack://xwiki-livedata-vue/./displayers/actions/ActionFollowLink.vue?c67b","webpack://xwiki-livedata-vue/displayers/BaseDisplayer.vue","webpack://xwiki-livedata-vue/./displayers/BaseDisplayer.vue?419f","webpack://xwiki-livedata-vue/./displayers/BaseDisplayer.vue?531b","webpack://xwiki-livedata-vue/displayers/DisplayerActions.vue","webpack://xwiki-livedata-vue/./displayers/DisplayerActions.vue?c174","webpack://xwiki-livedata-vue/./displayers/DisplayerActions.vue?0d3a","webpack://xwiki-livedata-vue/./displayers/DisplayerBoolean.vue","webpack://xwiki-livedata-vue/./displayers/displayerStatesMixin.js","webpack://xwiki-livedata-vue/displayers/DisplayerBoolean.vue","webpack://xwiki-livedata-vue/./displayers/DisplayerBoolean.vue?64fb","webpack://xwiki-livedata-vue/./displayers/DisplayerBoolean.vue?5987","webpack://xwiki-livedata-vue/./displayers/DisplayerDate.vue","webpack://xwiki-livedata-vue/displayers/DisplayerDate.vue","webpack://xwiki-livedata-vue/./displayers/DisplayerDate.vue?702a","webpack://xwiki-livedata-vue/./displayers/DisplayerDate.vue?8b83","webpack://xwiki-livedata-vue/./displayers/DisplayerDocTitle.vue","webpack://xwiki-livedata-vue/./displayers/DisplayerLink.vue","webpack://xwiki-livedata-vue/./displayers/displayerLinkMixin.js","webpack://xwiki-livedata-vue/displayers/DisplayerLink.vue","webpack://xwiki-livedata-vue/./displayers/DisplayerLink.vue?7bb1","webpack://xwiki-livedata-vue/./displayers/DisplayerLink.vue?d277","webpack://xwiki-livedata-vue/displayers/DisplayerDocTitle.vue","webpack://xwiki-livedata-vue/./displayers/DisplayerDocTitle.vue?9f44","webpack://xwiki-livedata-vue/./displayers/DisplayerDocTitle.vue?cd4b","webpack://xwiki-livedata-vue/./displayers/DisplayerHtml.vue","webpack://xwiki-livedata-vue/displayers/DisplayerHtml.vue","webpack://xwiki-livedata-vue/./displayers/DisplayerHtml.vue?81dd","webpack://xwiki-livedata-vue/./displayers/DisplayerHtml.vue?0805","webpack://xwiki-livedata-vue/./displayers/DisplayerNumber.vue","webpack://xwiki-livedata-vue/displayers/DisplayerNumber.vue","webpack://xwiki-livedata-vue/./displayers/DisplayerNumber.vue?d423","webpack://xwiki-livedata-vue/./displayers/DisplayerNumber.vue?416b","webpack://xwiki-livedata-vue/./displayers/DisplayerText.vue","webpack://xwiki-livedata-vue/displayers/DisplayerText.vue","webpack://xwiki-livedata-vue/./displayers/DisplayerText.vue?e138","webpack://xwiki-livedata-vue/./displayers/DisplayerText.vue?4fca","webpack://xwiki-livedata-vue/./displayers/DisplayerXObjectProperty.vue","webpack://xwiki-livedata-vue/displayers/DisplayerXObjectProperty.vue","webpack://xwiki-livedata-vue/./displayers/DisplayerXObjectProperty.vue?a20d","webpack://xwiki-livedata-vue/./displayers/DisplayerXObjectProperty.vue?ad3f","webpack://xwiki-livedata-vue/displayers/LivedataDisplayer.vue","webpack://xwiki-livedata-vue/./displayers/LivedataDisplayer.vue?819e","webpack://xwiki-livedata-vue/./displayers/LivedataDisplayer.vue?d486","webpack://xwiki-livedata-vue/./filters/FilterBoolean.vue","webpack://xwiki-livedata-vue/filters/FilterBoolean.vue","webpack://xwiki-livedata-vue/./filters/FilterBoolean.vue?5dda","webpack://xwiki-livedata-vue/./filters/FilterBoolean.vue?0858","webpack://xwiki-livedata-vue/./filters/FilterDate.vue","webpack://xwiki-livedata-vue/filters/FilterDate.vue","webpack://xwiki-livedata-vue/./filters/FilterDate.vue?ca8f","webpack://xwiki-livedata-vue/./filters/FilterDate.vue?3c8b","webpack://xwiki-livedata-vue/./filters/FilterList.vue","webpack://xwiki-livedata-vue/filters/FilterList.vue","webpack://xwiki-livedata-vue/./filters/FilterList.vue?d4d9","webpack://xwiki-livedata-vue/./filters/FilterList.vue?9df2","webpack://xwiki-livedata-vue/./filters/FilterNumber.vue","webpack://xwiki-livedata-vue/filters/FilterNumber.vue","webpack://xwiki-livedata-vue/./filters/FilterNumber.vue?0efc","webpack://xwiki-livedata-vue/./filters/FilterNumber.vue?bdc8","webpack://xwiki-livedata-vue/./filters/FilterText.vue","webpack://xwiki-livedata-vue/filters/FilterText.vue","webpack://xwiki-livedata-vue/./filters/FilterText.vue?f5ad","webpack://xwiki-livedata-vue/./filters/FilterText.vue?a0a2","webpack://xwiki-livedata-vue/./filters/LivedataFilter.vue","webpack://xwiki-livedata-vue/filters/LivedataFilter.vue","webpack://xwiki-livedata-vue/./filters/LivedataFilter.vue?9552","webpack://xwiki-livedata-vue/./filters/LivedataFilter.vue?1417","webpack://xwiki-livedata-vue/./layouts/LayoutLoader.vue","webpack://xwiki-livedata-vue/layouts/LayoutLoader.vue","webpack://xwiki-livedata-vue/./layouts/LayoutLoader.vue?c568","webpack://xwiki-livedata-vue/./layouts/LayoutLoader.vue?711d","webpack://xwiki-livedata-vue/./layouts/LivedataLayout.vue","webpack://xwiki-livedata-vue/layouts/LivedataLayout.vue","webpack://xwiki-livedata-vue/./layouts/LivedataLayout.vue?fa9f","webpack://xwiki-livedata-vue/./layouts/LivedataLayout.vue?1503","webpack://xwiki-livedata-vue/./layouts/table/LayoutTable.vue","webpack://xwiki-livedata-vue/layouts/table/LayoutTable.vue","webpack://xwiki-livedata-vue/./layouts/table/LayoutTable.vue?5463","webpack://xwiki-livedata-vue/./layouts/table/LayoutTable.vue?0fa2","webpack://xwiki-livedata-vue/./layouts/table/LayoutTableHeaderFilters.vue","webpack://xwiki-livedata-vue/layouts/table/LayoutTableHeaderFilters.vue","webpack://xwiki-livedata-vue/./layouts/table/LayoutTableHeaderFilters.vue?be8f","webpack://xwiki-livedata-vue/./layouts/table/LayoutTableHeaderFilters.vue?b6c9","webpack://xwiki-livedata-vue/./layouts/table/LayoutTableHeaderNames.vue","webpack://xwiki-livedata-vue/./directives.js","webpack://xwiki-livedata-vue/layouts/table/LayoutTableHeaderNames.vue","webpack://xwiki-livedata-vue/./layouts/table/LayoutTableHeaderNames.vue?8f86","webpack://xwiki-livedata-vue/./layouts/table/LayoutTableHeaderNames.vue?4cd4","webpack://xwiki-livedata-vue/./layouts/table/LayoutTableNewRow.vue","webpack://xwiki-livedata-vue/layouts/table/LayoutTableNewRow.vue","webpack://xwiki-livedata-vue/./layouts/table/LayoutTableNewRow.vue?8ca6","webpack://xwiki-livedata-vue/./layouts/table/LayoutTableNewRow.vue?0536","webpack://xwiki-livedata-vue/./layouts/table/LayoutTableRow.vue","webpack://xwiki-livedata-vue/layouts/table/LayoutTableRow.vue","webpack://xwiki-livedata-vue/./layouts/table/LayoutTableRow.vue?e777","webpack://xwiki-livedata-vue/./layouts/table/LayoutTableRow.vue?2426","webpack://xwiki-livedata-vue/./utilities/XWikiDraggable.vue","webpack://xwiki-livedata-vue/utilities/XWikiDraggable.vue","webpack://xwiki-livedata-vue/./utilities/XWikiDraggable.vue?a1ae","webpack://xwiki-livedata-vue/./utilities/XWikiDraggable.vue?ff99","webpack://xwiki-livedata-vue/./utilities/XWikiDraggableItem.vue","webpack://xwiki-livedata-vue/utilities/XWikiDraggableItem.vue","webpack://xwiki-livedata-vue/./utilities/XWikiDraggableItem.vue?5a64","webpack://xwiki-livedata-vue/./utilities/XWikiDraggableItem.vue?3fff","webpack://xwiki-livedata-vue/./utilities/XWikiIcon.vue","webpack://xwiki-livedata-vue/utilities/XWikiIcon.vue","webpack://xwiki-livedata-vue/./utilities/XWikiIcon.vue?0fd5","webpack://xwiki-livedata-vue/./utilities/XWikiIcon.vue?b334","webpack://xwiki-livedata-vue/./utilities/XWikiLoader.vue","webpack://xwiki-livedata-vue/utilities/XWikiLoader.vue","webpack://xwiki-livedata-vue/./utilities/XWikiLoader.vue?50a9","webpack://xwiki-livedata-vue/./utilities/XWikiLoader.vue?7aa6","webpack://xwiki-livedata-vue/./node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js","webpack://xwiki-livedata-vue/./filters/filterMixin.js","webpack://xwiki-livedata-vue/./node_modules/dompurify/dist/purify.js","webpack://xwiki-livedata-vue/./node_modules/lz-string/libs/lz-string.js","webpack://xwiki-livedata-vue/./node_modules/sortablejs/modular/sortable.esm.js","webpack://xwiki-livedata-vue/./node_modules/u-node/lib/array.js","webpack://xwiki-livedata-vue/./node_modules/u-node/lib/boolean.js","webpack://xwiki-livedata-vue/./node_modules/u-node/lib/coder.js","webpack://xwiki-livedata-vue/./node_modules/u-node/lib/core.js","webpack://xwiki-livedata-vue/./node_modules/u-node/lib/fixedchar.js","webpack://xwiki-livedata-vue/./node_modules/u-node/lib/integer.js","webpack://xwiki-livedata-vue/./node_modules/u-node/lib/object.js","webpack://xwiki-livedata-vue/./node_modules/u-node/lib/oneOf.js","webpack://xwiki-livedata-vue/./node_modules/u-node/lib/tuple.js","webpack://xwiki-livedata-vue/./node_modules/u-node/lib/u.js","webpack://xwiki-livedata-vue/./node_modules/u-node/lib/varchar.js","webpack://xwiki-livedata-vue/./node_modules/u-node/node_modules/lodash/_Hash.js","webpack://xwiki-livedata-vue/./node_modules/u-node/node_modules/lodash/_Map.js","webpack://xwiki-livedata-vue/./node_modules/u-node/node_modules/lodash/_MapCache.js","webpack://xwiki-livedata-vue/./node_modules/u-node/node_modules/lodash/_Set.js","webpack://xwiki-livedata-vue/./node_modules/u-node/node_modules/lodash/_Stack.js","webpack://xwiki-livedata-vue/./node_modules/u-node/node_modules/lodash/_Symbol.js","webpack://xwiki-livedata-vue/./node_modules/u-node/node_modules/lodash/_Uint8Array.js","webpack://xwiki-livedata-vue/./node_modules/u-node/node_modules/lodash/_apply.js","webpack://xwiki-livedata-vue/./node_modules/u-node/node_modules/lodash/_arrayEach.js","webpack://xwiki-livedata-vue/./node_modules/u-node/node_modules/lodash/_arrayFilter.js","webpack://xwiki-livedata-vue/./node_modules/u-node/node_modules/lodash/_arrayMap.js","webpack://xwiki-livedata-vue/./node_modules/u-node/node_modules/lodash/_arrayPush.js","webpack://xwiki-livedata-vue/./node_modules/u-node/node_modules/lodash/_arrayReduce.js","webpack://xwiki-livedata-vue/./node_modules/u-node/node_modules/lodash/_arraySome.js","webpack://xwiki-livedata-vue/./node_modules/u-node/node_modules/lodash/_assocDelete.js","webpack://xwiki-livedata-vue/./node_modules/u-node/node_modules/lodash/_assocGet.js","webpack://xwiki-livedata-vue/./node_modules/u-node/node_modules/lodash/_assocHas.js","webpack://xwiki-livedata-vue/./node_modules/u-node/node_modules/lodash/_assocIndexOf.js","webpack://xwiki-livedata-vue/./node_modules/u-node/node_modules/lodash/_assocSet.js","webpack://xwiki-livedata-vue/./node_modules/u-node/node_modules/lodash/_baseEach.js","webpack://xwiki-livedata-vue/./node_modules/u-node/node_modules/lodash/_baseFilter.js","webpack://xwiki-livedata-vue/./node_modules/u-node/node_modules/lodash/_baseFind.js","webpack://xwiki-livedata-vue/./node_modules/u-node/node_modules/lodash/_baseFindIndex.js","webpack://xwiki-livedata-vue/./node_modules/u-node/node_modules/lodash/_baseFlatten.js","webpack://xwiki-livedata-vue/./node_modules/u-node/node_modules/lodash/_baseFor.js","webpack://xwiki-livedata-vue/./node_modules/u-node/node_modules/lodash/_baseForOwn.js","webpack://xwiki-livedata-vue/./node_modules/u-node/node_modules/lodash/_baseGet.js","webpack://xwiki-livedata-vue/./node_modules/u-node/node_modules/lodash/_baseHas.js","webpack://xwiki-livedata-vue/./node_modules/u-node/node_modules/lodash/_baseHasIn.js","webpack://xwiki-livedata-vue/./node_modules/u-node/node_modules/lodash/_baseIsEqual.js","webpack://xwiki-livedata-vue/./node_modules/u-node/node_modules/lodash/_baseIsEqualDeep.js","webpack://xwiki-livedata-vue/./node_modules/u-node/node_modules/lodash/_baseIsMatch.js","webpack://xwiki-livedata-vue/./node_modules/u-node/node_modules/lodash/_baseIteratee.js","webpack://xwiki-livedata-vue/./node_modules/u-node/node_modules/lodash/_baseKeys.js","webpack://xwiki-livedata-vue/./node_modules/u-node/node_modules/lodash/_baseMap.js","webpack://xwiki-livedata-vue/./node_modules/u-node/node_modules/lodash/_baseMatches.js","webpack://xwiki-livedata-vue/./node_modules/u-node/node_modules/lodash/_baseMatchesProperty.js","webpack://xwiki-livedata-vue/./node_modules/u-node/node_modules/lodash/_baseOrderBy.js","webpack://xwiki-livedata-vue/./node_modules/u-node/node_modules/lodash/_baseProperty.js","webpack://xwiki-livedata-vue/./node_modules/u-node/node_modules/lodash/_basePropertyDeep.js","webpack://xwiki-livedata-vue/./node_modules/u-node/node_modules/lodash/_baseReduce.js","webpack://xwiki-livedata-vue/./node_modules/u-node/node_modules/lodash/_baseSlice.js","webpack://xwiki-livedata-vue/./node_modules/u-node/node_modules/lodash/_baseSortBy.js","webpack://xwiki-livedata-vue/./node_modules/u-node/node_modules/lodash/_baseTimes.js","webpack://xwiki-livedata-vue/./node_modules/u-node/node_modules/lodash/_baseToPairs.js","webpack://xwiki-livedata-vue/./node_modules/u-node/node_modules/lodash/_baseToPath.js","webpack://xwiki-livedata-vue/./node_modules/u-node/node_modules/lodash/_checkGlobal.js","webpack://xwiki-livedata-vue/./node_modules/u-node/node_modules/lodash/_compareAscending.js","webpack://xwiki-livedata-vue/./node_modules/u-node/node_modules/lodash/_compareMultiple.js","webpack://xwiki-livedata-vue/./node_modules/u-node/node_modules/lodash/_createBaseEach.js","webpack://xwiki-livedata-vue/./node_modules/u-node/node_modules/lodash/_createBaseFor.js","webpack://xwiki-livedata-vue/./node_modules/u-node/node_modules/lodash/_equalArrays.js","webpack://xwiki-livedata-vue/./node_modules/u-node/node_modules/lodash/_equalByTag.js","webpack://xwiki-livedata-vue/./node_modules/u-node/node_modules/lodash/_equalObjects.js","webpack://xwiki-livedata-vue/./node_modules/u-node/node_modules/lodash/_getLength.js","webpack://xwiki-livedata-vue/./node_modules/u-node/node_modules/lodash/_getMatchData.js","webpack://xwiki-livedata-vue/./node_modules/u-node/node_modules/lodash/_getNative.js","webpack://xwiki-livedata-vue/./node_modules/u-node/node_modules/lodash/_getTag.js","webpack://xwiki-livedata-vue/./node_modules/u-node/node_modules/lodash/_hasPath.js","webpack://xwiki-livedata-vue/./node_modules/u-node/node_modules/lodash/_hashDelete.js","webpack://xwiki-livedata-vue/./node_modules/u-node/node_modules/lodash/_hashGet.js","webpack://xwiki-livedata-vue/./node_modules/u-node/node_modules/lodash/_hashHas.js","webpack://xwiki-livedata-vue/./node_modules/u-node/node_modules/lodash/_hashSet.js","webpack://xwiki-livedata-vue/./node_modules/u-node/node_modules/lodash/_indexKeys.js","webpack://xwiki-livedata-vue/./node_modules/u-node/node_modules/lodash/_isHostObject.js","webpack://xwiki-livedata-vue/./node_modules/u-node/node_modules/lodash/_isIndex.js","webpack://xwiki-livedata-vue/./node_modules/u-node/node_modules/lodash/_isIterateeCall.js","webpack://xwiki-livedata-vue/./node_modules/u-node/node_modules/lodash/_isKey.js","webpack://xwiki-livedata-vue/./node_modules/u-node/node_modules/lodash/_isKeyable.js","webpack://xwiki-livedata-vue/./node_modules/u-node/node_modules/lodash/_isPrototype.js","webpack://xwiki-livedata-vue/./node_modules/u-node/node_modules/lodash/_isStrictComparable.js","webpack://xwiki-livedata-vue/./node_modules/u-node/node_modules/lodash/_mapClear.js","webpack://xwiki-livedata-vue/./node_modules/u-node/node_modules/lodash/_mapDelete.js","webpack://xwiki-livedata-vue/./node_modules/u-node/node_modules/lodash/_mapGet.js","webpack://xwiki-livedata-vue/./node_modules/u-node/node_modules/lodash/_mapHas.js","webpack://xwiki-livedata-vue/./node_modules/u-node/node_modules/lodash/_mapSet.js","webpack://xwiki-livedata-vue/./node_modules/u-node/node_modules/lodash/_mapToArray.js","webpack://xwiki-livedata-vue/./node_modules/u-node/node_modules/lodash/_nativeCreate.js","webpack://xwiki-livedata-vue/./node_modules/u-node/node_modules/lodash/_parent.js","webpack://xwiki-livedata-vue/./node_modules/u-node/node_modules/lodash/_root.js","webpack://xwiki-livedata-vue/./node_modules/u-node/node_modules/lodash/_setToArray.js","webpack://xwiki-livedata-vue/./node_modules/u-node/node_modules/lodash/_stackClear.js","webpack://xwiki-livedata-vue/./node_modules/u-node/node_modules/lodash/_stackDelete.js","webpack://xwiki-livedata-vue/./node_modules/u-node/node_modules/lodash/_stackGet.js","webpack://xwiki-livedata-vue/./node_modules/u-node/node_modules/lodash/_stackHas.js","webpack://xwiki-livedata-vue/./node_modules/u-node/node_modules/lodash/_stackSet.js","webpack://xwiki-livedata-vue/./node_modules/u-node/node_modules/lodash/_stringToPath.js","webpack://xwiki-livedata-vue/./node_modules/u-node/node_modules/lodash/_toFunction.js","webpack://xwiki-livedata-vue/./node_modules/u-node/node_modules/lodash/drop.js","webpack://xwiki-livedata-vue/./node_modules/u-node/node_modules/lodash/each.js","webpack://xwiki-livedata-vue/./node_modules/u-node/node_modules/lodash/eq.js","webpack://xwiki-livedata-vue/./node_modules/u-node/node_modules/lodash/filter.js","webpack://xwiki-livedata-vue/./node_modules/u-node/node_modules/lodash/find.js","webpack://xwiki-livedata-vue/./node_modules/u-node/node_modules/lodash/flatten.js","webpack://xwiki-livedata-vue/./node_modules/u-node/node_modules/lodash/forEach.js","webpack://xwiki-livedata-vue/./node_modules/u-node/node_modules/lodash/fromPairs.js","webpack://xwiki-livedata-vue/./node_modules/u-node/node_modules/lodash/get.js","webpack://xwiki-livedata-vue/./node_modules/u-node/node_modules/lodash/has.js","webpack://xwiki-livedata-vue/./node_modules/u-node/node_modules/lodash/hasIn.js","webpack://xwiki-livedata-vue/./node_modules/u-node/node_modules/lodash/identity.js","webpack://xwiki-livedata-vue/./node_modules/u-node/node_modules/lodash/isArguments.js","webpack://xwiki-livedata-vue/./node_modules/u-node/node_modules/lodash/isArray.js","webpack://xwiki-livedata-vue/./node_modules/u-node/node_modules/lodash/isArrayLike.js","webpack://xwiki-livedata-vue/./node_modules/u-node/node_modules/lodash/isArrayLikeObject.js","webpack://xwiki-livedata-vue/./node_modules/u-node/node_modules/lodash/isFunction.js","webpack://xwiki-livedata-vue/./node_modules/u-node/node_modules/lodash/isLength.js","webpack://xwiki-livedata-vue/./node_modules/u-node/node_modules/lodash/isNative.js","webpack://xwiki-livedata-vue/./node_modules/u-node/node_modules/lodash/isObject.js","webpack://xwiki-livedata-vue/./node_modules/u-node/node_modules/lodash/isObjectLike.js","webpack://xwiki-livedata-vue/./node_modules/u-node/node_modules/lodash/isString.js","webpack://xwiki-livedata-vue/./node_modules/u-node/node_modules/lodash/isSymbol.js","webpack://xwiki-livedata-vue/./node_modules/u-node/node_modules/lodash/isTypedArray.js","webpack://xwiki-livedata-vue/./node_modules/u-node/node_modules/lodash/keys.js","webpack://xwiki-livedata-vue/./node_modules/u-node/node_modules/lodash/last.js","webpack://xwiki-livedata-vue/./node_modules/u-node/node_modules/lodash/map.js","webpack://xwiki-livedata-vue/./node_modules/u-node/node_modules/lodash/property.js","webpack://xwiki-livedata-vue/./node_modules/u-node/node_modules/lodash/reduce.js","webpack://xwiki-livedata-vue/./node_modules/u-node/node_modules/lodash/repeat.js","webpack://xwiki-livedata-vue/./node_modules/u-node/node_modules/lodash/rest.js","webpack://xwiki-livedata-vue/./node_modules/u-node/node_modules/lodash/sortBy.js","webpack://xwiki-livedata-vue/./node_modules/u-node/node_modules/lodash/tail.js","webpack://xwiki-livedata-vue/./node_modules/u-node/node_modules/lodash/toInteger.js","webpack://xwiki-livedata-vue/./node_modules/u-node/node_modules/lodash/toNumber.js","webpack://xwiki-livedata-vue/./node_modules/u-node/node_modules/lodash/toPairs.js","webpack://xwiki-livedata-vue/./node_modules/u-node/node_modules/lodash/toString.js","webpack://xwiki-livedata-vue/./node_modules/vue-tippy/dist/vue-tippy.esm.js","webpack://xwiki-livedata-vue/./node_modules/vue2-touch-events/index.js","webpack://xwiki-livedata-vue/./node_modules/vuedraggable/dist/vuedraggable.umd.js","webpack://xwiki-livedata-vue/external umd \"daterangepicker\"","webpack://xwiki-livedata-vue/external umd \"jquery\"","webpack://xwiki-livedata-vue/external umd \"moment\"","webpack://xwiki-livedata-vue/external umd \"moment-jdateformatparser\"","webpack://xwiki-livedata-vue/external umd \"vue\"","webpack://xwiki-livedata-vue/external umd \"xwiki-livedata-xObjectPropertyHelper\"","webpack://xwiki-livedata-vue/external umd \"xwiki-selectize\"","webpack://xwiki-livedata-vue/./node_modules/core-js/internals/a-callable.js","webpack://xwiki-livedata-vue/./node_modules/core-js/internals/an-object.js","webpack://xwiki-livedata-vue/./node_modules/core-js/internals/array-includes.js","webpack://xwiki-livedata-vue/./node_modules/core-js/internals/array-set-length.js","webpack://xwiki-livedata-vue/./node_modules/core-js/internals/classof-raw.js","webpack://xwiki-livedata-vue/./node_modules/core-js/internals/classof.js","webpack://xwiki-livedata-vue/./node_modules/core-js/internals/copy-constructor-properties.js","webpack://xwiki-livedata-vue/./node_modules/core-js/internals/create-non-enumerable-property.js","webpack://xwiki-livedata-vue/./node_modules/core-js/internals/create-property-descriptor.js","webpack://xwiki-livedata-vue/./node_modules/core-js/internals/define-built-in-accessor.js","webpack://xwiki-livedata-vue/./node_modules/core-js/internals/define-built-in.js","webpack://xwiki-livedata-vue/./node_modules/core-js/internals/define-global-property.js","webpack://xwiki-livedata-vue/./node_modules/core-js/internals/delete-property-or-throw.js","webpack://xwiki-livedata-vue/./node_modules/core-js/internals/descriptors.js","webpack://xwiki-livedata-vue/./node_modules/core-js/internals/document-all.js","webpack://xwiki-livedata-vue/./node_modules/core-js/internals/document-create-element.js","webpack://xwiki-livedata-vue/./node_modules/core-js/internals/does-not-exceed-safe-integer.js","webpack://xwiki-livedata-vue/./node_modules/core-js/internals/engine-user-agent.js","webpack://xwiki-livedata-vue/./node_modules/core-js/internals/engine-v8-version.js","webpack://xwiki-livedata-vue/./node_modules/core-js/internals/enum-bug-keys.js","webpack://xwiki-livedata-vue/./node_modules/core-js/internals/export.js","webpack://xwiki-livedata-vue/./node_modules/core-js/internals/fails.js","webpack://xwiki-livedata-vue/./node_modules/core-js/internals/function-bind-native.js","webpack://xwiki-livedata-vue/./node_modules/core-js/internals/function-call.js","webpack://xwiki-livedata-vue/./node_modules/core-js/internals/function-name.js","webpack://xwiki-livedata-vue/./node_modules/core-js/internals/function-uncurry-this.js","webpack://xwiki-livedata-vue/./node_modules/core-js/internals/get-built-in.js","webpack://xwiki-livedata-vue/./node_modules/core-js/internals/get-method.js","webpack://xwiki-livedata-vue/./node_modules/core-js/internals/global.js","webpack://xwiki-livedata-vue/./node_modules/core-js/internals/has-own-property.js","webpack://xwiki-livedata-vue/./node_modules/core-js/internals/hidden-keys.js","webpack://xwiki-livedata-vue/./node_modules/core-js/internals/ie8-dom-define.js","webpack://xwiki-livedata-vue/./node_modules/core-js/internals/indexed-object.js","webpack://xwiki-livedata-vue/./node_modules/core-js/internals/inspect-source.js","webpack://xwiki-livedata-vue/./node_modules/core-js/internals/internal-state.js","webpack://xwiki-livedata-vue/./node_modules/core-js/internals/is-array.js","webpack://xwiki-livedata-vue/./node_modules/core-js/internals/is-callable.js","webpack://xwiki-livedata-vue/./node_modules/core-js/internals/is-forced.js","webpack://xwiki-livedata-vue/./node_modules/core-js/internals/is-null-or-undefined.js","webpack://xwiki-livedata-vue/./node_modules/core-js/internals/is-object.js","webpack://xwiki-livedata-vue/./node_modules/core-js/internals/is-pure.js","webpack://xwiki-livedata-vue/./node_modules/core-js/internals/is-symbol.js","webpack://xwiki-livedata-vue/./node_modules/core-js/internals/length-of-array-like.js","webpack://xwiki-livedata-vue/./node_modules/core-js/internals/make-built-in.js","webpack://xwiki-livedata-vue/./node_modules/core-js/internals/math-trunc.js","webpack://xwiki-livedata-vue/./node_modules/core-js/internals/object-define-property.js","webpack://xwiki-livedata-vue/./node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack://xwiki-livedata-vue/./node_modules/core-js/internals/object-get-own-property-names.js","webpack://xwiki-livedata-vue/./node_modules/core-js/internals/object-get-own-property-symbols.js","webpack://xwiki-livedata-vue/./node_modules/core-js/internals/object-is-prototype-of.js","webpack://xwiki-livedata-vue/./node_modules/core-js/internals/object-keys-internal.js","webpack://xwiki-livedata-vue/./node_modules/core-js/internals/object-property-is-enumerable.js","webpack://xwiki-livedata-vue/./node_modules/core-js/internals/ordinary-to-primitive.js","webpack://xwiki-livedata-vue/./node_modules/core-js/internals/own-keys.js","webpack://xwiki-livedata-vue/./node_modules/core-js/internals/require-object-coercible.js","webpack://xwiki-livedata-vue/./node_modules/core-js/internals/shared-key.js","webpack://xwiki-livedata-vue/./node_modules/core-js/internals/shared-store.js","webpack://xwiki-livedata-vue/./node_modules/core-js/internals/shared.js","webpack://xwiki-livedata-vue/./node_modules/core-js/internals/symbol-constructor-detection.js","webpack://xwiki-livedata-vue/./node_modules/core-js/internals/to-absolute-index.js","webpack://xwiki-livedata-vue/./node_modules/core-js/internals/to-indexed-object.js","webpack://xwiki-livedata-vue/./node_modules/core-js/internals/to-integer-or-infinity.js","webpack://xwiki-livedata-vue/./node_modules/core-js/internals/to-length.js","webpack://xwiki-livedata-vue/./node_modules/core-js/internals/to-object.js","webpack://xwiki-livedata-vue/./node_modules/core-js/internals/to-primitive.js","webpack://xwiki-livedata-vue/./node_modules/core-js/internals/to-property-key.js","webpack://xwiki-livedata-vue/./node_modules/core-js/internals/to-string-tag-support.js","webpack://xwiki-livedata-vue/./node_modules/core-js/internals/to-string.js","webpack://xwiki-livedata-vue/./node_modules/core-js/internals/try-to-string.js","webpack://xwiki-livedata-vue/./node_modules/core-js/internals/uid.js","webpack://xwiki-livedata-vue/./node_modules/core-js/internals/use-symbol-as-uid.js","webpack://xwiki-livedata-vue/./node_modules/core-js/internals/v8-prototype-define-bug.js","webpack://xwiki-livedata-vue/./node_modules/core-js/internals/validate-arguments-length.js","webpack://xwiki-livedata-vue/./node_modules/core-js/internals/weak-map-basic-detection.js","webpack://xwiki-livedata-vue/./node_modules/core-js/internals/well-known-symbol.js","webpack://xwiki-livedata-vue/./node_modules/core-js/modules/es.array.push.js","webpack://xwiki-livedata-vue/./node_modules/core-js/modules/es.array.unshift.js","webpack://xwiki-livedata-vue/./node_modules/core-js/modules/web.url-search-params.delete.js","webpack://xwiki-livedata-vue/./node_modules/core-js/modules/web.url-search-params.has.js","webpack://xwiki-livedata-vue/./node_modules/core-js/modules/web.url-search-params.size.js","webpack://xwiki-livedata-vue/webpack/bootstrap","webpack://xwiki-livedata-vue/webpack/runtime/compat get default export","webpack://xwiki-livedata-vue/webpack/runtime/define property getters","webpack://xwiki-livedata-vue/webpack/runtime/ensure chunk","webpack://xwiki-livedata-vue/webpack/runtime/get javascript chunk filename","webpack://xwiki-livedata-vue/webpack/runtime/get mini-css chunk filename","webpack://xwiki-livedata-vue/webpack/runtime/global","webpack://xwiki-livedata-vue/webpack/runtime/hasOwnProperty shorthand","webpack://xwiki-livedata-vue/webpack/runtime/load script","webpack://xwiki-livedata-vue/webpack/runtime/make namespace object","webpack://xwiki-livedata-vue/webpack/runtime/node module decorator","webpack://xwiki-livedata-vue/webpack/runtime/publicPath","webpack://xwiki-livedata-vue/webpack/runtime/css loading","webpack://xwiki-livedata-vue/webpack/runtime/jsonp chunk loading","webpack://xwiki-livedata-vue/./node_modules/@vue/cli-service/lib/commands/build/setPublicPath.js","webpack://xwiki-livedata-vue/./XWikiLivedata.vue","webpack://xwiki-livedata-vue/./panels/LivedataAdvancedPanels.vue","webpack://xwiki-livedata-vue/./panels/LivedataAdvancedPanelProperties.vue","webpack://xwiki-livedata-vue/./panels/LivedataBaseAdvancedPanel.vue","webpack://xwiki-livedata-vue/panels/LivedataBaseAdvancedPanel.vue","webpack://xwiki-livedata-vue/./panels/LivedataBaseAdvancedPanel.vue?4612","webpack://xwiki-livedata-vue/./panels/LivedataBaseAdvancedPanel.vue?4788","webpack://xwiki-livedata-vue/panels/LivedataAdvancedPanelProperties.vue","webpack://xwiki-livedata-vue/./panels/LivedataAdvancedPanelProperties.vue?4d72","webpack://xwiki-livedata-vue/./panels/LivedataAdvancedPanelProperties.vue?8b51","webpack://xwiki-livedata-vue/./panels/LivedataAdvancedPanelSort.vue","webpack://xwiki-livedata-vue/panels/LivedataAdvancedPanelSort.vue","webpack://xwiki-livedata-vue/./panels/LivedataAdvancedPanelSort.vue?3647","webpack://xwiki-livedata-vue/./panels/LivedataAdvancedPanelSort.vue?f872","webpack://xwiki-livedata-vue/./panels/LivedataAdvancedPanelFilter.vue","webpack://xwiki-livedata-vue/./panels/LivedataAdvancedPanelFilterEntry.vue","webpack://xwiki-livedata-vue/panels/LivedataAdvancedPanelFilterEntry.vue","webpack://xwiki-livedata-vue/./panels/LivedataAdvancedPanelFilterEntry.vue?41fc","webpack://xwiki-livedata-vue/./panels/LivedataAdvancedPanelFilterEntry.vue?5732","webpack://xwiki-livedata-vue/panels/LivedataAdvancedPanelFilter.vue","webpack://xwiki-livedata-vue/./panels/LivedataAdvancedPanelFilter.vue?79c3","webpack://xwiki-livedata-vue/./panels/LivedataAdvancedPanelFilter.vue?e0b8","webpack://xwiki-livedata-vue/./panels/LiveDataAdvancedPanelExtension.vue","webpack://xwiki-livedata-vue/panels/LiveDataAdvancedPanelExtension.vue","webpack://xwiki-livedata-vue/./panels/LiveDataAdvancedPanelExtension.vue?fb93","webpack://xwiki-livedata-vue/./panels/LiveDataAdvancedPanelExtension.vue?8277","webpack://xwiki-livedata-vue/panels/LivedataAdvancedPanels.vue","webpack://xwiki-livedata-vue/./panels/LivedataAdvancedPanels.vue?3c1b","webpack://xwiki-livedata-vue/./panels/LivedataAdvancedPanels.vue?2da8","webpack://xwiki-livedata-vue/./LivedataPersistentConfiguration.vue","webpack://xwiki-livedata-vue/./LivedataPersistentConfiguration.vue?56ce","webpack://xwiki-livedata-vue/./LivedataPersistentConfiguration.vue?40e8","webpack://xwiki-livedata-vue/./footnotes/LivedataFootnotes.vue","webpack://xwiki-livedata-vue/footnotes/LivedataFootnotes.vue","webpack://xwiki-livedata-vue/./footnotes/LivedataFootnotes.vue?f481","webpack://xwiki-livedata-vue/./footnotes/LivedataFootnotes.vue?7e2e","webpack://xwiki-livedata-vue/./XWikiLivedata.vue?f009","webpack://xwiki-livedata-vue/./XWikiLivedata.vue?78a4","webpack://xwiki-livedata-vue/./node_modules/@vue/cli-service/lib/commands/build/entry-lib.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"daterangepicker\"), require(\"jquery\"), require(\"moment\"), require(\"moment-jdateformatparser\"), require(\"vue\"), require(\"xwiki-livedata-xObjectPropertyHelper\"), require(\"xwiki-selectize\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"daterangepicker\", \"jquery\", \"moment\", \"moment-jdateformatparser\", \"vue\", \"xwiki-livedata-xObjectPropertyHelper\", \"xwiki-selectize\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"xwiki-livedata-vue\"] = factory(require(\"daterangepicker\"), require(\"jquery\"), require(\"moment\"), require(\"moment-jdateformatparser\"), require(\"vue\"), require(\"xwiki-livedata-xObjectPropertyHelper\"), require(\"xwiki-selectize\"));\n\telse\n\t\troot[\"xwiki-livedata-vue\"] = factory(root[\"daterangepicker\"], root[\"jquery\"], root[\"moment\"], root[\"moment-jdateformatparser\"], root[\"vue\"], root[\"xwiki-livedata-xObjectPropertyHelper\"], root[\"xwiki-selectize\"]);\n})((typeof self !== 'undefined' ? self : this), function(__WEBPACK_EXTERNAL_MODULE__4857__, __WEBPACK_EXTERNAL_MODULE__8794__, __WEBPACK_EXTERNAL_MODULE__3192__, __WEBPACK_EXTERNAL_MODULE__8070__, __WEBPACK_EXTERNAL_MODULE__748__, __WEBPACK_EXTERNAL_MODULE__390__, __WEBPACK_EXTERNAL_MODULE__590__) {\nreturn ","var map = {\n\t\"./FilterBoolean.vue\": 7101,\n\t\"./FilterDate.vue\": 8957,\n\t\"./FilterList.vue\": 7257,\n\t\"./FilterNumber.vue\": 3938,\n\t\"./FilterText.vue\": 6619\n};\n\nfunction webpackAsyncContext(req) {\n\treturn Promise.resolve().then(function() {\n\t\tif(!__webpack_require__.o(map, req)) {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t}\n\n\t\tvar id = map[req];\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = function() { return Object.keys(map); };\nwebpackAsyncContext.id = 6411;\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./LayoutLoader.vue\": [\n\t\t1139\n\t],\n\t\"./LivedataLayout.vue\": [\n\t\t9182\n\t],\n\t\"./cards/LayoutCards.vue\": [\n\t\t847,\n\t\t847\n\t],\n\t\"./cards/LayoutCardsCard.vue\": [\n\t\t3302,\n\t\t302\n\t],\n\t\"./cards/LayoutCardsNewCard.vue\": [\n\t\t5697,\n\t\t697\n\t],\n\t\"./table/LayoutTable.vue\": [\n\t\t9210\n\t],\n\t\"./table/LayoutTableHeaderFilters.vue\": [\n\t\t8169\n\t],\n\t\"./table/LayoutTableHeaderNames.vue\": [\n\t\t2100\n\t],\n\t\"./table/LayoutTableNewRow.vue\": [\n\t\t7421\n\t],\n\t\"./table/LayoutTableRow.vue\": [\n\t\t8904\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn Promise.all(ids.slice(1).map(__webpack_require__.e)).then(function() {\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = function() { return Object.keys(map); };\nwebpackAsyncContext.id = 4032;\nmodule.exports = webpackAsyncContext;","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"livedata-bottombar\"},[_vm._t(\"default\")],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./LivedataBottombar.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./LivedataBottombar.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./LivedataBottombar.vue?vue&type=template&id=19323979\"\nimport script from \"./LivedataBottombar.vue?vue&type=script&lang=js\"\nexport * from \"./LivedataBottombar.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!./node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"livedata-dropdown-menu btn-group\"},[_c('a',{staticClass:\"btn btn-default dropdown-toggle\",attrs:{\"title\":_vm.$t('livedata.dropdownMenu.title'),\"data-toggle\":\"dropdown\",\"aria-haspopup\":\"true\",\"aria-expanded\":\"false\",\"role\":\"button\"}},[_c('XWikiIcon',{attrs:{\"icon-descriptor\":{name: 'more-vertical'}}})],1),_c('ul',{staticClass:\"dropdown-menu dropdown-menu-right\"},[_c('li',{staticClass:\"dropdown-header\"},[_vm._v(_vm._s(_vm.$t('livedata.dropdownMenu.actions')))]),_c('li',[_c('a',{staticClass:\"livedata-action-refresh\",attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();return _vm.logic.updateEntries()}}},[_c('XWikiIcon',{attrs:{\"icon-descriptor\":{name: 'repeat'}}}),_vm._v(\" \"+_vm._s(_vm.$t('livedata.action.refresh'))+\" \")],1)]),_c('li',{staticClass:\"divider\",attrs:{\"role\":\"separator\"}}),_c('li',{staticClass:\"dropdown-header\"},[_vm._v(_vm._s(_vm.$t('livedata.dropdownMenu.layouts')))]),_vm._l((_vm.data.meta.layouts),function(layout){return _c('li',{key:layout.id,class:{\n 'disabled': _vm.isCurrentLayout(layout.id),\n }},[_c('a',{attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();return _vm.changeLayout(layout.id)}}},[_c('XWikiIcon',{attrs:{\"icon-descriptor\":layout.icon}}),_vm._v(\" \"+_vm._s(layout.name)+\" \")],1)])}),_c('li',{staticClass:\"divider\",attrs:{\"role\":\"separator\"}}),_c('li',{staticClass:\"dropdown-header\"},[_vm._v(_vm._s(_vm.$t('livedata.dropdownMenu.panels')))]),_vm._l((_vm.logic.panels),function(panel){return _c('li',{key:panel.id},[_c('a',{attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();return _vm.logic.uniqueArrayToggle(_vm.logic.openedPanels, panel.id)}}},[_c('XWikiIcon',{attrs:{\"icon-descriptor\":{name: panel.icon}}}),_vm._v(\" \"+_vm._s(panel.name)+\" \")],1)])})],2)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./LivedataDropdownMenu.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./LivedataDropdownMenu.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./LivedataDropdownMenu.vue?vue&type=template&id=561b360e\"\nimport script from \"./LivedataDropdownMenu.vue?vue&type=script&lang=js\"\nexport * from \"./LivedataDropdownMenu.vue?vue&type=script&lang=js\"\nimport style0 from \"./LivedataDropdownMenu.vue?vue&type=style&index=0&id=561b360e&prod&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!./node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"livedata-entry-selector\",on:{\"click\":function($event){if($event.target !== $event.currentTarget)return null;return _vm.$refs.checkbox.click()}}},[_c('input',{ref:\"checkbox\",attrs:{\"type\":\"checkbox\"},domProps:{\"checked\":_vm.selected},on:{\"change\":function($event){return _vm.logic.toggleSelectEntries(_vm.entry)}}})])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./LivedataEntrySelector.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./LivedataEntrySelector.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./LivedataEntrySelector.vue?vue&type=template&id=16e75b50\"\nimport script from \"./LivedataEntrySelector.vue?vue&type=script&lang=js\"\nexport * from \"./LivedataEntrySelector.vue?vue&type=script&lang=js\"\nimport style0 from \"./LivedataEntrySelector.vue?vue&type=style&index=0&id=16e75b50&prod&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!./node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"livedata-entry-selector-all dropdown\"},[_c('button',{staticClass:\"btn dropdown-toggle\",attrs:{\"type\":\"button\",\"data-toggle\":\"dropdown\",\"aria-haspopup\":\"true\",\"aria-expanded\":\"true\"}},[_c('span',{staticClass:\"livedata-entry-selector-all-checkbox\",on:{\"click\":function($event){$event.stopPropagation();if($event.target !== $event.currentTarget)return null;return _vm.$refs.checkbox.click()}}},[_c('input',{ref:\"checkbox\",attrs:{\"type\":\"checkbox\"},domProps:{\"checked\":_vm.checked},on:{\"click\":function($event){$event.stopPropagation();},\"change\":_vm.toggle}})]),_c('span',{staticClass:\"caret\"})]),_c('ul',{staticClass:\"dropdown-menu\"},[_c('li',[_c('a',{attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();return _vm.logic.setEntrySelectGlobal(true)}}},[_vm._v(\" \"+_vm._s(_vm.$t('livedata.selection.selectInAllPages'))+\" \")])])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./LivedataEntrySelectorAll.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./LivedataEntrySelectorAll.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./LivedataEntrySelectorAll.vue?vue&type=template&id=667179e9\"\nimport script from \"./LivedataEntrySelectorAll.vue?vue&type=script&lang=js\"\nexport * from \"./LivedataEntrySelectorAll.vue?vue&type=script&lang=js\"\nimport style0 from \"./LivedataEntrySelectorAll.vue?vue&type=style&index=0&id=667179e9&prod&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!./node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.selectedCount > 0)?_c('div',{staticClass:\"livedata-entry-selector-info-bar\"},[(!_vm.logic.entrySelection.isGlobal)?_c('span',[_vm._v(\" \"+_vm._s(_vm.$t('livedata.selection.infoBar.selectedCount', [_vm.selectedCount]))+\" \")]):(_vm.logic.entrySelection.isGlobal && !_vm.logic.entrySelection.deselected.length)?_c('span',[_vm._v(\" \"+_vm._s(_vm.$t('livedata.selection.infoBar.allSelected'))+\" \")]):_c('span',[_vm._v(\" \"+_vm._s(_vm.$t('livedata.selection.infoBar.allSelectedBut', [_vm.logic.entrySelection.deselected.length]))+\" \")])]):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./LivedataEntrySelectorInfoBar.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./LivedataEntrySelectorInfoBar.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./LivedataEntrySelectorInfoBar.vue?vue&type=template&id=314d4162\"\nimport script from \"./LivedataEntrySelectorInfoBar.vue?vue&type=script&lang=js\"\nexport * from \"./LivedataEntrySelectorInfoBar.vue?vue&type=script&lang=js\"\nimport style0 from \"./LivedataEntrySelectorInfoBar.vue?vue&type=style&index=0&id=314d4162&prod&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!./node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('nav',{staticClass:\"livedata-pagination\",attrs:{\"aria-label\":this.data.id\n ? _vm.$t('livedata.pagination.label', [this.data.id])\n : _vm.$t('livedata.pagination.label.empty')}},[(_vm.showEntryRange)?_c('span',{staticClass:\"pagination-current-entries\"},[_vm._v(\" \"+_vm._s(_vm.$t('livedata.pagination.currentEntries', [ _vm.logic.getFirstIndexOfPage() + 1, _vm.logic.getLastIndexOfPage() + 1, _vm.data.data.count, ]))+\" \")]):_vm._e(),(_vm.data.meta.pagination.showPageSizeDropdown)?_c('span',{staticClass:\"pagination-page-size\"},[_vm._v(\" \"+_vm._s(_vm.$t('livedata.pagination.pageSize'))+\" \"),_c('select',{attrs:{\"title\":_vm.$t('livedata.pagination.selectPageSize')},on:{\"change\":_vm.changePageSize}},_vm._l((_vm.pageSizes),function(pageSize){return _c('option',{key:pageSize,domProps:{\"value\":pageSize,\"selected\":pageSize === _vm.data.query.limit}},[_vm._v(_vm._s(pageSize))])}),0)]):_vm._e(),_c('span',{staticClass:\"pagination-indexes\"},[_vm._v(\" \"+_vm._s(_vm.$t('livedata.pagination.page'))+\" \"),(_vm.data.meta.pagination.showFirstLast)?_c('a',{class:['page-nav', {\n 'disabled': _vm.isFirstPage,\n }],attrs:{\"title\":_vm.$t('livedata.pagination.first'),\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();return _vm.changePageIndex(!_vm.isFirstPage, 0)}}},[_c('XWikiIcon',{attrs:{\"icon-descriptor\":{name: 'fast-backward'}}})],1):_vm._e(),(_vm.data.meta.pagination.showNextPrevious)?_c('a',{class:['page-nav', {\n 'disabled': _vm.isFirstPage,\n }],attrs:{\"title\":_vm.$t('livedata.pagination.previous'),\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();_vm.changePageIndex(!_vm.isFirstPage, _vm.logic.getPageIndex() - 1)}}},[_c('XWikiIcon',{attrs:{\"icon-descriptor\":{name: 'step-backward'}}})],1):_vm._e(),_vm._l((_vm.paginationIndexesAndDots),function(pageIndex,i){return [(pageIndex === '...')?_c('span',{key:'...' + i},[_vm._v(\"...\")]):_c('a',{key:pageIndex,class:{\n 'page-nav': true,\n 'current': pageIndex === _vm.logic.getPageIndex(),\n },attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();return _vm.changePageIndex(true, pageIndex)}}},[_vm._v(_vm._s(pageIndex + 1))])]}),(_vm.data.meta.pagination.showNextPrevious)?_c('a',{class:['page-nav', {\n 'disabled': _vm.isLastPage,\n }],attrs:{\"title\":_vm.$t('livedata.pagination.next'),\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();_vm.changePageIndex(!_vm.isLastPage , _vm.logic.getPageIndex() + 1)}}},[_c('XWikiIcon',{attrs:{\"icon-descriptor\":{name: 'step-forward'}}})],1):_vm._e(),(_vm.data.meta.pagination.showFirstLast)?_c('a',{class:['page-nav', {\n 'disabled': _vm.isLastPage,\n }],attrs:{\"title\":_vm.$t('livedata.pagination.last'),\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();_vm.changePageIndex(!_vm.isLastPage, _vm.logic.getPageCount() - 1)}}},[_c('XWikiIcon',{attrs:{\"icon-descriptor\":{name: 'fast-forward'}}})],1):_vm._e()],2)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./LivedataPagination.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./LivedataPagination.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./LivedataPagination.vue?vue&type=template&id=908a4266\"\nimport script from \"./LivedataPagination.vue?vue&type=script&lang=js\"\nexport * from \"./LivedataPagination.vue?vue&type=script&lang=js\"\nimport style0 from \"./LivedataPagination.vue?vue&type=style&index=0&id=908a4266&prod&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!./node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"livedata-topbar\"},[_c('div',{staticClass:\"livedata-topbar-left\"},[_vm._t(\"left\")],2),_c('div',{staticClass:\"livedata-topbar-right\"},[_vm._t(\"right\")],2)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./LivedataTopbar.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./LivedataTopbar.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./LivedataTopbar.vue?vue&type=template&id=4bed759e\"\nimport script from \"./LivedataTopbar.vue?vue&type=script&lang=js\"\nexport * from \"./LivedataTopbar.vue?vue&type=script&lang=js\"\nimport style0 from \"./LivedataTopbar.vue?vue&type=style&index=0&id=4bed759e&prod&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!./node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c(`Displayer${this.capitalize(this.displayerId)}`,{tag:\"component\",staticClass:\"livedata-displayer\",attrs:{\"property-id\":_vm.propertyId,\"entry\":_vm.entry}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('BaseDisplayer',{staticClass:\"displayer-actions\",attrs:{\"view-only\":\"\",\"property-id\":_vm.propertyId,\"entry\":_vm.entry,\"is-empty\":false,\"intercept-touch\":false},scopedSlots:_vm._u([{key:\"viewer\",fn:function(){return [_c('div',{staticClass:\"actions-container\"},_vm._l((_vm.actions),function(action){return _c('a',{key:action.id,class:'action action_' + action.id,attrs:{\"title\":action.description,\"href\":_vm.sanitizeUrl(_vm.entry[action.urlProperty]) || '#'}},[_c('XWikiIcon',{attrs:{\"iconDescriptor\":action.icon}}),_c('span',{staticClass:\"action-name\"},[_vm._v(_vm._s(action.name))])],1)}),0)]},proxy:true},{key:\"editor\",fn:function(){return undefined},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/*\n * See the NOTICE file distributed with this work for additional\n * information regarding copyright ownership.\n *\n * This is free software; you can redistribute it and/or modify it\n * under the terms of the GNU Lesser General Public License as\n * published by the Free Software Foundation; either version 2.1 of\n * the License, or (at your option) any later version.\n *\n * This software is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n * Lesser General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public\n * License along with this software; if not, write to the Free\n * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA\n * 02110-1301 USA, or see the FSF site: http://www.fsf.org.\n */\n\nimport * as DOMPurify from 'dompurify';\n\n/**\n * The displayerMixin is a vue mixin containing all the needed\n * props, computed values, methods, etc. for any custom displayer:\n * `propertyId`, `entry`, `value`, `config`, `applyEdit()`, ...\n * It should be included in every custom displayer component\n */\nexport default {\n\n inject: [\"logic\"],\n\n directives: {\n // Only used by the date displayer.\n onInserted: {\n inserted (el, binding) {\n const handler = binding.value;\n if (!(handler instanceof Function)) {\n return void console.warn(`Warning: v-on-inserted directive expects a function`);\n }\n handler();\n }\n },\n // This directive autofocus the element that has it\n // This can be useful in order to autofocus the input in the Editor widget\n // right after the user switched from the Viewer widget\n autofocus: {\n inserted (el) { el.focus(); }\n },\n },\n\n props: {\n propertyId: String,\n entry: Object,\n },\n\n // The computed values provide common data needed by displayers\n computed: {\n // The value to be displayed\n value () {\n return this.entry[this.propertyId];\n },\n safeValue() {\n return this.sanitizeHtml(this.value)\n },\n // The property descriptor of `this.propertyId`\n propertyDescriptor () {\n return this.logic.getPropertyDescriptor(this.propertyId);\n },\n // The configuration (aka displayerDescriptor) of the displayer\n config () {\n return this.logic.getDisplayerDescriptor(this.propertyId);\n },\n // The whole Livedata data object\n data () {\n return this.logic.data;\n },\n // The base value uses the value provided in the props the initial value of the form input.\n // Once the form is edited, `this.editedValue` is defined and is used instead.\n // This is needed in order to have a initial value (this.value) computed by `displayerMixing` while \n // being able to bind the edited value of the input tag in the template to a data attribute (editedValue) that will\n // be updated at runtime without changing the initial `this.value`.\n baseValue: {\n get() {\n return this.editedValue || this.value;\n },\n set(value) {\n this.editedValue = value;\n }\n },\n // Checks if the property value is allowed to be edited and if the livedata is in a state where the displayer can\n // be edited.\n isEditable() {\n const editable = this.logic.isEditable({\n entry: this.entry,\n propertyId: this.propertyId,\n });\n // Checks that no other property is currently being edited.\n const noOtherEditing = this.logic.getEditBus().isEditable()\n return editable && noOtherEditing;\n }\n },\n\n methods: {\n /**\n * Generic save operation.\n * \n * @param value of a value is provided, it is used for saving the property, otherwise `this.editedValue` is used\n */\n genericSave(value) {\n const savedValue = value || this.editedValue;\n this.logic.getEditBus().save(this.entry, this.propertyId, {[this.propertyId]: savedValue})\n },\n sanitizeHtml(value) {\n if (!this.logic.isContentTrusted()) {\n // TODO: Take into account xml.htmlElementSanitizer properties when sanitizing (see XWIKI-20249).\n return DOMPurify.sanitize(value);\n } else {\n return value;\n }\n },\n sanitizeUrl(url, subtitute) {\n // TODO: Take into account xml.htmlElementSanitizer properties when sanitizing (see XWIKI-20249).\n if (this.logic.isContentTrusted() || DOMPurify.isValidAttribute('a', 'href', url)) {\n return url;\n } else {\n return (subtitute || '#');\n }\n }\n },\n \n data() {\n return {\n editedValue: undefined\n }\n },\n\n watch: {\n isView: function(newIsView) {\n if (newIsView) {\n // When we switch back to view mode, the edited value is reset.\n this.editedValue = undefined;\n }\n }\n }\n};\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('TippyComponent',{ref:\"tippy\",staticClass:\"displayer-actions-popover\",attrs:{\"interactive\":\"\",\"trigger\":_vm.isEditable && !_vm.duringEditing ? 'mouseenter focus' : 'manual',\"theme\":\"light-border\",\"placement\":\"bottom\",\"followCursor\":\"horizontal\",\"arrow\":\"\",\"ignoreAttributes\":true},scopedSlots:_vm._u([{key:\"trigger\",fn:function(){return [_c('div',{directives:[{name:\"touch\",rawName:\"v-touch:tap\",value:(_vm.touchHandler),expression:\"touchHandler\",arg:\"tap\"}],ref:\"displayerRoot\",class:{ view: _vm.isView, edit: !_vm.isView, editable: _vm.isEditable },on:{\"mouseover\":function($event){_vm.showPopover = true},\"mouseout\":function($event){_vm.showPopover = false},\"keypress\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;if($event.target !== $event.currentTarget)return null;return _vm.setEdit.apply(null, arguments)}}},[(_vm.isView && !_vm.isLoading)?_c('div',[_vm._t(\"viewer\",function(){return [_c('span',[_vm._v(_vm._s(_vm.value))])]}),(!_vm.isViewable)?_c('span',[_vm._v(\" \"+_vm._s(_vm.$t('livedata.displayer.emptyValue'))),_c('sup',[_vm._v(\"*\")])]):_vm._e()],2):_vm._e(),(!_vm.isView && !_vm.isLoading)?_c('div',{ref:\"editBlock\",on:{\"keypress\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;return _vm.applyEdit.apply(null, arguments)},\"!keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"esc\",27,$event.key,[\"Esc\",\"Escape\"]))return null;return _vm.cancelEdit.apply(null, arguments)}}},[_vm._t(\"editor\",function(){return [_c('input',{directives:[{name:\"autofocus\",rawName:\"v-autofocus\"},{name:\"model\",rawName:\"v-model\",value:(_vm.baseValue),expression:\"baseValue\"}],staticClass:\"default-input\",attrs:{\"type\":\"text\",\"size\":\"1\"},domProps:{\"value\":(_vm.baseValue)},on:{\"input\":function($event){if($event.target.composing)return;_vm.baseValue=$event.target.value}}})]})],2):_vm._e(),(_vm.isLoading)?_vm._t(\"loading\",function(){return [_c('XWikiLoader')]}):_vm._e()],2)]},proxy:true}],null,true)},[[_c('div',{staticClass:\"displayer-action-list\"},[(_vm.isEditable)?_c('ActionEdit',{attrs:{\"displayer\":{ setEdit: () => { _vm.setEdit() } },\"close-popover\":_vm.closePopover}}):_vm._e(),(_vm.href)?_c('ActionFollowLink',{attrs:{\"displayer\":{ href: _vm.sanitizeUrl(_vm.href) },\"close-popover\":_vm.closePopover}}):_vm._e()],1)]],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('BaseAction',{attrs:{\"title-translation-key\":\"livedata.displayer.actions.edit\",\"icon-descriptor\":{ name: 'edit' },\"handler\":_vm.handler,\"close-popover\":_vm.closePopover}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',{staticClass:\"livedata-base-action btn\",attrs:{\"title\":_vm.$t(_vm.titleTranslationKey),\"tabindex\":\"0\"},on:{\"click\":_vm.trigger,\"keypress\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;if($event.target !== $event.currentTarget)return null;return _vm.trigger.apply(null, arguments)}}},[_c('XWikiIcon',{attrs:{\"icon-descriptor\":_vm.iconDescriptor}}),(_vm.labelTranslationKey)?[_vm._v(\" \"+_vm._s(_vm.$t(_vm.labelTranslationKey)))]:_vm._e()],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n * See the NOTICE file distributed with this work for additional\n * information regarding copyright ownership.\n *\n * This is free software; you can redistribute it and/or modify it\n * under the terms of the GNU Lesser General Public License as\n * published by the Free Software Foundation; either version 2.1 of\n * the License, or (at your option) any later version.\n *\n * This software is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n * Lesser General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public\n * License along with this software; if not, write to the Free\n * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA\n * 02110-1301 USA, or see the FSF site: http://www.fsf.org.\n-->\n\n<template>\n <span class=\"livedata-base-action btn\"\n @click=\"trigger\"\n @keypress.self.enter=\"trigger\"\n :title=\"$t(titleTranslationKey)\"\n tabindex=\"0\"\n >\n <XWikiIcon :icon-descriptor=\"iconDescriptor\"/>\n <template v-if=\"labelTranslationKey\"> {{ $t(labelTranslationKey) }}</template>\n </span>\n</template>\n\n<script>\nimport XWikiIcon from \"../../utilities/XWikiIcon\";\n\nexport default {\n\n name: \"BaseAction\",\n\n components: {\n XWikiIcon,\n },\n\n props: {\n titleTranslationKey: {\n type: String,\n required: true\n },\n closePopover: {\n required: true\n },\n labelTranslationKey: {\n type: String,\n default: undefined\n },\n iconDescriptor: {\n type: Object,\n default: () => {},\n },\n handler: {\n type: Function,\n default: () => () => {},\n }\n },\n\n methods: {\n trigger(event) {\n this.handler(event);\n this.closePopover()\n }\n }\n\n}\n</script>\n\n<style>\n.livedata-base-action {\n cursor: pointer;\n padding: 0.2em;\n}\n\n</style>","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./BaseAction.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./BaseAction.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./BaseAction.vue?vue&type=template&id=135185fa\"\nimport script from \"./BaseAction.vue?vue&type=script&lang=js\"\nexport * from \"./BaseAction.vue?vue&type=script&lang=js\"\nimport style0 from \"./BaseAction.vue?vue&type=style&index=0&id=135185fa&prod&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","<!--\n * See the NOTICE file distributed with this work for additional\n * information regarding copyright ownership.\n *\n * This is free software; you can redistribute it and/or modify it\n * under the terms of the GNU Lesser General Public License as\n * published by the Free Software Foundation; either version 2.1 of\n * the License, or (at your option) any later version.\n *\n * This software is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n * Lesser General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public\n * License along with this software; if not, write to the Free\n * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA\n * 02110-1301 USA, or see the FSF site: http://www.fsf.org.\n-->\n\n<template>\n <BaseAction\n title-translation-key=\"livedata.displayer.actions.edit\"\n :icon-descriptor=\"{ name: 'edit' }\"\n :handler=\"handler\"\n :close-popover=\"closePopover\"\n />\n</template>\n\n<script>\nimport BaseAction from \"./BaseAction.vue\";\n\nexport default {\n\n name: \"ActionEdit\",\n\n components: {\n BaseAction,\n },\n\n props: {\n displayer: {\n type: Object,\n required: true\n },\n closePopover: {\n required: true\n }\n },\n\n methods: {\n handler(event) {\n event.stopPropagation();\n this.displayer.setEdit();\n },\n },\n}\n</script>\n\n<style>\n\n</style>","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ActionEdit.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ActionEdit.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ActionEdit.vue?vue&type=template&id=207ef753\"\nimport script from \"./ActionEdit.vue?vue&type=script&lang=js\"\nexport * from \"./ActionEdit.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('a',{attrs:{\"href\":_vm.displayer.href}},[_c('BaseAction',{attrs:{\"title-translation-key\":\"livedata.displayer.actions.followLink\",\"icon-descriptor\":{ name: 'link' },\"close-popover\":_vm.closePopover}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n * See the NOTICE file distributed with this work for additional\n * information regarding copyright ownership.\n *\n * This is free software; you can redistribute it and/or modify it\n * under the terms of the GNU Lesser General Public License as\n * published by the Free Software Foundation; either version 2.1 of\n * the License, or (at your option) any later version.\n *\n * This software is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n * Lesser General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public\n * License along with this software; if not, write to the Free\n * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA\n * 02110-1301 USA, or see the FSF site: http://www.fsf.org.\n-->\n\n<template>\n <a :href=\"displayer.href\">\n <BaseAction\n title-translation-key=\"livedata.displayer.actions.followLink\"\n :icon-descriptor=\"{ name: 'link' }\"\n :close-popover=\"closePopover\"\n />\n </a>\n</template>\n\n<script>\nimport BaseAction from \"./BaseAction.vue\";\n\nexport default {\n\n name: \"ActionFollowLink\",\n\n components: {\n BaseAction,\n },\n\n props: {\n displayer: {\n type: Object,\n required: true\n },\n closePopover: {\n required: true\n }\n },\n};\n</script>\n\n<style>\n\n</style>","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ActionFollowLink.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ActionFollowLink.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ActionFollowLink.vue?vue&type=template&id=420295b6\"\nimport script from \"./ActionFollowLink.vue?vue&type=script&lang=js\"\nexport * from \"./ActionFollowLink.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","<!--\n * See the NOTICE file distributed with this work for additional\n * information regarding copyright ownership.\n *\n * This is free software; you can redistribute it and/or modify it\n * under the terms of the GNU Lesser General Public License as\n * published by the Free Software Foundation; either version 2.1 of\n * the License, or (at your option) any later version.\n *\n * This software is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n * Lesser General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public\n * License along with this software; if not, write to the Free\n * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA\n * 02110-1301 USA, or see the FSF site: http://www.fsf.org.\n-->\n\n<!--\n BaseDisplayer is a component that provide for specific displayers\n an interface that already handles the displayer's base behavior:\n focus, switch to edit or view mode, etc.\n It is not meant to be used directly, but instead to be used inside a\n specific displayer that pass to it a `viewer` and `editor` slot.\n In that way, specific displayers only care about implementing\n the formatting of its content (view mode and edit mode)\n instead of reimplementing the whole displayer logic each time.\n-->\n<template>\n <!-- \n Deactivate the popover on non editable entries by setting the trigger configuration to manual.\n Since we don't do anything manually, that make the popover disabled.\n -->\n <TippyComponent\n class=\"displayer-actions-popover\"\n interactive\n :trigger=\"isEditable && !duringEditing ? 'mouseenter focus' : 'manual'\"\n theme=\"light-border\"\n placement=\"bottom\"\n followCursor=\"horizontal\"\n arrow\n ref=\"tippy\"\n :ignoreAttributes=\"true\"\n >\n <template #trigger>\n <div\n :class=\"{ view: isView, edit: !isView, editable: isEditable }\"\n ref=\"displayerRoot\"\n @mouseover=\"showPopover = true\"\n @mouseout=\"showPopover = false\"\n @keypress.self.enter=\"setEdit\"\n v-touch:tap=\"touchHandler\"\n >\n <!--\n The base displayer contains three slots: `viewer`, `editor`, and `loading`.\n It displays `viewer` or `loading` according to its current state: `this.isView` when `this.isLoading` is\n false, and `loading` otherwise.\n -->\n\n <!-- The slot containing the displayer Viewer widget -->\n <div v-if=\"isView && !isLoading\">\n <slot name=\"viewer\">\n <!--\n Default Viewer widget\n Normally this should rarely be used, as the default displayer\n should provide a default viewer if no displayer is specified\n However, this is useful if a custom displayer only implement\n its Editor widget, as a default Viewer widget would still be provided\n -->\n <span>{{ value }}</span>\n </slot>\n <span v-if=\"!isViewable\">\n {{ $t('livedata.displayer.emptyValue') }}<sup>*</sup>\n </span>\n </div>\n\n <!-- The slot containing the displayer Editor widget -->\n <div @keypress.enter=\"applyEdit\"\n @keydown.esc.capture=\"cancelEdit\"\n v-if=\"!isView && !isLoading\"\n ref=\"editBlock\"\n >\n <slot name=\"editor\">\n <!--\n Default Editor widget\n Normally this should rarely be used, as the default displayer\n should provide a default editor if no displayer is specified\n However, this is useful if a custom displayer only implement\n its Viewer widget, as a default Editor widget would still be provided\n -->\n <input\n class=\"default-input\"\n type=\"text\"\n size=\"1\"\n v-autofocus\n v-model=\"baseValue\"\n />\n </slot>\n </div>\n\n <slot name=\"loading\" v-if=\"isLoading\">\n <XWikiLoader></XWikiLoader>\n </slot>\n </div>\n </template>\n\n <!-- Popover content -->\n <template>\n <div class=\"displayer-action-list\">\n <ActionEdit\n v-if=\"isEditable\"\n :displayer=\"{ setEdit: () => { setEdit() } }\"\n :close-popover=\"closePopover\"\n />\n <ActionFollowLink\n :displayer=\"{ href: sanitizeUrl(href) }\"\n v-if=\"href\"\n :close-popover=\"closePopover\"\n />\n </div>\n </template>\n </TippyComponent>\n</template>\n\n\n<script>\nimport {TippyComponent} from \"vue-tippy\";\nimport displayerMixin from \"./displayerMixin.js\";\nimport XWikiLoader from \"../utilities/XWikiLoader.vue\";\nimport ActionEdit from \"./actions/ActionEdit.vue\";\nimport ActionFollowLink from \"./actions/ActionFollowLink\";\n\nexport default {\n\n name: \"BaseDisplayer\",\n\n // Add the displayerMixin to get access to all the displayers methods and computed properties inside this component\n mixins: [displayerMixin],\n\n components: {\n ActionEdit,\n ActionFollowLink,\n TippyComponent,\n XWikiLoader\n },\n\n data () {\n return {\n duringEditing: false,\n href: undefined\n };\n },\n\n props: {\n viewOnly: {\n type: Boolean,\n default: false,\n },\n isView: {\n type: Boolean,\n default: true,\n },\n isLoading: {\n type: Boolean,\n default: false\n },\n isEmpty: {\n type: Boolean,\n default: undefined\n },\n interceptTouch: {\n type: Boolean,\n default: true\n }\n },\n\n computed: {\n isViewable() {\n var empty = this.isEmpty;\n if (empty === undefined) {\n empty = !this.value\n }\n const isViewable = this.logic.isActionAllowed('view', this.entry) || !empty;\n if (!isViewable) {\n this.logic.footnotes.put('*', 'livedata.footnotes.propertyNotViewable');\n }\n return isViewable;\n }\n },\n\n // The following methods are only used by the BaseDisplayer component\n // The methods for specific displayers can be found in the displayerMixin\n methods: {\n // Switches the displayer to edit mode.\n setEdit() {\n if (this.isEditable && this.isView) {\n this.$emit('update:isView', false);\n this.logic.getEditBus().start(this.entry, this.propertyId)\n }\n },\n\n // This method should be used to apply edit and go back to view mode.\n // The validation of the edited property is done once the whole entry is done editing.\n applyEdit() {\n // When the #edit slot is not the default, the editValue field is overloaded and is always undefined.\n // When receiving a saveEdit event, the passed value can then be ignored since the overloaded slot has it own \n // field.\n this.$emit('saveEdit', this.editedValue);\n // Go back to view mode\n this.$emit('update:isView', true);\n },\n\n // This method should be used to cancel edit and go back to view mode.\n // This is like applyEdit but it does not save the entered value\n cancelEdit() {\n // Notifies the edit bus that the entry edition is canceled (consequently, the edited value must not be persisted,\n // and should not be considered as edited anymore).\n this.logic.getEditBus().cancel(this.entry, this.propertyId)\n\n // Switches to view mode.\n this.$emit('update:isView', true);\n },\n closePopover() {\n this.$refs.tippy.tip.hide();\n },\n touchHandler(e) {\n // Active only when intercepting touch event is allowed, the displayer is in view mode, and no other\n // displayers are currently in edit mode.\n // If the touched element is a link and/or is editable, we display the popover.\n // If the touch element is a link, we get its target and display a following link action to its target.\n if(this.interceptTouch && this.isView && !this.duringEditing) {\n const targetsLink = e.target.tagName.toLowerCase() === 'a';\n if (targetsLink) {\n this.href = e.target.getAttribute('href');\n } else {\n this.href = undefined;\n }\n\n if (this.isEditable && targetsLink) {\n e.preventDefault();\n this.$refs.tippy.tip.show();\n }\n }\n }\n },\n mounted() {\n // Monitors clicks outside of the current cell. We switch back to view mode whenever a click is done outside of \n // the current cell.\n const listener = (evt) => {\n if (!this.isView) {\n const editBlock = this.$refs['editBlock'];\n\n if (editBlock.contains(evt.target)) {\n return;\n }\n\n // Wait a little before switching back to view mode, otherwise the change case cause a column width change \n // and make the user click on the wrong column, for instance when trying to edit the next column by double \n // clicking on it.\n setTimeout(() => this.applyEdit(), 200);\n } else {\n const displayerElement = this.$refs['displayerRoot'];\n \n if(!displayerElement) {\n return;\n }\n\n if (displayerElement.contains(evt.target)) {\n return;\n }\n this.closePopover();\n }\n };\n document.addEventListener(\"click\", listener)\n if (this.interceptTouch) {\n // When activated, we also listen to touch events outside of the current displayer.\n document.addEventListener(\"touchstart\", listener)\n }\n\n // We need to listen on the edit bus event because isEditable is not reactive. \n this.logic.getEditBus().onAnyEvent(() => {\n this.duringEditing = !this.logic.getEditBus().isEditable();\n })\n }\n};\n\n</script>\n\n\n<style>\n\n.livedata-displayer {\n display: inline-block;\n width: 100%;\n height: 100%;\n min-height: 1em;\n word-break: break-word;\n}\n\n/*\n Make any direct child of the displayer (so its Viewer or Editor widget)\n to take the full size of its parent\n*/\n.livedata-displayer > * {\n width: 100%;\n height: 100%;\n}\n\n.livedata-displayer:focus {\n /*\n TODO: make the outline match existing focused input outline\n (need access to Less variables for consistency)\n */\n outline: 2px lightblue solid;\n position: relative;\n}\n\n/* style for the default input */\n.livedata-displayer .default-input {\n width: 100%;\n}\n\n.displayer-actions-popover > div {\n width: 100%;\n height: auto;\n min-height: 1em;\n display: inline-block;\n}\n</style>\n\n<!--\n We make a separate style tag for styling the tippy actions popover\n to differentiate as it is styling an external component of the livedata,\n and also because the popover is appended inside the body tag of the page\n so if one day we refactor this SPA to make the style tags using the `scoped` attribute\n the displayer-actions-popover styles should not be scoped with the rest of the component.\n-->\n<style lang=\"less\">\n\n.displayer-actions-popover .tippy-content {\n font-size: 1.3rem;\n\n .displayer-action-list {\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n justify-content: right;\n }\n}\n\n</style>\n","import mod from \"-!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./BaseDisplayer.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./BaseDisplayer.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./BaseDisplayer.vue?vue&type=template&id=1caf36fd\"\nimport script from \"./BaseDisplayer.vue?vue&type=script&lang=js\"\nexport * from \"./BaseDisplayer.vue?vue&type=script&lang=js\"\nimport style0 from \"./BaseDisplayer.vue?vue&type=style&index=0&id=1caf36fd&prod&lang=css\"\nimport style1 from \"./BaseDisplayer.vue?vue&type=style&index=1&id=1caf36fd&prod&lang=less\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","<!--\n * See the NOTICE file distributed with this work for additional\n * information regarding copyright ownership.\n *\n * This is free software; you can redistribute it and/or modify it\n * under the terms of the GNU Lesser General Public License as\n * published by the Free Software Foundation; either version 2.1 of\n * the License, or (at your option) any later version.\n *\n * This software is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n * Lesser General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public\n * License along with this software; if not, write to the Free\n * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA\n * 02110-1301 USA, or see the FSF site: http://www.fsf.org.\n-->\n\n\n<!--\n DisplayerActions is a special custom displayer that displays actions\n concerning the entry.\n Actions are links to specific pages, whose url is a property of the entry.\n-->\n<template>\n <!--\n Uses the BaseDisplayer as root element, as it handles for us\n all the displayer default behavior\n -->\n <BaseDisplayer\n class=\"displayer-actions\"\n view-only\n :property-id=\"propertyId\"\n :entry=\"entry\"\n :is-empty=\"false\"\n :intercept-touch=\"false\"\n >\n\n <!-- Provide the Action Viewer widget to the `viewer` slot -->\n <template #viewer>\n <div class=\"actions-container\">\n <a\n v-for=\"action in actions\"\n :key=\"action.id\"\n :class=\"'action action_' + action.id\"\n :title=\"action.description\"\n :href=\"sanitizeUrl(entry[action.urlProperty]) || '#'\"\n >\n <XWikiIcon :iconDescriptor=\"action.icon\" /><span class=\"action-name\">{{ action.name }}</span>\n </a>\n </div>\n </template>\n\n\n <!--\n The Action displayer does not have an Editor widget\n So we leave the editor template empty\n Moreover, we add the `view-only` property on the BaseDisplayer component\n so that user can't possibly switch to the Editor widget.\n -->\n <template #editor></template>\n\n\n </BaseDisplayer>\n</template>\n\n\n<script>\nimport displayerMixin from \"./displayerMixin.js\";\nimport BaseDisplayer from \"./BaseDisplayer.vue\";\nimport XWikiIcon from \"../utilities/XWikiIcon.vue\";\n\nexport default {\n\n name: \"displayer-actions\",\n\n components: {\n BaseDisplayer,\n XWikiIcon,\n },\n\n // Add the displayerMixin to get access to all the displayers methods and computed properties inside this component\n mixins: [displayerMixin],\n\n computed: {\n actions () {\n // The list of actions can be overwritten from the displayer configuration.\n return (this.config.actions || this.data.meta.actions)\n // Show only the actions that are allowed for the current live data entry.\n .filter(action => this.logic.isActionAllowed(action, this.entry))\n .map(action => this.logic.getActionDescriptor(action));\n },\n },\n\n};\n</script>\n\n\n<style>\n\n.displayer-actions .action {\n color: @text-muted;\n white-space: nowrap;\n}\n\n.displayer-actions .action + .action {\n margin-left: .5em;\n}\n\n.displayer-actions .action-name {\n margin-left: .25em;\n}\n\n</style>\n","import mod from \"-!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DisplayerActions.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DisplayerActions.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./DisplayerActions.vue?vue&type=template&id=5b9f978e\"\nimport script from \"./DisplayerActions.vue?vue&type=script&lang=js\"\nexport * from \"./DisplayerActions.vue?vue&type=script&lang=js\"\nimport style0 from \"./DisplayerActions.vue?vue&type=style&index=0&id=5b9f978e&prod&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('BaseDisplayer',{ref:\"baseDisplayer\",staticClass:\"displayer-boolean\",attrs:{\"property-id\":_vm.propertyId,\"entry\":_vm.entry,\"is-view\":_vm.isView},on:{\"update:isView\":function($event){_vm.isView=$event},\"update:is-view\":function($event){_vm.isView=$event},\"saveEdit\":_vm.genericSave},scopedSlots:_vm._u([{key:\"viewer\",fn:function(){return [_c('div',[_vm._v(_vm._s(_vm.$t(_vm.value ? _vm.trueLabelKey : _vm.falseLabelKey)))])]},proxy:true},{key:\"editor\",fn:function(){return [_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.baseValue),expression:\"baseValue\"},{name:\"autofocus\",rawName:\"v-autofocus\"}],attrs:{\"type\":\"checkbox\"},domProps:{\"checked\":Array.isArray(_vm.baseValue)?_vm._i(_vm.baseValue,null)>-1:(_vm.baseValue)},on:{\"change\":function($event){var $$a=_vm.baseValue,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.baseValue=$$a.concat([$$v]))}else{$$i>-1&&(_vm.baseValue=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.baseValue=$$c}}}})]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/*\n * See the NOTICE file distributed with this work for additional\n * information regarding copyright ownership.\n *\n * This is free software; you can redistribute it and/or modify it\n * under the terms of the GNU Lesser General Public License as\n * published by the Free Software Foundation; either version 2.1 of\n * the License, or (at your option) any later version.\n *\n * This software is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n * Lesser General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public\n * License along with this software; if not, write to the Free\n * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA\n * 02110-1301 USA, or see the FSF site: http://www.fsf.org.\n */\nexport default {\n /**\n * Common states for the displayers relying on BaseDisplayer.\n * - isView: true when the displayer is in view state, false when the displayer is in edit state\n * - isLoading: true when the displayer is currently loading, because it needs to be initialized by an asynchronous\n * operation\n * This mixing can be used to avoid redeclaring the mandatory states in each displayer.\n * @returns {{isLoading: boolean, isView: boolean}} the mixing data values.\n */\n data() {\n return {\n isView: true,\n isLoading: false,\n }\n }\n}","<!--\n * See the NOTICE file distributed with this work for additional\n * information regarding copyright ownership.\n *\n * This is free software; you can redistribute it and/or modify it\n * under the terms of the GNU Lesser General Public License as\n * published by the Free Software Foundation; either version 2.1 of\n * the License, or (at your option) any later version.\n *\n * This software is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n * Lesser General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public\n * License along with this software; if not, write to the Free\n * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA\n * 02110-1301 USA, or see the FSF site: http://www.fsf.org.\n-->\n\n<!--\n DisplayerBoolean is a custom displayer that displays the entry value as booleans.\n-->\n<template>\n <!-- Uses the BaseDisplayer as root element, as it handles for us all the displayer default behavior. -->\n <BaseDisplayer\n ref=\"baseDisplayer\"\n class=\"displayer-boolean\"\n :property-id=\"propertyId\"\n :entry=\"entry\"\n :is-view.sync=\"isView\"\n @saveEdit=\"genericSave\">\n\n <template #viewer>\n <div>{{ $t(value ? trueLabelKey : falseLabelKey) }}</div>\n </template>\n\n <template #editor>\n <input type=\"checkbox\" v-model=\"baseValue\" v-autofocus/>\n </template>\n </BaseDisplayer>\n</template>\n\n<script>\nimport displayerMixin from \"./displayerMixin.js\";\nimport displayerStatesMixin from \"./displayerStatesMixin.js\"\nimport BaseDisplayer from \"./BaseDisplayer.vue\";\n\nexport default {\n name: \"displayer-boolean\",\n components: {BaseDisplayer,},\n\n // Add the displayerMixin to get access to all the displayers methods and computed properties inside this component.\n mixins: [displayerMixin, displayerStatesMixin],\n\n props: {\n trueLabelKey: {\n type: String,\n default: 'livedata.displayer.boolean.true'\n },\n falseLabelKey: {\n type: String,\n default: 'livedata.displayer.boolean.false'\n }\n }\n}\n</script>\n\n<style scoped>\ninput {\n /* Set a fixed checkbox size to prevent it to be as large as the cell it is in. */\n width: 16px;\n height: 16px;\n}\n\ndiv.displayer-boolean {\n text-align: center;\n}\n</style>","import mod from \"-!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DisplayerBoolean.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DisplayerBoolean.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./DisplayerBoolean.vue?vue&type=template&id=1711e873&scoped=true\"\nimport script from \"./DisplayerBoolean.vue?vue&type=script&lang=js\"\nexport * from \"./DisplayerBoolean.vue?vue&type=script&lang=js\"\nimport style0 from \"./DisplayerBoolean.vue?vue&type=style&index=0&id=1711e873&prod&scoped=true&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1711e873\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('BaseDisplayer',{ref:\"baseDisplayer\",staticClass:\"displayer-date\",attrs:{\"property-id\":_vm.propertyId,\"entry\":_vm.entry,\"is-view\":_vm.isView},on:{\"update:isView\":function($event){_vm.isView=$event},\"update:is-view\":function($event){_vm.isView=$event},\"saveEdit\":_vm.genericSave},scopedSlots:_vm._u([{key:\"viewer\",fn:function(){return [_c('div',{staticClass:\"displayed-date\"},[_vm._v(_vm._s(_vm.valueFormatted))])]},proxy:true},{key:\"editor\",fn:function(){return [_c('input',{directives:[{name:\"on-inserted\",rawName:\"v-on-inserted\",value:(_vm.upgradeDatePicker),expression:\"upgradeDatePicker\"},{name:\"autofocus\",rawName:\"v-autofocus\"}],ref:\"editorDate\",staticClass:\"editor-date\",attrs:{\"type\":\"text\",\"size\":\"1\"},domProps:{\"value\":_vm.valueFormatted}})]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n * See the NOTICE file distributed with this work for additional\n * information regarding copyright ownership.\n *\n * This is free software; you can redistribute it and/or modify it\n * under the terms of the GNU Lesser General Public License as\n * published by the Free Software Foundation; either version 2.1 of\n * the License, or (at your option) any later version.\n *\n * This software is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n * Lesser General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public\n * License along with this software; if not, write to the Free\n * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA\n * 02110-1301 USA, or see the FSF site: http://www.fsf.org.\n-->\n\n\n<!--\n DisplayerDate is a custom displayer that displays the entry value as dates\n-->\n<template>\n <!--\n Uses the BaseDisplayer as root element, as it handles for us\n all the displayer default behavior\n -->\n <BaseDisplayer\n ref=\"baseDisplayer\"\n class=\"displayer-date\"\n :property-id=\"propertyId\"\n :entry=\"entry\"\n :is-view.sync=\"isView\"\n @saveEdit=\"genericSave\"\n >\n\n <!-- Provide the Date Viewer widget to the `viewer` slot -->\n <template #viewer>\n <div class=\"displayed-date\">{{ valueFormatted }}</div>\n </template>\n\n <!-- Provide the Date Editor widget to the `editor` slot -->\n <!-- TODO: use daterangepicker widget -->\n <template #editor>\n <!-- A simple text input that will be upgraded to have a date picker -->\n <input\n class=\"editor-date\"\n ref=\"editorDate\"\n type=\"text\"\n size=\"1\"\n :value=\"valueFormatted\"\n v-on-inserted=\"upgradeDatePicker\"\n v-autofocus\n />\n </template>\n\n </BaseDisplayer>\n</template>\n\n\n<script>\n\nimport displayerMixin from \"./displayerMixin.js\";\nimport displayerStatesMixin from \"./displayerStatesMixin\";\nimport BaseDisplayer from \"./BaseDisplayer.vue\";\nimport \"daterangepicker\";\nimport moment from \"moment\";\nimport $ from \"jquery\";\n\nexport default {\n\n name: \"displayer-date\",\n\n components: {\n BaseDisplayer,\n },\n\n props: {\n format: {\n type: String,\n default: \"YYYY/MM/DD HH:mm\"\n }\n },\n\n // Add the displayerMixin to get access to all the displayers methods and computed properties inside this component\n mixins: [displayerMixin, displayerStatesMixin],\n\n computed: {\n // Date formatted to be human-readable\n valueFormatted () {\n return moment(+this.value).format(this.format);\n },\n\n editorConfig () {\n return {\n drops: 'down',\n opens: 'right',\n autoUpdateInput: true,\n autoApply: true,\n singleDatePicker: true,\n showDropdowns: true,\n timePicker: true,\n timePicker24Hour: true,\n alwaysShowCalendars: true,\n locale: {\n format: this.format,\n },\n };\n },\n },\n\n methods: {\n async upgradeDatePicker () {\n // Create the date picker in edit mode\n if (this.$refs.baseDisplayer.isView) { return; }\n await this.$nextTick();\n const editorDate = this.$refs.editorDate;\n // Create the date range picker associated to the single date input\n $(editorDate).daterangepicker(\n this.editorConfig,\n );\n $(editorDate).on('apply.daterangepicker', () => {\n this.applyDate();\n });\n $(editorDate).on('cancel.daterangepicker', () => {\n this.cancelEdit();\n });\n $(editorDate).on('hide.daterangepicker', () => {\n this.cancelEdit();\n });\n // Fix prototypejs prototype pollution\n $(editorDate).on('hide.daterangepicker', (e) => {\n // Overwrite at instance level the 'hide' function added by Prototype.js to the Element prototype.\n // This removes the 'hide' function only for the event target.\n editorDate.hide = undefined;\n // Restore the 'hide' function after the event is handled (i.e. after all the listeners have been called).\n setTimeout(function () {\n // This deletes the local 'hide' key from the instance, making the 'hide' inherited from the prototype\n // visible again (the next calls to 'hide' won't find the key on the instance and thus it will go up\n // the prototype chain).\n delete e.target['hide'];\n }, 0);\n });\n // Open picker automatically\n await this.$nextTick();\n $(editorDate).data(\"daterangepicker\").show();\n },\n\n getValue (daterangepicker) {\n return daterangepicker.startDate.format(this.format);\n },\n\n applyDate() {\n const daterangepicker = $(this.$refs.editorDate).data(\"daterangepicker\");\n const value = this.getValue(daterangepicker);\n const valueTimestamps = +moment(value, this.format);\n this.applyEdit(valueTimestamps);\n },\n },\n\n};\n</script>\n\n\n<style>\n\n.livedata-displayer .editor-date {\n width: 100%;\n}\n\n.displayed-date {\n min-width: 100%;\n min-height: 100%;\n}\n\n</style>\n","import mod from \"-!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DisplayerDate.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DisplayerDate.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./DisplayerDate.vue?vue&type=template&id=acc44fda\"\nimport script from \"./DisplayerDate.vue?vue&type=script&lang=js\"\nexport * from \"./DisplayerDate.vue?vue&type=script&lang=js\"\nimport style0 from \"./DisplayerDate.vue?vue&type=style&index=0&id=acc44fda&prod&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('DisplayerLink',_vm._b({},'DisplayerLink',{..._vm.$props, ..._vm.$attrs, html: _vm.html},false))\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('BaseDisplayer',{staticClass:\"displayer-link\",attrs:{\"property-id\":_vm.propertyId,\"entry\":_vm.entry,\"is-view\":_vm.isView,\"is-empty\":false},on:{\"update:isView\":function($event){_vm.isView=$event},\"update:is-view\":function($event){_vm.isView=$event},\"saveEdit\":_vm.genericSave},scopedSlots:_vm._u([{key:\"viewer\",fn:function(){return [(_vm.linkContent && _vm.hasViewRight)?_c('a',{class:{'explicit-empty-value': !_vm.html && !_vm.htmlValue},attrs:{\"href\":_vm.sanitizeUrl(_vm.href)},domProps:{\"innerHTML\":_vm._s(_vm.sanitizeHtml(_vm.linkContent))}}):_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.sanitizeHtml(_vm.linkContent))}})]},proxy:true},{key:\"editor\",fn:function(){return undefined},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/*\n * See the NOTICE file distributed with this work for additional\n * information regarding copyright ownership.\n *\n * This is free software; you can redistribute it and/or modify it\n * under the terms of the GNU Lesser General Public License as\n * published by the Free Software Foundation; either version 2.1 of\n * the License, or (at your option) any later version.\n *\n * This software is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n * Lesser General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public\n * License along with this software; if not, write to the Free\n * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA\n * 02110-1301 USA, or see the FSF site: http://www.fsf.org.\n */\n\n/**\n * The displayerLinkMixin is a vue mixin containing the computed values required for the DisplayerLink component\n * or other components reusing it (for instance, DisplayerDocTitle).\n */\nexport default {\n computed: {\n htmlValue() {\n const container = document.createElement('div');\n container[this.config.html ? 'innerHTML' : 'textContent'] = this.value;\n // Remove the interactive content because it isn't allowed inside an anchor element.\n // See https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a#properties\n // See https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Content_categories#interactive_content\n const interactiveContent = 'a, button, details, embed, iframe, keygen, label, select, textarea, audio[controls],'\n + 'img[usemap], input, menu[type=toolbar], object[usemap], video[controls]';\n [...container.querySelectorAll(interactiveContent)].forEach(node => node.parentNode.removeChild(node));\n return container.innerHTML.trim();\n }\n }\n};\n","<!--\n * See the NOTICE file distributed with this work for additional\n * information regarding copyright ownership.\n *\n * This is free software; you can redistribute it and/or modify it\n * under the terms of the GNU Lesser General Public License as\n * published by the Free Software Foundation; either version 2.1 of\n * the License, or (at your option) any later version.\n *\n * This software is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n * Lesser General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public\n * License along with this software; if not, write to the Free\n * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA\n * 02110-1301 USA, or see the FSF site: http://www.fsf.org.\n-->\n\n\n<!--\n DisplayerLink is a custom displayer that displays the entry value as link.\n It uses the `propertyHref` property of the displayer descriptor,\n which refers to the property in the entries holding the displayer href\n-->\n<template>\n <!--\n Uses the BaseDisplayer as root element, as it handles for us\n all the displayer default behavior\n -->\n <BaseDisplayer\n class=\"displayer-link\"\n :property-id=\"propertyId\"\n :entry=\"entry\"\n :is-view.sync=\"isView\"\n :is-empty=\"false\"\n @saveEdit=\"genericSave\"\n >\n\n <!-- Provide the Link Viewer widget to the `viewer` slot -->\n <template #viewer>\n <!--\n If there is no value but still a link, the user should still be able to click the link,\n so we create an explicit \"no value\" message in that case\n -->\n <a v-if=\"linkContent && hasViewRight\"\n :href=\"sanitizeUrl(href)\"\n :class=\"{'explicit-empty-value': !html && !htmlValue}\"\n v-html=\"sanitizeHtml(linkContent)\"\n ></a>\n <span v-else v-html=\"sanitizeHtml(linkContent)\"></span>\n </template>\n\n\n <!-- Keep the default Editor widget -->\n <template #editor></template>\n\n </BaseDisplayer>\n</template>\n\n\n<script>\nimport displayerMixin from \"./displayerMixin.js\";\nimport displayerLinkMixin from \"./displayerLinkMixin.js\";\nimport displayerStatesMixin from \"./displayerStatesMixin\";\nimport BaseDisplayer from \"./BaseDisplayer.vue\";\n\nexport default {\n\n name: \"displayer-link\",\n\n components: {\n BaseDisplayer,\n },\n\n // Add the displayerMixin to get access to all the displayers methods and computed properties inside this component\n mixins: [displayerMixin, displayerLinkMixin, displayerStatesMixin],\n \n props: {\n // An optional html to use instead of the computed htmlValue when displaying the inner html of the link.\n html: {\n optional: true\n }\n },\n\n computed: {\n // The link href taken from the propertyHref property of the entry\n href () {\n // propertyHref can have multiple values, in which case we use the first that is set on the live data entry.\n let values = this.config.propertyHref;\n if (typeof values === 'string') {\n values = [values];\n } else if (!Array.isArray(values)) {\n values = [];\n }\n return values.map(value => this.entry[value]).find(value => value) || '#';\n },\n linkContent() {\n if (!this.hasViewRight) {\n return this.$t('livedata.displayer.emptyValue');\n } else if (this.html) {\n return this.html;\n } else {\n return this.htmlValue || this.$t('livedata.displayer.link.noValue')\n }\n },\n hasViewRight() {\n return this.logic.isActionAllowed('view', this.entry)\n }\n },\n};\n</script>\n\n\n<style>\n\n.livedata-displayer.displayer-link .explicit-empty-value {\n font-style: italic;\n color: grey;\n}\n\n</style>\n","import mod from \"-!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DisplayerLink.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DisplayerLink.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./DisplayerLink.vue?vue&type=template&id=684c1db2\"\nimport script from \"./DisplayerLink.vue?vue&type=script&lang=js\"\nexport * from \"./DisplayerLink.vue?vue&type=script&lang=js\"\nimport style0 from \"./DisplayerLink.vue?vue&type=style&index=0&id=684c1db2&prod&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","<!--\n * See the NOTICE file distributed with this work for additional\n * information regarding copyright ownership.\n *\n * This is free software; you can redistribute it and/or modify it\n * under the terms of the GNU Lesser General Public License as\n * published by the Free Software Foundation; either version 2.1 of\n * the License, or (at your option) any later version.\n *\n * This software is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n * Lesser General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public\n * License along with this software; if not, write to the Free\n * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA\n * 02110-1301 USA, or see the FSF site: http://www.fsf.org.\n-->\n\n<template>\n <DisplayerLink v-bind=\"{...$props, ...$attrs, html}\"/>\n</template>\n\n<script>\nimport DisplayerLink from \"./DisplayerLink.vue\";\nimport displayerMixin from \"./displayerMixin.js\";\nimport displayerLinkMixin from \"./displayerLinkMixin.js\";\n\nexport default {\n name: \"displayer-docTitle\",\n components: {DisplayerLink},\n mixins: [displayerMixin, displayerLinkMixin],\n computed: {\n html() {\n if (this.entry['doc.title_raw'] !== undefined) {\n this.logic.footnotes.put('1', 'livedata.footnotes.computedTitle');\n return `${this.htmlValue} <sup>1</sup>`;\n } else {\n return this.htmlValue;\n }\n }\n }\n}\n</script>\n\n<style scoped>\n\n</style>","import mod from \"-!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DisplayerDocTitle.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DisplayerDocTitle.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./DisplayerDocTitle.vue?vue&type=template&id=7630d9e7&scoped=true\"\nimport script from \"./DisplayerDocTitle.vue?vue&type=script&lang=js\"\nexport * from \"./DisplayerDocTitle.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7630d9e7\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('BaseDisplayer',{staticClass:\"displayer-html\",attrs:{\"property-id\":_vm.propertyId,\"entry\":_vm.entry,\"is-view\":\"\",\"view-only\":\"\"},scopedSlots:_vm._u([{key:\"viewer\",fn:function(){return [_c('div',{staticClass:\"html-wrapper\",domProps:{\"innerHTML\":_vm._s(_vm.safeValue)}})]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n * See the NOTICE file distributed with this work for additional\n * information regarding copyright ownership.\n *\n * This is free software; you can redistribute it and/or modify it\n * under the terms of the GNU Lesser General Public License as\n * published by the Free Software Foundation; either version 2.1 of\n * the License, or (at your option) any later version.\n *\n * This software is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n * Lesser General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public\n * License along with this software; if not, write to the Free\n * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA\n * 02110-1301 USA, or see the FSF site: http://www.fsf.org.\n-->\n\n\n<!--\n DisplayerHtml is a custom displayer that displays the entry value as static html.\n It only support displaying the entries in view mode.\n-->\n<template>\n <!-- Uses the BaseDisplayer as root element, as it handles for us all the displayer default behavior. -->\n <BaseDisplayer\n class=\"displayer-html\"\n :property-id=\"propertyId\"\n :entry=\"entry\"\n is-view\n view-only>\n <!-- Provide the Html Viewer widget to the `viewer` slot -->\n <template #viewer>\n <div class=\"html-wrapper\"\n v-html=\"safeValue\"/>\n </template>\n </BaseDisplayer>\n</template>\n\n<script>\nimport displayerMixin from \"./displayerMixin.js\";\nimport BaseDisplayer from \"./BaseDisplayer.vue\";\n\nexport default {\n name: \"displayer-html\",\n components: {BaseDisplayer,},\n mixins: [displayerMixin]\n};\n</script>\n\n<style lang=\"less\">\n\n/*\n * Fix the styles of some known HTML widgets that may be used with the HTML displayer.\n */\n.xwiki-livedata .displayer-html .breadcrumb {\n margin: 0;\n padding: 0;\n background-color: transparent;\n\n /* Make the last segment of the breadcrumbs the same color as the rest of the segments. */\n .active a {\n color: @link-color;\n }\n}\n</style>\n","import mod from \"-!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DisplayerHtml.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DisplayerHtml.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./DisplayerHtml.vue?vue&type=template&id=cffcf97a\"\nimport script from \"./DisplayerHtml.vue?vue&type=script&lang=js\"\nexport * from \"./DisplayerHtml.vue?vue&type=script&lang=js\"\nimport style0 from \"./DisplayerHtml.vue?vue&type=style&index=0&id=cffcf97a&prod&lang=less\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('BaseDisplayer',{staticClass:\"displayer-number\",attrs:{\"property-id\":_vm.propertyId,\"entry\":_vm.entry,\"is-view\":_vm.isView},on:{\"update:isView\":function($event){_vm.isView=$event},\"update:is-view\":function($event){_vm.isView=$event},\"saveEdit\":_vm.genericSave},scopedSlots:_vm._u([{key:\"viewer\",fn:function(){return undefined},proxy:true},{key:\"editor\",fn:function(){return undefined},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n * See the NOTICE file distributed with this work for additional\n * information regarding copyright ownership.\n *\n * This is free software; you can redistribute it and/or modify it\n * under the terms of the GNU Lesser General Public License as\n * published by the Free Software Foundation; either version 2.1 of\n * the License, or (at your option) any later version.\n *\n * This software is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n * Lesser General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public\n * License along with this software; if not, write to the Free\n * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA\n * 02110-1301 USA, or see the FSF site: http://www.fsf.org.\n-->\n\n<!--\n DisplayerNumber is a custom displayer that displays the entry value as numbers.\n As this is very simple, it uses the BaseDisplayer default widgets\n-->\n<template>\n <!--\n Uses the BaseDisplayer as root element, as it handles for us\n all the displayer default behavior\n -->\n <BaseDisplayer\n class=\"displayer-number\"\n :property-id=\"propertyId\"\n :entry=\"entry\"\n :is-view.sync=\"isView\"\n @saveEdit=\"genericSave\"\n >\n\n <!-- Keep the default Viewer widget -->\n <template #viewer></template>\n\n <!-- Keep the default Editor widget -->\n <template #editor></template>\n\n </BaseDisplayer>\n</template>\n\n\n<script>\n\nimport displayerMixin from \"./displayerMixin.js\";\nimport BaseDisplayer from \"./BaseDisplayer.vue\";\nimport displayerStatesMixin from \"./displayerStatesMixin\";\n\nexport default {\n\n name: \"displayer-number\",\n\n components: {\n BaseDisplayer,\n },\n\n // Add the displayerMixin to get access to all the displayers methods and computed properties inside this component\n mixins: [displayerMixin, displayerStatesMixin],\n\n};\n</script>\n\n\n<style>\n\n.livedata-displayer.displayer-number {\n text-align: right;\n}\n\n</style>\n","import mod from \"-!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DisplayerNumber.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DisplayerNumber.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./DisplayerNumber.vue?vue&type=template&id=44f7f130\"\nimport script from \"./DisplayerNumber.vue?vue&type=script&lang=js\"\nexport * from \"./DisplayerNumber.vue?vue&type=script&lang=js\"\nimport style0 from \"./DisplayerNumber.vue?vue&type=style&index=0&id=44f7f130&prod&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('BaseDisplayer',{staticClass:\"displayer-text\",attrs:{\"property-id\":_vm.propertyId,\"entry\":_vm.entry,\"is-view\":_vm.isView},on:{\"update:isView\":function($event){_vm.isView=$event},\"update:is-view\":function($event){_vm.isView=$event},\"saveEdit\":_vm.genericSave},scopedSlots:_vm._u([{key:\"viewer\",fn:function(){return undefined},proxy:true},{key:\"editor\",fn:function(){return undefined},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n * See the NOTICE file distributed with this work for additional\n * information regarding copyright ownership.\n *\n * This is free software; you can redistribute it and/or modify it\n * under the terms of the GNU Lesser General Public License as\n * published by the Free Software Foundation; either version 2.1 of\n * the License, or (at your option) any later version.\n *\n * This software is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n * Lesser General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public\n * License along with this software; if not, write to the Free\n * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA\n * 02110-1301 USA, or see the FSF site: http://www.fsf.org.\n-->\n\n<!--\n DisplayerText is a custom displayer that displays the entry value as text.\n This is the simpliest displayer, as it does not even implement new widget\n instead of the BaseDisplayer default ones!\n-->\n<template>\n <!--\n Uses the BaseDisplayer as root element, as it handles for us\n all the displayer default behavior\n -->\n <BaseDisplayer\n class=\"displayer-text\"\n :property-id=\"propertyId\"\n :entry=\"entry\"\n :is-view.sync=\"isView\"\n @saveEdit=\"genericSave\"\n >\n\n <!-- Keep the default Viewer widget -->\n <template #viewer></template>\n\n <!-- Keep the default Editor widget -->\n <template #editor></template>\n\n </BaseDisplayer>\n</template>\n\n\n<script>\n\nimport displayerMixin from \"./displayerMixin.js\";\nimport BaseDisplayer from \"./BaseDisplayer.vue\";\nimport displayerStatesMixin from \"./displayerStatesMixin\";\n\nexport default {\n\n name: \"displayer-text\",\n\n components: {\n BaseDisplayer,\n },\n\n // Add the displayerMixin to get access to all the displayers methods and computed properties inside this component\n mixins: [displayerMixin, displayerStatesMixin],\n};\n</script>\n\n\n<style>\n\n</style>\n","import mod from \"-!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DisplayerText.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DisplayerText.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./DisplayerText.vue?vue&type=template&id=2b6383df\"\nimport script from \"./DisplayerText.vue?vue&type=script&lang=js\"\nexport * from \"./DisplayerText.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('BaseDisplayer',{staticClass:\"displayer-xobject-property\",attrs:{\"property-id\":_vm.propertyId,\"entry\":_vm.entry,\"is-view\":_vm.isView,\"is-loading\":_vm.isLoading},on:{\"update:isView\":function($event){_vm.isView=$event},\"update:is-view\":function($event){_vm.isView=$event},\"saveEdit\":_vm.applyEdit},scopedSlots:_vm._u([{key:\"viewer\",fn:function(){return [_c('div',{ref:\"xObjectPropertyView\",class:['html-wrapper', _vm.isLoading ? 'disabled' : ''],domProps:{\"innerHTML\":_vm._s(_vm.sanitizeHtml(_vm.value))}})]},proxy:true},{key:\"editor\",fn:function(){return [_c('div',{ref:\"xObjectPropertyEdit\",domProps:{\"innerHTML\":_vm._s(_vm.sanitizeHtml(_vm.editField))}})]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n * See the NOTICE file distributed with this work for additional\n * information regarding copyright ownership.\n *\n * This is free software; you can redistribute it and/or modify it\n * under the terms of the GNU Lesser General Public License as\n * published by the Free Software Foundation; either version 2.1 of\n * the License, or (at your option) any later version.\n *\n * This software is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n * Lesser General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public\n * License along with this software; if not, write to the Free\n * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA\n * 02110-1301 USA, or see the FSF site: http://www.fsf.org.\n-->\n\n\n<!--\n DisplayerXObjectProperty is a custom displayer that displays an XObject property.\n It fetches the edit and view widgets from the server.\n-->\n<template>\n <!-- Uses the BaseDisplayer as root element, as it handles for us all the displayer default behavior. -->\n <BaseDisplayer\n class=\"displayer-xobject-property\"\n :property-id=\"propertyId\"\n :entry=\"entry\"\n :is-view.sync=\"isView\"\n :is-loading=\"isLoading\"\n @saveEdit=\"applyEdit\">\n\n <!-- Provide the Html Viewer widget to the `viewer` slot -->\n <template #viewer>\n <div :class=\"['html-wrapper', isLoading ? 'disabled' : '']\"\n v-html=\"sanitizeHtml(value)\"\n ref=\"xObjectPropertyView\"/>\n </template>\n\n <!-- Provide the Html Editor widget to the `editor` slot -->\n <template #editor>\n <div v-html=\"sanitizeHtml(editField)\"\n ref=\"xObjectPropertyEdit\"/>\n </template>\n </BaseDisplayer>\n</template>\n\n\n<script>\n\nimport displayerMixin from \"./displayerMixin.js\";\nimport BaseDisplayer from \"./BaseDisplayer.vue\";\nimport displayerStatesMixin from \"./displayerStatesMixin.js\";\nimport $ from \"jquery\";\nimport xObjectPropertyHelper from \"xwiki-livedata-xObjectPropertyHelper\";\n\n\nexport default {\n\n name: \"displayer-xobject-property\",\n\n inject: [\"logic\"],\n\n // Add the displayerMixin to get access to all the displayers methods and computed properties inside this component.\n mixins: [displayerMixin, displayerStatesMixin],\n\n props: ['timestamp'],\n\n components: {BaseDisplayer,},\n\n data() {\n return {\n editField: undefined,\n }\n },\n\n methods: {\n /**\n * Process the edit form content and send it to be saved.\n */\n applyEdit() {\n const documentName = this.logic.getEntryId(this.entry);\n if (!documentName) {\n new XWiki.widgets.Notification(this.$t('livedata.displayer.xObjectProperty.missingDocumentName.errorMessage'),\n 'error');\n } else {\n $(document).trigger('xwiki:actions:beforeSave');\n const fields = $(this.$refs.xObjectPropertyEdit).find(':input').serializeArray();\n const className = this.data.query.source.className;\n\n const data = {};\n fields.forEach(field => {\n var newName = field.name;\n\n if (newName.startsWith(className)) {\n // Remove the class name and the object number in order to keep only the property name.\n newName = newName.substring(className.length);\n newName = newName.replace(/^_\\d+_/, '');\n }\n\n // Aggregates the fields with the same name in an array. If a field is found only once it is stored alone.\n if (data[newName]) {\n if (!Array.isArray(data[newName])) {\n data[newName] = [data[newName]];\n }\n\n data[newName].push(field.value);\n \n } else {\n data[newName] = field.value;\n }\n });\n\n this.logic.getEditBus().save(this.entry, this.propertyId, data);\n }\n },\n\n /**\n * Takes an update method and retrieves its content.\n * \n * @param {method} updateMethod the method dedicate to the update of a given aspect of the displayer. For instance,\n * the view or edit html content\n * @returns {*} a `Promise` with the content of the updated view\n */\n update(updateMethod) {\n this.isLoading = true;\n const documentName = this.logic.getEntryId(this.entry);\n const className = this.data.query.source.className;\n const property = this.propertyId;\n return updateMethod(documentName, className, property);\n },\n\n /**\n * Update the content of the editor slot.\n */\n updateEdit() {\n this.update(xObjectPropertyHelper.edit)\n .then((html) => {\n this.isLoading = false;\n\n this.editField = html;\n\n // Wait for the rendering to be finished after editField is updated, to have access to xObjectPropertyEdit\n // and be able to send the trigger event.\n this.$nextTick().then(() => {\n if (this.$refs.xObjectPropertyEdit) {\n $(document).trigger('xwiki:dom:updated', {'elements': [this.$refs.xObjectPropertyEdit]});\n // Focuses on the first visible field of the loaded form.\n $(this.$refs.xObjectPropertyEdit).find(':input').filter(':visible').focus();\n }\n })\n })\n .catch(() => {\n // Stop the loader and switch to view mode.\n this.isLoading = false;\n this.isView = true;\n })\n }\n },\n\n watch: {\n // Refreshes the edit field when the view mode switched to edit.\n isView: function(isView) {\n if (!isView) {\n this.updateEdit();\n }\n }\n },\n mounted() {\n // Pass the vue-i18n localization helper to the XObjectPropertyHelper to allow error messages to be localized.\n xObjectPropertyHelper.setLocalization(this.$t);\n }\n};\n\n</script>\n\n\n<style>\n\n</style>\n","import mod from \"-!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DisplayerXObjectProperty.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DisplayerXObjectProperty.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./DisplayerXObjectProperty.vue?vue&type=template&id=9f41720e\"\nimport script from \"./DisplayerXObjectProperty.vue?vue&type=script&lang=js\"\nexport * from \"./DisplayerXObjectProperty.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","<!--\n * See the NOTICE file distributed with this work for additional\n * information regarding copyright ownership.\n *\n * This is free software; you can redistribute it and/or modify it\n * under the terms of the GNU Lesser General Public License as\n * published by the Free Software Foundation; either version 2.1 of\n * the License, or (at your option) any later version.\n *\n * This software is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n * Lesser General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public\n * License along with this software; if not, write to the Free\n * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA\n * 02110-1301 USA, or see the FSF site: http://www.fsf.org.\n-->\n\n<!--\n The LivedataDisplayer component is used to display any data of the Livedata.\n Each LivedataDisplayer instance is defined by two props:\n - an entry\n - the property of the entry to display the value\n\n It comes with two modes: View mode (default) and Edit mode,\n that are implemented throught the Viewer and Editor widgets.\n When the user double-click on the Viewer widget, it changes to the Editor one\n Then when the user validates the new value for the entry property,\n it change back to the Viewer mode.\n\n There are differents type of displayers: Text, Number, Link, Html, ...\n Those are specified in every propertyDescriptors.\n Each specific displayer comes with its own implementation\n of Viewer and Editor widgets.\n\n The LivedataDisplayer component directly handle for us the choice of\n which custom Displayer implementation to use, based on the props passed to it,\n and dynamically import this Displayer component and mount it at runtime.\n If this custom implementation can't be found, or there was an loading error,\n then it falls back to the default one\n (specified by the `defaultDisplayer` property in the Livedata configuration).\n-->\n<template>\n <!--\n This is where the specific displayer component gets injected.\n The timestamp props if an optional and do not have to be declared in the injected component.\n It can be watched in order to force the upgrade of the component when the content is not passed using the props.\n For instance, it is used by the DisplayerXObjectProperty component in order to fetch an updated view content when\n the table is refreshed.\n -->\n <component\n class=\"livedata-displayer\"\n :is=\"`Displayer${this.capitalize(this.displayerId)}`\"\n :property-id=\"propertyId\"\n :entry=\"entry\"\n ></component>\n</template>\n\n\n<script>\n// Importing explicitly the dynamic components ensure that the components are loaded and ready without asynchronous \n// imports when rendering the displayers. In addition, webpack build a single chunch for the less styles of the imported\n// modules, that way a single less file is imported, speeding up the rendering of the Live Data component when the \n// compiled less cache is not populated (the more less import, the more separate compilations are need, the slower the\n// first load is).\nimport DisplayerActions from \"./DisplayerActions.vue\"\nimport DisplayerBoolean from \"./DisplayerBoolean.vue\"\nimport DisplayerDate from \"./DisplayerDate.vue\"\nimport DisplayerDocTitle from \"./DisplayerDocTitle.vue\"\nimport DisplayerHtml from \"./DisplayerHtml.vue\"\nimport DisplayerLink from \"./DisplayerLink.vue\"\nimport DisplayerNumber from \"./DisplayerNumber.vue\"\nimport DisplayerText from \"./DisplayerText.vue\"\nimport DisplayerXObjectProperty from \"./DisplayerXObjectProperty.vue\"\n\nexport default {\n\n name: \"LivedataDisplayer\",\n\n components: {\n DisplayerActions,\n DisplayerBoolean,\n DisplayerDate,\n DisplayerDocTitle,\n DisplayerHtml,\n DisplayerLink,\n DisplayerNumber,\n DisplayerText,\n DisplayerXObjectProperty,\n },\n\n inject: [\"logic\"],\n\n // The two props defining the Displayer\n props: {\n propertyId: String,\n entry: Object,\n },\n computed: {\n data () { return this.logic.data; },\n // The displayer id of the Displayer component to load,\n // corresponding to the property id\n displayerId () {\n return this.logic.getDisplayerDescriptor(this.propertyId).id;\n },\n },\n\n methods: {\n // Capitalize the given string\n capitalize (string) {\n string ??= \"\";\n return string[0].toUpperCase() + string.slice(1);\n },\n },\n};\n</script>\n\n\n<style>\n\n</style>\n","import mod from \"-!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./LivedataDisplayer.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./LivedataDisplayer.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./LivedataDisplayer.vue?vue&type=template&id=8d46c6ac\"\nimport script from \"./LivedataDisplayer.vue?vue&type=script&lang=js\"\nexport * from \"./LivedataDisplayer.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('select',{ref:\"input\",staticClass:\"xwiki-selectize livedata-selectize\",attrs:{\"aria-label\":_vm.$t('livedata.filter.boolean.label')},domProps:{\"value\":_vm.filterValue}},[_c('option',{attrs:{\"value\":\"\"}}),_c('option',{domProps:{\"value\":_vm.trueValue}},[_vm._v(_vm._s(_vm.$t('livedata.displayer.boolean.true')))]),_c('option',{domProps:{\"value\":_vm.falseValue}},[_vm._v(_vm._s(_vm.$t('livedata.displayer.boolean.false')))])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n * See the NOTICE file distributed with this work for additional\n * information regarding copyright ownership.\n *\n * This is free software; you can redistribute it and/or modify it\n * under the terms of the GNU Lesser General Public License as\n * published by the Free Software Foundation; either version 2.1 of\n * the License, or (at your option) any later version.\n *\n * This software is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n * Lesser General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public\n * License along with this software; if not, write to the Free\n * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA\n * 02110-1301 USA, or see the FSF site: http://www.fsf.org.\n-->\n\n\n<!-- BooleanFilter is a custom filter that allow to filter boolean values. -->\n<template>\n <select :value=\"filterValue\" class=\"xwiki-selectize livedata-selectize\" ref=\"input\"\n :aria-label=\"$t('livedata.filter.boolean.label')\">\n <option value=\"\"></option>\n <option :value=\"trueValue\">{{ $t('livedata.displayer.boolean.true') }}</option>\n <option :value=\"falseValue\">{{ $t('livedata.displayer.boolean.false') }}</option>\n </select>\n</template>\n\n\n<script>\nimport filterMixin from \"./filterMixin.js\";\nimport $ from \"jquery\";\n\nexport default {\n name: \"filter-boolean\",\n\n // Add the filterMixin to get access to all the filters methods and computed properties inside this component\n mixins: [filterMixin],\n\n data() {\n return {\n filterValue: undefined\n }\n },\n\n computed: {\n trueValue() {\n return Object.prototype.hasOwnProperty.call(this.config, 'trueValue') ? this.config.trueValue : 'true';\n },\n falseValue() {\n return Object.prototype.hasOwnProperty.call(this.config, 'falseValue') ? this.config.falseValue : 'false';\n }\n },\n\n watch: {\n filterValue(newValue, oldValue) {\n if (newValue !== oldValue) {\n $(this.$refs.input).val(newValue).trigger('change');\n this.applyFilter(newValue);\n }\n },\n },\n\n // Create the selectize widget.\n async mounted() {\n // Wait for the translations to be loaded, otherwise the true / false option label might be displayed untranslated.\n await this.logic.translationsLoaded();\n $(this.$refs.input).xwikiSelectize({\n onChange: value => {\n this.filterValue = value;\n },\n });\n },\n\n // Destroy the selectize widget.\n beforeDestroyed() {\n this.$refs.input.selectize?.destroy();\n },\n\n}\n</script>\n\n<style>\n.livedata-selectize.xwiki-selectize {\n margin-top: 6px;\n}\n</style>\n","import mod from \"-!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./FilterBoolean.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./FilterBoolean.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./FilterBoolean.vue?vue&type=template&id=108f2e1e\"\nimport script from \"./FilterBoolean.vue?vue&type=script&lang=js\"\nexport * from \"./FilterBoolean.vue?vue&type=script&lang=js\"\nimport style0 from \"./FilterBoolean.vue?vue&type=style&index=0&id=108f2e1e&prod&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[(_vm.showDateInput)?_c('input',{key:\"filterDate\",ref:\"filterDate\",staticClass:\"filter-date\",attrs:{\"type\":\"text\",\"size\":\"1\",\"aria-label\":_vm.$t('livedata.filter.date.label')},domProps:{\"value\":_vm.valueFormatted}}):_c('input',{key:\"containsInput\",ref:\"containsInput\",staticClass:\"filter-date\",attrs:{\"type\":\"text\",\"size\":\"1\",\"aria-label\":_vm.$t('livedata.filter.date.label')},domProps:{\"value\":_vm.filterEntry.value},on:{\"input\":_vm.applyFilterFromText}})])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n * See the NOTICE file distributed with this work for additional\n * information regarding copyright ownership.\n *\n * This is free software; you can redistribute it and/or modify it\n * under the terms of the GNU Lesser General Public License as\n * published by the Free Software Foundation; either version 2.1 of\n * the License, or (at your option) any later version.\n *\n * This software is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n * Lesser General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public\n * License along with this software; if not, write to the Free\n * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA\n * 02110-1301 USA, or see the FSF site: http://www.fsf.org.\n-->\n\n\n<!--\n DateFilter is a custom filter that allow to filter dates\n It could either evaluate a single date (equals, not equals, before, after, ...)\n or match a date range\n-->\n<template>\n <div>\n <!-- A simple text input that will be upgraded to have a date picker -->\n <input\n v-if=\"showDateInput\"\n class=\"filter-date\"\n ref=\"filterDate\"\n key=\"filterDate\"\n type=\"text\"\n size=\"1\"\n :aria-label=\"$t('livedata.filter.date.label')\"\n :value=\"valueFormatted\"\n />\n <!-- A simple text input to filter date with text -->\n <input\n v-else\n class=\"filter-date\"\n ref=\"containsInput\"\n key=\"containsInput\"\n type=\"text\"\n size=\"1\"\n :aria-label=\"$t('livedata.filter.date.label')\"\n :value=\"filterEntry.value\"\n @input=\"applyFilterFromText\"\n />\n </div>\n</template>\n\n\n<script>\nimport filterMixin from \"./filterMixin.js\";\nimport \"daterangepicker\";\nimport moment from \"moment\";\nimport \"moment-jdateformatparser\";\nimport $ from \"jquery\";\n\nexport default {\n\n name: \"filter-date\",\n\n // Add the filterMixin to get access to all the filters methods and computed properties inside this component\n mixins: [filterMixin],\n\n data () {\n return {\n rules: [\n {\n from: \"contains\",\n to: [\"before\", \"after\", \"between\"],\n getValue: () => {\n return \"\";\n },\n },\n {\n from: [\"before\", \"after\", \"between\"],\n to: \"contains\",\n getValue: ({ oldValue }) => {\n const date = moment((oldValue + \"\").split(\"/\")[0]);\n return date.isValid() ? date.format(this.format) : oldValue;\n },\n },\n {\n // between x and y => after x and before y\n from: \"between\",\n to: \"before\",\n getValue: ({ oldValue }) => {\n return (oldValue + \"\").split(\"/\")[1] || oldValue;\n },\n },\n {\n from: \"between\",\n to: \"after\",\n getValue: ({ oldValue }) => {\n return typeof oldValue === 'string' ? oldValue.split(\"/\")[0] : oldValue;\n },\n },\n {\n from: [\"before\", \"after\"],\n to: \"between\",\n getValue: ({ oldValue }) => {\n const date = moment(oldValue + \"\");\n return date.isValid() ? (oldValue + \"/\" + oldValue) : oldValue;\n },\n },\n ],\n };\n },\n\n\n computed: {\n\n valueFormatted () {\n if (typeof this.filterEntry.value === 'string' && this.filterEntry.value.length) {\n const range = this.filterEntry.value.split(\"/\");\n if (range.length <= 2) {\n return range.map(dateString => {\n const date = moment(dateString);\n return date.isValid() ? date.format(this.format) : dateString;\n }).join(\" - \");\n }\n }\n return this.filterEntry.value;\n },\n\n showDateInput () {\n return this.operator !== \"contains\";\n },\n\n format () {\n const javaDateFormat = this.config.dateFormat;\n return javaDateFormat ? moment().toMomentFormatString(javaDateFormat) : \"YYYY/MM/DD HH:mm\";\n },\n\n ranges () {\n return {\n \"Today\":\n [moment().startOf('day'), moment().endOf('day')],\n \"Yesterday\":\n [moment().subtract(1, 'days').startOf('day'), moment().subtract(1, 'days').endOf('day')],\n \"Last 7 days\":\n [moment().subtract(6, 'days').startOf('day'), moment().endOf('day')],\n \"Last 30 days\":\n [moment().subtract(29, 'days').startOf('day'), moment().endOf('day')],\n \"This month\":\n [moment().startOf('month'), moment().endOf('month')],\n \"Last month\":\n [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')],\n };\n },\n\n defaultFilterConfig () {\n return {\n drops: 'down',\n opens: 'right',\n autoUpdateInput: false,\n autoApply: false,\n singleDatePicker: true,\n timePicker: /[Hhkms]/.test(this.format),\n timePicker24Hour: true,\n showCustomRangeLabel: true,\n alwaysShowCalendars: true,\n locale: {\n format: this.format,\n cancelLabel: 'Clear',\n },\n };\n },\n\n filterConfig () {\n if (this.operator === \"between\") {\n return Object.assign({}, this.defaultFilterConfig, {\n singleDatePicker: false,\n ranges: this.ranges,\n });\n } else {\n return Object.assign({}, this.defaultFilterConfig);\n }\n },\n\n },\n\n methods: {\n // Get date filter value from input element\n getDateValue () {\n const daterangepicker = $(this.$refs.filterDate).data(\"daterangepicker\");\n if (this.operator === \"between\") {\n // Serialize the date range as a ISO 8601 time interval, without fractional seconds.\n // See https://en.wikipedia.org/wiki/ISO_8601#Time_intervals\n return `${daterangepicker.startDate.format()}/${daterangepicker.endDate.add(59, 'seconds').format()}`\n } else if (this.operator === 'before' || this.operator === 'after') {\n // Use the ISO 8601 representation, without fractional seconds.\n return daterangepicker.startDate.format();\n } else {\n // Use the formatted date.\n return daterangepicker.startDate.format(this.format);\n }\n },\n\n applyFilterFromDate () {\n const value = this.getDateValue();\n this.applyFilter(value);\n },\n\n applyFilterFromText () {\n const value = $(this.$refs.containsInput).val();\n this.applyFilterWithDelay(value);\n },\n },\n\n mounted () {\n this.$watch(\"filterConfig\",\n () => {\n const filterDate = this.$refs.filterDate;\n // Create the date range picker associated to the single date input\n $(filterDate).daterangepicker(\n this.filterConfig,\n );\n $(filterDate).on('apply.daterangepicker', () => {\n this.applyFilterFromDate();\n });\n $(filterDate).on('cancel.daterangepicker', () => {\n this.applyFilter('');\n });\n // Fix prototypejs prototype pollution\n $(filterDate).on('hide.daterangepicker', (e) => {\n // Overwrite at instance level the 'hide' function added by Prototype.js to the Element prototype.\n // This removes the 'hide' function only for the event target.\n filterDate.hide = undefined;\n // Restore the 'hide' function after the event is handled (i.e. after all the listeners have been called).\n setTimeout(function () {\n // This deletes the local 'hide' key from the instance, making the 'hide' inherited from the prototype\n // visible again (the next calls to 'hide' won't find the key on the instance and thus it will go up\n // the prototype chain).\n delete e.target['hide'];\n }, 0);\n });\n },\n { immediate: true },\n );\n },\n\n};\n</script>\n\n\n<style>\n\n.livedata-filter .filter-date {\n width: 100%;\n height: 100%;\n}\n\n</style>\n","import mod from \"-!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./FilterDate.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./FilterDate.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./FilterDate.vue?vue&type=template&id=6292feac\"\nimport script from \"./FilterDate.vue?vue&type=script&lang=js\"\nexport * from \"./FilterDate.vue?vue&type=script&lang=js\"\nimport style0 from \"./FilterDate.vue?vue&type=style&index=0&id=6292feac&prod&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.isReady)?_c('span',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isVisible),expression:\"isVisible\"}]},[_c('input',{ref:\"input\",staticClass:\"filter-list livedata-filter\",attrs:{\"aria-label\":this.$t('livedata.filter.list.label')},domProps:{\"value\":_vm.value}})]):_c('XWikiLoader')\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n * See the NOTICE file distributed with this work for additional\n * information regarding copyright ownership.\n *\n * This is free software; you can redistribute it and/or modify it\n * under the terms of the GNU Lesser General Public License as\n * published by the Free Software Foundation; either version 2.1 of\n * the License, or (at your option) any later version.\n *\n * This software is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n * Lesser General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public\n * License along with this software; if not, write to the Free\n * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA\n * 02110-1301 USA, or see the FSF site: http://www.fsf.org.\n-->\n\n<!--\n Adds support for filtering list properties by suggesting property values.\n-->\n<template>\n <!-- A simple text input that will be enhanced by the selectize widget. -->\n <span v-if=\"isReady\" v-show=\"isVisible\">\n <input :value=\"value\" class=\"filter-list livedata-filter\" ref=\"input\"\n :aria-label=\"this.$t('livedata.filter.list.label')\"\n />\n </span>\n <XWikiLoader v-else/>\n</template>\n\n<script>\nimport filterMixin from \"./filterMixin.js\";\nimport $ from \"jquery\";\nimport \"xwiki-selectize\";\nimport XWikiLoader from \"../utilities/XWikiLoader\";\n\nexport default {\n\n name: \"filter-list\",\n components: {XWikiLoader},\n // Add the filterMixin to get access to all the generic filter methods and computed properties inside this component.\n mixins: [filterMixin],\n\n props: {\n isAdvanced: {\n type: Boolean,\n default: false\n }\n },\n\n data() {\n return {\n isReady: false\n }\n },\n\n computed: {\n // Current value of the filter entry.\n value () {\n return this.filterEntry.value;\n },\n\n // Settings used when creating the selectize widget.\n selectizeSettings () {\n let options = this.config.options || [];\n // If the current filter has the empty operator and no existing option has an empty value, the default\n // empty option is added.\n // The empty option is not displayed in the advanced filtering panel nor when the empty operator is not available.\n if (!this.isAdvanced && this.hasEmptyOperator && this.filterEntry?.operator === 'empty' &&\n !options.some(((value) => value.value === '')))\n {\n options.push(this.getDefaultEmptyOption())\n }\n const settings = {\n // Allow free text because we want to support the contains and startsWith operators.\n create: true,\n // Take the list of (initial) options from the filter configuration. This list will be extended with the results\n // obtained from the configured search URL.\n options,\n // Limit the selection to a single value because:\n // * selecting multiple values increases the height of the filter row when table layout is used\n // * constraint (filter) values should be strings; this isn't a limitation of the live data model, but using\n // arrays or complex objects make it difficult to express the filter in the REST URL used to fetch the live\n // data or in the live data macro parameters\n // * the user can still add more values by adding more constraints from the advanced filtering panel\n maxItems: 1,\n onChange: value => {\n if (this.$refs.input.selectize.items.length === 0) {\n // When no values are selected, simply remove the filter.\n this.removeFilter();\n } else if (value !== this.value) {\n // If the selected value has an empty value, then use the empty operator, otherwise use the default operator\n // Note that this imply that any filter list descriptor needs to have an empty operator defined.\n if (value === '') {\n this.applyFilter(value, 'empty');\n } else {\n // Fallback on default operator.\n this.applyFilter(value);\n }\n }\n },\n };\n if (this.config.searchURL) {\n Object.assign(settings, {\n load: this.getLoader({\"limit\": 10}),\n loadSelected: this.getLoader({\"exactMatch\": true}),\n });\n }\n return settings;\n },\n\n isVisible() {\n // We do not show this component when the type of filter is 'Empty' and we are in the advanced filtering panel. \n return this.filterEntry.operator !== 'empty' || !this.isAdvanced\n },\n hasEmptyOperator() {\n return this.config.operators.some(it => it.id === 'empty');\n }\n },\n\n methods: {\n // Creates the function to fetch the suggestions using the given parameters.\n getLoader (searchParams) {\n return (text, callback) => {\n // TODO: Support multiple search URLs (sources). See suggestUsersAndGroups.js for an example.\n const searchURL = this.config.searchURL.replace('{encodedQuery}', encodeURIComponent(text));\n $.getJSON(searchURL, searchParams)\n .then(results => callback(this.getResultsAdapter(results)))\n .catch(() => callback(this.getResultsAdapter()));\n };\n },\n\n getResultsAdapter(results) {\n let adaptedResults = [];\n if (Array.isArray(results)) {\n adaptedResults = results;\n } else if (Array.isArray(results?.propertyValues)) {\n adaptedResults = results.propertyValues.map(this.getSuggestion);\n }\n\n // An empty option is automatically added to the results only when hasEmptyOperator is true, no empty \n // option is already found, and we are not in an advanced filter panel.\n if (!this.isAdvanced && this.hasEmptyOperator && !adaptedResults.some((value) => value.value === '')) {\n adaptedResults.unshift(this.getDefaultEmptyOption());\n }\n\n return adaptedResults;\n },\n\n // Convert the fetched data to the format expected by the selectize widget.\n getSuggestion (propertyValue) {\n const metaData = propertyValue.metaData || propertyValue;\n return {\n value: propertyValue.value,\n label: metaData.label,\n icon: metaData.icon,\n url: metaData.url,\n hint: metaData.hint,\n };\n },\n\n getDefaultEmptyOption() {\n return {\n value: '',\n label: this.$t('livedata.filter.list.emptyLabel')\n }\n }\n },\n\n // Update the selectize widget whenever the filter value changes.\n watch: {\n value (newValue) {\n $(this.$refs.input).val(newValue).trigger('change');\n },\n },\n\n // Create the selectize widget.\n async mounted () {\n // Wait for the translations to be loaded, otherwise the empty option label might be displayed untranslated.\n await this.logic.translationsLoaded();\n this.isReady = true;\n // It is important to wait for the next tick to be sure that the input reference is available in the dom, for \n // selectize to be able to enhance it.\n await this.$nextTick();\n $(this.$refs.input).xwikiSelectize(this.selectizeSettings);\n if (this.filterEntry?.operator === 'empty') {\n // The empty string is ignored by default. We change the value to empty string plus a coma value separator to\n // take it into account.\n $(this.$refs.input).val(',').trigger('change');\n }\n },\n\n // Destroy the selectize widget.\n beforeDestroyed () {\n this.$refs.input.selectize?.destroy();\n },\n};\n</script>\n\n<style>\n.livedata-filter.filter-list .selectize-input {\n height: 100%;\n vertical-align: middle;\n}\n</style>\n","import mod from \"-!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./FilterList.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./FilterList.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./FilterList.vue?vue&type=template&id=4143cf9e\"\nimport script from \"./FilterList.vue?vue&type=script&lang=js\"\nexport * from \"./FilterList.vue?vue&type=script&lang=js\"\nimport style0 from \"./FilterList.vue?vue&type=style&index=0&id=4143cf9e&prod&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('input',{staticClass:\"filter-number\",attrs:{\"type\":\"text\",\"size\":\"1\",\"aria-label\":_vm.$t('livedata.filter.number.label')},domProps:{\"value\":_vm.filterEntry.value},on:{\"input\":function($event){return _vm.applyFilterWithDelay($event.target.value)}}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n * See the NOTICE file distributed with this work for additional\n * information regarding copyright ownership.\n *\n * This is free software; you can redistribute it and/or modify it\n * under the terms of the GNU Lesser General Public License as\n * published by the Free Software Foundation; either version 2.1 of\n * the License, or (at your option) any later version.\n *\n * This software is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n * Lesser General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public\n * License along with this software; if not, write to the Free\n * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA\n * 02110-1301 USA, or see the FSF site: http://www.fsf.org.\n-->\n\n<!--\n FilterNumber is a custom filter that allow to filter numbers\n-->\n<template>\n <!--\n Simple input that apply filter on change event\n Should be type=\"number\", but current style.css apply custom input style\n for type=\"text\" or type=\"password\", but not type=\"number\"\n -->\n <input\n class=\"filter-number\"\n type=\"text\"\n size=\"1\"\n :aria-label=\"$t('livedata.filter.number.label')\"\n :value=\"filterEntry.value\"\n @input=\"applyFilterWithDelay($event.target.value)\"\n />\n</template>\n\n\n<script>\nimport filterMixin from \"./filterMixin.js\";\n\nexport default {\n\n name: \"filter-number\",\n\n // Add the filterMixin to get access to all the filters methods and computed properties inside this component\n mixins: [filterMixin],\n\n};\n</script>\n\n\n<style>\n\n.livedata-filter .filter-number {\n border: none;\n text-align: right;\n}\n\n</style>\n","import mod from \"-!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./FilterNumber.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./FilterNumber.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./FilterNumber.vue?vue&type=template&id=419edb5f\"\nimport script from \"./FilterNumber.vue?vue&type=script&lang=js\"\nexport * from \"./FilterNumber.vue?vue&type=script&lang=js\"\nimport style0 from \"./FilterNumber.vue?vue&type=style&index=0&id=419edb5f&prod&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('input',{staticClass:\"filter-text\",attrs:{\"type\":\"text\",\"size\":\"1\",\"aria-label\":_vm.$t('livedata.filter.text.label')},domProps:{\"value\":_vm.filterEntry.value},on:{\"input\":function($event){return _vm.applyFilterWithDelay($event.target.value)}}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n * See the NOTICE file distributed with this work for additional\n * information regarding copyright ownership.\n *\n * This is free software; you can redistribute it and/or modify it\n * under the terms of the GNU Lesser General Public License as\n * published by the Free Software Foundation; either version 2.1 of\n * the License, or (at your option) any later version.\n *\n * This software is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n * Lesser General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public\n * License along with this software; if not, write to the Free\n * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA\n * 02110-1301 USA, or see the FSF site: http://www.fsf.org.\n-->\n\n<!--\n FilterText is a custom filter that allow to filter strings\n-->\n<template>\n <!--\n Simple input of type text that apply filter on change event\n -->\n <input\n class=\"filter-text\"\n type=\"text\"\n size=\"1\"\n :aria-label=\"$t('livedata.filter.text.label')\"\n :value=\"filterEntry.value\"\n @input=\"applyFilterWithDelay($event.target.value)\"\n />\n</template>\n\n\n<script>\nimport filterMixin from \"./filterMixin.js\";\n\nexport default {\n\n name: \"filter-text\",\n\n // Add the filterMixin to get access to all the filters methods and computed properties inside this component\n mixins: [filterMixin],\n\n};\n</script>\n\n\n<style>\n\n.livedata-filter .filter-text {\n width: 100%;\n}\n\n</style>\n","import mod from \"-!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./FilterText.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./FilterText.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./FilterText.vue?vue&type=template&id=841a503a\"\nimport script from \"./FilterText.vue?vue&type=script&lang=js\"\nexport * from \"./FilterText.vue?vue&type=script&lang=js\"\nimport style0 from \"./FilterText.vue?vue&type=style&index=0&id=841a503a&prod&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.filterComponent)?_c(_vm.filterComponent,{tag:\"component\",class:['livedata-filter', _vm.isFiltering? 'filtering': ''],attrs:{\"property-id\":_vm.propertyId,\"index\":_vm.index,\"is-filtering\":_vm.isFiltering,\"is-advanced\":_vm.isAdvanced},on:{\"update:isFiltering\":function($event){_vm.isFiltering=$event},\"update:is-filtering\":function($event){_vm.isFiltering=$event}}}):_c('XWikiLoader',{staticClass:\"livedata-filter-loader\"})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n * See the NOTICE file distributed with this work for additional\n * information regarding copyright ownership.\n *\n * This is free software; you can redistribute it and/or modify it\n * under the terms of the GNU Lesser General Public License as\n * published by the Free Software Foundation; either version 2.1 of\n * the License, or (at your option) any later version.\n *\n * This software is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n * Lesser General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public\n * License along with this software; if not, write to the Free\n * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA\n * 02110-1301 USA, or see the FSF site: http://www.fsf.org.\n-->\n\n<!--\n The LivedataFilter component is used to filter properties of the Livedata\n Each LivedataFilter is defined by two props:\n - a property to filter\n - the index of the property filter array to modify\n\n It comes with a widget that allows the user to input a value.\n There are differents type of filters: Text, Number, List, ...\n Those are specified in every propertyDescriptors.\n Each specific filter comes with its own implementation of the widget\n\n The LivedataFilter component directly handle for us the choice of\n which custom Filter implementation to use, based on the props passed to it,\n and dynamically import this Filter component and mount it at runtime.\n If this custom implementation can't be found, or there was an loading error,\n then it falls back to the default one\n (specified by the `defatulFilter` property in the Livedata configuration).\n-->\n<template>\n <!--\n This is where the specific filter component gets injected\n -->\n <component\n :class=\"['livedata-filter', isFiltering? 'filtering': '']\"\n v-if=\"filterComponent\"\n :is=\"filterComponent\"\n :property-id=\"propertyId\"\n :index=\"index\"\n :is-filtering.sync=\"isFiltering\"\n :is-advanced=\"isAdvanced\"\n ></component>\n\n <!--\n This loader component is displayed while the filter is being loaded\n -->\n <XWikiLoader\n class=\"livedata-filter-loader\"\n v-else\n ></XWikiLoader>\n</template>\n\n\n<script>\nimport XWikiLoader from \"../utilities/XWikiLoader.vue\";\nimport FilterBoolean from \"./FilterBoolean.vue\"\nimport FilterDate from \"./FilterDate.vue\"\nimport FilterList from \"./FilterList.vue\"\nimport FilterNumber from \"./FilterNumber.vue\"\nimport FilterText from \"./FilterText.vue\"\n\nexport default {\n\n name: \"LivedataFilter\",\n\n inject: [\"logic\"],\n\n components: {\n XWikiLoader,\n FilterBoolean,\n FilterDate,\n FilterList,\n FilterNumber,\n FilterText,\n },\n\n // The two props defining the Filter\n props: {\n propertyId: String,\n index: Number,\n isAdvanced: {\n type: Boolean,\n default: false\n }\n },\n\n data () {\n return {\n // The filter component used to filter the property\n // It is set to `undefined before it is resolved\n filterComponent: undefined,\n isFiltering: false\n };\n },\n\n computed: {\n data () { return this.logic.data; },\n // The filter id of the Filter component to load\n // corresponding to the property id\n filterId () {\n return this.logic.getFilterDescriptor(this.propertyId).id;\n },\n },\n\n methods: {\n // Capitalize the given string\n capitalize (string) {\n string ??= \"\";\n return string[0].toUpperCase() + string.slice(1);\n },\n\n // Load the filter component corresponding to the given filterId\n // On success, set `this.filterComponent` to the retreived component,\n // which automatically insert the component in the html\n loadFilter (filterId) {\n return new Promise ((resolve, reject) => {\n\n filterId ??= this.filterId;\n\n // Load success callback\n const loadFilterSuccess = filterComponent => {\n this.filterComponent = filterComponent;\n resolve(filterComponent);\n };\n\n // Load error callback\n const loadFilterFailure = err => {\n reject(err);\n };\n\n // Load filter based on it's id\n import(\"./Filter\" + this.capitalize(filterId) + \".vue\")\n // We *have to* destructure the return value as `{ default: component }`,\n // because it's how Webpack is handling dynamic imports\n .then(({ default: component }) => loadFilterSuccess(component))\n .catch(err => void loadFilterFailure(err));\n });\n },\n },\n\n // On mounted, try to load the Filter corresponding to the passed props,\n // or the default one as fallback\n mounted () {\n // Try to load Filter\n this.loadFilter().catch(err => {\n // Try to load default Filter\n console.warn(err);\n this.loadFilter(this.data.meta.defaultFilter).catch(err => {\n console.error(err);\n });\n });\n },\n\n};\n</script>\n\n\n<style>\n\n.livedata-filter,\n.livedata-filter-loader {\n display: inline-block;\n width: 100% !important;\n height: 100% !important;\n min-height: 1em;\n}\n\n</style>\n","import mod from \"-!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./LivedataFilter.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./LivedataFilter.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./LivedataFilter.vue?vue&type=template&id=74c6052c\"\nimport script from \"./LivedataFilter.vue?vue&type=script&lang=js\"\nexport * from \"./LivedataFilter.vue?vue&type=script&lang=js\"\nimport style0 from \"./LivedataFilter.vue?vue&type=style&index=0&id=74c6052c&prod&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{class:['layout-loader', { waiting: _vm.loading, visible: _vm.visible }]},[_c('div',{staticClass:\"loader-fill\"})])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n * See the NOTICE file distributed with this work for additional\n * information regarding copyright ownership.\n *\n * This is free software; you can redistribute it and/or modify it\n * under the terms of the GNU Lesser General Public License as\n * published by the Free Software Foundation; either version 2.1 of\n * the License, or (at your option) any later version.\n *\n * This software is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n * Lesser General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public\n * License along with this software; if not, write to the Free\n * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA\n * 02110-1301 USA, or see the FSF site: http://www.fsf.org.\n-->\n\n<template>\n <div\n :class=\"['layout-loader', { waiting: loading, visible: visible }]\"\n >\n <div class=\"loader-fill\"></div>\n </div>\n</template>\n\n\n<script>\nexport default {\n\n name: \"layout-loader\",\n\n inject: [\"logic\"],\n\n data () {\n return {\n loadingData: false,\n loadingLayout: false,\n visible: false,\n delay: 200,\n };\n },\n\n computed: {\n loading () {\n return this.loadingData || this.logic.firstEntriesLoading || this.loadingLayout;\n }\n },\n\n methods: {\n watchLoading (propertyName, eventBefore, eventAfter) {\n let timeoutId;\n\n this.logic.onEvent(eventBefore, () => {\n clearTimeout(timeoutId);\n this[propertyName] = true;\n // Make the loading animation visible with a small delay in order to reduce the perceived loading time.\n timeoutId = setTimeout(() => {\n this.visible = true;\n }, this.delay);\n });\n\n this.logic.onEvent(eventAfter, () => {\n clearTimeout(timeoutId);\n this[propertyName] = false;\n this.visible = this.loading;\n });\n\n }\n },\n\n mounted () {\n this.watchLoading(\"loadingData\", \"beforeEntryFetch\", \"afterEntryFetch\");\n this.watchLoading(\"loadingLayout\", \"layoutChange\", \"layoutLoaded\");\n }\n\n};\n</script>\n\n\n<style>\n\n@keyframes waiting {\n 0% {\n left: 0; right: unset;\n width: 0%;\n }\n 50% {\n left: 0; right: unset;\n width: 100%;\n }\n 51% {\n left: unset; right: 0;\n width: 100%;\n }\n 100% {\n left: unset; right: 0;\n width: 0%;\n }\n}\n\n.layout-loader {\n position: relative;\n width: 100%;\n height: 0.4rem;\n visibility: hidden;\n}\n\n.layout-loader .loader-fill {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background-color: @btn-primary-bg;\n}\n\n.layout-loader.waiting.visible {\n visibility: visible;\n}\n\n.layout-loader.waiting.visible .loader-fill {\n visibility: visible;\n -webkit-animation: waiting 2s linear infinite;\n animation: waiting 2s linear infinite;\n}\n\n</style>\n","import mod from \"-!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./LayoutLoader.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./LayoutLoader.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./LayoutLoader.vue?vue&type=template&id=0810af00\"\nimport script from \"./LayoutLoader.vue?vue&type=script&lang=js\"\nexport * from \"./LayoutLoader.vue?vue&type=script&lang=js\"\nimport style0 from \"./LayoutLoader.vue?vue&type=style&index=0&id=0810af00&prod&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"livedata-layout\"},[_c('keep-alive',[(_vm.layoutComponent)?_c(_vm.layoutComponent,{tag:\"component\"}):_vm._e()],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n * See the NOTICE file distributed with this work for additional\n * information regarding copyright ownership.\n *\n * This is free software; you can redistribute it and/or modify it\n * under the terms of the GNU Lesser General Public License as\n * published by the Free Software Foundation; either version 2.1 of\n * the License, or (at your option) any later version.\n *\n * This software is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n * Lesser General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public\n * License along with this software; if not, write to the Free\n * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA\n * 02110-1301 USA, or see the FSF site: http://www.fsf.org.\n-->\n\n<!--\n The LivedataLayout component is used to display formatted data to the user.\n\n There are several layout, which are defined by their unique id.\n They should follow the path and naming convention:\n ./<layoutid>/Layout<layoutid>.vue\n\n The LivedataLayout component directly handle for us the choice of\n which layout to use, based on the Logic `currentLayoutId` property,\n and dynamically import this layout component and mount it at runtime.\n If the layout can't be found, or there was an loading error,\n then it falls back to the default one\n (specified by the `defaultLayout` property in the Livedata configuration).\n-->\n<template>\n <div class=\"livedata-layout\">\n\n <!--\n We are using the <keep-alive> tag in order to keep the layout mounted\n even when it is not displayed on the screen.\n This is a sort of caching, that avoid re-rendering the whole layout\n each time we switch back on it.\n -->\n <keep-alive>\n <!-- This is where the specific filter component gets injected -->\n <component\n v-if=\"layoutComponent\"\n :is=\"layoutComponent\"\n ></component>\n </keep-alive>\n\n </div>\n</template>\n\n\n<script>\n// We import explicitly the most used layout to avoid having to load it dynamically during the component rendering.\nimport LayoutTable from \"./table/LayoutTable.vue\";\nexport default {\n\n name: \"LivedataLayout\",\n \n components: { LayoutTable },\n\n inject: [\"logic\"],\n\n props: {\n // The id of the layout to load\n layoutId: String,\n },\n\n data () {\n return {\n // The layout component\n // It is set to `undefined before it is resolved\n layoutComponent: undefined,\n };\n },\n\n computed: {\n data () { return this.logic.data; },\n },\n\n\n // On mounted and when the `layoutId` prop change,\n // try to load the layout corresponding to the layoutId\n // or the default one as fallback\n watch: {\n layoutId: {\n immediate: true,\n handler (layoutId, previousLayoutId) {\n // Try to load layout\n this.loadLayout(this.layoutId)\n .then(layoutComponent => {\n // dispatch events\n this.logic.triggerEvent(\"layoutLoaded\", {\n layoutId,\n previousLayoutId,\n component: layoutComponent,\n });\n })\n .catch(err => {\n // If the layout was not the default one, try to load default layout\n if (this.layoutId && this.layoutId !== this.data.meta.defaultLayout) {\n console.warn(err);\n this.logic.changeLayout(this.data.meta.defaultLayout);\n } else {\n console.error(err);\n }\n });\n },\n },\n },\n\n\n methods: {\n // Capitalize the given string\n capitalize (string) {\n string ??= \"\";\n return string[0].toUpperCase() + string.slice(1);\n },\n\n // Load the layout component corresponding to the given layoutId\n // On success, set `this.layoutComponent` to the retreived component,\n // which automatically insert the component in the html\n loadLayout (layoutId) {\n return new Promise ((resolve, reject) => {\n\n layoutId ??= this.layoutId;\n\n // Load success callback\n const loadLayoutSuccess = layoutComponent => {\n this.layoutComponent = layoutComponent;\n resolve(layoutComponent);\n };\n\n // Load error callback\n const loadLayoutFailure = err => {\n reject(err);\n };\n\n // Load layout based on it's id\n import(\"./\" + layoutId + \"/Layout\" + this.capitalize(layoutId) + \".vue\")\n // We *have to* destructure the return value as `{ default: component }`,\n // because it's how Webpack is handling dynamic imports\n .then(({ default: component }) => loadLayoutSuccess(component))\n .catch(err => void loadLayoutFailure(err));\n });\n\n },\n },\n\n};\n</script>\n\n\n<style>\n\n</style>\n","import mod from \"-!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./LivedataLayout.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./LivedataLayout.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./LivedataLayout.vue?vue&type=template&id=10bebf16\"\nimport script from \"./LivedataLayout.vue?vue&type=script&lang=js\"\nexport * from \"./LivedataLayout.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"layout-table\"},[_c('LivedataTopbar',{scopedSlots:_vm._u([{key:\"left\",fn:function(){return [_c('LivedataPagination')]},proxy:true},{key:\"right\",fn:function(){return [_c('LivedataDropdownMenu')]},proxy:true}])}),_c('LivedataEntrySelectorInfoBar'),_c('LayoutLoader'),_c('div',{staticClass:\"layout-table-wrapper\"},[_c('table',{staticClass:\"layout-table-root responsive-table\"},[_c('thead',[_c('LayoutTableHeaderNames'),_c('LayoutTableHeaderFilters')],1),_c('tbody',[_vm._l((_vm.entries),function(entry,idx){return _c('LayoutTableRow',{key:`table-${_vm.logic.getEntryId(entry)}-${idx}`,attrs:{\"entry\":entry,\"entry-idx\":idx}})}),(_vm.canAddEntry)?_c('LayoutTableNewRow'):_vm._e()],2)])]),_c('LivedataBottombar',[(_vm.entriesFetched && _vm.entries.length === 0)?_c('div',{staticClass:\"noentries-table\"},[_vm._v(\" \"+_vm._s(_vm.$t('livedata.bottombar.noEntries'))+\" \")]):_vm._e(),_c('LivedataPagination')],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n * See the NOTICE file distributed with this work for additional\n * information regarding copyright ownership.\n *\n * This is free software; you can redistribute it and/or modify it\n * under the terms of the GNU Lesser General Public License as\n * published by the Free Software Foundation; either version 2.1 of\n * the License, or (at your option) any later version.\n *\n * This software is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n * Lesser General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public\n * License along with this software; if not, write to the Free\n * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA\n * 02110-1301 USA, or see the FSF site: http://www.fsf.org.\n-->\n\n<!--\n LayoutTable.vue is the main file for the Table layout component.\n It displays data formatted as a table, with properties as columns\n and entries as rows.\n It contains a header row containing LivedataFilter componenents for each column.\n-->\n<template>\n <div class=\"layout-table\">\n\n <!--\n The layout Topbar\n Add common layout utilities, like the dropdown menu, the refresh button,\n and the pagination.\n -->\n <LivedataTopbar>\n <template #left>\n <LivedataPagination />\n </template>\n <template #right>\n <LivedataDropdownMenu />\n </template>\n </LivedataTopbar>\n\n <!-- Entry selector info bar -->\n <LivedataEntrySelectorInfoBar />\n\n <!-- Loading bar -->\n <LayoutLoader />\n\n <!-- Table layout root -->\n <div class=\"layout-table-wrapper\">\n <table class=\"layout-table-root responsive-table\">\n\n <!--\n Table Header\n Implement quick sort, filter, and property reorder\n -->\n <thead>\n <!-- Table property names -->\n <LayoutTableHeaderNames />\n\n <!-- Table filters -->\n <LayoutTableHeaderFilters />\n </thead>\n\n\n <!-- Table Body -->\n <tbody>\n <!-- The rows (= the entries) -->\n <!-- \n We include the entry index in the key in case of inconsistent data, in this case duplicated entry IDs.\n That way even if two entries have the same id, the keys will not be equals. \n -->\n <LayoutTableRow\n v-for=\"(entry, idx) in entries\"\n :key=\"`table-${logic.getEntryId(entry)}-${idx}`\"\n :entry=\"entry\"\n :entry-idx=\"idx\"\n />\n\n <!-- Component to create a new entry -->\n <LayoutTableNewRow v-if=\"canAddEntry\"/>\n\n </tbody>\n\n </table>\n </div>\n\n <LivedataBottombar>\n <div v-if=\"entriesFetched && entries.length === 0\" class=\"noentries-table\">\n {{ $t('livedata.bottombar.noEntries') }}\n </div>\n <LivedataPagination/>\n </LivedataBottombar>\n </div>\n</template>\n\n\n<script>\nimport LivedataTopbar from \"../../LivedataTopbar.vue\";\nimport LivedataDropdownMenu from \"../../LivedataDropdownMenu.vue\";\nimport LivedataPagination from \"../../LivedataPagination.vue\";\nimport LivedataEntrySelectorInfoBar from \"../../LivedataEntrySelectorInfoBar.vue\";\nimport LayoutTableHeaderNames from \"./LayoutTableHeaderNames.vue\";\nimport LayoutTableHeaderFilters from \"./LayoutTableHeaderFilters.vue\";\nimport LayoutTableRow from \"./LayoutTableRow.vue\";\nimport LayoutTableNewRow from \"./LayoutTableNewRow.vue\";\nimport LayoutLoader from \"../LayoutLoader.vue\";\nimport LivedataBottombar from \"../../LivedataBottombar\";\n\nexport default {\n\n name: \"layout-table\",\n\n components: {\n LivedataBottombar,\n LivedataTopbar,\n LivedataDropdownMenu,\n LivedataPagination,\n LivedataEntrySelectorInfoBar,\n LayoutTableHeaderNames,\n LayoutTableHeaderFilters,\n LayoutTableRow,\n LayoutTableNewRow,\n LayoutLoader,\n },\n\n inject: [\"logic\"],\n \n data: () => ({\n entriesFetched: false\n }),\n\n computed: {\n data () { return this.logic.data; },\n entries () { return this.logic.data.data.entries; },\n canAddEntry () { return this.logic.canAddEntry(); },\n },\n \n mounted() {\n this.logic.onEvent('afterEntryFetch', () => {\n this.entriesFetched = true;\n });\n }\n\n};\n</script>\n\n\n<style>\n\n.layout-table-wrapper {\n overflow: auto;\n}\n\n.layout-table {\n\n table {\n height: 100%;\n }\n\n th {\n border-bottom: unset;\n }\n\n .livedata-entry-selector-all .btn {\n display: flex;\n align-items: center;\n justify-content: flex-start;\n padding-left: 2rem;\n }\n\n}\n\n/* Responsive mode */\n@media screen and (max-width: @screen-xs-max) {\n .layout-table .responsive-table > thead {\n /* Show the table header to allow reordering the properties, sorting and filtering the entries. We use flex display\n because we have two rows, property names and filters, that we want to display as two equally sized columns. */\n display: flex;\n\n > tr {\n /* We want the property names column to have the same width as the filter column. */\n flex: 1;\n /* We need to set the width in order to be able to trim long property names. */\n width: calc(50vw - @grid-gutter-width);\n }\n }\n}\n\n.noentries-table {\n text-align: center;\n color: @text-muted;\n width: 100%;\n padding-bottom: 1em;\n}\n</style>\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./LayoutTable.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./LayoutTable.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./LayoutTable.vue?vue&type=template&id=d3a96b04\"\nimport script from \"./LayoutTable.vue?vue&type=script&lang=js\"\nexport * from \"./LayoutTable.vue?vue&type=script&lang=js\"\nimport style0 from \"./LayoutTable.vue?vue&type=style&index=0&id=d3a96b04&prod&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.isFilteringEnabled)?_c('tr',{staticClass:\"column-filters\"},[(_vm.isSelectionEnabled)?_c('th',{staticClass:\"entry-selector\"}):_vm._e(),_vm._l((_vm.properties),function(property){return _c('th',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.logic.isPropertyVisible(property.id)),expression:\"logic.isPropertyVisible(property.id)\"}],key:property.id},[(_vm.logic.isPropertyFilterable(property.id))?_c('LivedataFilter',{attrs:{\"property-id\":property.id,\"index\":0}}):_vm._e()],1)})],2):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n * See the NOTICE file distributed with this work for additional\n * information regarding copyright ownership.\n *\n * This is free software; you can redistribute it and/or modify it\n * under the terms of the GNU Lesser General Public License as\n * published by the Free Software Foundation; either version 2.1 of\n * the License, or (at your option) any later version.\n *\n * This software is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n * Lesser General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public\n * License along with this software; if not, write to the Free\n * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA\n * 02110-1301 USA, or see the FSF site: http://www.fsf.org.\n-->\n\n<!--\n LayoutTableHeaderFilter is a component for the Table layout that can be used\n to quickly filter a property.\n The LivedataFilter is bind to the first filter found in the property filter list.\n-->\n<template>\n <tr\n v-if=\"isFilteringEnabled\"\n class=\"column-filters\"\n >\n\n <!--\n We need to create an empty cell for the entry selector\n so that it align well with the entries selectors of the rows\n and the select-all entries in the header\n -->\n <th\n v-if=\"isSelectionEnabled\"\n class=\"entry-selector\"\n ></th>\n\n <!-- The filters cells -->\n <th\n v-for=\"property in properties\"\n :key=\"property.id\"\n v-show=\"logic.isPropertyVisible(property.id)\"\n >\n <LivedataFilter\n v-if=\"logic.isPropertyFilterable(property.id)\"\n :property-id=\"property.id\"\n :index=\"0\"\n />\n </th>\n\n </tr>\n</template>\n\n\n<script>\nimport LivedataFilter from \"../../filters/LivedataFilter.vue\";\n\nexport default {\n\n name: \"LayoutTableHeaderFilters\",\n\n components: {\n LivedataFilter,\n },\n\n inject: [\"logic\"],\n\n computed: {\n data () { return this.logic.data; },\n properties () { return this.logic.getPropertyDescriptors(); },\n\n isSelectionEnabled () {\n return this.logic.isSelectionEnabled();\n },\n\n isFilteringEnabled () {\n return this.logic.getFilterableProperties().length !== 0;\n }\n },\n\n};\n</script>\n\n\n<style>\n\n.layout-table .column-filters th {\n padding: 2px;\n font-weight: normal;\n vertical-align: middle;\n}\n.layout-table .column-filters th.entry-selector {\n width: 0;\n}\n\n/* Responsive mode */\n@media screen and (max-width: @screen-xs-max) {\n .layout-table .column-filters th {\n /* Overwrite the filters width so they don't overflow the table. */\n width: 100%;\n border-top: none;\n }\n}\n\n</style>\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./LayoutTableHeaderFilters.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./LayoutTableHeaderFilters.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./LayoutTableHeaderFilters.vue?vue&type=template&id=994e4ab0\"\nimport script from \"./LayoutTableHeaderFilters.vue?vue&type=script&lang=js\"\nexport * from \"./LayoutTableHeaderFilters.vue?vue&type=script&lang=js\"\nimport style0 from \"./LayoutTableHeaderFilters.vue?vue&type=style&index=0&id=994e4ab0&prod&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('XWikiDraggable',{staticClass:\"column-header-names\",attrs:{\"value\":_vm.data.query.properties,\"tag\":\"tr\"},on:{\"change\":_vm.reorderProperty}},[(_vm.isSelectionEnabled)?_c('th',{staticClass:\"entry-selector\"},[_c('LivedataEntrySelectorAll')],1):_vm._e(),_vm._l((_vm.properties),function(property){return _c('th',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.logic.isPropertyVisible(property.id)),expression:\"logic.isPropertyVisible(property.id)\"}],key:property.id,staticClass:\"draggable-item\",attrs:{\"title\":property.description}},[_c('div',{staticClass:\"column-name\",on:{\"click\":function($event){return _vm.sort(property)}}},[_c('div',{staticClass:\"handle\",attrs:{\"role\":\"presentation\",\"title\":_vm.$t('livedata.action.reorder.hint')},on:{\"click\":function($event){$event.stopPropagation();}}},[_c('XWikiIcon',{attrs:{\"icon-descriptor\":{name: 'text_align_justify'}}})],1),_c('span',{staticClass:\"property-name\"},[_vm._v(_vm._s(property.name))]),(_vm.logic.isPropertySortable(property.id))?_c('XWikiIcon',{class:['sort-icon', _vm.isFirstSortLevel(property)? 'sorted': ''],attrs:{\"icon-descriptor\":{name: _vm.isFirstSortLevel(property) && _vm.firstSortLevel.descending? 'caret-down': 'caret-up'}}}):_vm._e()],1),_c('div',{directives:[{name:\"mousedownmove\",rawName:\"v-mousedownmove\",value:(_vm.resizeColumnInit),expression:\"resizeColumnInit\"}],staticClass:\"resize-handle\",attrs:{\"role\":\"presentation\",\"title\":_vm.$t('livedata.action.resizeColumn.hint')},on:{\"mousedownmove\":_vm.resizeColumn,\"click\":function($event){$event.stopPropagation();},\"dblclick\":_vm.resetColumnSize}})])})],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/*\n * See the NOTICE file distributed with this work for additional\n * information regarding copyright ownership.\n *\n * This is free software; you can redistribute it and/or modify it\n * under the terms of the GNU Lesser General Public License as\n * published by the Free Software Foundation; either version 2.1 of\n * the License, or (at your option) any later version.\n *\n * This software is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n * Lesser General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public\n * License along with this software; if not, write to the Free\n * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA\n * 02110-1301 USA, or see the FSF site: http://www.fsf.org.\n */\n\nexport const mousedownmove = {\n inserted (el, bindings) {\n\n // Dispatch mousemove event as mousedownmove event\n // Pass mouseclick event in the detail object of the mouse event\n const dispatchMouseDownMoveEvent = (mouseClickEvent, mouseMoveEvent) => {\n const mouseDownMoveEvent = new MouseEvent(\"mousedownmove\", mouseMoveEvent)\n mouseDownMoveEvent.data = mouseClickEvent.data;\n el.dispatchEvent(mouseDownMoveEvent);\n };\n\n // On click, bind event listener\n el.addEventListener(\"mousedown\", e => {\n\n // Object used to store data on click event\n e.data = { clickEvent: e };\n\n // If a mouse click event handler was given as value of the directive\n // Call it\n if (typeof bindings.value === \"function\") {\n bindings.value(e);\n }\n\n // Create a wrapper function to combine both click and move event\n const mousemoveHandler = mouseMoveEvent => {\n dispatchMouseDownMoveEvent(e, mouseMoveEvent);\n };\n\n // Create remove event listeners handlers\n const removeMousemoveHandler = () => {\n window.removeEventListener(\"mousemove\", mousemoveHandler);\n window.removeEventListener(\"mouseup\", removeMousemoveHandler);\n window.removeEventListener(\"focusout\", removeMousemoveHandler);\n };\n\n // If the \"immediate\" modifiers is set, dispatch the event immediately\n if (bindings.modifiers.immediate) {\n dispatchMouseDownMoveEvent(e, e);\n }\n\n // Bind event listeners\n window.addEventListener(\"mousemove\", mousemoveHandler);\n window.addEventListener(\"mouseup\", removeMousemoveHandler);\n window.addEventListener(\"focusout\", removeMousemoveHandler);\n });\n }\n};\n","<!--\n * See the NOTICE file distributed with this work for additional\n * information regarding copyright ownership.\n *\n * This is free software; you can redistribute it and/or modify it\n * under the terms of the GNU Lesser General Public License as\n * published by the Free Software Foundation; either version 2.1 of\n * the License, or (at your option) any later version.\n *\n * This software is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n * Lesser General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public\n * License along with this software; if not, write to the Free\n * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA\n * 02110-1301 USA, or see the FSF site: http://www.fsf.org.\n-->\n\n<!--\n LayoutTableHeaderNames is a component for the Table layout that displays\n the property names in the table header of the table\n It also allow the user to sort by a property by clicking on it (it sets\n the property as the first level of sort)\n and also allow the user to reorder properties by dragind and dropping them\n-->\n<template>\n <!--\n The table properties are wrapped inside a XWikiDraggable component\n in order to allow the user to reorder them easily\n -->\n <XWikiDraggable\n class=\"column-header-names\"\n :value=\"data.query.properties\"\n @change=\"reorderProperty\"\n tag=\"tr\"\n >\n <!-- Entry Select All -->\n <th\n v-if=\"isSelectionEnabled\"\n class=\"entry-selector\"\n >\n <LivedataEntrySelectorAll/>\n </th>\n\n <!--\n Table Properties\n Here we can't use the XWikiDraggableItem component as it returns\n a div element, that would be invalid inside the table structure.\n So we need to implement the XWikiDraggableItem structure from scratch\n -->\n <th\n class=\"draggable-item\"\n v-for=\"property in properties\"\n :key=\"property.id\"\n :title=\"property.description\"\n v-show=\"logic.isPropertyVisible(property.id)\"\n >\n <!-- Wrapper for the column header -->\n <div\n class=\"column-name\"\n @click=\"sort(property)\"\n >\n <!--\n Specify the handle to drag properties.\n Use the stop propagation modifier on click event\n to prevent sorting the column unintentionally.\n -->\n <div\n role=\"presentation\"\n class=\"handle\"\n :title=\"$t('livedata.action.reorder.hint')\"\n @click.stop\n >\n <XWikiIcon :icon-descriptor=\"{name: 'text_align_justify'}\"/>\n </div>\n <!-- Property Name -->\n <span class=\"property-name\">{{ property.name }}</span>\n <!--\n Sort icon\n Only show the icon for the first-level sort property\n -->\n <XWikiIcon\n v-if=\"logic.isPropertySortable(property.id)\"\n :icon-descriptor=\"{name: isFirstSortLevel(property) && firstSortLevel.descending? 'caret-down': 'caret-up'}\"\n :class=\"['sort-icon', isFirstSortLevel(property)? 'sorted': '']\"/>\n </div>\n <!--\n Resize handle\n Use the stop propagation modifier on click event\n to prevent sorting the column unintentionally.\n -->\n <div role=\"presentation\" class=\"resize-handle\" :title=\"$t('livedata.action.resizeColumn.hint')\"\n v-mousedownmove=\"resizeColumnInit\"\n @mousedownmove=\"resizeColumn\"\n @click.stop\n @dblclick=\"resetColumnSize\"\n ></div>\n </th>\n\n </XWikiDraggable>\n</template>\n\n\n<script>\nimport LivedataEntrySelectorAll from \"../../LivedataEntrySelectorAll.vue\";\nimport XWikiDraggable from \"../../utilities/XWikiDraggable.vue\";\nimport { mousedownmove } from \"../../directives.js\";\nimport XWikiIcon from \"../../utilities/XWikiIcon\";\n\nexport default {\n\n name: \"LayoutTableHeaderNames\",\n\n components: {\n XWikiIcon,\n LivedataEntrySelectorAll,\n XWikiDraggable,\n },\n\n directives: {\n mousedownmove,\n },\n\n inject: [\"logic\"],\n\n computed: {\n data () { return this.logic.data; },\n\n properties () {\n return this.logic.getPropertyDescriptors();\n },\n\n // The first sort entry in the Livedata configuration sort array\n firstSortLevel () {\n return this.data.query.sort[0] || {};\n },\n\n isSelectionEnabled () {\n return this.logic.isSelectionEnabled();\n },\n\n },\n\n\n methods: {\n\n /**\n * Return whether the given property the one of `this.firstSortLevel`\n * @param {property} Object A property descriptor\n * @returns {Boolean}\n */\n isFirstSortLevel (property) {\n return this.firstSortLevel.property === property.id\n },\n\n sort (property) {\n this.logic.sort(property.id, 0).catch(err => {\n console.warn(err);\n });\n },\n\n reorderProperty (e) {\n /*\n As the draggable plugin is taking in account every child it has for d&d\n and there is the select-entry-all component as first child\n we need to substract 1 to the indexes that the draggable plugin handles\n so that it matches the true property order\n When selection is disabled (and the select-entry-all component hidden)\n we don't need to readjust the offset of the indexes\n as Vue handily creates a html comment where the component shoud be\n So that it does not messes up with indexes\n */\n this.logic.reorderProperty(e.moved.oldIndex - 1, e.moved.newIndex - 1);\n },\n\n getNextVisibleProperty (th) {\n while (th.nextElementSibling) {\n th = th.nextElementSibling;\n if (th.style.display !== \"none\") return th;\n }\n },\n\n resizeColumnInit (e) {\n const th = e.currentTarget.closest(\"th\");\n e.data.leftColumn = th.querySelector(\".column-name\");\n e.data.leftColumnBaseWidth = e.data.leftColumn.getBoundingClientRect()?.width;\n e.data.rightColumn = this.getNextVisibleProperty(th)?.querySelector(\".column-name\");\n e.data.rightColumnBaseWidth = e.data.rightColumn?.getBoundingClientRect()?.width;\n\n // Give all column names a fixed width so that relative widths don't change when resizing (in case the current\n // widths are not the actual column widths).\n // First, collect all widths, then set them all to avoid that due to the first values being set the other values\n // change.\n const widths = [];\n let columns = th.closest(\"tr\").querySelectorAll(\".column-name\");\n // Filter columns that aren't visible to avoid setting a width of zero on them.\n columns = Array.from(columns).filter(column => column.closest(\"th\").style.display !== \"none\");\n for (const column of columns) {\n widths.push(column.getBoundingClientRect().width);\n }\n for (let i = 0; i < columns.length; i++) {\n columns[i].style.width = `${widths[i]}px`;\n }\n },\n\n resizeColumn (e) {\n const offsetX = e.clientX - e.data.clickEvent.clientX;\n // Resize left column\n const leftColumnWidth = e.data.leftColumnBaseWidth + offsetX;\n e.data.leftColumn.style.width = `${leftColumnWidth}px`;\n\n // Resize right column\n if (e.data.rightColumn) {\n const rightColumnWidth = e.data.rightColumnBaseWidth - offsetX;\n e.data.rightColumn.style.width = `${rightColumnWidth}px`;\n }\n },\n\n resetColumnSize (e) {\n // Reset all column sizes as resizing a single column sets sizes for all columns.\n for (const column of e.currentTarget.closest(\"tr\").querySelectorAll(\".column-name\")) {\n column.style.removeProperty(\"width\");\n }\n },\n\n },\n\n};\n</script>\n\n\n<style>\n\n.layout-table th.draggable-item {\n display: table-cell;\n min-width: 4rem;\n overflow: hidden;\n}\n\n.layout-table .column-name {\n display: flex;\n flex-direction: row;\n justify-content: flex-start;\n align-items: center;\n cursor: pointer;\n /* Ensure that the name is never smaller than the width of the column, i.e., it always fills the available space even\n when the column has been resized to a smaller width that is prevented by some table cell. */\n min-width: 100%;\n position: relative;\n}\n\n.layout-table .handle {\n height: 100%;\n margin-left: -@table-cell-padding;\n padding: 0 @table-cell-padding;\n color: @text-color;\n background-color: @xwiki-page-content-bg;\n cursor: pointer; /* IE */\n cursor: grab;\n opacity: 0;\n position: absolute;\n}\n.layout-table .column-name:hover .handle {\n opacity: 0.8;\n transition: opacity 0.2s;\n}\n.layout-table .handle .fa {\n vertical-align: middle;\n}\n\n.layout-table .property-name {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.layout-table .sort-icon {\n color: currentColor;\n opacity: 0;\n padding-left: @table-cell-padding;\n}\n.layout-table .sort-icon.sorted {\n opacity: 1;\n}\n.layout-table .column-name:hover .sort-icon:not(.sorted) {\n opacity: 0.5;\n}\n\n.draggable-container.column-header-names .draggable-item {\n position: relative;\n}\n\n.layout-table .resize-handle {\n position: absolute;\n right: 0px;\n top: 0px;\n bottom: 0px;\n transform: translateX(50%);\n width: 10px;\n background-color: transparent;\n cursor: ew-resize;\n user-select: none;\n z-index: 100;\n\n &:hover {\n background-color: @breadcrumb-bg;\n }\n}\n\n/* Responsive mode */\n@media screen and (max-width: @screen-xs-max) {\n .layout-table th.draggable-item {\n /* Overwrite the draggable-item display in order to show the property names (table header) as a column. */\n display: block;\n\n .handle {\n /* Always show the drag handler because hover is not available on mobile. */\n opacity: 1;\n /* Display the drag handler next to the property name to avoid always hiding it. */\n position: static;\n }\n\n /* Trim long property names. */\n .property-name {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n\n .layout-table .resize-handle {\n /* The columns cannot be resized in responsive mode. */\n display: none;\n }\n}\n\n</style>\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./LayoutTableHeaderNames.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./LayoutTableHeaderNames.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./LayoutTableHeaderNames.vue?vue&type=template&id=411d72b9\"\nimport script from \"./LayoutTableHeaderNames.vue?vue&type=script&lang=js\"\nexport * from \"./LayoutTableHeaderNames.vue?vue&type=script&lang=js\"\nimport style0 from \"./LayoutTableHeaderNames.vue?vue&type=style&index=0&id=411d72b9&prod&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('tr',{staticClass:\"layout-table-new-row\"},[_c('td',{staticClass:\"entry-selector\"}),_c('td',{attrs:{\"colspan\":_vm.colspan}},[_c('a',{attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();return _vm.logic.addEntry()}}},[_c('XWikiIcon',{attrs:{\"icon-descriptor\":{name: 'add'}}}),_vm._v(\" \"+_vm._s(_vm.$t('livedata.action.addEntry'))+\" \")],1)])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n * See the NOTICE file distributed with this work for additional\n * information regarding copyright ownership.\n *\n * This is free software; you can redistribute it and/or modify it\n * under the terms of the GNU Lesser General Public License as\n * published by the Free Software Foundation; either version 2.1 of\n * the License, or (at your option) any later version.\n *\n * This software is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n * Lesser General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public\n * License along with this software; if not, write to the Free\n * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA\n * 02110-1301 USA, or see the FSF site: http://www.fsf.org.\n-->\n\n<!--\n LayoutTableNewRow is a component for the Table layout that can be used\n to add new entries to the Livedata\n-->\n<template>\n <!--\n The component is formatted like a normal row\n but has contains one cell that span on the entire row\n -->\n <tr class=\"layout-table-new-row\">\n <!--\n We need to create an empty cell for the entry selector\n so that it align well with the entries selectors of the rows\n and the select-all entries in the header\n -->\n <td class=\"entry-selector\"></td>\n\n <!--\n The cell to add a new entry\n Span the whole row width\n -->\n <td :colspan=\"colspan\">\n <a\n href=\"#\"\n @click.prevent=\"logic.addEntry()\"\n >\n <XWikiIcon :icon-descriptor=\"{name: 'add'}\"/>\n {{ $t('livedata.action.addEntry') }}\n </a>\n </td>\n\n </tr>\n</template>\n\n\n<script>\nimport XWikiIcon from \"../../utilities/XWikiIcon\";\n\nexport default {\n\n name: \"LayoutTableNewRow\",\n\n components: {XWikiIcon},\n\n inject: [\"logic\"],\n\n props: {\n entry: Object,\n },\n\n computed: {\n data () { return this.logic.data; },\n\n // The colspan value to specify to the create-new-entry cell\n // It is set to the number of properties that can be displayed\n // as it is the max number of column that could be displayed at once\n colspan () {\n return this.logic.getPropertyDescriptors().length;\n },\n },\n\n};\n</script>\n\n\n<style>\n\n.layout-table-new-row a {\n display: inline-block;\n width: 100%;\n}\n\n.layout-table-new-row a .fa {\n display: inline-block;\n margin-right: 0.5rem;\n}\n\n</style>\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./LayoutTableNewRow.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./LayoutTableNewRow.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./LayoutTableNewRow.vue?vue&type=template&id=4b82f9d2\"\nimport script from \"./LayoutTableNewRow.vue?vue&type=script&lang=js\"\nexport * from \"./LayoutTableNewRow.vue?vue&type=script&lang=js\"\nimport style0 from \"./LayoutTableNewRow.vue?vue&type=style&index=0&id=4b82f9d2&prod&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('tr',{attrs:{\"data-livedata-entry-index\":_vm.entryIdx,\"data-livedata-entry-id\":_vm.logic.getEntryId(_vm.entry)}},[(_vm.isSelectionEnabled && _vm.isEntrySelectable)?_c('td',{staticClass:\"entry-selector\"},[_c('LivedataEntrySelector',{attrs:{\"entry\":_vm.entry}})],1):(_vm.isSelectionEnabled)?_c('td'):_vm._e(),_vm._l((_vm.properties),function(property){return _c('td',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.logic.isPropertyVisible(property.id)),expression:\"logic.isPropertyVisible(property.id)\"}],key:property.id,staticClass:\"cell\",attrs:{\"data-title\":property.name}},[_c('LivedataDisplayer',{attrs:{\"property-id\":property.id,\"entry\":_vm.entry}})],1)})],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n * See the NOTICE file distributed with this work for additional\n * information regarding copyright ownership.\n *\n * This is free software; you can redistribute it and/or modify it\n * under the terms of the GNU Lesser General Public License as\n * published by the Free Software Foundation; either version 2.1 of\n * the License, or (at your option) any later version.\n *\n * This software is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n * Lesser General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public\n * License along with this software; if not, write to the Free\n * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA\n * 02110-1301 USA, or see the FSF site: http://www.fsf.org.\n-->\n<!--\n LayoutCardsCard is a row component for the Table Layout.\n It format an entry as an html row, with an entry selector on the left\n-->\n<template>\n <tr \n :data-livedata-entry-index=\"entryIdx\"\n :data-livedata-entry-id=\"logic.getEntryId(entry)\"\n >\n\n <!-- Entry Select -->\n <td\n v-if=\"isSelectionEnabled && isEntrySelectable\"\n class=\"entry-selector\"\n >\n <LivedataEntrySelector :entry=\"entry\"/>\n </td>\n <!-- If selection is enable but entry is not selectable -->\n <td v-else-if=\"isSelectionEnabled\"></td>\n\n <!-- Entry cells -->\n <td\n class=\"cell\"\n v-for=\"property in properties\"\n :key=\"property.id\"\n v-show=\"logic.isPropertyVisible(property.id)\"\n :data-title=\"property.name\"\n >\n <LivedataDisplayer\n :property-id=\"property.id\"\n :entry=\"entry\"\n />\n </td>\n\n </tr>\n</template>\n\n\n<script>\nimport LivedataEntrySelector from \"../../LivedataEntrySelector.vue\";\nimport LivedataDisplayer from \"../../displayers/LivedataDisplayer.vue\";\n\nexport default {\n\n name: \"LayoutTableRow\",\n\n components: {\n LivedataEntrySelector,\n LivedataDisplayer,\n },\n\n inject: [\"logic\"],\n\n props: {\n entry: Object,\n /**\n * Index of the entry in the entries array.\n * @since 14.10.20\n * @since 15.5.5\n * @since 15.10.1\n * @since 16.0RC1\n */\n entryIdx: {\n type: Number,\n required: true\n }\n },\n\n computed: {\n data () { return this.logic.data; },\n properties () { return this.logic.getPropertyDescriptors(); },\n isSelectionEnabled () { return this.logic.isSelectionEnabled(); },\n isEntrySelectable () {\n return this.logic.isSelectionEnabled({ entry: this.entry });\n },\n },\n\n};\n</script>\n\n\n<style>\n\n.layout-table .livedata-entry-selector {\n align-items: flex-start;\n padding: 10px 2rem;\n}\n\n.layout-table .entry-selector {\n padding: 0;\n height: 100%;\n width: 0;\n}\n\n.layout-table td.cell {\n /* Sets the height to 100% to allow children div to use the full cell height \n (see https://stackoverflow.com/a/18488334/657524). */\n height: 100%;\n}\n</style>\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./LayoutTableRow.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./LayoutTableRow.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./LayoutTableRow.vue?vue&type=template&id=5acbc49a\"\nimport script from \"./LayoutTableRow.vue?vue&type=script&lang=js\"\nexport * from \"./LayoutTableRow.vue?vue&type=script&lang=js\"\nimport style0 from \"./LayoutTableRow.vue?vue&type=style&index=0&id=5acbc49a&prod&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('draggable',_vm._g(_vm._b({staticClass:\"draggable-container\",attrs:{\"animation\":200,\"handle\":\".handle\",\"draggable\":\".draggable-item\",\"ghostClass\":\"ghost\"}},'draggable',_vm.$attrs,false),_vm.$listeners),[_vm._t(\"default\")],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n * See the NOTICE file distributed with this work for additional\n * information regarding copyright ownership.\n *\n * This is free software; you can redistribute it and/or modify it\n * under the terms of the GNU Lesser General Public License as\n * published by the Free Software Foundation; either version 2.1 of\n * the License, or (at your option) any later version.\n *\n * This software is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n * Lesser General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public\n * License along with this software; if not, write to the Free\n * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA\n * 02110-1301 USA, or see the FSF site: http://www.fsf.org.\n-->\n\n<template>\n <draggable\n class=\"draggable-container\"\n v-bind=\"$attrs\"\n :animation=\"200\"\n handle=\".handle\"\n draggable=\".draggable-item\"\n ghostClass=\"ghost\"\n v-on=\"$listeners\"\n >\n <slot></slot>\n </draggable>\n</template>\n\n\n<script>\nimport vuedraggable from \"vuedraggable\";\n\nexport default {\n\n name: \"XWikiDraggable\",\n\n components: {\n \"draggable\": vuedraggable,\n },\n\n};\n</script>\n\n\n<style>\n\n</style>\n","import mod from \"-!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./XWikiDraggable.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./XWikiDraggable.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./XWikiDraggable.vue?vue&type=template&id=07ec3f95\"\nimport script from \"./XWikiDraggable.vue?vue&type=script&lang=js\"\nexport * from \"./XWikiDraggable.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"draggable-item\"},[_c('div',{staticClass:\"handle\"},[_vm._t(\"handle\",function(){return [_c('XWikiIcon',{attrs:{\"icon-descriptor\":{name: 'menu'}}})]})],2),_vm._t(\"default\")],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n * See the NOTICE file distributed with this work for additional\n * information regarding copyright ownership.\n *\n * This is free software; you can redistribute it and/or modify it\n * under the terms of the GNU Lesser General Public License as\n * published by the Free Software Foundation; either version 2.1 of\n * the License, or (at your option) any later version.\n *\n * This software is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n * Lesser General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public\n * License along with this software; if not, write to the Free\n * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA\n * 02110-1301 USA, or see the FSF site: http://www.fsf.org.\n-->\n\n<template>\n <div class=\"draggable-item\">\n <div class=\"handle\">\n <slot name=\"handle\">\n <XWikiIcon :icon-descriptor=\"{name: 'menu'}\" />\n </slot>\n </div>\n\n <slot></slot>\n </div>\n</template>\n\n\n<script>\nimport XWikiIcon from \"./XWikiIcon\";\n\nexport default {\n\n name: \"XWikiDraggableItem\",\n\n components: {XWikiIcon}\n};\n</script>\n\n\n<style>\n\n\n.draggable-item {\n display: flex;\n flex-direction: row;\n justify-content: flex-start;\n align-items: center;\n}\n\n.draggable-item .handle {\n padding: 6px;\n cursor: pointer; /* IE */\n cursor: grab;\n opacity: 0;\n}\n\n.draggable-item:hover .handle {\n opacity: 1;\n transition: opacity 0.2s;\n}\n\n.draggable-item .handle .fa {\n vertical-align: middle;\n}\n\n/* Responsive mode */\n@media screen and (max-width: @screen-xs-max) {\n .draggable-item .handle {\n /* Always show the drag handle on small screens because we can't rely on hover. */\n opacity: 1;\n }\n}\n\n</style>\n","import mod from \"-!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./XWikiDraggableItem.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./XWikiDraggableItem.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./XWikiDraggableItem.vue?vue&type=template&id=2c999862\"\nimport script from \"./XWikiDraggableItem.vue?vue&type=script&lang=js\"\nexport * from \"./XWikiDraggableItem.vue?vue&type=script&lang=js\"\nimport style0 from \"./XWikiDraggableItem.vue?vue&type=style&index=0&id=2c999862&prod&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.isImage)?_c('img',{attrs:{\"src\":_vm.url,\"alt\":\"\"}}):(_vm.isFont)?_c('span',{class:_vm.cssClass}):_c('span',{staticClass:\"icon-placeholder\"})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n * See the NOTICE file distributed with this work for additional\n * information regarding copyright ownership.\n *\n * This is free software; you can redistribute it and/or modify it\n * under the terms of the GNU Lesser General Public License as\n * published by the Free Software Foundation; either version 2.1 of\n * the License, or (at your option) any later version.\n *\n * This software is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n * Lesser General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public\n * License along with this software; if not, write to the Free\n * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA\n * 02110-1301 USA, or see the FSF site: http://www.fsf.org.\n-->\n\n<template>\n <img\n v-if=\"isImage\"\n :src=\"url\"\n alt=\"\"\n />\n <span\n v-else-if=\"isFont\"\n :class=\"cssClass\"\n ></span>\n <span\n v-else\n class=\"icon-placeholder\"\n ></span>\n</template>\n\n\n<script>\n// This cache stores the metadata of the already resolved icons as well as the Promises for the icons currently being \n// asynchronously resolved.\n// The goal of this cache is to only request for the resolution of an icon once per live data rendering.\nconst iconCache = {};\n\nexport default {\n\n name: \"XWikiIcon\",\n\n props: {\n iconDescriptor: Object\n },\n\n data: () => ({\n remoteIconDescriptor: undefined\n }),\n\n computed: {\n descriptor() {\n return this.remoteIconDescriptor || this.iconDescriptor\n },\n iconSetType() {\n let type = \"\";\n if (this.descriptor?.iconSetType) {\n type = this.descriptor?.iconSetType;\n } else if (this.descriptor?.cssClass) {\n type = \"FONT\";\n } else if (this.descriptor?.url) {\n type = \"IMAGE\";\n }\n return type;\n },\n isImage() {\n return this.iconSetType === 'IMAGE'\n },\n isFont() {\n return this.iconSetType === 'FONT'\n },\n url() {\n return this.descriptor?.url\n },\n cssClass() {\n return this.descriptor?.cssClass\n }\n },\n\n methods: {\n async fetchRemoteIconDescriptor(iconName) {\n try {\n const parameters = `name=${encodeURIComponent(iconName)}`;\n const iconURL = `${XWiki.contextPath}/rest/wikis/${XWiki.currentWiki}/iconThemes/icons?${parameters}`;\n const response = await window.fetch(iconURL, {\n headers: {\n 'Accept': 'application/json'\n }\n });\n const jsonResponse = await response.json();\n iconCache[iconName] = jsonResponse?.icons[0];\n return jsonResponse?.icons[0];\n } catch (err) {\n console.error(err);\n }\n },\n },\n\n watch: {\n iconDescriptor: {\n async handler(iconDescriptor) {\n // If the new icon descriptor already has an icon type, we consider it is not needed to fetch its metadata\n // remotely. The remote icon descriptor is set to undefined and the iconDescriptor prop value are directly used\n // to render the icon.\n const iconSetType = iconDescriptor?.iconSetType\n if (iconSetType === 'IMAGE' || iconSetType === 'FONT') {\n this.remoteIconDescriptor = undefined\n return;\n }\n const iconName = iconDescriptor?.name;\n if (!iconName) {\n this.remoteIconDescriptor = undefined\n return;\n }\n // If the icon was not already fetched, fetch it!\n if (!iconCache[iconName]) {\n // We set the iconCache value to the promise object, so that every other request of the same icon whether they\n // occur during the first request or after, will use the same promise and will not create another request.\n iconCache[iconName] = this.fetchRemoteIconDescriptor(iconName);\n }\n // Set the icon to the resolved value of the promise.\n this.remoteIconDescriptor = await iconCache[iconName];\n },\n immediate: true\n },\n },\n};\n</script>\n\n\n<style>\n.icon-placeholder {\n width: 1em;\n height: 1em;\n}\n</style>\n","import mod from \"-!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./XWikiIcon.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./XWikiIcon.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./XWikiIcon.vue?vue&type=template&id=34df6b06\"\nimport script from \"./XWikiIcon.vue?vue&type=script&lang=js\"\nexport * from \"./XWikiIcon.vue?vue&type=script&lang=js\"\nimport style0 from \"./XWikiIcon.vue?vue&type=style&index=0&id=34df6b06&prod&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.show),expression:\"show\"}],staticClass:\"xwiki-loader\"})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n * See the NOTICE file distributed with this work for additional\n * information regarding copyright ownership.\n *\n * This is free software; you can redistribute it and/or modify it\n * under the terms of the GNU Lesser General Public License as\n * published by the Free Software Foundation; either version 2.1 of\n * the License, or (at your option) any later version.\n *\n * This software is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n * Lesser General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public\n * License along with this software; if not, write to the Free\n * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA\n * 02110-1301 USA, or see the FSF site: http://www.fsf.org.\n-->\n\n<template>\n<!-- \nv-show is used here instead of v-if to prevent the loader to be re-rendered each time the show data field changes.\nThis change can happen two times in a short time span, once when the component is first rendered, then when the timout \nis switched to true (by default 200ms after the component is mounted). \n-->\n <div\n class=\"xwiki-loader\"\n v-show=\"show\"\n ></div>\n\n</template>\n\n\n<script>\nexport default {\n\n name: \"XWikiLoader\",\n\n props: {\n // delay before showing the loader (in ms)\n delay: {\n type: Number,\n default: 200,\n },\n },\n\n data () {\n return {\n show: false,\n };\n },\n\n mounted () {\n setTimeout(() => { this.show = true; }, this.delay);\n },\n\n};\n</script>\n\n\n<style>\n\n@keyframes waiting {\n from { background-position-x: 100%; }\n to { background-position-x: -100%; }\n}\n\n.xwiki-loader {\n width: 100%;\n height: 100%;\n min-height: 1rem;\n animation: waiting 2s linear infinite;\n background: linear-gradient(135deg, transparent 25%, @panel-default-heading-bg 50%, transparent 75%);\n background-repeat: repeat;\n background-size: 200% 100%;\n}\n\n</style>\n","import mod from \"-!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./XWikiLoader.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./XWikiLoader.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./XWikiLoader.vue?vue&type=template&id=4160bc44\"\nimport script from \"./XWikiLoader.vue?vue&type=script&lang=js\"\nexport * from \"./XWikiLoader.vue?vue&type=script&lang=js\"\nimport style0 from \"./XWikiLoader.vue?vue&type=style&index=0&id=4160bc44&prod&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","/* 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 =\n typeof scriptExports === 'function' ? scriptExports.options : 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) {\n // 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 ? [].concat(existing, hook) : [hook]\n }\n }\n\n return {\n exports: scriptExports,\n options: options\n }\n}\n","/*\n * See the NOTICE file distributed with this work for additional\n * information regarding copyright ownership.\n *\n * This is free software; you can redistribute it and/or modify it\n * under the terms of the GNU Lesser General Public License as\n * published by the Free Software Foundation; either version 2.1 of\n * the License, or (at your option) any later version.\n *\n * This software is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n * Lesser General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public\n * License along with this software; if not, write to the Free\n * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA\n * 02110-1301 USA, or see the FSF site: http://www.fsf.org.\n */\n\n\n/**\n * The filterMixin is a vue mixin containing all the needed\n * props, computed values, methods, etc. for any custom filter:\n * `propertyId`, `index`, `filterEntry`, `config`, `applyFilter()`, ...\n * It should be included in every custom filter component\n */\nexport default {\n\n inject: [\"logic\"],\n\n props: {\n propertyId: String,\n index: Number,\n },\n\n data () {\n return {\n _applyFilterTimeoutId: undefined,\n };\n },\n\n // The computed values provide common data needed by filters\n computed: {\n // The filter group (the whole filter configuration) of `this.propertyId`\n filterGroup () {\n return this.logic.getQueryFilterGroup(this.propertyId) || {};\n },\n // The filter entry (the filter at `this.index`) of `this.propertyId`\n filterEntry () {\n return (this.filterGroup.constraints || [])[this.index] || {};\n },\n // The operator used, or default one if none specified\n operator () {\n return this.filterEntry.operator || this.logic.getFilterDefaultOperator(this.propertyId);\n },\n // The property descriptor of `this.propetyId`\n propertyDescriptor () {\n return this.logic.getPropertyDescriptor(this.propertyId);\n },\n // The configuration (aka filterDescriptor) of the filter\n config () {\n return this.logic.getFilterDescriptor(this.propertyId);\n },\n // The whole Livedata data object\n data () {\n return this.logic.data;\n },\n },\n\n methods: {\n // This method should be used to apply filter.\n // Since only the newValue has to be specified it is less error prone.\n applyFilter: function (newValue, filterOperator=undefined) {\n // Once a filter is applied, the filtering state is switched to true.\n // The filtering state is switched to false only once the filtering is finished.\n this.$emit('update:isFiltering', true);\n this.logic.filter(this.propertyId, this.index, {value: newValue}, {filterOperator})\n .finally(() => {\n // Whatever the filter promise result, the filtering state is switched to false.\n this.$emit('update:isFiltering', false);\n });\n },\n\n removeFilter: function () {\n this.$emit('update:isFiltering', true);\n this.logic.removeFilter(this.propertyId, this.index)\n .finally(() => {\n // Whatever the removeFilter promise result, the filtering state is switched to false.\n this.$emit('update:isFiltering', false);\n });\n },\n\n // Call applyFilter method, but using a delay\n // This can be used when we want to call the applyFilter method inside an input event\n applyFilterWithDelay (newValue) {\n // Clear existing timeout\n clearTimeout(this._applyFilterTimeoutId);\n // Once a filter is applied, the filtering state is switched to true.\n // The filtering state is switched to false only once the filtering is finished.\n this.$emit('update:isFiltering', true);\n // Set a 250 milliseconds timeout before calling applyFilter method\n const timeoutDelay = 250;\n this._applyFilterTimeoutId = setTimeout(() => {\n this.applyFilter(newValue);\n }, timeoutDelay);\n },\n\n // This method is automatically called by the widget when the operator change\n // It allow to decide what to do with the current value,\n // according to the new chosen operator\n // and the rules defined in the data function of the widget\n _operatorChangeHandler (oldOperator, newOperator) {\n if (!this.rules) { return; }\n // We reverse the rules so that the last ones take precedence over the first ones\n this.rules.slice().reverse().some(rule => {\n // Transform everything to array\n if (!(rule.from instanceof Array)) { rule.from = [rule.from]; }\n if (!(rule.to instanceof Array)) { rule.to = [rule.to]; }\n // Try to see if rule matches\n if (!rule.from.includes(oldOperator)) { return; }\n if (!rule.to.includes(newOperator)) { return; }\n // Rule matches the `from` and `to` operator criterias\n const newValue = rule.getValue({\n oldValue: this.filterEntry.value,\n oldOperator,\n newOperator,\n });\n this.applyFilter(newValue);\n })\n }\n },\n\n created () {\n // Whenever the filter operator changes\n // Update the filter value according to the rules defined in the filter widget\n this.logic.onEventWhere(\"filter\", {\n type: \"modify\",\n oldEntry: { property: this.propertyId, index: this.index }\n }, e => {\n if (e.detail.oldEntry.operator === e.detail.newEntry.operator) { return; }\n // We don't want the other filter widget to call the hanlder the same value\n e.stopImmediatePropagation();\n this._operatorChangeHandler(e.detail.oldEntry.operator, e.detail.newEntry.operator);\n });\n },\n\n};\n","/*! @license DOMPurify 3.1.1 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.1.1/LICENSE */\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.DOMPurify = factory());\n})(this, (function () { 'use strict';\n\n const {\n entries,\n setPrototypeOf,\n isFrozen,\n getPrototypeOf,\n getOwnPropertyDescriptor\n } = Object;\n let {\n freeze,\n seal,\n create\n } = Object; // eslint-disable-line import/no-mutable-exports\n let {\n apply,\n construct\n } = typeof Reflect !== 'undefined' && Reflect;\n if (!freeze) {\n freeze = function freeze(x) {\n return x;\n };\n }\n if (!seal) {\n seal = function seal(x) {\n return x;\n };\n }\n if (!apply) {\n apply = function apply(fun, thisValue, args) {\n return fun.apply(thisValue, args);\n };\n }\n if (!construct) {\n construct = function construct(Func, args) {\n return new Func(...args);\n };\n }\n const arrayForEach = unapply(Array.prototype.forEach);\n const arrayPop = unapply(Array.prototype.pop);\n const arrayPush = unapply(Array.prototype.push);\n const stringToLowerCase = unapply(String.prototype.toLowerCase);\n const stringToString = unapply(String.prototype.toString);\n const stringMatch = unapply(String.prototype.match);\n const stringReplace = unapply(String.prototype.replace);\n const stringIndexOf = unapply(String.prototype.indexOf);\n const stringTrim = unapply(String.prototype.trim);\n const objectHasOwnProperty = unapply(Object.prototype.hasOwnProperty);\n const regExpTest = unapply(RegExp.prototype.test);\n const typeErrorCreate = unconstruct(TypeError);\n\n /**\n * Creates a new function that calls the given function with a specified thisArg and arguments.\n *\n * @param {Function} func - The function to be wrapped and called.\n * @returns {Function} A new function that calls the given function with a specified thisArg and arguments.\n */\n function unapply(func) {\n return function (thisArg) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n return apply(func, thisArg, args);\n };\n }\n\n /**\n * Creates a new function that constructs an instance of the given constructor function with the provided arguments.\n *\n * @param {Function} func - The constructor function to be wrapped and called.\n * @returns {Function} A new function that constructs an instance of the given constructor function with the provided arguments.\n */\n function unconstruct(func) {\n return function () {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n return construct(func, args);\n };\n }\n\n /**\n * Add properties to a lookup table\n *\n * @param {Object} set - The set to which elements will be added.\n * @param {Array} array - The array containing elements to be added to the set.\n * @param {Function} transformCaseFunc - An optional function to transform the case of each element before adding to the set.\n * @returns {Object} The modified set with added elements.\n */\n function addToSet(set, array) {\n let transformCaseFunc = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : stringToLowerCase;\n if (setPrototypeOf) {\n // Make 'in' and truthy checks like Boolean(set.constructor)\n // independent of any properties defined on Object.prototype.\n // Prevent prototype setters from intercepting set as a this value.\n setPrototypeOf(set, null);\n }\n let l = array.length;\n while (l--) {\n let element = array[l];\n if (typeof element === 'string') {\n const lcElement = transformCaseFunc(element);\n if (lcElement !== element) {\n // Config presets (e.g. tags.js, attrs.js) are immutable.\n if (!isFrozen(array)) {\n array[l] = lcElement;\n }\n element = lcElement;\n }\n }\n set[element] = true;\n }\n return set;\n }\n\n /**\n * Clean up an array to harden against CSPP\n *\n * @param {Array} array - The array to be cleaned.\n * @returns {Array} The cleaned version of the array\n */\n function cleanArray(array) {\n for (let index = 0; index < array.length; index++) {\n const isPropertyExist = objectHasOwnProperty(array, index);\n if (!isPropertyExist) {\n array[index] = null;\n }\n }\n return array;\n }\n\n /**\n * Shallow clone an object\n *\n * @param {Object} object - The object to be cloned.\n * @returns {Object} A new object that copies the original.\n */\n function clone(object) {\n const newObject = create(null);\n for (const [property, value] of entries(object)) {\n const isPropertyExist = objectHasOwnProperty(object, property);\n if (isPropertyExist) {\n if (Array.isArray(value)) {\n newObject[property] = cleanArray(value);\n } else if (value && typeof value === 'object' && value.constructor === Object) {\n newObject[property] = clone(value);\n } else {\n newObject[property] = value;\n }\n }\n }\n return newObject;\n }\n\n /**\n * This method automatically checks if the prop is function or getter and behaves accordingly.\n *\n * @param {Object} object - The object to look up the getter function in its prototype chain.\n * @param {String} prop - The property name for which to find the getter function.\n * @returns {Function} The getter function found in the prototype chain or a fallback function.\n */\n function lookupGetter(object, prop) {\n while (object !== null) {\n const desc = getOwnPropertyDescriptor(object, prop);\n if (desc) {\n if (desc.get) {\n return unapply(desc.get);\n }\n if (typeof desc.value === 'function') {\n return unapply(desc.value);\n }\n }\n object = getPrototypeOf(object);\n }\n function fallbackValue() {\n return null;\n }\n return fallbackValue;\n }\n\n const html$1 = freeze(['a', 'abbr', 'acronym', 'address', 'area', 'article', 'aside', 'audio', 'b', 'bdi', 'bdo', 'big', 'blink', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'center', 'cite', 'code', 'col', 'colgroup', 'content', 'data', 'datalist', 'dd', 'decorator', 'del', 'details', 'dfn', 'dialog', 'dir', 'div', 'dl', 'dt', 'element', 'em', 'fieldset', 'figcaption', 'figure', 'font', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'img', 'input', 'ins', 'kbd', 'label', 'legend', 'li', 'main', 'map', 'mark', 'marquee', 'menu', 'menuitem', 'meter', 'nav', 'nobr', 'ol', 'optgroup', 'option', 'output', 'p', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'section', 'select', 'shadow', 'small', 'source', 'spacer', 'span', 'strike', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'template', 'textarea', 'tfoot', 'th', 'thead', 'time', 'tr', 'track', 'tt', 'u', 'ul', 'var', 'video', 'wbr']);\n\n // SVG\n const svg$1 = freeze(['svg', 'a', 'altglyph', 'altglyphdef', 'altglyphitem', 'animatecolor', 'animatemotion', 'animatetransform', 'circle', 'clippath', 'defs', 'desc', 'ellipse', 'filter', 'font', 'g', 'glyph', 'glyphref', 'hkern', 'image', 'line', 'lineargradient', 'marker', 'mask', 'metadata', 'mpath', 'path', 'pattern', 'polygon', 'polyline', 'radialgradient', 'rect', 'stop', 'style', 'switch', 'symbol', 'text', 'textpath', 'title', 'tref', 'tspan', 'view', 'vkern']);\n const svgFilters = freeze(['feBlend', 'feColorMatrix', 'feComponentTransfer', 'feComposite', 'feConvolveMatrix', 'feDiffuseLighting', 'feDisplacementMap', 'feDistantLight', 'feDropShadow', 'feFlood', 'feFuncA', 'feFuncB', 'feFuncG', 'feFuncR', 'feGaussianBlur', 'feImage', 'feMerge', 'feMergeNode', 'feMorphology', 'feOffset', 'fePointLight', 'feSpecularLighting', 'feSpotLight', 'feTile', 'feTurbulence']);\n\n // List of SVG elements that are disallowed by default.\n // We still need to know them so that we can do namespace\n // checks properly in case one wants to add them to\n // allow-list.\n const svgDisallowed = freeze(['animate', 'color-profile', 'cursor', 'discard', 'font-face', 'font-face-format', 'font-face-name', 'font-face-src', 'font-face-uri', 'foreignobject', 'hatch', 'hatchpath', 'mesh', 'meshgradient', 'meshpatch', 'meshrow', 'missing-glyph', 'script', 'set', 'solidcolor', 'unknown', 'use']);\n const mathMl$1 = freeze(['math', 'menclose', 'merror', 'mfenced', 'mfrac', 'mglyph', 'mi', 'mlabeledtr', 'mmultiscripts', 'mn', 'mo', 'mover', 'mpadded', 'mphantom', 'mroot', 'mrow', 'ms', 'mspace', 'msqrt', 'mstyle', 'msub', 'msup', 'msubsup', 'mtable', 'mtd', 'mtext', 'mtr', 'munder', 'munderover', 'mprescripts']);\n\n // Similarly to SVG, we want to know all MathML elements,\n // even those that we disallow by default.\n const mathMlDisallowed = freeze(['maction', 'maligngroup', 'malignmark', 'mlongdiv', 'mscarries', 'mscarry', 'msgroup', 'mstack', 'msline', 'msrow', 'semantics', 'annotation', 'annotation-xml', 'mprescripts', 'none']);\n const text = freeze(['#text']);\n\n const html = freeze(['accept', 'action', 'align', 'alt', 'autocapitalize', 'autocomplete', 'autopictureinpicture', 'autoplay', 'background', 'bgcolor', 'border', 'capture', 'cellpadding', 'cellspacing', 'checked', 'cite', 'class', 'clear', 'color', 'cols', 'colspan', 'controls', 'controlslist', 'coords', 'crossorigin', 'datetime', 'decoding', 'default', 'dir', 'disabled', 'disablepictureinpicture', 'disableremoteplayback', 'download', 'draggable', 'enctype', 'enterkeyhint', 'face', 'for', 'headers', 'height', 'hidden', 'high', 'href', 'hreflang', 'id', 'inputmode', 'integrity', 'ismap', 'kind', 'label', 'lang', 'list', 'loading', 'loop', 'low', 'max', 'maxlength', 'media', 'method', 'min', 'minlength', 'multiple', 'muted', 'name', 'nonce', 'noshade', 'novalidate', 'nowrap', 'open', 'optimum', 'pattern', 'placeholder', 'playsinline', 'poster', 'preload', 'pubdate', 'radiogroup', 'readonly', 'rel', 'required', 'rev', 'reversed', 'role', 'rows', 'rowspan', 'spellcheck', 'scope', 'selected', 'shape', 'size', 'sizes', 'span', 'srclang', 'start', 'src', 'srcset', 'step', 'style', 'summary', 'tabindex', 'title', 'translate', 'type', 'usemap', 'valign', 'value', 'width', 'wrap', 'xmlns', 'slot']);\n const svg = freeze(['accent-height', 'accumulate', 'additive', 'alignment-baseline', 'ascent', 'attributename', 'attributetype', 'azimuth', 'basefrequency', 'baseline-shift', 'begin', 'bias', 'by', 'class', 'clip', 'clippathunits', 'clip-path', 'clip-rule', 'color', 'color-interpolation', 'color-interpolation-filters', 'color-profile', 'color-rendering', 'cx', 'cy', 'd', 'dx', 'dy', 'diffuseconstant', 'direction', 'display', 'divisor', 'dur', 'edgemode', 'elevation', 'end', 'fill', 'fill-opacity', 'fill-rule', 'filter', 'filterunits', 'flood-color', 'flood-opacity', 'font-family', 'font-size', 'font-size-adjust', 'font-stretch', 'font-style', 'font-variant', 'font-weight', 'fx', 'fy', 'g1', 'g2', 'glyph-name', 'glyphref', 'gradientunits', 'gradienttransform', 'height', 'href', 'id', 'image-rendering', 'in', 'in2', 'k', 'k1', 'k2', 'k3', 'k4', 'kerning', 'keypoints', 'keysplines', 'keytimes', 'lang', 'lengthadjust', 'letter-spacing', 'kernelmatrix', 'kernelunitlength', 'lighting-color', 'local', 'marker-end', 'marker-mid', 'marker-start', 'markerheight', 'markerunits', 'markerwidth', 'maskcontentunits', 'maskunits', 'max', 'mask', 'media', 'method', 'mode', 'min', 'name', 'numoctaves', 'offset', 'operator', 'opacity', 'order', 'orient', 'orientation', 'origin', 'overflow', 'paint-order', 'path', 'pathlength', 'patterncontentunits', 'patterntransform', 'patternunits', 'points', 'preservealpha', 'preserveaspectratio', 'primitiveunits', 'r', 'rx', 'ry', 'radius', 'refx', 'refy', 'repeatcount', 'repeatdur', 'restart', 'result', 'rotate', 'scale', 'seed', 'shape-rendering', 'specularconstant', 'specularexponent', 'spreadmethod', 'startoffset', 'stddeviation', 'stitchtiles', 'stop-color', 'stop-opacity', 'stroke-dasharray', 'stroke-dashoffset', 'stroke-linecap', 'stroke-linejoin', 'stroke-miterlimit', 'stroke-opacity', 'stroke', 'stroke-width', 'style', 'surfacescale', 'systemlanguage', 'tabindex', 'targetx', 'targety', 'transform', 'transform-origin', 'text-anchor', 'text-decoration', 'text-rendering', 'textlength', 'type', 'u1', 'u2', 'unicode', 'values', 'viewbox', 'visibility', 'version', 'vert-adv-y', 'vert-origin-x', 'vert-origin-y', 'width', 'word-spacing', 'wrap', 'writing-mode', 'xchannelselector', 'ychannelselector', 'x', 'x1', 'x2', 'xmlns', 'y', 'y1', 'y2', 'z', 'zoomandpan']);\n const mathMl = freeze(['accent', 'accentunder', 'align', 'bevelled', 'close', 'columnsalign', 'columnlines', 'columnspan', 'denomalign', 'depth', 'dir', 'display', 'displaystyle', 'encoding', 'fence', 'frame', 'height', 'href', 'id', 'largeop', 'length', 'linethickness', 'lspace', 'lquote', 'mathbackground', 'mathcolor', 'mathsize', 'mathvariant', 'maxsize', 'minsize', 'movablelimits', 'notation', 'numalign', 'open', 'rowalign', 'rowlines', 'rowspacing', 'rowspan', 'rspace', 'rquote', 'scriptlevel', 'scriptminsize', 'scriptsizemultiplier', 'selection', 'separator', 'separators', 'stretchy', 'subscriptshift', 'supscriptshift', 'symmetric', 'voffset', 'width', 'xmlns']);\n const xml = freeze(['xlink:href', 'xml:id', 'xlink:title', 'xml:space', 'xmlns:xlink']);\n\n // eslint-disable-next-line unicorn/better-regex\n const MUSTACHE_EXPR = seal(/\\{\\{[\\w\\W]*|[\\w\\W]*\\}\\}/gm); // Specify template detection regex for SAFE_FOR_TEMPLATES mode\n const ERB_EXPR = seal(/<%[\\w\\W]*|[\\w\\W]*%>/gm);\n const TMPLIT_EXPR = seal(/\\${[\\w\\W]*}/gm);\n const DATA_ATTR = seal(/^data-[\\-\\w.\\u00B7-\\uFFFF]/); // eslint-disable-line no-useless-escape\n const ARIA_ATTR = seal(/^aria-[\\-\\w]+$/); // eslint-disable-line no-useless-escape\n const IS_ALLOWED_URI = seal(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.\\-]+(?:[^a-z+.\\-:]|$))/i // eslint-disable-line no-useless-escape\n );\n\n const IS_SCRIPT_OR_DATA = seal(/^(?:\\w+script|data):/i);\n const ATTR_WHITESPACE = seal(/[\\u0000-\\u0020\\u00A0\\u1680\\u180E\\u2000-\\u2029\\u205F\\u3000]/g // eslint-disable-line no-control-regex\n );\n\n const DOCTYPE_NAME = seal(/^html$/i);\n const CUSTOM_ELEMENT = seal(/^[a-z][.\\w]*(-[.\\w]+)+$/i);\n\n var EXPRESSIONS = /*#__PURE__*/Object.freeze({\n __proto__: null,\n MUSTACHE_EXPR: MUSTACHE_EXPR,\n ERB_EXPR: ERB_EXPR,\n TMPLIT_EXPR: TMPLIT_EXPR,\n DATA_ATTR: DATA_ATTR,\n ARIA_ATTR: ARIA_ATTR,\n IS_ALLOWED_URI: IS_ALLOWED_URI,\n IS_SCRIPT_OR_DATA: IS_SCRIPT_OR_DATA,\n ATTR_WHITESPACE: ATTR_WHITESPACE,\n DOCTYPE_NAME: DOCTYPE_NAME,\n CUSTOM_ELEMENT: CUSTOM_ELEMENT\n });\n\n const getGlobal = function getGlobal() {\n return typeof window === 'undefined' ? null : window;\n };\n\n /**\n * Creates a no-op policy for internal use only.\n * Don't export this function outside this module!\n * @param {TrustedTypePolicyFactory} trustedTypes The policy factory.\n * @param {HTMLScriptElement} purifyHostElement The Script element used to load DOMPurify (to determine policy name suffix).\n * @return {TrustedTypePolicy} The policy created (or null, if Trusted Types\n * are not supported or creating the policy failed).\n */\n const _createTrustedTypesPolicy = function _createTrustedTypesPolicy(trustedTypes, purifyHostElement) {\n if (typeof trustedTypes !== 'object' || typeof trustedTypes.createPolicy !== 'function') {\n return null;\n }\n\n // Allow the callers to control the unique policy name\n // by adding a data-tt-policy-suffix to the script element with the DOMPurify.\n // Policy creation with duplicate names throws in Trusted Types.\n let suffix = null;\n const ATTR_NAME = 'data-tt-policy-suffix';\n if (purifyHostElement && purifyHostElement.hasAttribute(ATTR_NAME)) {\n suffix = purifyHostElement.getAttribute(ATTR_NAME);\n }\n const policyName = 'dompurify' + (suffix ? '#' + suffix : '');\n try {\n return trustedTypes.createPolicy(policyName, {\n createHTML(html) {\n return html;\n },\n createScriptURL(scriptUrl) {\n return scriptUrl;\n }\n });\n } catch (_) {\n // Policy creation failed (most likely another DOMPurify script has\n // already run). Skip creating the policy, as this will only cause errors\n // if TT are enforced.\n console.warn('TrustedTypes policy ' + policyName + ' could not be created.');\n return null;\n }\n };\n function createDOMPurify() {\n let window = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getGlobal();\n const DOMPurify = root => createDOMPurify(root);\n\n /**\n * Version label, exposed for easier checks\n * if DOMPurify is up to date or not\n */\n DOMPurify.version = '3.1.1';\n\n /**\n * Array of elements that DOMPurify removed during sanitation.\n * Empty if nothing was removed.\n */\n DOMPurify.removed = [];\n if (!window || !window.document || window.document.nodeType !== 9) {\n // Not running in a browser, provide a factory function\n // so that you can pass your own Window\n DOMPurify.isSupported = false;\n return DOMPurify;\n }\n let {\n document\n } = window;\n const originalDocument = document;\n const currentScript = originalDocument.currentScript;\n const {\n DocumentFragment,\n HTMLTemplateElement,\n Node,\n Element,\n NodeFilter,\n NamedNodeMap = window.NamedNodeMap || window.MozNamedAttrMap,\n HTMLFormElement,\n DOMParser,\n trustedTypes\n } = window;\n const ElementPrototype = Element.prototype;\n const cloneNode = lookupGetter(ElementPrototype, 'cloneNode');\n const getNextSibling = lookupGetter(ElementPrototype, 'nextSibling');\n const getChildNodes = lookupGetter(ElementPrototype, 'childNodes');\n const getParentNode = lookupGetter(ElementPrototype, 'parentNode');\n\n // As per issue #47, the web-components registry is inherited by a\n // new document created via createHTMLDocument. As per the spec\n // (http://w3c.github.io/webcomponents/spec/custom/#creating-and-passing-registries)\n // a new empty registry is used when creating a template contents owner\n // document, so we use that as our parent document to ensure nothing\n // is inherited.\n if (typeof HTMLTemplateElement === 'function') {\n const template = document.createElement('template');\n if (template.content && template.content.ownerDocument) {\n document = template.content.ownerDocument;\n }\n }\n let trustedTypesPolicy;\n let emptyHTML = '';\n const {\n implementation,\n createNodeIterator,\n createDocumentFragment,\n getElementsByTagName\n } = document;\n const {\n importNode\n } = originalDocument;\n let hooks = {};\n\n /**\n * Expose whether this browser supports running the full DOMPurify.\n */\n DOMPurify.isSupported = typeof entries === 'function' && typeof getParentNode === 'function' && implementation && implementation.createHTMLDocument !== undefined;\n const {\n MUSTACHE_EXPR,\n ERB_EXPR,\n TMPLIT_EXPR,\n DATA_ATTR,\n ARIA_ATTR,\n IS_SCRIPT_OR_DATA,\n ATTR_WHITESPACE,\n CUSTOM_ELEMENT\n } = EXPRESSIONS;\n let {\n IS_ALLOWED_URI: IS_ALLOWED_URI$1\n } = EXPRESSIONS;\n\n /**\n * We consider the elements and attributes below to be safe. Ideally\n * don't add any new ones but feel free to remove unwanted ones.\n */\n\n /* allowed element names */\n let ALLOWED_TAGS = null;\n const DEFAULT_ALLOWED_TAGS = addToSet({}, [...html$1, ...svg$1, ...svgFilters, ...mathMl$1, ...text]);\n\n /* Allowed attribute names */\n let ALLOWED_ATTR = null;\n const DEFAULT_ALLOWED_ATTR = addToSet({}, [...html, ...svg, ...mathMl, ...xml]);\n\n /*\n * Configure how DOMPUrify should handle custom elements and their attributes as well as customized built-in elements.\n * @property {RegExp|Function|null} tagNameCheck one of [null, regexPattern, predicate]. Default: `null` (disallow any custom elements)\n * @property {RegExp|Function|null} attributeNameCheck one of [null, regexPattern, predicate]. Default: `null` (disallow any attributes not on the allow list)\n * @property {boolean} allowCustomizedBuiltInElements allow custom elements derived from built-ins if they pass CUSTOM_ELEMENT_HANDLING.tagNameCheck. Default: `false`.\n */\n let CUSTOM_ELEMENT_HANDLING = Object.seal(create(null, {\n tagNameCheck: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: null\n },\n attributeNameCheck: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: null\n },\n allowCustomizedBuiltInElements: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: false\n }\n }));\n\n /* Explicitly forbidden tags (overrides ALLOWED_TAGS/ADD_TAGS) */\n let FORBID_TAGS = null;\n\n /* Explicitly forbidden attributes (overrides ALLOWED_ATTR/ADD_ATTR) */\n let FORBID_ATTR = null;\n\n /* Decide if ARIA attributes are okay */\n let ALLOW_ARIA_ATTR = true;\n\n /* Decide if custom data attributes are okay */\n let ALLOW_DATA_ATTR = true;\n\n /* Decide if unknown protocols are okay */\n let ALLOW_UNKNOWN_PROTOCOLS = false;\n\n /* Decide if self-closing tags in attributes are allowed.\n * Usually removed due to a mXSS issue in jQuery 3.0 */\n let ALLOW_SELF_CLOSE_IN_ATTR = true;\n\n /* Output should be safe for common template engines.\n * This means, DOMPurify removes data attributes, mustaches and ERB\n */\n let SAFE_FOR_TEMPLATES = false;\n\n /* Output should be safe even for XML used within HTML and alike.\n * This means, DOMPurify removes comments when containing risky content.\n */\n let SAFE_FOR_XML = true;\n\n /* Decide if document with <html>... should be returned */\n let WHOLE_DOCUMENT = false;\n\n /* Track whether config is already set on this instance of DOMPurify. */\n let SET_CONFIG = false;\n\n /* Decide if all elements (e.g. style, script) must be children of\n * document.body. By default, browsers might move them to document.head */\n let FORCE_BODY = false;\n\n /* Decide if a DOM `HTMLBodyElement` should be returned, instead of a html\n * string (or a TrustedHTML object if Trusted Types are supported).\n * If `WHOLE_DOCUMENT` is enabled a `HTMLHtmlElement` will be returned instead\n */\n let RETURN_DOM = false;\n\n /* Decide if a DOM `DocumentFragment` should be returned, instead of a html\n * string (or a TrustedHTML object if Trusted Types are supported) */\n let RETURN_DOM_FRAGMENT = false;\n\n /* Try to return a Trusted Type object instead of a string, return a string in\n * case Trusted Types are not supported */\n let RETURN_TRUSTED_TYPE = false;\n\n /* Output should be free from DOM clobbering attacks?\n * This sanitizes markups named with colliding, clobberable built-in DOM APIs.\n */\n let SANITIZE_DOM = true;\n\n /* Achieve full DOM Clobbering protection by isolating the namespace of named\n * properties and JS variables, mitigating attacks that abuse the HTML/DOM spec rules.\n *\n * HTML/DOM spec rules that enable DOM Clobbering:\n * - Named Access on Window (§7.3.3)\n * - DOM Tree Accessors (§3.1.5)\n * - Form Element Parent-Child Relations (§4.10.3)\n * - Iframe srcdoc / Nested WindowProxies (§4.8.5)\n * - HTMLCollection (§4.2.10.2)\n *\n * Namespace isolation is implemented by prefixing `id` and `name` attributes\n * with a constant string, i.e., `user-content-`\n */\n let SANITIZE_NAMED_PROPS = false;\n const SANITIZE_NAMED_PROPS_PREFIX = 'user-content-';\n\n /* Keep element content when removing element? */\n let KEEP_CONTENT = true;\n\n /* If a `Node` is passed to sanitize(), then performs sanitization in-place instead\n * of importing it into a new Document and returning a sanitized copy */\n let IN_PLACE = false;\n\n /* Allow usage of profiles like html, svg and mathMl */\n let USE_PROFILES = {};\n\n /* Tags to ignore content of when KEEP_CONTENT is true */\n let FORBID_CONTENTS = null;\n const DEFAULT_FORBID_CONTENTS = addToSet({}, ['annotation-xml', 'audio', 'colgroup', 'desc', 'foreignobject', 'head', 'iframe', 'math', 'mi', 'mn', 'mo', 'ms', 'mtext', 'noembed', 'noframes', 'noscript', 'plaintext', 'script', 'style', 'svg', 'template', 'thead', 'title', 'video', 'xmp']);\n\n /* Tags that are safe for data: URIs */\n let DATA_URI_TAGS = null;\n const DEFAULT_DATA_URI_TAGS = addToSet({}, ['audio', 'video', 'img', 'source', 'image', 'track']);\n\n /* Attributes safe for values like \"javascript:\" */\n let URI_SAFE_ATTRIBUTES = null;\n const DEFAULT_URI_SAFE_ATTRIBUTES = addToSet({}, ['alt', 'class', 'for', 'id', 'label', 'name', 'pattern', 'placeholder', 'role', 'summary', 'title', 'value', 'style', 'xmlns']);\n const MATHML_NAMESPACE = 'http://www.w3.org/1998/Math/MathML';\n const SVG_NAMESPACE = 'http://www.w3.org/2000/svg';\n const HTML_NAMESPACE = 'http://www.w3.org/1999/xhtml';\n /* Document namespace */\n let NAMESPACE = HTML_NAMESPACE;\n let IS_EMPTY_INPUT = false;\n\n /* Allowed XHTML+XML namespaces */\n let ALLOWED_NAMESPACES = null;\n const DEFAULT_ALLOWED_NAMESPACES = addToSet({}, [MATHML_NAMESPACE, SVG_NAMESPACE, HTML_NAMESPACE], stringToString);\n\n /* Parsing of strict XHTML documents */\n let PARSER_MEDIA_TYPE = null;\n const SUPPORTED_PARSER_MEDIA_TYPES = ['application/xhtml+xml', 'text/html'];\n const DEFAULT_PARSER_MEDIA_TYPE = 'text/html';\n let transformCaseFunc = null;\n\n /* Keep a reference to config to pass to hooks */\n let CONFIG = null;\n\n /* Specify the maximum element nesting depth to prevent mXSS */\n const MAX_NESTING_DEPTH = 255;\n\n /* Ideally, do not touch anything below this line */\n /* ______________________________________________ */\n\n const formElement = document.createElement('form');\n const isRegexOrFunction = function isRegexOrFunction(testValue) {\n return testValue instanceof RegExp || testValue instanceof Function;\n };\n\n /**\n * _parseConfig\n *\n * @param {Object} cfg optional config literal\n */\n // eslint-disable-next-line complexity\n const _parseConfig = function _parseConfig() {\n let cfg = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n if (CONFIG && CONFIG === cfg) {\n return;\n }\n\n /* Shield configuration object from tampering */\n if (!cfg || typeof cfg !== 'object') {\n cfg = {};\n }\n\n /* Shield configuration object from prototype pollution */\n cfg = clone(cfg);\n PARSER_MEDIA_TYPE =\n // eslint-disable-next-line unicorn/prefer-includes\n SUPPORTED_PARSER_MEDIA_TYPES.indexOf(cfg.PARSER_MEDIA_TYPE) === -1 ? DEFAULT_PARSER_MEDIA_TYPE : cfg.PARSER_MEDIA_TYPE;\n\n // HTML tags and attributes are not case-sensitive, converting to lowercase. Keeping XHTML as is.\n transformCaseFunc = PARSER_MEDIA_TYPE === 'application/xhtml+xml' ? stringToString : stringToLowerCase;\n\n /* Set configuration parameters */\n ALLOWED_TAGS = objectHasOwnProperty(cfg, 'ALLOWED_TAGS') ? addToSet({}, cfg.ALLOWED_TAGS, transformCaseFunc) : DEFAULT_ALLOWED_TAGS;\n ALLOWED_ATTR = objectHasOwnProperty(cfg, 'ALLOWED_ATTR') ? addToSet({}, cfg.ALLOWED_ATTR, transformCaseFunc) : DEFAULT_ALLOWED_ATTR;\n ALLOWED_NAMESPACES = objectHasOwnProperty(cfg, 'ALLOWED_NAMESPACES') ? addToSet({}, cfg.ALLOWED_NAMESPACES, stringToString) : DEFAULT_ALLOWED_NAMESPACES;\n URI_SAFE_ATTRIBUTES = objectHasOwnProperty(cfg, 'ADD_URI_SAFE_ATTR') ? addToSet(clone(DEFAULT_URI_SAFE_ATTRIBUTES),\n // eslint-disable-line indent\n cfg.ADD_URI_SAFE_ATTR,\n // eslint-disable-line indent\n transformCaseFunc // eslint-disable-line indent\n ) // eslint-disable-line indent\n : DEFAULT_URI_SAFE_ATTRIBUTES;\n DATA_URI_TAGS = objectHasOwnProperty(cfg, 'ADD_DATA_URI_TAGS') ? addToSet(clone(DEFAULT_DATA_URI_TAGS),\n // eslint-disable-line indent\n cfg.ADD_DATA_URI_TAGS,\n // eslint-disable-line indent\n transformCaseFunc // eslint-disable-line indent\n ) // eslint-disable-line indent\n : DEFAULT_DATA_URI_TAGS;\n FORBID_CONTENTS = objectHasOwnProperty(cfg, 'FORBID_CONTENTS') ? addToSet({}, cfg.FORBID_CONTENTS, transformCaseFunc) : DEFAULT_FORBID_CONTENTS;\n FORBID_TAGS = objectHasOwnProperty(cfg, 'FORBID_TAGS') ? addToSet({}, cfg.FORBID_TAGS, transformCaseFunc) : {};\n FORBID_ATTR = objectHasOwnProperty(cfg, 'FORBID_ATTR') ? addToSet({}, cfg.FORBID_ATTR, transformCaseFunc) : {};\n USE_PROFILES = objectHasOwnProperty(cfg, 'USE_PROFILES') ? cfg.USE_PROFILES : false;\n ALLOW_ARIA_ATTR = cfg.ALLOW_ARIA_ATTR !== false; // Default true\n ALLOW_DATA_ATTR = cfg.ALLOW_DATA_ATTR !== false; // Default true\n ALLOW_UNKNOWN_PROTOCOLS = cfg.ALLOW_UNKNOWN_PROTOCOLS || false; // Default false\n ALLOW_SELF_CLOSE_IN_ATTR = cfg.ALLOW_SELF_CLOSE_IN_ATTR !== false; // Default true\n SAFE_FOR_TEMPLATES = cfg.SAFE_FOR_TEMPLATES || false; // Default false\n SAFE_FOR_XML = cfg.SAFE_FOR_XML !== false; // Default true\n WHOLE_DOCUMENT = cfg.WHOLE_DOCUMENT || false; // Default false\n RETURN_DOM = cfg.RETURN_DOM || false; // Default false\n RETURN_DOM_FRAGMENT = cfg.RETURN_DOM_FRAGMENT || false; // Default false\n RETURN_TRUSTED_TYPE = cfg.RETURN_TRUSTED_TYPE || false; // Default false\n FORCE_BODY = cfg.FORCE_BODY || false; // Default false\n SANITIZE_DOM = cfg.SANITIZE_DOM !== false; // Default true\n SANITIZE_NAMED_PROPS = cfg.SANITIZE_NAMED_PROPS || false; // Default false\n KEEP_CONTENT = cfg.KEEP_CONTENT !== false; // Default true\n IN_PLACE = cfg.IN_PLACE || false; // Default false\n IS_ALLOWED_URI$1 = cfg.ALLOWED_URI_REGEXP || IS_ALLOWED_URI;\n NAMESPACE = cfg.NAMESPACE || HTML_NAMESPACE;\n CUSTOM_ELEMENT_HANDLING = cfg.CUSTOM_ELEMENT_HANDLING || {};\n if (cfg.CUSTOM_ELEMENT_HANDLING && isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck)) {\n CUSTOM_ELEMENT_HANDLING.tagNameCheck = cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck;\n }\n if (cfg.CUSTOM_ELEMENT_HANDLING && isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)) {\n CUSTOM_ELEMENT_HANDLING.attributeNameCheck = cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck;\n }\n if (cfg.CUSTOM_ELEMENT_HANDLING && typeof cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements === 'boolean') {\n CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements = cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements;\n }\n if (SAFE_FOR_TEMPLATES) {\n ALLOW_DATA_ATTR = false;\n }\n if (RETURN_DOM_FRAGMENT) {\n RETURN_DOM = true;\n }\n\n /* Parse profile info */\n if (USE_PROFILES) {\n ALLOWED_TAGS = addToSet({}, text);\n ALLOWED_ATTR = [];\n if (USE_PROFILES.html === true) {\n addToSet(ALLOWED_TAGS, html$1);\n addToSet(ALLOWED_ATTR, html);\n }\n if (USE_PROFILES.svg === true) {\n addToSet(ALLOWED_TAGS, svg$1);\n addToSet(ALLOWED_ATTR, svg);\n addToSet(ALLOWED_ATTR, xml);\n }\n if (USE_PROFILES.svgFilters === true) {\n addToSet(ALLOWED_TAGS, svgFilters);\n addToSet(ALLOWED_ATTR, svg);\n addToSet(ALLOWED_ATTR, xml);\n }\n if (USE_PROFILES.mathMl === true) {\n addToSet(ALLOWED_TAGS, mathMl$1);\n addToSet(ALLOWED_ATTR, mathMl);\n addToSet(ALLOWED_ATTR, xml);\n }\n }\n\n /* Merge configuration parameters */\n if (cfg.ADD_TAGS) {\n if (ALLOWED_TAGS === DEFAULT_ALLOWED_TAGS) {\n ALLOWED_TAGS = clone(ALLOWED_TAGS);\n }\n addToSet(ALLOWED_TAGS, cfg.ADD_TAGS, transformCaseFunc);\n }\n if (cfg.ADD_ATTR) {\n if (ALLOWED_ATTR === DEFAULT_ALLOWED_ATTR) {\n ALLOWED_ATTR = clone(ALLOWED_ATTR);\n }\n addToSet(ALLOWED_ATTR, cfg.ADD_ATTR, transformCaseFunc);\n }\n if (cfg.ADD_URI_SAFE_ATTR) {\n addToSet(URI_SAFE_ATTRIBUTES, cfg.ADD_URI_SAFE_ATTR, transformCaseFunc);\n }\n if (cfg.FORBID_CONTENTS) {\n if (FORBID_CONTENTS === DEFAULT_FORBID_CONTENTS) {\n FORBID_CONTENTS = clone(FORBID_CONTENTS);\n }\n addToSet(FORBID_CONTENTS, cfg.FORBID_CONTENTS, transformCaseFunc);\n }\n\n /* Add #text in case KEEP_CONTENT is set to true */\n if (KEEP_CONTENT) {\n ALLOWED_TAGS['#text'] = true;\n }\n\n /* Add html, head and body to ALLOWED_TAGS in case WHOLE_DOCUMENT is true */\n if (WHOLE_DOCUMENT) {\n addToSet(ALLOWED_TAGS, ['html', 'head', 'body']);\n }\n\n /* Add tbody to ALLOWED_TAGS in case tables are permitted, see #286, #365 */\n if (ALLOWED_TAGS.table) {\n addToSet(ALLOWED_TAGS, ['tbody']);\n delete FORBID_TAGS.tbody;\n }\n if (cfg.TRUSTED_TYPES_POLICY) {\n if (typeof cfg.TRUSTED_TYPES_POLICY.createHTML !== 'function') {\n throw typeErrorCreate('TRUSTED_TYPES_POLICY configuration option must provide a \"createHTML\" hook.');\n }\n if (typeof cfg.TRUSTED_TYPES_POLICY.createScriptURL !== 'function') {\n throw typeErrorCreate('TRUSTED_TYPES_POLICY configuration option must provide a \"createScriptURL\" hook.');\n }\n\n // Overwrite existing TrustedTypes policy.\n trustedTypesPolicy = cfg.TRUSTED_TYPES_POLICY;\n\n // Sign local variables required by `sanitize`.\n emptyHTML = trustedTypesPolicy.createHTML('');\n } else {\n // Uninitialized policy, attempt to initialize the internal dompurify policy.\n if (trustedTypesPolicy === undefined) {\n trustedTypesPolicy = _createTrustedTypesPolicy(trustedTypes, currentScript);\n }\n\n // If creating the internal policy succeeded sign internal variables.\n if (trustedTypesPolicy !== null && typeof emptyHTML === 'string') {\n emptyHTML = trustedTypesPolicy.createHTML('');\n }\n }\n\n // Prevent further manipulation of configuration.\n // Not available in IE8, Safari 5, etc.\n if (freeze) {\n freeze(cfg);\n }\n CONFIG = cfg;\n };\n const MATHML_TEXT_INTEGRATION_POINTS = addToSet({}, ['mi', 'mo', 'mn', 'ms', 'mtext']);\n const HTML_INTEGRATION_POINTS = addToSet({}, ['foreignobject', 'desc', 'title', 'annotation-xml']);\n\n // Certain elements are allowed in both SVG and HTML\n // namespace. We need to specify them explicitly\n // so that they don't get erroneously deleted from\n // HTML namespace.\n const COMMON_SVG_AND_HTML_ELEMENTS = addToSet({}, ['title', 'style', 'font', 'a', 'script']);\n\n /* Keep track of all possible SVG and MathML tags\n * so that we can perform the namespace checks\n * correctly. */\n const ALL_SVG_TAGS = addToSet({}, [...svg$1, ...svgFilters, ...svgDisallowed]);\n const ALL_MATHML_TAGS = addToSet({}, [...mathMl$1, ...mathMlDisallowed]);\n\n /**\n * @param {Element} element a DOM element whose namespace is being checked\n * @returns {boolean} Return false if the element has a\n * namespace that a spec-compliant parser would never\n * return. Return true otherwise.\n */\n const _checkValidNamespace = function _checkValidNamespace(element) {\n let parent = getParentNode(element);\n\n // In JSDOM, if we're inside shadow DOM, then parentNode\n // can be null. We just simulate parent in this case.\n if (!parent || !parent.tagName) {\n parent = {\n namespaceURI: NAMESPACE,\n tagName: 'template'\n };\n }\n const tagName = stringToLowerCase(element.tagName);\n const parentTagName = stringToLowerCase(parent.tagName);\n if (!ALLOWED_NAMESPACES[element.namespaceURI]) {\n return false;\n }\n if (element.namespaceURI === SVG_NAMESPACE) {\n // The only way to switch from HTML namespace to SVG\n // is via <svg>. If it happens via any other tag, then\n // it should be killed.\n if (parent.namespaceURI === HTML_NAMESPACE) {\n return tagName === 'svg';\n }\n\n // The only way to switch from MathML to SVG is via`\n // svg if parent is either <annotation-xml> or MathML\n // text integration points.\n if (parent.namespaceURI === MATHML_NAMESPACE) {\n return tagName === 'svg' && (parentTagName === 'annotation-xml' || MATHML_TEXT_INTEGRATION_POINTS[parentTagName]);\n }\n\n // We only allow elements that are defined in SVG\n // spec. All others are disallowed in SVG namespace.\n return Boolean(ALL_SVG_TAGS[tagName]);\n }\n if (element.namespaceURI === MATHML_NAMESPACE) {\n // The only way to switch from HTML namespace to MathML\n // is via <math>. If it happens via any other tag, then\n // it should be killed.\n if (parent.namespaceURI === HTML_NAMESPACE) {\n return tagName === 'math';\n }\n\n // The only way to switch from SVG to MathML is via\n // <math> and HTML integration points\n if (parent.namespaceURI === SVG_NAMESPACE) {\n return tagName === 'math' && HTML_INTEGRATION_POINTS[parentTagName];\n }\n\n // We only allow elements that are defined in MathML\n // spec. All others are disallowed in MathML namespace.\n return Boolean(ALL_MATHML_TAGS[tagName]);\n }\n if (element.namespaceURI === HTML_NAMESPACE) {\n // The only way to switch from SVG to HTML is via\n // HTML integration points, and from MathML to HTML\n // is via MathML text integration points\n if (parent.namespaceURI === SVG_NAMESPACE && !HTML_INTEGRATION_POINTS[parentTagName]) {\n return false;\n }\n if (parent.namespaceURI === MATHML_NAMESPACE && !MATHML_TEXT_INTEGRATION_POINTS[parentTagName]) {\n return false;\n }\n\n // We disallow tags that are specific for MathML\n // or SVG and should never appear in HTML namespace\n return !ALL_MATHML_TAGS[tagName] && (COMMON_SVG_AND_HTML_ELEMENTS[tagName] || !ALL_SVG_TAGS[tagName]);\n }\n\n // For XHTML and XML documents that support custom namespaces\n if (PARSER_MEDIA_TYPE === 'application/xhtml+xml' && ALLOWED_NAMESPACES[element.namespaceURI]) {\n return true;\n }\n\n // The code should never reach this place (this means\n // that the element somehow got namespace that is not\n // HTML, SVG, MathML or allowed via ALLOWED_NAMESPACES).\n // Return false just in case.\n return false;\n };\n\n /**\n * _forceRemove\n *\n * @param {Node} node a DOM node\n */\n const _forceRemove = function _forceRemove(node) {\n arrayPush(DOMPurify.removed, {\n element: node\n });\n try {\n // eslint-disable-next-line unicorn/prefer-dom-node-remove\n node.parentNode.removeChild(node);\n } catch (_) {\n node.remove();\n }\n };\n\n /**\n * _removeAttribute\n *\n * @param {String} name an Attribute name\n * @param {Node} node a DOM node\n */\n const _removeAttribute = function _removeAttribute(name, node) {\n try {\n arrayPush(DOMPurify.removed, {\n attribute: node.getAttributeNode(name),\n from: node\n });\n } catch (_) {\n arrayPush(DOMPurify.removed, {\n attribute: null,\n from: node\n });\n }\n node.removeAttribute(name);\n\n // We void attribute values for unremovable \"is\"\" attributes\n if (name === 'is' && !ALLOWED_ATTR[name]) {\n if (RETURN_DOM || RETURN_DOM_FRAGMENT) {\n try {\n _forceRemove(node);\n } catch (_) {}\n } else {\n try {\n node.setAttribute(name, '');\n } catch (_) {}\n }\n }\n };\n\n /**\n * _initDocument\n *\n * @param {String} dirty a string of dirty markup\n * @return {Document} a DOM, filled with the dirty markup\n */\n const _initDocument = function _initDocument(dirty) {\n /* Create a HTML document */\n let doc = null;\n let leadingWhitespace = null;\n if (FORCE_BODY) {\n dirty = '<remove></remove>' + dirty;\n } else {\n /* If FORCE_BODY isn't used, leading whitespace needs to be preserved manually */\n const matches = stringMatch(dirty, /^[\\r\\n\\t ]+/);\n leadingWhitespace = matches && matches[0];\n }\n if (PARSER_MEDIA_TYPE === 'application/xhtml+xml' && NAMESPACE === HTML_NAMESPACE) {\n // Root of XHTML doc must contain xmlns declaration (see https://www.w3.org/TR/xhtml1/normative.html#strict)\n dirty = '<html xmlns=\"http://www.w3.org/1999/xhtml\"><head></head><body>' + dirty + '</body></html>';\n }\n const dirtyPayload = trustedTypesPolicy ? trustedTypesPolicy.createHTML(dirty) : dirty;\n /*\n * Use the DOMParser API by default, fallback later if needs be\n * DOMParser not work for svg when has multiple root element.\n */\n if (NAMESPACE === HTML_NAMESPACE) {\n try {\n doc = new DOMParser().parseFromString(dirtyPayload, PARSER_MEDIA_TYPE);\n } catch (_) {}\n }\n\n /* Use createHTMLDocument in case DOMParser is not available */\n if (!doc || !doc.documentElement) {\n doc = implementation.createDocument(NAMESPACE, 'template', null);\n try {\n doc.documentElement.innerHTML = IS_EMPTY_INPUT ? emptyHTML : dirtyPayload;\n } catch (_) {\n // Syntax error if dirtyPayload is invalid xml\n }\n }\n const body = doc.body || doc.documentElement;\n if (dirty && leadingWhitespace) {\n body.insertBefore(document.createTextNode(leadingWhitespace), body.childNodes[0] || null);\n }\n\n /* Work on whole document or just its body */\n if (NAMESPACE === HTML_NAMESPACE) {\n return getElementsByTagName.call(doc, WHOLE_DOCUMENT ? 'html' : 'body')[0];\n }\n return WHOLE_DOCUMENT ? doc.documentElement : body;\n };\n\n /**\n * Creates a NodeIterator object that you can use to traverse filtered lists of nodes or elements in a document.\n *\n * @param {Node} root The root element or node to start traversing on.\n * @return {NodeIterator} The created NodeIterator\n */\n const _createNodeIterator = function _createNodeIterator(root) {\n return createNodeIterator.call(root.ownerDocument || root, root,\n // eslint-disable-next-line no-bitwise\n NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_COMMENT | NodeFilter.SHOW_TEXT | NodeFilter.SHOW_PROCESSING_INSTRUCTION | NodeFilter.SHOW_CDATA_SECTION, null);\n };\n\n /**\n * _isClobbered\n *\n * @param {Node} elm element to check for clobbering attacks\n * @return {Boolean} true if clobbered, false if safe\n */\n const _isClobbered = function _isClobbered(elm) {\n return elm instanceof HTMLFormElement && (\n // eslint-disable-next-line unicorn/no-typeof-undefined\n typeof elm.__depth !== 'undefined' && typeof elm.__depth !== 'number' ||\n // eslint-disable-next-line unicorn/no-typeof-undefined\n typeof elm.__removalCount !== 'undefined' && typeof elm.__removalCount !== 'number' || typeof elm.nodeName !== 'string' || typeof elm.textContent !== 'string' || typeof elm.removeChild !== 'function' || !(elm.attributes instanceof NamedNodeMap) || typeof elm.removeAttribute !== 'function' || typeof elm.setAttribute !== 'function' || typeof elm.namespaceURI !== 'string' || typeof elm.insertBefore !== 'function' || typeof elm.hasChildNodes !== 'function');\n };\n\n /**\n * Checks whether the given object is a DOM node.\n *\n * @param {Node} object object to check whether it's a DOM node\n * @return {Boolean} true is object is a DOM node\n */\n const _isNode = function _isNode(object) {\n return typeof Node === 'function' && object instanceof Node;\n };\n\n /**\n * _executeHook\n * Execute user configurable hooks\n *\n * @param {String} entryPoint Name of the hook's entry point\n * @param {Node} currentNode node to work on with the hook\n * @param {Object} data additional hook parameters\n */\n const _executeHook = function _executeHook(entryPoint, currentNode, data) {\n if (!hooks[entryPoint]) {\n return;\n }\n arrayForEach(hooks[entryPoint], hook => {\n hook.call(DOMPurify, currentNode, data, CONFIG);\n });\n };\n\n /**\n * _sanitizeElements\n *\n * @protect nodeName\n * @protect textContent\n * @protect removeChild\n *\n * @param {Node} currentNode to check for permission to exist\n * @return {Boolean} true if node was killed, false if left alive\n */\n const _sanitizeElements = function _sanitizeElements(currentNode) {\n let content = null;\n\n /* Execute a hook if present */\n _executeHook('beforeSanitizeElements', currentNode, null);\n\n /* Check if element is clobbered or can clobber */\n if (_isClobbered(currentNode)) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Now let's check the element's type and name */\n const tagName = transformCaseFunc(currentNode.nodeName);\n\n /* Execute a hook if present */\n _executeHook('uponSanitizeElement', currentNode, {\n tagName,\n allowedTags: ALLOWED_TAGS\n });\n\n /* Detect mXSS attempts abusing namespace confusion */\n if (currentNode.hasChildNodes() && !_isNode(currentNode.firstElementChild) && regExpTest(/<[/\\w]/g, currentNode.innerHTML) && regExpTest(/<[/\\w]/g, currentNode.textContent)) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Remove any ocurrence of processing instructions */\n if (currentNode.nodeType === 7) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Remove any kind of possibly harmful comments */\n if (SAFE_FOR_XML && currentNode.nodeType === 8 && regExpTest(/<[/\\w]/g, currentNode.data)) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Remove element if anything forbids its presence */\n if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {\n /* Check if we have a custom element to handle */\n if (!FORBID_TAGS[tagName] && _isBasicCustomElement(tagName)) {\n if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, tagName)) {\n return false;\n }\n if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(tagName)) {\n return false;\n }\n }\n\n /* Keep content except for bad-listed elements */\n if (KEEP_CONTENT && !FORBID_CONTENTS[tagName]) {\n const parentNode = getParentNode(currentNode) || currentNode.parentNode;\n const childNodes = getChildNodes(currentNode) || currentNode.childNodes;\n if (childNodes && parentNode) {\n const childCount = childNodes.length;\n for (let i = childCount - 1; i >= 0; --i) {\n const childClone = cloneNode(childNodes[i], true);\n childClone.__removalCount = (currentNode.__removalCount || 0) + 1;\n parentNode.insertBefore(childClone, getNextSibling(currentNode));\n }\n }\n }\n _forceRemove(currentNode);\n return true;\n }\n\n /* Check whether element has a valid namespace */\n if (currentNode instanceof Element && !_checkValidNamespace(currentNode)) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Make sure that older browsers don't get fallback-tag mXSS */\n if ((tagName === 'noscript' || tagName === 'noembed' || tagName === 'noframes') && regExpTest(/<\\/no(script|embed|frames)/i, currentNode.innerHTML)) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Sanitize element content to be template-safe */\n if (SAFE_FOR_TEMPLATES && currentNode.nodeType === 3) {\n /* Get the element's text content */\n content = currentNode.textContent;\n arrayForEach([MUSTACHE_EXPR, ERB_EXPR, TMPLIT_EXPR], expr => {\n content = stringReplace(content, expr, ' ');\n });\n if (currentNode.textContent !== content) {\n arrayPush(DOMPurify.removed, {\n element: currentNode.cloneNode()\n });\n currentNode.textContent = content;\n }\n }\n\n /* Execute a hook if present */\n _executeHook('afterSanitizeElements', currentNode, null);\n return false;\n };\n\n /**\n * _isValidAttribute\n *\n * @param {string} lcTag Lowercase tag name of containing element.\n * @param {string} lcName Lowercase attribute name.\n * @param {string} value Attribute value.\n * @return {Boolean} Returns true if `value` is valid, otherwise false.\n */\n // eslint-disable-next-line complexity\n const _isValidAttribute = function _isValidAttribute(lcTag, lcName, value) {\n /* Make sure attribute cannot clobber */\n if (SANITIZE_DOM && (lcName === 'id' || lcName === 'name') && (value in document || value in formElement)) {\n return false;\n }\n\n /* Allow valid data-* attributes: At least one character after \"-\"\n (https://html.spec.whatwg.org/multipage/dom.html#embedding-custom-non-visible-data-with-the-data-*-attributes)\n XML-compatible (https://html.spec.whatwg.org/multipage/infrastructure.html#xml-compatible and http://www.w3.org/TR/xml/#d0e804)\n We don't need to check the value; it's always URI safe. */\n if (ALLOW_DATA_ATTR && !FORBID_ATTR[lcName] && regExpTest(DATA_ATTR, lcName)) ; else if (ALLOW_ARIA_ATTR && regExpTest(ARIA_ATTR, lcName)) ; else if (!ALLOWED_ATTR[lcName] || FORBID_ATTR[lcName]) {\n if (\n // First condition does a very basic check if a) it's basically a valid custom element tagname AND\n // b) if the tagName passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck\n // and c) if the attribute name passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.attributeNameCheck\n _isBasicCustomElement(lcTag) && (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, lcTag) || CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(lcTag)) && (CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.attributeNameCheck, lcName) || CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.attributeNameCheck(lcName)) ||\n // Alternative, second condition checks if it's an `is`-attribute, AND\n // the value passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck\n lcName === 'is' && CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements && (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, value) || CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(value))) ; else {\n return false;\n }\n /* Check value is safe. First, is attr inert? If so, is safe */\n } else if (URI_SAFE_ATTRIBUTES[lcName]) ; else if (regExpTest(IS_ALLOWED_URI$1, stringReplace(value, ATTR_WHITESPACE, ''))) ; else if ((lcName === 'src' || lcName === 'xlink:href' || lcName === 'href') && lcTag !== 'script' && stringIndexOf(value, 'data:') === 0 && DATA_URI_TAGS[lcTag]) ; else if (ALLOW_UNKNOWN_PROTOCOLS && !regExpTest(IS_SCRIPT_OR_DATA, stringReplace(value, ATTR_WHITESPACE, ''))) ; else if (value) {\n return false;\n } else ;\n return true;\n };\n\n /**\n * _isBasicCustomElement\n * checks if at least one dash is included in tagName, and it's not the first char\n * for more sophisticated checking see https://github.com/sindresorhus/validate-element-name\n *\n * @param {string} tagName name of the tag of the node to sanitize\n * @returns {boolean} Returns true if the tag name meets the basic criteria for a custom element, otherwise false.\n */\n const _isBasicCustomElement = function _isBasicCustomElement(tagName) {\n return tagName !== 'annotation-xml' && stringMatch(tagName, CUSTOM_ELEMENT);\n };\n\n /**\n * _sanitizeAttributes\n *\n * @protect attributes\n * @protect nodeName\n * @protect removeAttribute\n * @protect setAttribute\n *\n * @param {Node} currentNode to sanitize\n */\n const _sanitizeAttributes = function _sanitizeAttributes(currentNode) {\n /* Execute a hook if present */\n _executeHook('beforeSanitizeAttributes', currentNode, null);\n const {\n attributes\n } = currentNode;\n\n /* Check if we have attributes; if not we might have a text node */\n if (!attributes) {\n return;\n }\n const hookEvent = {\n attrName: '',\n attrValue: '',\n keepAttr: true,\n allowedAttributes: ALLOWED_ATTR\n };\n let l = attributes.length;\n\n /* Go backwards over all attributes; safely remove bad ones */\n while (l--) {\n const attr = attributes[l];\n const {\n name,\n namespaceURI,\n value: attrValue\n } = attr;\n const lcName = transformCaseFunc(name);\n let value = name === 'value' ? attrValue : stringTrim(attrValue);\n\n /* Execute a hook if present */\n hookEvent.attrName = lcName;\n hookEvent.attrValue = value;\n hookEvent.keepAttr = true;\n hookEvent.forceKeepAttr = undefined; // Allows developers to see this is a property they can set\n _executeHook('uponSanitizeAttribute', currentNode, hookEvent);\n value = hookEvent.attrValue;\n /* Did the hooks approve of the attribute? */\n if (hookEvent.forceKeepAttr) {\n continue;\n }\n\n /* Remove attribute */\n _removeAttribute(name, currentNode);\n\n /* Did the hooks approve of the attribute? */\n if (!hookEvent.keepAttr) {\n continue;\n }\n\n /* Work around a security issue in jQuery 3.0 */\n if (!ALLOW_SELF_CLOSE_IN_ATTR && regExpTest(/\\/>/i, value)) {\n _removeAttribute(name, currentNode);\n continue;\n }\n\n /* Sanitize attribute content to be template-safe */\n if (SAFE_FOR_TEMPLATES) {\n arrayForEach([MUSTACHE_EXPR, ERB_EXPR, TMPLIT_EXPR], expr => {\n value = stringReplace(value, expr, ' ');\n });\n }\n\n /* Is `value` valid for this attribute? */\n const lcTag = transformCaseFunc(currentNode.nodeName);\n if (!_isValidAttribute(lcTag, lcName, value)) {\n continue;\n }\n\n /* Full DOM Clobbering protection via namespace isolation,\n * Prefix id and name attributes with `user-content-`\n */\n if (SANITIZE_NAMED_PROPS && (lcName === 'id' || lcName === 'name')) {\n // Remove the attribute with this value\n _removeAttribute(name, currentNode);\n\n // Prefix the value and later re-create the attribute with the sanitized value\n value = SANITIZE_NAMED_PROPS_PREFIX + value;\n }\n\n /* Handle attributes that require Trusted Types */\n if (trustedTypesPolicy && typeof trustedTypes === 'object' && typeof trustedTypes.getAttributeType === 'function') {\n if (namespaceURI) ; else {\n switch (trustedTypes.getAttributeType(lcTag, lcName)) {\n case 'TrustedHTML':\n {\n value = trustedTypesPolicy.createHTML(value);\n break;\n }\n case 'TrustedScriptURL':\n {\n value = trustedTypesPolicy.createScriptURL(value);\n break;\n }\n }\n }\n }\n\n /* Handle invalid data-* attribute set by try-catching it */\n try {\n if (namespaceURI) {\n currentNode.setAttributeNS(namespaceURI, name, value);\n } else {\n /* Fallback to setAttribute() for browser-unrecognized namespaces e.g. \"x-schema\". */\n currentNode.setAttribute(name, value);\n }\n arrayPop(DOMPurify.removed);\n } catch (_) {}\n }\n\n /* Execute a hook if present */\n _executeHook('afterSanitizeAttributes', currentNode, null);\n };\n\n /**\n * _sanitizeShadowDOM\n *\n * @param {DocumentFragment} fragment to iterate over recursively\n */\n const _sanitizeShadowDOM = function _sanitizeShadowDOM(fragment) {\n let shadowNode = null;\n const shadowIterator = _createNodeIterator(fragment);\n\n /* Execute a hook if present */\n _executeHook('beforeSanitizeShadowDOM', fragment, null);\n while (shadowNode = shadowIterator.nextNode()) {\n /* Execute a hook if present */\n _executeHook('uponSanitizeShadowNode', shadowNode, null);\n\n /* Sanitize tags and elements */\n if (_sanitizeElements(shadowNode)) {\n continue;\n }\n\n /* Set the nesting depth of an element */\n if (shadowNode.nodeType === 1) {\n if (shadowNode.parentNode && shadowNode.parentNode.__depth) {\n /*\n We want the depth of the node in the original tree, which can\n change when it's removed from its parent.\n */\n shadowNode.__depth = (shadowNode.__removalCount || 0) + shadowNode.parentNode.__depth + 1;\n } else {\n shadowNode.__depth = 1;\n }\n }\n\n /* Remove an element if nested too deeply to avoid mXSS */\n if (shadowNode.__depth >= MAX_NESTING_DEPTH) {\n _forceRemove(shadowNode);\n }\n\n /* Deep shadow DOM detected */\n if (shadowNode.content instanceof DocumentFragment) {\n shadowNode.content.__depth = shadowNode.__depth;\n _sanitizeShadowDOM(shadowNode.content);\n }\n\n /* Check attributes, sanitize if necessary */\n _sanitizeAttributes(shadowNode);\n }\n\n /* Execute a hook if present */\n _executeHook('afterSanitizeShadowDOM', fragment, null);\n };\n\n /**\n * Sanitize\n * Public method providing core sanitation functionality\n *\n * @param {String|Node} dirty string or DOM node\n * @param {Object} cfg object\n */\n // eslint-disable-next-line complexity\n DOMPurify.sanitize = function (dirty) {\n let cfg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n let body = null;\n let importedNode = null;\n let currentNode = null;\n let returnNode = null;\n /* Make sure we have a string to sanitize.\n DO NOT return early, as this will return the wrong type if\n the user has requested a DOM object rather than a string */\n IS_EMPTY_INPUT = !dirty;\n if (IS_EMPTY_INPUT) {\n dirty = '<!-->';\n }\n\n /* Stringify, in case dirty is an object */\n if (typeof dirty !== 'string' && !_isNode(dirty)) {\n if (typeof dirty.toString === 'function') {\n dirty = dirty.toString();\n if (typeof dirty !== 'string') {\n throw typeErrorCreate('dirty is not a string, aborting');\n }\n } else {\n throw typeErrorCreate('toString is not a function');\n }\n }\n\n /* Return dirty HTML if DOMPurify cannot run */\n if (!DOMPurify.isSupported) {\n return dirty;\n }\n\n /* Assign config vars */\n if (!SET_CONFIG) {\n _parseConfig(cfg);\n }\n\n /* Clean up removed elements */\n DOMPurify.removed = [];\n\n /* Check if dirty is correctly typed for IN_PLACE */\n if (typeof dirty === 'string') {\n IN_PLACE = false;\n }\n if (IN_PLACE) {\n /* Do some early pre-sanitization to avoid unsafe root nodes */\n if (dirty.nodeName) {\n const tagName = transformCaseFunc(dirty.nodeName);\n if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {\n throw typeErrorCreate('root node is forbidden and cannot be sanitized in-place');\n }\n }\n } else if (dirty instanceof Node) {\n /* If dirty is a DOM element, append to an empty document to avoid\n elements being stripped by the parser */\n body = _initDocument('<!---->');\n importedNode = body.ownerDocument.importNode(dirty, true);\n if (importedNode.nodeType === 1 && importedNode.nodeName === 'BODY') {\n /* Node is already a body, use as is */\n body = importedNode;\n } else if (importedNode.nodeName === 'HTML') {\n body = importedNode;\n } else {\n // eslint-disable-next-line unicorn/prefer-dom-node-append\n body.appendChild(importedNode);\n }\n } else {\n /* Exit directly if we have nothing to do */\n if (!RETURN_DOM && !SAFE_FOR_TEMPLATES && !WHOLE_DOCUMENT &&\n // eslint-disable-next-line unicorn/prefer-includes\n dirty.indexOf('<') === -1) {\n return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(dirty) : dirty;\n }\n\n /* Initialize the document to work on */\n body = _initDocument(dirty);\n\n /* Check we have a DOM node from the data */\n if (!body) {\n return RETURN_DOM ? null : RETURN_TRUSTED_TYPE ? emptyHTML : '';\n }\n }\n\n /* Remove first element node (ours) if FORCE_BODY is set */\n if (body && FORCE_BODY) {\n _forceRemove(body.firstChild);\n }\n\n /* Get node iterator */\n const nodeIterator = _createNodeIterator(IN_PLACE ? dirty : body);\n\n /* Now start iterating over the created document */\n while (currentNode = nodeIterator.nextNode()) {\n /* Sanitize tags and elements */\n if (_sanitizeElements(currentNode)) {\n continue;\n }\n\n /* Set the nesting depth of an element */\n if (currentNode.nodeType === 1) {\n if (currentNode.parentNode && currentNode.parentNode.__depth) {\n /*\n We want the depth of the node in the original tree, which can\n change when it's removed from its parent.\n */\n currentNode.__depth = (currentNode.__removalCount || 0) + currentNode.parentNode.__depth + 1;\n } else {\n currentNode.__depth = 1;\n }\n }\n\n /* Remove an element if nested too deeply to avoid mXSS */\n if (currentNode.__depth >= MAX_NESTING_DEPTH) {\n _forceRemove(currentNode);\n }\n\n /* Shadow DOM detected, sanitize it */\n if (currentNode.content instanceof DocumentFragment) {\n currentNode.content.__depth = currentNode.__depth;\n _sanitizeShadowDOM(currentNode.content);\n }\n\n /* Check attributes, sanitize if necessary */\n _sanitizeAttributes(currentNode);\n }\n\n /* If we sanitized `dirty` in-place, return it. */\n if (IN_PLACE) {\n return dirty;\n }\n\n /* Return sanitized string or DOM */\n if (RETURN_DOM) {\n if (RETURN_DOM_FRAGMENT) {\n returnNode = createDocumentFragment.call(body.ownerDocument);\n while (body.firstChild) {\n // eslint-disable-next-line unicorn/prefer-dom-node-append\n returnNode.appendChild(body.firstChild);\n }\n } else {\n returnNode = body;\n }\n if (ALLOWED_ATTR.shadowroot || ALLOWED_ATTR.shadowrootmode) {\n /*\n AdoptNode() is not used because internal state is not reset\n (e.g. the past names map of a HTMLFormElement), this is safe\n in theory but we would rather not risk another attack vector.\n The state that is cloned by importNode() is explicitly defined\n by the specs.\n */\n returnNode = importNode.call(originalDocument, returnNode, true);\n }\n return returnNode;\n }\n let serializedHTML = WHOLE_DOCUMENT ? body.outerHTML : body.innerHTML;\n\n /* Serialize doctype if allowed */\n if (WHOLE_DOCUMENT && ALLOWED_TAGS['!doctype'] && body.ownerDocument && body.ownerDocument.doctype && body.ownerDocument.doctype.name && regExpTest(DOCTYPE_NAME, body.ownerDocument.doctype.name)) {\n serializedHTML = '<!DOCTYPE ' + body.ownerDocument.doctype.name + '>\\n' + serializedHTML;\n }\n\n /* Sanitize final string template-safe */\n if (SAFE_FOR_TEMPLATES) {\n arrayForEach([MUSTACHE_EXPR, ERB_EXPR, TMPLIT_EXPR], expr => {\n serializedHTML = stringReplace(serializedHTML, expr, ' ');\n });\n }\n return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(serializedHTML) : serializedHTML;\n };\n\n /**\n * Public method to set the configuration once\n * setConfig\n *\n * @param {Object} cfg configuration object\n */\n DOMPurify.setConfig = function () {\n let cfg = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n _parseConfig(cfg);\n SET_CONFIG = true;\n };\n\n /**\n * Public method to remove the configuration\n * clearConfig\n *\n */\n DOMPurify.clearConfig = function () {\n CONFIG = null;\n SET_CONFIG = false;\n };\n\n /**\n * Public method to check if an attribute value is valid.\n * Uses last set config, if any. Otherwise, uses config defaults.\n * isValidAttribute\n *\n * @param {String} tag Tag name of containing element.\n * @param {String} attr Attribute name.\n * @param {String} value Attribute value.\n * @return {Boolean} Returns true if `value` is valid. Otherwise, returns false.\n */\n DOMPurify.isValidAttribute = function (tag, attr, value) {\n /* Initialize shared config vars if necessary. */\n if (!CONFIG) {\n _parseConfig({});\n }\n const lcTag = transformCaseFunc(tag);\n const lcName = transformCaseFunc(attr);\n return _isValidAttribute(lcTag, lcName, value);\n };\n\n /**\n * AddHook\n * Public method to add DOMPurify hooks\n *\n * @param {String} entryPoint entry point for the hook to add\n * @param {Function} hookFunction function to execute\n */\n DOMPurify.addHook = function (entryPoint, hookFunction) {\n if (typeof hookFunction !== 'function') {\n return;\n }\n hooks[entryPoint] = hooks[entryPoint] || [];\n arrayPush(hooks[entryPoint], hookFunction);\n };\n\n /**\n * RemoveHook\n * Public method to remove a DOMPurify hook at a given entryPoint\n * (pops it from the stack of hooks if more are present)\n *\n * @param {String} entryPoint entry point for the hook to remove\n * @return {Function} removed(popped) hook\n */\n DOMPurify.removeHook = function (entryPoint) {\n if (hooks[entryPoint]) {\n return arrayPop(hooks[entryPoint]);\n }\n };\n\n /**\n * RemoveHooks\n * Public method to remove all DOMPurify hooks at a given entryPoint\n *\n * @param {String} entryPoint entry point for the hooks to remove\n */\n DOMPurify.removeHooks = function (entryPoint) {\n if (hooks[entryPoint]) {\n hooks[entryPoint] = [];\n }\n };\n\n /**\n * RemoveAllHooks\n * Public method to remove all DOMPurify hooks\n */\n DOMPurify.removeAllHooks = function () {\n hooks = {};\n };\n return DOMPurify;\n }\n var purify = createDOMPurify();\n\n return purify;\n\n}));\n//# sourceMappingURL=purify.js.map\n","// Copyright (c) 2013 Pieroxy <pieroxy@pieroxy.net>\n// This work is free. You can redistribute it and/or modify it\n// under the terms of the WTFPL, Version 2\n// For more information see LICENSE.txt or http://www.wtfpl.net/\n//\n// For more information, the home page:\n// http://pieroxy.net/blog/pages/lz-string/testing.html\n//\n// LZ-based compression algorithm, version 1.4.5\nvar LZString = (function() {\n\n// private property\nvar f = String.fromCharCode;\nvar keyStrBase64 = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\nvar keyStrUriSafe = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-$\";\nvar baseReverseDic = {};\n\nfunction getBaseValue(alphabet, character) {\n if (!baseReverseDic[alphabet]) {\n baseReverseDic[alphabet] = {};\n for (var i=0 ; i<alphabet.length ; i++) {\n baseReverseDic[alphabet][alphabet.charAt(i)] = i;\n }\n }\n return baseReverseDic[alphabet][character];\n}\n\nvar LZString = {\n compressToBase64 : function (input) {\n if (input == null) return \"\";\n var res = LZString._compress(input, 6, function(a){return keyStrBase64.charAt(a);});\n switch (res.length % 4) { // To produce valid Base64\n default: // When could this happen ?\n case 0 : return res;\n case 1 : return res+\"===\";\n case 2 : return res+\"==\";\n case 3 : return res+\"=\";\n }\n },\n\n decompressFromBase64 : function (input) {\n if (input == null) return \"\";\n if (input == \"\") return null;\n return LZString._decompress(input.length, 32, function(index) { return getBaseValue(keyStrBase64, input.charAt(index)); });\n },\n\n compressToUTF16 : function (input) {\n if (input == null) return \"\";\n return LZString._compress(input, 15, function(a){return f(a+32);}) + \" \";\n },\n\n decompressFromUTF16: function (compressed) {\n if (compressed == null) return \"\";\n if (compressed == \"\") return null;\n return LZString._decompress(compressed.length, 16384, function(index) { return compressed.charCodeAt(index) - 32; });\n },\n\n //compress into uint8array (UCS-2 big endian format)\n compressToUint8Array: function (uncompressed) {\n var compressed = LZString.compress(uncompressed);\n var buf=new Uint8Array(compressed.length*2); // 2 bytes per character\n\n for (var i=0, TotalLen=compressed.length; i<TotalLen; i++) {\n var current_value = compressed.charCodeAt(i);\n buf[i*2] = current_value >>> 8;\n buf[i*2+1] = current_value % 256;\n }\n return buf;\n },\n\n //decompress from uint8array (UCS-2 big endian format)\n decompressFromUint8Array:function (compressed) {\n if (compressed===null || compressed===undefined){\n return LZString.decompress(compressed);\n } else {\n var buf=new Array(compressed.length/2); // 2 bytes per character\n for (var i=0, TotalLen=buf.length; i<TotalLen; i++) {\n buf[i]=compressed[i*2]*256+compressed[i*2+1];\n }\n\n var result = [];\n buf.forEach(function (c) {\n result.push(f(c));\n });\n return LZString.decompress(result.join(''));\n\n }\n\n },\n\n\n //compress into a string that is already URI encoded\n compressToEncodedURIComponent: function (input) {\n if (input == null) return \"\";\n return LZString._compress(input, 6, function(a){return keyStrUriSafe.charAt(a);});\n },\n\n //decompress from an output of compressToEncodedURIComponent\n decompressFromEncodedURIComponent:function (input) {\n if (input == null) return \"\";\n if (input == \"\") return null;\n input = input.replace(/ /g, \"+\");\n return LZString._decompress(input.length, 32, function(index) { return getBaseValue(keyStrUriSafe, input.charAt(index)); });\n },\n\n compress: function (uncompressed) {\n return LZString._compress(uncompressed, 16, function(a){return f(a);});\n },\n _compress: function (uncompressed, bitsPerChar, getCharFromInt) {\n if (uncompressed == null) return \"\";\n var i, value,\n context_dictionary= {},\n context_dictionaryToCreate= {},\n context_c=\"\",\n context_wc=\"\",\n context_w=\"\",\n context_enlargeIn= 2, // Compensate for the first entry which should not count\n context_dictSize= 3,\n context_numBits= 2,\n context_data=[],\n context_data_val=0,\n context_data_position=0,\n ii;\n\n for (ii = 0; ii < uncompressed.length; ii += 1) {\n context_c = uncompressed.charAt(ii);\n if (!Object.prototype.hasOwnProperty.call(context_dictionary,context_c)) {\n context_dictionary[context_c] = context_dictSize++;\n context_dictionaryToCreate[context_c] = true;\n }\n\n context_wc = context_w + context_c;\n if (Object.prototype.hasOwnProperty.call(context_dictionary,context_wc)) {\n context_w = context_wc;\n } else {\n if (Object.prototype.hasOwnProperty.call(context_dictionaryToCreate,context_w)) {\n if (context_w.charCodeAt(0)<256) {\n for (i=0 ; i<context_numBits ; i++) {\n context_data_val = (context_data_val << 1);\n if (context_data_position == bitsPerChar-1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n }\n value = context_w.charCodeAt(0);\n for (i=0 ; i<8 ; i++) {\n context_data_val = (context_data_val << 1) | (value&1);\n if (context_data_position == bitsPerChar-1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n value = value >> 1;\n }\n } else {\n value = 1;\n for (i=0 ; i<context_numBits ; i++) {\n context_data_val = (context_data_val << 1) | value;\n if (context_data_position ==bitsPerChar-1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n value = 0;\n }\n value = context_w.charCodeAt(0);\n for (i=0 ; i<16 ; i++) {\n context_data_val = (context_data_val << 1) | (value&1);\n if (context_data_position == bitsPerChar-1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n value = value >> 1;\n }\n }\n context_enlargeIn--;\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits);\n context_numBits++;\n }\n delete context_dictionaryToCreate[context_w];\n } else {\n value = context_dictionary[context_w];\n for (i=0 ; i<context_numBits ; i++) {\n context_data_val = (context_data_val << 1) | (value&1);\n if (context_data_position == bitsPerChar-1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n value = value >> 1;\n }\n\n\n }\n context_enlargeIn--;\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits);\n context_numBits++;\n }\n // Add wc to the dictionary.\n context_dictionary[context_wc] = context_dictSize++;\n context_w = String(context_c);\n }\n }\n\n // Output the code for w.\n if (context_w !== \"\") {\n if (Object.prototype.hasOwnProperty.call(context_dictionaryToCreate,context_w)) {\n if (context_w.charCodeAt(0)<256) {\n for (i=0 ; i<context_numBits ; i++) {\n context_data_val = (context_data_val << 1);\n if (context_data_position == bitsPerChar-1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n }\n value = context_w.charCodeAt(0);\n for (i=0 ; i<8 ; i++) {\n context_data_val = (context_data_val << 1) | (value&1);\n if (context_data_position == bitsPerChar-1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n value = value >> 1;\n }\n } else {\n value = 1;\n for (i=0 ; i<context_numBits ; i++) {\n context_data_val = (context_data_val << 1) | value;\n if (context_data_position == bitsPerChar-1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n value = 0;\n }\n value = context_w.charCodeAt(0);\n for (i=0 ; i<16 ; i++) {\n context_data_val = (context_data_val << 1) | (value&1);\n if (context_data_position == bitsPerChar-1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n value = value >> 1;\n }\n }\n context_enlargeIn--;\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits);\n context_numBits++;\n }\n delete context_dictionaryToCreate[context_w];\n } else {\n value = context_dictionary[context_w];\n for (i=0 ; i<context_numBits ; i++) {\n context_data_val = (context_data_val << 1) | (value&1);\n if (context_data_position == bitsPerChar-1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n value = value >> 1;\n }\n\n\n }\n context_enlargeIn--;\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits);\n context_numBits++;\n }\n }\n\n // Mark the end of the stream\n value = 2;\n for (i=0 ; i<context_numBits ; i++) {\n context_data_val = (context_data_val << 1) | (value&1);\n if (context_data_position == bitsPerChar-1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n value = value >> 1;\n }\n\n // Flush the last char\n while (true) {\n context_data_val = (context_data_val << 1);\n if (context_data_position == bitsPerChar-1) {\n context_data.push(getCharFromInt(context_data_val));\n break;\n }\n else context_data_position++;\n }\n return context_data.join('');\n },\n\n decompress: function (compressed) {\n if (compressed == null) return \"\";\n if (compressed == \"\") return null;\n return LZString._decompress(compressed.length, 32768, function(index) { return compressed.charCodeAt(index); });\n },\n\n _decompress: function (length, resetValue, getNextValue) {\n var dictionary = [],\n next,\n enlargeIn = 4,\n dictSize = 4,\n numBits = 3,\n entry = \"\",\n result = [],\n i,\n w,\n bits, resb, maxpower, power,\n c,\n data = {val:getNextValue(0), position:resetValue, index:1};\n\n for (i = 0; i < 3; i += 1) {\n dictionary[i] = i;\n }\n\n bits = 0;\n maxpower = Math.pow(2,2);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n\n switch (next = bits) {\n case 0:\n bits = 0;\n maxpower = Math.pow(2,8);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n c = f(bits);\n break;\n case 1:\n bits = 0;\n maxpower = Math.pow(2,16);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n c = f(bits);\n break;\n case 2:\n return \"\";\n }\n dictionary[3] = c;\n w = c;\n result.push(c);\n while (true) {\n if (data.index > length) {\n return \"\";\n }\n\n bits = 0;\n maxpower = Math.pow(2,numBits);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n\n switch (c = bits) {\n case 0:\n bits = 0;\n maxpower = Math.pow(2,8);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n\n dictionary[dictSize++] = f(bits);\n c = dictSize-1;\n enlargeIn--;\n break;\n case 1:\n bits = 0;\n maxpower = Math.pow(2,16);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n dictionary[dictSize++] = f(bits);\n c = dictSize-1;\n enlargeIn--;\n break;\n case 2:\n return result.join('');\n }\n\n if (enlargeIn == 0) {\n enlargeIn = Math.pow(2, numBits);\n numBits++;\n }\n\n if (dictionary[c]) {\n entry = dictionary[c];\n } else {\n if (c === dictSize) {\n entry = w + w.charAt(0);\n } else {\n return null;\n }\n }\n result.push(entry);\n\n // Add w+entry[0] to the dictionary.\n dictionary[dictSize++] = w + entry.charAt(0);\n enlargeIn--;\n\n w = entry;\n\n if (enlargeIn == 0) {\n enlargeIn = Math.pow(2, numBits);\n numBits++;\n }\n\n }\n }\n};\n return LZString;\n})();\n\nif (typeof define === 'function' && define.amd) {\n define(function () { return LZString; });\n} else if( typeof module !== 'undefined' && module != null ) {\n module.exports = LZString\n} else if( typeof angular !== 'undefined' && angular != null ) {\n angular.module('LZString', [])\n .factory('LZString', function () {\n return LZString;\n });\n}\n","/**!\n * Sortable 1.10.2\n * @author\tRubaXa <trash@rubaxa.org>\n * @author\towenm <owen23355@gmail.com>\n * @license MIT\n */\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];\n\n return arr2;\n }\n}\n\nfunction _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n\nvar version = \"1.10.2\";\n\nfunction userAgent(pattern) {\n if (typeof window !== 'undefined' && window.navigator) {\n return !!\n /*@__PURE__*/\n navigator.userAgent.match(pattern);\n }\n}\n\nvar IE11OrLess = userAgent(/(?:Trident.*rv[ :]?11\\.|msie|iemobile|Windows Phone)/i);\nvar Edge = userAgent(/Edge/i);\nvar FireFox = userAgent(/firefox/i);\nvar Safari = userAgent(/safari/i) && !userAgent(/chrome/i) && !userAgent(/android/i);\nvar IOS = userAgent(/iP(ad|od|hone)/i);\nvar ChromeForAndroid = userAgent(/chrome/i) && userAgent(/android/i);\n\nvar captureMode = {\n capture: false,\n passive: false\n};\n\nfunction on(el, event, fn) {\n el.addEventListener(event, fn, !IE11OrLess && captureMode);\n}\n\nfunction off(el, event, fn) {\n el.removeEventListener(event, fn, !IE11OrLess && captureMode);\n}\n\nfunction matches(\n/**HTMLElement*/\nel,\n/**String*/\nselector) {\n if (!selector) return;\n selector[0] === '>' && (selector = selector.substring(1));\n\n if (el) {\n try {\n if (el.matches) {\n return el.matches(selector);\n } else if (el.msMatchesSelector) {\n return el.msMatchesSelector(selector);\n } else if (el.webkitMatchesSelector) {\n return el.webkitMatchesSelector(selector);\n }\n } catch (_) {\n return false;\n }\n }\n\n return false;\n}\n\nfunction getParentOrHost(el) {\n return el.host && el !== document && el.host.nodeType ? el.host : el.parentNode;\n}\n\nfunction closest(\n/**HTMLElement*/\nel,\n/**String*/\nselector,\n/**HTMLElement*/\nctx, includeCTX) {\n if (el) {\n ctx = ctx || document;\n\n do {\n if (selector != null && (selector[0] === '>' ? el.parentNode === ctx && matches(el, selector) : matches(el, selector)) || includeCTX && el === ctx) {\n return el;\n }\n\n if (el === ctx) break;\n /* jshint boss:true */\n } while (el = getParentOrHost(el));\n }\n\n return null;\n}\n\nvar R_SPACE = /\\s+/g;\n\nfunction toggleClass(el, name, state) {\n if (el && name) {\n if (el.classList) {\n el.classList[state ? 'add' : 'remove'](name);\n } else {\n var className = (' ' + el.className + ' ').replace(R_SPACE, ' ').replace(' ' + name + ' ', ' ');\n el.className = (className + (state ? ' ' + name : '')).replace(R_SPACE, ' ');\n }\n }\n}\n\nfunction css(el, prop, val) {\n var style = el && el.style;\n\n if (style) {\n if (val === void 0) {\n if (document.defaultView && document.defaultView.getComputedStyle) {\n val = document.defaultView.getComputedStyle(el, '');\n } else if (el.currentStyle) {\n val = el.currentStyle;\n }\n\n return prop === void 0 ? val : val[prop];\n } else {\n if (!(prop in style) && prop.indexOf('webkit') === -1) {\n prop = '-webkit-' + prop;\n }\n\n style[prop] = val + (typeof val === 'string' ? '' : 'px');\n }\n }\n}\n\nfunction matrix(el, selfOnly) {\n var appliedTransforms = '';\n\n if (typeof el === 'string') {\n appliedTransforms = el;\n } else {\n do {\n var transform = css(el, 'transform');\n\n if (transform && transform !== 'none') {\n appliedTransforms = transform + ' ' + appliedTransforms;\n }\n /* jshint boss:true */\n\n } while (!selfOnly && (el = el.parentNode));\n }\n\n var matrixFn = window.DOMMatrix || window.WebKitCSSMatrix || window.CSSMatrix || window.MSCSSMatrix;\n /*jshint -W056 */\n\n return matrixFn && new matrixFn(appliedTransforms);\n}\n\nfunction find(ctx, tagName, iterator) {\n if (ctx) {\n var list = ctx.getElementsByTagName(tagName),\n i = 0,\n n = list.length;\n\n if (iterator) {\n for (; i < n; i++) {\n iterator(list[i], i);\n }\n }\n\n return list;\n }\n\n return [];\n}\n\nfunction getWindowScrollingElement() {\n var scrollingElement = document.scrollingElement;\n\n if (scrollingElement) {\n return scrollingElement;\n } else {\n return document.documentElement;\n }\n}\n/**\r\n * Returns the \"bounding client rect\" of given element\r\n * @param {HTMLElement} el The element whose boundingClientRect is wanted\r\n * @param {[Boolean]} relativeToContainingBlock Whether the rect should be relative to the containing block of (including) the container\r\n * @param {[Boolean]} relativeToNonStaticParent Whether the rect should be relative to the relative parent of (including) the contaienr\r\n * @param {[Boolean]} undoScale Whether the container's scale() should be undone\r\n * @param {[HTMLElement]} container The parent the element will be placed in\r\n * @return {Object} The boundingClientRect of el, with specified adjustments\r\n */\n\n\nfunction getRect(el, relativeToContainingBlock, relativeToNonStaticParent, undoScale, container) {\n if (!el.getBoundingClientRect && el !== window) return;\n var elRect, top, left, bottom, right, height, width;\n\n if (el !== window && el !== getWindowScrollingElement()) {\n elRect = el.getBoundingClientRect();\n top = elRect.top;\n left = elRect.left;\n bottom = elRect.bottom;\n right = elRect.right;\n height = elRect.height;\n width = elRect.width;\n } else {\n top = 0;\n left = 0;\n bottom = window.innerHeight;\n right = window.innerWidth;\n height = window.innerHeight;\n width = window.innerWidth;\n }\n\n if ((relativeToContainingBlock || relativeToNonStaticParent) && el !== window) {\n // Adjust for translate()\n container = container || el.parentNode; // solves #1123 (see: https://stackoverflow.com/a/37953806/6088312)\n // Not needed on <= IE11\n\n if (!IE11OrLess) {\n do {\n if (container && container.getBoundingClientRect && (css(container, 'transform') !== 'none' || relativeToNonStaticParent && css(container, 'position') !== 'static')) {\n var containerRect = container.getBoundingClientRect(); // Set relative to edges of padding box of container\n\n top -= containerRect.top + parseInt(css(container, 'border-top-width'));\n left -= containerRect.left + parseInt(css(container, 'border-left-width'));\n bottom = top + elRect.height;\n right = left + elRect.width;\n break;\n }\n /* jshint boss:true */\n\n } while (container = container.parentNode);\n }\n }\n\n if (undoScale && el !== window) {\n // Adjust for scale()\n var elMatrix = matrix(container || el),\n scaleX = elMatrix && elMatrix.a,\n scaleY = elMatrix && elMatrix.d;\n\n if (elMatrix) {\n top /= scaleY;\n left /= scaleX;\n width /= scaleX;\n height /= scaleY;\n bottom = top + height;\n right = left + width;\n }\n }\n\n return {\n top: top,\n left: left,\n bottom: bottom,\n right: right,\n width: width,\n height: height\n };\n}\n/**\r\n * Checks if a side of an element is scrolled past a side of its parents\r\n * @param {HTMLElement} el The element who's side being scrolled out of view is in question\r\n * @param {String} elSide Side of the element in question ('top', 'left', 'right', 'bottom')\r\n * @param {String} parentSide Side of the parent in question ('top', 'left', 'right', 'bottom')\r\n * @return {HTMLElement} The parent scroll element that the el's side is scrolled past, or null if there is no such element\r\n */\n\n\nfunction isScrolledPast(el, elSide, parentSide) {\n var parent = getParentAutoScrollElement(el, true),\n elSideVal = getRect(el)[elSide];\n /* jshint boss:true */\n\n while (parent) {\n var parentSideVal = getRect(parent)[parentSide],\n visible = void 0;\n\n if (parentSide === 'top' || parentSide === 'left') {\n visible = elSideVal >= parentSideVal;\n } else {\n visible = elSideVal <= parentSideVal;\n }\n\n if (!visible) return parent;\n if (parent === getWindowScrollingElement()) break;\n parent = getParentAutoScrollElement(parent, false);\n }\n\n return false;\n}\n/**\r\n * Gets nth child of el, ignoring hidden children, sortable's elements (does not ignore clone if it's visible)\r\n * and non-draggable elements\r\n * @param {HTMLElement} el The parent element\r\n * @param {Number} childNum The index of the child\r\n * @param {Object} options Parent Sortable's options\r\n * @return {HTMLElement} The child at index childNum, or null if not found\r\n */\n\n\nfunction getChild(el, childNum, options) {\n var currentChild = 0,\n i = 0,\n children = el.children;\n\n while (i < children.length) {\n if (children[i].style.display !== 'none' && children[i] !== Sortable.ghost && children[i] !== Sortable.dragged && closest(children[i], options.draggable, el, false)) {\n if (currentChild === childNum) {\n return children[i];\n }\n\n currentChild++;\n }\n\n i++;\n }\n\n return null;\n}\n/**\r\n * Gets the last child in the el, ignoring ghostEl or invisible elements (clones)\r\n * @param {HTMLElement} el Parent element\r\n * @param {selector} selector Any other elements that should be ignored\r\n * @return {HTMLElement} The last child, ignoring ghostEl\r\n */\n\n\nfunction lastChild(el, selector) {\n var last = el.lastElementChild;\n\n while (last && (last === Sortable.ghost || css(last, 'display') === 'none' || selector && !matches(last, selector))) {\n last = last.previousElementSibling;\n }\n\n return last || null;\n}\n/**\r\n * Returns the index of an element within its parent for a selected set of\r\n * elements\r\n * @param {HTMLElement} el\r\n * @param {selector} selector\r\n * @return {number}\r\n */\n\n\nfunction index(el, selector) {\n var index = 0;\n\n if (!el || !el.parentNode) {\n return -1;\n }\n /* jshint boss:true */\n\n\n while (el = el.previousElementSibling) {\n if (el.nodeName.toUpperCase() !== 'TEMPLATE' && el !== Sortable.clone && (!selector || matches(el, selector))) {\n index++;\n }\n }\n\n return index;\n}\n/**\r\n * Returns the scroll offset of the given element, added with all the scroll offsets of parent elements.\r\n * The value is returned in real pixels.\r\n * @param {HTMLElement} el\r\n * @return {Array} Offsets in the format of [left, top]\r\n */\n\n\nfunction getRelativeScrollOffset(el) {\n var offsetLeft = 0,\n offsetTop = 0,\n winScroller = getWindowScrollingElement();\n\n if (el) {\n do {\n var elMatrix = matrix(el),\n scaleX = elMatrix.a,\n scaleY = elMatrix.d;\n offsetLeft += el.scrollLeft * scaleX;\n offsetTop += el.scrollTop * scaleY;\n } while (el !== winScroller && (el = el.parentNode));\n }\n\n return [offsetLeft, offsetTop];\n}\n/**\r\n * Returns the index of the object within the given array\r\n * @param {Array} arr Array that may or may not hold the object\r\n * @param {Object} obj An object that has a key-value pair unique to and identical to a key-value pair in the object you want to find\r\n * @return {Number} The index of the object in the array, or -1\r\n */\n\n\nfunction indexOfObject(arr, obj) {\n for (var i in arr) {\n if (!arr.hasOwnProperty(i)) continue;\n\n for (var key in obj) {\n if (obj.hasOwnProperty(key) && obj[key] === arr[i][key]) return Number(i);\n }\n }\n\n return -1;\n}\n\nfunction getParentAutoScrollElement(el, includeSelf) {\n // skip to window\n if (!el || !el.getBoundingClientRect) return getWindowScrollingElement();\n var elem = el;\n var gotSelf = false;\n\n do {\n // we don't need to get elem css if it isn't even overflowing in the first place (performance)\n if (elem.clientWidth < elem.scrollWidth || elem.clientHeight < elem.scrollHeight) {\n var elemCSS = css(elem);\n\n if (elem.clientWidth < elem.scrollWidth && (elemCSS.overflowX == 'auto' || elemCSS.overflowX == 'scroll') || elem.clientHeight < elem.scrollHeight && (elemCSS.overflowY == 'auto' || elemCSS.overflowY == 'scroll')) {\n if (!elem.getBoundingClientRect || elem === document.body) return getWindowScrollingElement();\n if (gotSelf || includeSelf) return elem;\n gotSelf = true;\n }\n }\n /* jshint boss:true */\n\n } while (elem = elem.parentNode);\n\n return getWindowScrollingElement();\n}\n\nfunction extend(dst, src) {\n if (dst && src) {\n for (var key in src) {\n if (src.hasOwnProperty(key)) {\n dst[key] = src[key];\n }\n }\n }\n\n return dst;\n}\n\nfunction isRectEqual(rect1, rect2) {\n return Math.round(rect1.top) === Math.round(rect2.top) && Math.round(rect1.left) === Math.round(rect2.left) && Math.round(rect1.height) === Math.round(rect2.height) && Math.round(rect1.width) === Math.round(rect2.width);\n}\n\nvar _throttleTimeout;\n\nfunction throttle(callback, ms) {\n return function () {\n if (!_throttleTimeout) {\n var args = arguments,\n _this = this;\n\n if (args.length === 1) {\n callback.call(_this, args[0]);\n } else {\n callback.apply(_this, args);\n }\n\n _throttleTimeout = setTimeout(function () {\n _throttleTimeout = void 0;\n }, ms);\n }\n };\n}\n\nfunction cancelThrottle() {\n clearTimeout(_throttleTimeout);\n _throttleTimeout = void 0;\n}\n\nfunction scrollBy(el, x, y) {\n el.scrollLeft += x;\n el.scrollTop += y;\n}\n\nfunction clone(el) {\n var Polymer = window.Polymer;\n var $ = window.jQuery || window.Zepto;\n\n if (Polymer && Polymer.dom) {\n return Polymer.dom(el).cloneNode(true);\n } else if ($) {\n return $(el).clone(true)[0];\n } else {\n return el.cloneNode(true);\n }\n}\n\nfunction setRect(el, rect) {\n css(el, 'position', 'absolute');\n css(el, 'top', rect.top);\n css(el, 'left', rect.left);\n css(el, 'width', rect.width);\n css(el, 'height', rect.height);\n}\n\nfunction unsetRect(el) {\n css(el, 'position', '');\n css(el, 'top', '');\n css(el, 'left', '');\n css(el, 'width', '');\n css(el, 'height', '');\n}\n\nvar expando = 'Sortable' + new Date().getTime();\n\nfunction AnimationStateManager() {\n var animationStates = [],\n animationCallbackId;\n return {\n captureAnimationState: function captureAnimationState() {\n animationStates = [];\n if (!this.options.animation) return;\n var children = [].slice.call(this.el.children);\n children.forEach(function (child) {\n if (css(child, 'display') === 'none' || child === Sortable.ghost) return;\n animationStates.push({\n target: child,\n rect: getRect(child)\n });\n\n var fromRect = _objectSpread({}, animationStates[animationStates.length - 1].rect); // If animating: compensate for current animation\n\n\n if (child.thisAnimationDuration) {\n var childMatrix = matrix(child, true);\n\n if (childMatrix) {\n fromRect.top -= childMatrix.f;\n fromRect.left -= childMatrix.e;\n }\n }\n\n child.fromRect = fromRect;\n });\n },\n addAnimationState: function addAnimationState(state) {\n animationStates.push(state);\n },\n removeAnimationState: function removeAnimationState(target) {\n animationStates.splice(indexOfObject(animationStates, {\n target: target\n }), 1);\n },\n animateAll: function animateAll(callback) {\n var _this = this;\n\n if (!this.options.animation) {\n clearTimeout(animationCallbackId);\n if (typeof callback === 'function') callback();\n return;\n }\n\n var animating = false,\n animationTime = 0;\n animationStates.forEach(function (state) {\n var time = 0,\n target = state.target,\n fromRect = target.fromRect,\n toRect = getRect(target),\n prevFromRect = target.prevFromRect,\n prevToRect = target.prevToRect,\n animatingRect = state.rect,\n targetMatrix = matrix(target, true);\n\n if (targetMatrix) {\n // Compensate for current animation\n toRect.top -= targetMatrix.f;\n toRect.left -= targetMatrix.e;\n }\n\n target.toRect = toRect;\n\n if (target.thisAnimationDuration) {\n // Could also check if animatingRect is between fromRect and toRect\n if (isRectEqual(prevFromRect, toRect) && !isRectEqual(fromRect, toRect) && // Make sure animatingRect is on line between toRect & fromRect\n (animatingRect.top - toRect.top) / (animatingRect.left - toRect.left) === (fromRect.top - toRect.top) / (fromRect.left - toRect.left)) {\n // If returning to same place as started from animation and on same axis\n time = calculateRealTime(animatingRect, prevFromRect, prevToRect, _this.options);\n }\n } // if fromRect != toRect: animate\n\n\n if (!isRectEqual(toRect, fromRect)) {\n target.prevFromRect = fromRect;\n target.prevToRect = toRect;\n\n if (!time) {\n time = _this.options.animation;\n }\n\n _this.animate(target, animatingRect, toRect, time);\n }\n\n if (time) {\n animating = true;\n animationTime = Math.max(animationTime, time);\n clearTimeout(target.animationResetTimer);\n target.animationResetTimer = setTimeout(function () {\n target.animationTime = 0;\n target.prevFromRect = null;\n target.fromRect = null;\n target.prevToRect = null;\n target.thisAnimationDuration = null;\n }, time);\n target.thisAnimationDuration = time;\n }\n });\n clearTimeout(animationCallbackId);\n\n if (!animating) {\n if (typeof callback === 'function') callback();\n } else {\n animationCallbackId = setTimeout(function () {\n if (typeof callback === 'function') callback();\n }, animationTime);\n }\n\n animationStates = [];\n },\n animate: function animate(target, currentRect, toRect, duration) {\n if (duration) {\n css(target, 'transition', '');\n css(target, 'transform', '');\n var elMatrix = matrix(this.el),\n scaleX = elMatrix && elMatrix.a,\n scaleY = elMatrix && elMatrix.d,\n translateX = (currentRect.left - toRect.left) / (scaleX || 1),\n translateY = (currentRect.top - toRect.top) / (scaleY || 1);\n target.animatingX = !!translateX;\n target.animatingY = !!translateY;\n css(target, 'transform', 'translate3d(' + translateX + 'px,' + translateY + 'px,0)');\n repaint(target); // repaint\n\n css(target, 'transition', 'transform ' + duration + 'ms' + (this.options.easing ? ' ' + this.options.easing : ''));\n css(target, 'transform', 'translate3d(0,0,0)');\n typeof target.animated === 'number' && clearTimeout(target.animated);\n target.animated = setTimeout(function () {\n css(target, 'transition', '');\n css(target, 'transform', '');\n target.animated = false;\n target.animatingX = false;\n target.animatingY = false;\n }, duration);\n }\n }\n };\n}\n\nfunction repaint(target) {\n return target.offsetWidth;\n}\n\nfunction calculateRealTime(animatingRect, fromRect, toRect, options) {\n return Math.sqrt(Math.pow(fromRect.top - animatingRect.top, 2) + Math.pow(fromRect.left - animatingRect.left, 2)) / Math.sqrt(Math.pow(fromRect.top - toRect.top, 2) + Math.pow(fromRect.left - toRect.left, 2)) * options.animation;\n}\n\nvar plugins = [];\nvar defaults = {\n initializeByDefault: true\n};\nvar PluginManager = {\n mount: function mount(plugin) {\n // Set default static properties\n for (var option in defaults) {\n if (defaults.hasOwnProperty(option) && !(option in plugin)) {\n plugin[option] = defaults[option];\n }\n }\n\n plugins.push(plugin);\n },\n pluginEvent: function pluginEvent(eventName, sortable, evt) {\n var _this = this;\n\n this.eventCanceled = false;\n\n evt.cancel = function () {\n _this.eventCanceled = true;\n };\n\n var eventNameGlobal = eventName + 'Global';\n plugins.forEach(function (plugin) {\n if (!sortable[plugin.pluginName]) return; // Fire global events if it exists in this sortable\n\n if (sortable[plugin.pluginName][eventNameGlobal]) {\n sortable[plugin.pluginName][eventNameGlobal](_objectSpread({\n sortable: sortable\n }, evt));\n } // Only fire plugin event if plugin is enabled in this sortable,\n // and plugin has event defined\n\n\n if (sortable.options[plugin.pluginName] && sortable[plugin.pluginName][eventName]) {\n sortable[plugin.pluginName][eventName](_objectSpread({\n sortable: sortable\n }, evt));\n }\n });\n },\n initializePlugins: function initializePlugins(sortable, el, defaults, options) {\n plugins.forEach(function (plugin) {\n var pluginName = plugin.pluginName;\n if (!sortable.options[pluginName] && !plugin.initializeByDefault) return;\n var initialized = new plugin(sortable, el, sortable.options);\n initialized.sortable = sortable;\n initialized.options = sortable.options;\n sortable[pluginName] = initialized; // Add default options from plugin\n\n _extends(defaults, initialized.defaults);\n });\n\n for (var option in sortable.options) {\n if (!sortable.options.hasOwnProperty(option)) continue;\n var modified = this.modifyOption(sortable, option, sortable.options[option]);\n\n if (typeof modified !== 'undefined') {\n sortable.options[option] = modified;\n }\n }\n },\n getEventProperties: function getEventProperties(name, sortable) {\n var eventProperties = {};\n plugins.forEach(function (plugin) {\n if (typeof plugin.eventProperties !== 'function') return;\n\n _extends(eventProperties, plugin.eventProperties.call(sortable[plugin.pluginName], name));\n });\n return eventProperties;\n },\n modifyOption: function modifyOption(sortable, name, value) {\n var modifiedValue;\n plugins.forEach(function (plugin) {\n // Plugin must exist on the Sortable\n if (!sortable[plugin.pluginName]) return; // If static option listener exists for this option, call in the context of the Sortable's instance of this plugin\n\n if (plugin.optionListeners && typeof plugin.optionListeners[name] === 'function') {\n modifiedValue = plugin.optionListeners[name].call(sortable[plugin.pluginName], value);\n }\n });\n return modifiedValue;\n }\n};\n\nfunction dispatchEvent(_ref) {\n var sortable = _ref.sortable,\n rootEl = _ref.rootEl,\n name = _ref.name,\n targetEl = _ref.targetEl,\n cloneEl = _ref.cloneEl,\n toEl = _ref.toEl,\n fromEl = _ref.fromEl,\n oldIndex = _ref.oldIndex,\n newIndex = _ref.newIndex,\n oldDraggableIndex = _ref.oldDraggableIndex,\n newDraggableIndex = _ref.newDraggableIndex,\n originalEvent = _ref.originalEvent,\n putSortable = _ref.putSortable,\n extraEventProperties = _ref.extraEventProperties;\n sortable = sortable || rootEl && rootEl[expando];\n if (!sortable) return;\n var evt,\n options = sortable.options,\n onName = 'on' + name.charAt(0).toUpperCase() + name.substr(1); // Support for new CustomEvent feature\n\n if (window.CustomEvent && !IE11OrLess && !Edge) {\n evt = new CustomEvent(name, {\n bubbles: true,\n cancelable: true\n });\n } else {\n evt = document.createEvent('Event');\n evt.initEvent(name, true, true);\n }\n\n evt.to = toEl || rootEl;\n evt.from = fromEl || rootEl;\n evt.item = targetEl || rootEl;\n evt.clone = cloneEl;\n evt.oldIndex = oldIndex;\n evt.newIndex = newIndex;\n evt.oldDraggableIndex = oldDraggableIndex;\n evt.newDraggableIndex = newDraggableIndex;\n evt.originalEvent = originalEvent;\n evt.pullMode = putSortable ? putSortable.lastPutMode : undefined;\n\n var allEventProperties = _objectSpread({}, extraEventProperties, PluginManager.getEventProperties(name, sortable));\n\n for (var option in allEventProperties) {\n evt[option] = allEventProperties[option];\n }\n\n if (rootEl) {\n rootEl.dispatchEvent(evt);\n }\n\n if (options[onName]) {\n options[onName].call(sortable, evt);\n }\n}\n\nvar pluginEvent = function pluginEvent(eventName, sortable) {\n var _ref = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},\n originalEvent = _ref.evt,\n data = _objectWithoutProperties(_ref, [\"evt\"]);\n\n PluginManager.pluginEvent.bind(Sortable)(eventName, sortable, _objectSpread({\n dragEl: dragEl,\n parentEl: parentEl,\n ghostEl: ghostEl,\n rootEl: rootEl,\n nextEl: nextEl,\n lastDownEl: lastDownEl,\n cloneEl: cloneEl,\n cloneHidden: cloneHidden,\n dragStarted: moved,\n putSortable: putSortable,\n activeSortable: Sortable.active,\n originalEvent: originalEvent,\n oldIndex: oldIndex,\n oldDraggableIndex: oldDraggableIndex,\n newIndex: newIndex,\n newDraggableIndex: newDraggableIndex,\n hideGhostForTarget: _hideGhostForTarget,\n unhideGhostForTarget: _unhideGhostForTarget,\n cloneNowHidden: function cloneNowHidden() {\n cloneHidden = true;\n },\n cloneNowShown: function cloneNowShown() {\n cloneHidden = false;\n },\n dispatchSortableEvent: function dispatchSortableEvent(name) {\n _dispatchEvent({\n sortable: sortable,\n name: name,\n originalEvent: originalEvent\n });\n }\n }, data));\n};\n\nfunction _dispatchEvent(info) {\n dispatchEvent(_objectSpread({\n putSortable: putSortable,\n cloneEl: cloneEl,\n targetEl: dragEl,\n rootEl: rootEl,\n oldIndex: oldIndex,\n oldDraggableIndex: oldDraggableIndex,\n newIndex: newIndex,\n newDraggableIndex: newDraggableIndex\n }, info));\n}\n\nvar dragEl,\n parentEl,\n ghostEl,\n rootEl,\n nextEl,\n lastDownEl,\n cloneEl,\n cloneHidden,\n oldIndex,\n newIndex,\n oldDraggableIndex,\n newDraggableIndex,\n activeGroup,\n putSortable,\n awaitingDragStarted = false,\n ignoreNextClick = false,\n sortables = [],\n tapEvt,\n touchEvt,\n lastDx,\n lastDy,\n tapDistanceLeft,\n tapDistanceTop,\n moved,\n lastTarget,\n lastDirection,\n pastFirstInvertThresh = false,\n isCircumstantialInvert = false,\n targetMoveDistance,\n // For positioning ghost absolutely\nghostRelativeParent,\n ghostRelativeParentInitialScroll = [],\n // (left, top)\n_silent = false,\n savedInputChecked = [];\n/** @const */\n\nvar documentExists = typeof document !== 'undefined',\n PositionGhostAbsolutely = IOS,\n CSSFloatProperty = Edge || IE11OrLess ? 'cssFloat' : 'float',\n // This will not pass for IE9, because IE9 DnD only works on anchors\nsupportDraggable = documentExists && !ChromeForAndroid && !IOS && 'draggable' in document.createElement('div'),\n supportCssPointerEvents = function () {\n if (!documentExists) return; // false when <= IE11\n\n if (IE11OrLess) {\n return false;\n }\n\n var el = document.createElement('x');\n el.style.cssText = 'pointer-events:auto';\n return el.style.pointerEvents === 'auto';\n}(),\n _detectDirection = function _detectDirection(el, options) {\n var elCSS = css(el),\n elWidth = parseInt(elCSS.width) - parseInt(elCSS.paddingLeft) - parseInt(elCSS.paddingRight) - parseInt(elCSS.borderLeftWidth) - parseInt(elCSS.borderRightWidth),\n child1 = getChild(el, 0, options),\n child2 = getChild(el, 1, options),\n firstChildCSS = child1 && css(child1),\n secondChildCSS = child2 && css(child2),\n firstChildWidth = firstChildCSS && parseInt(firstChildCSS.marginLeft) + parseInt(firstChildCSS.marginRight) + getRect(child1).width,\n secondChildWidth = secondChildCSS && parseInt(secondChildCSS.marginLeft) + parseInt(secondChildCSS.marginRight) + getRect(child2).width;\n\n if (elCSS.display === 'flex') {\n return elCSS.flexDirection === 'column' || elCSS.flexDirection === 'column-reverse' ? 'vertical' : 'horizontal';\n }\n\n if (elCSS.display === 'grid') {\n return elCSS.gridTemplateColumns.split(' ').length <= 1 ? 'vertical' : 'horizontal';\n }\n\n if (child1 && firstChildCSS[\"float\"] && firstChildCSS[\"float\"] !== 'none') {\n var touchingSideChild2 = firstChildCSS[\"float\"] === 'left' ? 'left' : 'right';\n return child2 && (secondChildCSS.clear === 'both' || secondChildCSS.clear === touchingSideChild2) ? 'vertical' : 'horizontal';\n }\n\n return child1 && (firstChildCSS.display === 'block' || firstChildCSS.display === 'flex' || firstChildCSS.display === 'table' || firstChildCSS.display === 'grid' || firstChildWidth >= elWidth && elCSS[CSSFloatProperty] === 'none' || child2 && elCSS[CSSFloatProperty] === 'none' && firstChildWidth + secondChildWidth > elWidth) ? 'vertical' : 'horizontal';\n},\n _dragElInRowColumn = function _dragElInRowColumn(dragRect, targetRect, vertical) {\n var dragElS1Opp = vertical ? dragRect.left : dragRect.top,\n dragElS2Opp = vertical ? dragRect.right : dragRect.bottom,\n dragElOppLength = vertical ? dragRect.width : dragRect.height,\n targetS1Opp = vertical ? targetRect.left : targetRect.top,\n targetS2Opp = vertical ? targetRect.right : targetRect.bottom,\n targetOppLength = vertical ? targetRect.width : targetRect.height;\n return dragElS1Opp === targetS1Opp || dragElS2Opp === targetS2Opp || dragElS1Opp + dragElOppLength / 2 === targetS1Opp + targetOppLength / 2;\n},\n\n/**\n * Detects first nearest empty sortable to X and Y position using emptyInsertThreshold.\n * @param {Number} x X position\n * @param {Number} y Y position\n * @return {HTMLElement} Element of the first found nearest Sortable\n */\n_detectNearestEmptySortable = function _detectNearestEmptySortable(x, y) {\n var ret;\n sortables.some(function (sortable) {\n if (lastChild(sortable)) return;\n var rect = getRect(sortable),\n threshold = sortable[expando].options.emptyInsertThreshold,\n insideHorizontally = x >= rect.left - threshold && x <= rect.right + threshold,\n insideVertically = y >= rect.top - threshold && y <= rect.bottom + threshold;\n\n if (threshold && insideHorizontally && insideVertically) {\n return ret = sortable;\n }\n });\n return ret;\n},\n _prepareGroup = function _prepareGroup(options) {\n function toFn(value, pull) {\n return function (to, from, dragEl, evt) {\n var sameGroup = to.options.group.name && from.options.group.name && to.options.group.name === from.options.group.name;\n\n if (value == null && (pull || sameGroup)) {\n // Default pull value\n // Default pull and put value if same group\n return true;\n } else if (value == null || value === false) {\n return false;\n } else if (pull && value === 'clone') {\n return value;\n } else if (typeof value === 'function') {\n return toFn(value(to, from, dragEl, evt), pull)(to, from, dragEl, evt);\n } else {\n var otherGroup = (pull ? to : from).options.group.name;\n return value === true || typeof value === 'string' && value === otherGroup || value.join && value.indexOf(otherGroup) > -1;\n }\n };\n }\n\n var group = {};\n var originalGroup = options.group;\n\n if (!originalGroup || _typeof(originalGroup) != 'object') {\n originalGroup = {\n name: originalGroup\n };\n }\n\n group.name = originalGroup.name;\n group.checkPull = toFn(originalGroup.pull, true);\n group.checkPut = toFn(originalGroup.put);\n group.revertClone = originalGroup.revertClone;\n options.group = group;\n},\n _hideGhostForTarget = function _hideGhostForTarget() {\n if (!supportCssPointerEvents && ghostEl) {\n css(ghostEl, 'display', 'none');\n }\n},\n _unhideGhostForTarget = function _unhideGhostForTarget() {\n if (!supportCssPointerEvents && ghostEl) {\n css(ghostEl, 'display', '');\n }\n}; // #1184 fix - Prevent click event on fallback if dragged but item not changed position\n\n\nif (documentExists) {\n document.addEventListener('click', function (evt) {\n if (ignoreNextClick) {\n evt.preventDefault();\n evt.stopPropagation && evt.stopPropagation();\n evt.stopImmediatePropagation && evt.stopImmediatePropagation();\n ignoreNextClick = false;\n return false;\n }\n }, true);\n}\n\nvar nearestEmptyInsertDetectEvent = function nearestEmptyInsertDetectEvent(evt) {\n if (dragEl) {\n evt = evt.touches ? evt.touches[0] : evt;\n\n var nearest = _detectNearestEmptySortable(evt.clientX, evt.clientY);\n\n if (nearest) {\n // Create imitation event\n var event = {};\n\n for (var i in evt) {\n if (evt.hasOwnProperty(i)) {\n event[i] = evt[i];\n }\n }\n\n event.target = event.rootEl = nearest;\n event.preventDefault = void 0;\n event.stopPropagation = void 0;\n\n nearest[expando]._onDragOver(event);\n }\n }\n};\n\nvar _checkOutsideTargetEl = function _checkOutsideTargetEl(evt) {\n if (dragEl) {\n dragEl.parentNode[expando]._isOutsideThisEl(evt.target);\n }\n};\n/**\n * @class Sortable\n * @param {HTMLElement} el\n * @param {Object} [options]\n */\n\n\nfunction Sortable(el, options) {\n if (!(el && el.nodeType && el.nodeType === 1)) {\n throw \"Sortable: `el` must be an HTMLElement, not \".concat({}.toString.call(el));\n }\n\n this.el = el; // root element\n\n this.options = options = _extends({}, options); // Export instance\n\n el[expando] = this;\n var defaults = {\n group: null,\n sort: true,\n disabled: false,\n store: null,\n handle: null,\n draggable: /^[uo]l$/i.test(el.nodeName) ? '>li' : '>*',\n swapThreshold: 1,\n // percentage; 0 <= x <= 1\n invertSwap: false,\n // invert always\n invertedSwapThreshold: null,\n // will be set to same as swapThreshold if default\n removeCloneOnHide: true,\n direction: function direction() {\n return _detectDirection(el, this.options);\n },\n ghostClass: 'sortable-ghost',\n chosenClass: 'sortable-chosen',\n dragClass: 'sortable-drag',\n ignore: 'a, img',\n filter: null,\n preventOnFilter: true,\n animation: 0,\n easing: null,\n setData: function setData(dataTransfer, dragEl) {\n dataTransfer.setData('Text', dragEl.textContent);\n },\n dropBubble: false,\n dragoverBubble: false,\n dataIdAttr: 'data-id',\n delay: 0,\n delayOnTouchOnly: false,\n touchStartThreshold: (Number.parseInt ? Number : window).parseInt(window.devicePixelRatio, 10) || 1,\n forceFallback: false,\n fallbackClass: 'sortable-fallback',\n fallbackOnBody: false,\n fallbackTolerance: 0,\n fallbackOffset: {\n x: 0,\n y: 0\n },\n supportPointer: Sortable.supportPointer !== false && 'PointerEvent' in window,\n emptyInsertThreshold: 5\n };\n PluginManager.initializePlugins(this, el, defaults); // Set default options\n\n for (var name in defaults) {\n !(name in options) && (options[name] = defaults[name]);\n }\n\n _prepareGroup(options); // Bind all private methods\n\n\n for (var fn in this) {\n if (fn.charAt(0) === '_' && typeof this[fn] === 'function') {\n this[fn] = this[fn].bind(this);\n }\n } // Setup drag mode\n\n\n this.nativeDraggable = options.forceFallback ? false : supportDraggable;\n\n if (this.nativeDraggable) {\n // Touch start threshold cannot be greater than the native dragstart threshold\n this.options.touchStartThreshold = 1;\n } // Bind events\n\n\n if (options.supportPointer) {\n on(el, 'pointerdown', this._onTapStart);\n } else {\n on(el, 'mousedown', this._onTapStart);\n on(el, 'touchstart', this._onTapStart);\n }\n\n if (this.nativeDraggable) {\n on(el, 'dragover', this);\n on(el, 'dragenter', this);\n }\n\n sortables.push(this.el); // Restore sorting\n\n options.store && options.store.get && this.sort(options.store.get(this) || []); // Add animation state manager\n\n _extends(this, AnimationStateManager());\n}\n\nSortable.prototype =\n/** @lends Sortable.prototype */\n{\n constructor: Sortable,\n _isOutsideThisEl: function _isOutsideThisEl(target) {\n if (!this.el.contains(target) && target !== this.el) {\n lastTarget = null;\n }\n },\n _getDirection: function _getDirection(evt, target) {\n return typeof this.options.direction === 'function' ? this.options.direction.call(this, evt, target, dragEl) : this.options.direction;\n },\n _onTapStart: function _onTapStart(\n /** Event|TouchEvent */\n evt) {\n if (!evt.cancelable) return;\n\n var _this = this,\n el = this.el,\n options = this.options,\n preventOnFilter = options.preventOnFilter,\n type = evt.type,\n touch = evt.touches && evt.touches[0] || evt.pointerType && evt.pointerType === 'touch' && evt,\n target = (touch || evt).target,\n originalTarget = evt.target.shadowRoot && (evt.path && evt.path[0] || evt.composedPath && evt.composedPath()[0]) || target,\n filter = options.filter;\n\n _saveInputCheckedState(el); // Don't trigger start event when an element is been dragged, otherwise the evt.oldindex always wrong when set option.group.\n\n\n if (dragEl) {\n return;\n }\n\n if (/mousedown|pointerdown/.test(type) && evt.button !== 0 || options.disabled) {\n return; // only left button and enabled\n } // cancel dnd if original target is content editable\n\n\n if (originalTarget.isContentEditable) {\n return;\n }\n\n target = closest(target, options.draggable, el, false);\n\n if (target && target.animated) {\n return;\n }\n\n if (lastDownEl === target) {\n // Ignoring duplicate `down`\n return;\n } // Get the index of the dragged element within its parent\n\n\n oldIndex = index(target);\n oldDraggableIndex = index(target, options.draggable); // Check filter\n\n if (typeof filter === 'function') {\n if (filter.call(this, evt, target, this)) {\n _dispatchEvent({\n sortable: _this,\n rootEl: originalTarget,\n name: 'filter',\n targetEl: target,\n toEl: el,\n fromEl: el\n });\n\n pluginEvent('filter', _this, {\n evt: evt\n });\n preventOnFilter && evt.cancelable && evt.preventDefault();\n return; // cancel dnd\n }\n } else if (filter) {\n filter = filter.split(',').some(function (criteria) {\n criteria = closest(originalTarget, criteria.trim(), el, false);\n\n if (criteria) {\n _dispatchEvent({\n sortable: _this,\n rootEl: criteria,\n name: 'filter',\n targetEl: target,\n fromEl: el,\n toEl: el\n });\n\n pluginEvent('filter', _this, {\n evt: evt\n });\n return true;\n }\n });\n\n if (filter) {\n preventOnFilter && evt.cancelable && evt.preventDefault();\n return; // cancel dnd\n }\n }\n\n if (options.handle && !closest(originalTarget, options.handle, el, false)) {\n return;\n } // Prepare `dragstart`\n\n\n this._prepareDragStart(evt, touch, target);\n },\n _prepareDragStart: function _prepareDragStart(\n /** Event */\n evt,\n /** Touch */\n touch,\n /** HTMLElement */\n target) {\n var _this = this,\n el = _this.el,\n options = _this.options,\n ownerDocument = el.ownerDocument,\n dragStartFn;\n\n if (target && !dragEl && target.parentNode === el) {\n var dragRect = getRect(target);\n rootEl = el;\n dragEl = target;\n parentEl = dragEl.parentNode;\n nextEl = dragEl.nextSibling;\n lastDownEl = target;\n activeGroup = options.group;\n Sortable.dragged = dragEl;\n tapEvt = {\n target: dragEl,\n clientX: (touch || evt).clientX,\n clientY: (touch || evt).clientY\n };\n tapDistanceLeft = tapEvt.clientX - dragRect.left;\n tapDistanceTop = tapEvt.clientY - dragRect.top;\n this._lastX = (touch || evt).clientX;\n this._lastY = (touch || evt).clientY;\n dragEl.style['will-change'] = 'all';\n\n dragStartFn = function dragStartFn() {\n pluginEvent('delayEnded', _this, {\n evt: evt\n });\n\n if (Sortable.eventCanceled) {\n _this._onDrop();\n\n return;\n } // Delayed drag has been triggered\n // we can re-enable the events: touchmove/mousemove\n\n\n _this._disableDelayedDragEvents();\n\n if (!FireFox && _this.nativeDraggable) {\n dragEl.draggable = true;\n } // Bind the events: dragstart/dragend\n\n\n _this._triggerDragStart(evt, touch); // Drag start event\n\n\n _dispatchEvent({\n sortable: _this,\n name: 'choose',\n originalEvent: evt\n }); // Chosen item\n\n\n toggleClass(dragEl, options.chosenClass, true);\n }; // Disable \"draggable\"\n\n\n options.ignore.split(',').forEach(function (criteria) {\n find(dragEl, criteria.trim(), _disableDraggable);\n });\n on(ownerDocument, 'dragover', nearestEmptyInsertDetectEvent);\n on(ownerDocument, 'mousemove', nearestEmptyInsertDetectEvent);\n on(ownerDocument, 'touchmove', nearestEmptyInsertDetectEvent);\n on(ownerDocument, 'mouseup', _this._onDrop);\n on(ownerDocument, 'touchend', _this._onDrop);\n on(ownerDocument, 'touchcancel', _this._onDrop); // Make dragEl draggable (must be before delay for FireFox)\n\n if (FireFox && this.nativeDraggable) {\n this.options.touchStartThreshold = 4;\n dragEl.draggable = true;\n }\n\n pluginEvent('delayStart', this, {\n evt: evt\n }); // Delay is impossible for native DnD in Edge or IE\n\n if (options.delay && (!options.delayOnTouchOnly || touch) && (!this.nativeDraggable || !(Edge || IE11OrLess))) {\n if (Sortable.eventCanceled) {\n this._onDrop();\n\n return;\n } // If the user moves the pointer or let go the click or touch\n // before the delay has been reached:\n // disable the delayed drag\n\n\n on(ownerDocument, 'mouseup', _this._disableDelayedDrag);\n on(ownerDocument, 'touchend', _this._disableDelayedDrag);\n on(ownerDocument, 'touchcancel', _this._disableDelayedDrag);\n on(ownerDocument, 'mousemove', _this._delayedDragTouchMoveHandler);\n on(ownerDocument, 'touchmove', _this._delayedDragTouchMoveHandler);\n options.supportPointer && on(ownerDocument, 'pointermove', _this._delayedDragTouchMoveHandler);\n _this._dragStartTimer = setTimeout(dragStartFn, options.delay);\n } else {\n dragStartFn();\n }\n }\n },\n _delayedDragTouchMoveHandler: function _delayedDragTouchMoveHandler(\n /** TouchEvent|PointerEvent **/\n e) {\n var touch = e.touches ? e.touches[0] : e;\n\n if (Math.max(Math.abs(touch.clientX - this._lastX), Math.abs(touch.clientY - this._lastY)) >= Math.floor(this.options.touchStartThreshold / (this.nativeDraggable && window.devicePixelRatio || 1))) {\n this._disableDelayedDrag();\n }\n },\n _disableDelayedDrag: function _disableDelayedDrag() {\n dragEl && _disableDraggable(dragEl);\n clearTimeout(this._dragStartTimer);\n\n this._disableDelayedDragEvents();\n },\n _disableDelayedDragEvents: function _disableDelayedDragEvents() {\n var ownerDocument = this.el.ownerDocument;\n off(ownerDocument, 'mouseup', this._disableDelayedDrag);\n off(ownerDocument, 'touchend', this._disableDelayedDrag);\n off(ownerDocument, 'touchcancel', this._disableDelayedDrag);\n off(ownerDocument, 'mousemove', this._delayedDragTouchMoveHandler);\n off(ownerDocument, 'touchmove', this._delayedDragTouchMoveHandler);\n off(ownerDocument, 'pointermove', this._delayedDragTouchMoveHandler);\n },\n _triggerDragStart: function _triggerDragStart(\n /** Event */\n evt,\n /** Touch */\n touch) {\n touch = touch || evt.pointerType == 'touch' && evt;\n\n if (!this.nativeDraggable || touch) {\n if (this.options.supportPointer) {\n on(document, 'pointermove', this._onTouchMove);\n } else if (touch) {\n on(document, 'touchmove', this._onTouchMove);\n } else {\n on(document, 'mousemove', this._onTouchMove);\n }\n } else {\n on(dragEl, 'dragend', this);\n on(rootEl, 'dragstart', this._onDragStart);\n }\n\n try {\n if (document.selection) {\n // Timeout neccessary for IE9\n _nextTick(function () {\n document.selection.empty();\n });\n } else {\n window.getSelection().removeAllRanges();\n }\n } catch (err) {}\n },\n _dragStarted: function _dragStarted(fallback, evt) {\n\n awaitingDragStarted = false;\n\n if (rootEl && dragEl) {\n pluginEvent('dragStarted', this, {\n evt: evt\n });\n\n if (this.nativeDraggable) {\n on(document, 'dragover', _checkOutsideTargetEl);\n }\n\n var options = this.options; // Apply effect\n\n !fallback && toggleClass(dragEl, options.dragClass, false);\n toggleClass(dragEl, options.ghostClass, true);\n Sortable.active = this;\n fallback && this._appendGhost(); // Drag start event\n\n _dispatchEvent({\n sortable: this,\n name: 'start',\n originalEvent: evt\n });\n } else {\n this._nulling();\n }\n },\n _emulateDragOver: function _emulateDragOver() {\n if (touchEvt) {\n this._lastX = touchEvt.clientX;\n this._lastY = touchEvt.clientY;\n\n _hideGhostForTarget();\n\n var target = document.elementFromPoint(touchEvt.clientX, touchEvt.clientY);\n var parent = target;\n\n while (target && target.shadowRoot) {\n target = target.shadowRoot.elementFromPoint(touchEvt.clientX, touchEvt.clientY);\n if (target === parent) break;\n parent = target;\n }\n\n dragEl.parentNode[expando]._isOutsideThisEl(target);\n\n if (parent) {\n do {\n if (parent[expando]) {\n var inserted = void 0;\n inserted = parent[expando]._onDragOver({\n clientX: touchEvt.clientX,\n clientY: touchEvt.clientY,\n target: target,\n rootEl: parent\n });\n\n if (inserted && !this.options.dragoverBubble) {\n break;\n }\n }\n\n target = parent; // store last element\n }\n /* jshint boss:true */\n while (parent = parent.parentNode);\n }\n\n _unhideGhostForTarget();\n }\n },\n _onTouchMove: function _onTouchMove(\n /**TouchEvent*/\n evt) {\n if (tapEvt) {\n var options = this.options,\n fallbackTolerance = options.fallbackTolerance,\n fallbackOffset = options.fallbackOffset,\n touch = evt.touches ? evt.touches[0] : evt,\n ghostMatrix = ghostEl && matrix(ghostEl, true),\n scaleX = ghostEl && ghostMatrix && ghostMatrix.a,\n scaleY = ghostEl && ghostMatrix && ghostMatrix.d,\n relativeScrollOffset = PositionGhostAbsolutely && ghostRelativeParent && getRelativeScrollOffset(ghostRelativeParent),\n dx = (touch.clientX - tapEvt.clientX + fallbackOffset.x) / (scaleX || 1) + (relativeScrollOffset ? relativeScrollOffset[0] - ghostRelativeParentInitialScroll[0] : 0) / (scaleX || 1),\n dy = (touch.clientY - tapEvt.clientY + fallbackOffset.y) / (scaleY || 1) + (relativeScrollOffset ? relativeScrollOffset[1] - ghostRelativeParentInitialScroll[1] : 0) / (scaleY || 1); // only set the status to dragging, when we are actually dragging\n\n if (!Sortable.active && !awaitingDragStarted) {\n if (fallbackTolerance && Math.max(Math.abs(touch.clientX - this._lastX), Math.abs(touch.clientY - this._lastY)) < fallbackTolerance) {\n return;\n }\n\n this._onDragStart(evt, true);\n }\n\n if (ghostEl) {\n if (ghostMatrix) {\n ghostMatrix.e += dx - (lastDx || 0);\n ghostMatrix.f += dy - (lastDy || 0);\n } else {\n ghostMatrix = {\n a: 1,\n b: 0,\n c: 0,\n d: 1,\n e: dx,\n f: dy\n };\n }\n\n var cssMatrix = \"matrix(\".concat(ghostMatrix.a, \",\").concat(ghostMatrix.b, \",\").concat(ghostMatrix.c, \",\").concat(ghostMatrix.d, \",\").concat(ghostMatrix.e, \",\").concat(ghostMatrix.f, \")\");\n css(ghostEl, 'webkitTransform', cssMatrix);\n css(ghostEl, 'mozTransform', cssMatrix);\n css(ghostEl, 'msTransform', cssMatrix);\n css(ghostEl, 'transform', cssMatrix);\n lastDx = dx;\n lastDy = dy;\n touchEvt = touch;\n }\n\n evt.cancelable && evt.preventDefault();\n }\n },\n _appendGhost: function _appendGhost() {\n // Bug if using scale(): https://stackoverflow.com/questions/2637058\n // Not being adjusted for\n if (!ghostEl) {\n var container = this.options.fallbackOnBody ? document.body : rootEl,\n rect = getRect(dragEl, true, PositionGhostAbsolutely, true, container),\n options = this.options; // Position absolutely\n\n if (PositionGhostAbsolutely) {\n // Get relatively positioned parent\n ghostRelativeParent = container;\n\n while (css(ghostRelativeParent, 'position') === 'static' && css(ghostRelativeParent, 'transform') === 'none' && ghostRelativeParent !== document) {\n ghostRelativeParent = ghostRelativeParent.parentNode;\n }\n\n if (ghostRelativeParent !== document.body && ghostRelativeParent !== document.documentElement) {\n if (ghostRelativeParent === document) ghostRelativeParent = getWindowScrollingElement();\n rect.top += ghostRelativeParent.scrollTop;\n rect.left += ghostRelativeParent.scrollLeft;\n } else {\n ghostRelativeParent = getWindowScrollingElement();\n }\n\n ghostRelativeParentInitialScroll = getRelativeScrollOffset(ghostRelativeParent);\n }\n\n ghostEl = dragEl.cloneNode(true);\n toggleClass(ghostEl, options.ghostClass, false);\n toggleClass(ghostEl, options.fallbackClass, true);\n toggleClass(ghostEl, options.dragClass, true);\n css(ghostEl, 'transition', '');\n css(ghostEl, 'transform', '');\n css(ghostEl, 'box-sizing', 'border-box');\n css(ghostEl, 'margin', 0);\n css(ghostEl, 'top', rect.top);\n css(ghostEl, 'left', rect.left);\n css(ghostEl, 'width', rect.width);\n css(ghostEl, 'height', rect.height);\n css(ghostEl, 'opacity', '0.8');\n css(ghostEl, 'position', PositionGhostAbsolutely ? 'absolute' : 'fixed');\n css(ghostEl, 'zIndex', '100000');\n css(ghostEl, 'pointerEvents', 'none');\n Sortable.ghost = ghostEl;\n container.appendChild(ghostEl); // Set transform-origin\n\n css(ghostEl, 'transform-origin', tapDistanceLeft / parseInt(ghostEl.style.width) * 100 + '% ' + tapDistanceTop / parseInt(ghostEl.style.height) * 100 + '%');\n }\n },\n _onDragStart: function _onDragStart(\n /**Event*/\n evt,\n /**boolean*/\n fallback) {\n var _this = this;\n\n var dataTransfer = evt.dataTransfer;\n var options = _this.options;\n pluginEvent('dragStart', this, {\n evt: evt\n });\n\n if (Sortable.eventCanceled) {\n this._onDrop();\n\n return;\n }\n\n pluginEvent('setupClone', this);\n\n if (!Sortable.eventCanceled) {\n cloneEl = clone(dragEl);\n cloneEl.draggable = false;\n cloneEl.style['will-change'] = '';\n\n this._hideClone();\n\n toggleClass(cloneEl, this.options.chosenClass, false);\n Sortable.clone = cloneEl;\n } // #1143: IFrame support workaround\n\n\n _this.cloneId = _nextTick(function () {\n pluginEvent('clone', _this);\n if (Sortable.eventCanceled) return;\n\n if (!_this.options.removeCloneOnHide) {\n rootEl.insertBefore(cloneEl, dragEl);\n }\n\n _this._hideClone();\n\n _dispatchEvent({\n sortable: _this,\n name: 'clone'\n });\n });\n !fallback && toggleClass(dragEl, options.dragClass, true); // Set proper drop events\n\n if (fallback) {\n ignoreNextClick = true;\n _this._loopId = setInterval(_this._emulateDragOver, 50);\n } else {\n // Undo what was set in _prepareDragStart before drag started\n off(document, 'mouseup', _this._onDrop);\n off(document, 'touchend', _this._onDrop);\n off(document, 'touchcancel', _this._onDrop);\n\n if (dataTransfer) {\n dataTransfer.effectAllowed = 'move';\n options.setData && options.setData.call(_this, dataTransfer, dragEl);\n }\n\n on(document, 'drop', _this); // #1276 fix:\n\n css(dragEl, 'transform', 'translateZ(0)');\n }\n\n awaitingDragStarted = true;\n _this._dragStartId = _nextTick(_this._dragStarted.bind(_this, fallback, evt));\n on(document, 'selectstart', _this);\n moved = true;\n\n if (Safari) {\n css(document.body, 'user-select', 'none');\n }\n },\n // Returns true - if no further action is needed (either inserted or another condition)\n _onDragOver: function _onDragOver(\n /**Event*/\n evt) {\n var el = this.el,\n target = evt.target,\n dragRect,\n targetRect,\n revert,\n options = this.options,\n group = options.group,\n activeSortable = Sortable.active,\n isOwner = activeGroup === group,\n canSort = options.sort,\n fromSortable = putSortable || activeSortable,\n vertical,\n _this = this,\n completedFired = false;\n\n if (_silent) return;\n\n function dragOverEvent(name, extra) {\n pluginEvent(name, _this, _objectSpread({\n evt: evt,\n isOwner: isOwner,\n axis: vertical ? 'vertical' : 'horizontal',\n revert: revert,\n dragRect: dragRect,\n targetRect: targetRect,\n canSort: canSort,\n fromSortable: fromSortable,\n target: target,\n completed: completed,\n onMove: function onMove(target, after) {\n return _onMove(rootEl, el, dragEl, dragRect, target, getRect(target), evt, after);\n },\n changed: changed\n }, extra));\n } // Capture animation state\n\n\n function capture() {\n dragOverEvent('dragOverAnimationCapture');\n\n _this.captureAnimationState();\n\n if (_this !== fromSortable) {\n fromSortable.captureAnimationState();\n }\n } // Return invocation when dragEl is inserted (or completed)\n\n\n function completed(insertion) {\n dragOverEvent('dragOverCompleted', {\n insertion: insertion\n });\n\n if (insertion) {\n // Clones must be hidden before folding animation to capture dragRectAbsolute properly\n if (isOwner) {\n activeSortable._hideClone();\n } else {\n activeSortable._showClone(_this);\n }\n\n if (_this !== fromSortable) {\n // Set ghost class to new sortable's ghost class\n toggleClass(dragEl, putSortable ? putSortable.options.ghostClass : activeSortable.options.ghostClass, false);\n toggleClass(dragEl, options.ghostClass, true);\n }\n\n if (putSortable !== _this && _this !== Sortable.active) {\n putSortable = _this;\n } else if (_this === Sortable.active && putSortable) {\n putSortable = null;\n } // Animation\n\n\n if (fromSortable === _this) {\n _this._ignoreWhileAnimating = target;\n }\n\n _this.animateAll(function () {\n dragOverEvent('dragOverAnimationComplete');\n _this._ignoreWhileAnimating = null;\n });\n\n if (_this !== fromSortable) {\n fromSortable.animateAll();\n fromSortable._ignoreWhileAnimating = null;\n }\n } // Null lastTarget if it is not inside a previously swapped element\n\n\n if (target === dragEl && !dragEl.animated || target === el && !target.animated) {\n lastTarget = null;\n } // no bubbling and not fallback\n\n\n if (!options.dragoverBubble && !evt.rootEl && target !== document) {\n dragEl.parentNode[expando]._isOutsideThisEl(evt.target); // Do not detect for empty insert if already inserted\n\n\n !insertion && nearestEmptyInsertDetectEvent(evt);\n }\n\n !options.dragoverBubble && evt.stopPropagation && evt.stopPropagation();\n return completedFired = true;\n } // Call when dragEl has been inserted\n\n\n function changed() {\n newIndex = index(dragEl);\n newDraggableIndex = index(dragEl, options.draggable);\n\n _dispatchEvent({\n sortable: _this,\n name: 'change',\n toEl: el,\n newIndex: newIndex,\n newDraggableIndex: newDraggableIndex,\n originalEvent: evt\n });\n }\n\n if (evt.preventDefault !== void 0) {\n evt.cancelable && evt.preventDefault();\n }\n\n target = closest(target, options.draggable, el, true);\n dragOverEvent('dragOver');\n if (Sortable.eventCanceled) return completedFired;\n\n if (dragEl.contains(evt.target) || target.animated && target.animatingX && target.animatingY || _this._ignoreWhileAnimating === target) {\n return completed(false);\n }\n\n ignoreNextClick = false;\n\n if (activeSortable && !options.disabled && (isOwner ? canSort || (revert = !rootEl.contains(dragEl)) // Reverting item into the original list\n : putSortable === this || (this.lastPutMode = activeGroup.checkPull(this, activeSortable, dragEl, evt)) && group.checkPut(this, activeSortable, dragEl, evt))) {\n vertical = this._getDirection(evt, target) === 'vertical';\n dragRect = getRect(dragEl);\n dragOverEvent('dragOverValid');\n if (Sortable.eventCanceled) return completedFired;\n\n if (revert) {\n parentEl = rootEl; // actualization\n\n capture();\n\n this._hideClone();\n\n dragOverEvent('revert');\n\n if (!Sortable.eventCanceled) {\n if (nextEl) {\n rootEl.insertBefore(dragEl, nextEl);\n } else {\n rootEl.appendChild(dragEl);\n }\n }\n\n return completed(true);\n }\n\n var elLastChild = lastChild(el, options.draggable);\n\n if (!elLastChild || _ghostIsLast(evt, vertical, this) && !elLastChild.animated) {\n // If already at end of list: Do not insert\n if (elLastChild === dragEl) {\n return completed(false);\n } // assign target only if condition is true\n\n\n if (elLastChild && el === evt.target) {\n target = elLastChild;\n }\n\n if (target) {\n targetRect = getRect(target);\n }\n\n if (_onMove(rootEl, el, dragEl, dragRect, target, targetRect, evt, !!target) !== false) {\n capture();\n el.appendChild(dragEl);\n parentEl = el; // actualization\n\n changed();\n return completed(true);\n }\n } else if (target.parentNode === el) {\n targetRect = getRect(target);\n var direction = 0,\n targetBeforeFirstSwap,\n differentLevel = dragEl.parentNode !== el,\n differentRowCol = !_dragElInRowColumn(dragEl.animated && dragEl.toRect || dragRect, target.animated && target.toRect || targetRect, vertical),\n side1 = vertical ? 'top' : 'left',\n scrolledPastTop = isScrolledPast(target, 'top', 'top') || isScrolledPast(dragEl, 'top', 'top'),\n scrollBefore = scrolledPastTop ? scrolledPastTop.scrollTop : void 0;\n\n if (lastTarget !== target) {\n targetBeforeFirstSwap = targetRect[side1];\n pastFirstInvertThresh = false;\n isCircumstantialInvert = !differentRowCol && options.invertSwap || differentLevel;\n }\n\n direction = _getSwapDirection(evt, target, targetRect, vertical, differentRowCol ? 1 : options.swapThreshold, options.invertedSwapThreshold == null ? options.swapThreshold : options.invertedSwapThreshold, isCircumstantialInvert, lastTarget === target);\n var sibling;\n\n if (direction !== 0) {\n // Check if target is beside dragEl in respective direction (ignoring hidden elements)\n var dragIndex = index(dragEl);\n\n do {\n dragIndex -= direction;\n sibling = parentEl.children[dragIndex];\n } while (sibling && (css(sibling, 'display') === 'none' || sibling === ghostEl));\n } // If dragEl is already beside target: Do not insert\n\n\n if (direction === 0 || sibling === target) {\n return completed(false);\n }\n\n lastTarget = target;\n lastDirection = direction;\n var nextSibling = target.nextElementSibling,\n after = false;\n after = direction === 1;\n\n var moveVector = _onMove(rootEl, el, dragEl, dragRect, target, targetRect, evt, after);\n\n if (moveVector !== false) {\n if (moveVector === 1 || moveVector === -1) {\n after = moveVector === 1;\n }\n\n _silent = true;\n setTimeout(_unsilent, 30);\n capture();\n\n if (after && !nextSibling) {\n el.appendChild(dragEl);\n } else {\n target.parentNode.insertBefore(dragEl, after ? nextSibling : target);\n } // Undo chrome's scroll adjustment (has no effect on other browsers)\n\n\n if (scrolledPastTop) {\n scrollBy(scrolledPastTop, 0, scrollBefore - scrolledPastTop.scrollTop);\n }\n\n parentEl = dragEl.parentNode; // actualization\n // must be done before animation\n\n if (targetBeforeFirstSwap !== undefined && !isCircumstantialInvert) {\n targetMoveDistance = Math.abs(targetBeforeFirstSwap - getRect(target)[side1]);\n }\n\n changed();\n return completed(true);\n }\n }\n\n if (el.contains(dragEl)) {\n return completed(false);\n }\n }\n\n return false;\n },\n _ignoreWhileAnimating: null,\n _offMoveEvents: function _offMoveEvents() {\n off(document, 'mousemove', this._onTouchMove);\n off(document, 'touchmove', this._onTouchMove);\n off(document, 'pointermove', this._onTouchMove);\n off(document, 'dragover', nearestEmptyInsertDetectEvent);\n off(document, 'mousemove', nearestEmptyInsertDetectEvent);\n off(document, 'touchmove', nearestEmptyInsertDetectEvent);\n },\n _offUpEvents: function _offUpEvents() {\n var ownerDocument = this.el.ownerDocument;\n off(ownerDocument, 'mouseup', this._onDrop);\n off(ownerDocument, 'touchend', this._onDrop);\n off(ownerDocument, 'pointerup', this._onDrop);\n off(ownerDocument, 'touchcancel', this._onDrop);\n off(document, 'selectstart', this);\n },\n _onDrop: function _onDrop(\n /**Event*/\n evt) {\n var el = this.el,\n options = this.options; // Get the index of the dragged element within its parent\n\n newIndex = index(dragEl);\n newDraggableIndex = index(dragEl, options.draggable);\n pluginEvent('drop', this, {\n evt: evt\n });\n parentEl = dragEl && dragEl.parentNode; // Get again after plugin event\n\n newIndex = index(dragEl);\n newDraggableIndex = index(dragEl, options.draggable);\n\n if (Sortable.eventCanceled) {\n this._nulling();\n\n return;\n }\n\n awaitingDragStarted = false;\n isCircumstantialInvert = false;\n pastFirstInvertThresh = false;\n clearInterval(this._loopId);\n clearTimeout(this._dragStartTimer);\n\n _cancelNextTick(this.cloneId);\n\n _cancelNextTick(this._dragStartId); // Unbind events\n\n\n if (this.nativeDraggable) {\n off(document, 'drop', this);\n off(el, 'dragstart', this._onDragStart);\n }\n\n this._offMoveEvents();\n\n this._offUpEvents();\n\n if (Safari) {\n css(document.body, 'user-select', '');\n }\n\n css(dragEl, 'transform', '');\n\n if (evt) {\n if (moved) {\n evt.cancelable && evt.preventDefault();\n !options.dropBubble && evt.stopPropagation();\n }\n\n ghostEl && ghostEl.parentNode && ghostEl.parentNode.removeChild(ghostEl);\n\n if (rootEl === parentEl || putSortable && putSortable.lastPutMode !== 'clone') {\n // Remove clone(s)\n cloneEl && cloneEl.parentNode && cloneEl.parentNode.removeChild(cloneEl);\n }\n\n if (dragEl) {\n if (this.nativeDraggable) {\n off(dragEl, 'dragend', this);\n }\n\n _disableDraggable(dragEl);\n\n dragEl.style['will-change'] = ''; // Remove classes\n // ghostClass is added in dragStarted\n\n if (moved && !awaitingDragStarted) {\n toggleClass(dragEl, putSortable ? putSortable.options.ghostClass : this.options.ghostClass, false);\n }\n\n toggleClass(dragEl, this.options.chosenClass, false); // Drag stop event\n\n _dispatchEvent({\n sortable: this,\n name: 'unchoose',\n toEl: parentEl,\n newIndex: null,\n newDraggableIndex: null,\n originalEvent: evt\n });\n\n if (rootEl !== parentEl) {\n if (newIndex >= 0) {\n // Add event\n _dispatchEvent({\n rootEl: parentEl,\n name: 'add',\n toEl: parentEl,\n fromEl: rootEl,\n originalEvent: evt\n }); // Remove event\n\n\n _dispatchEvent({\n sortable: this,\n name: 'remove',\n toEl: parentEl,\n originalEvent: evt\n }); // drag from one list and drop into another\n\n\n _dispatchEvent({\n rootEl: parentEl,\n name: 'sort',\n toEl: parentEl,\n fromEl: rootEl,\n originalEvent: evt\n });\n\n _dispatchEvent({\n sortable: this,\n name: 'sort',\n toEl: parentEl,\n originalEvent: evt\n });\n }\n\n putSortable && putSortable.save();\n } else {\n if (newIndex !== oldIndex) {\n if (newIndex >= 0) {\n // drag & drop within the same list\n _dispatchEvent({\n sortable: this,\n name: 'update',\n toEl: parentEl,\n originalEvent: evt\n });\n\n _dispatchEvent({\n sortable: this,\n name: 'sort',\n toEl: parentEl,\n originalEvent: evt\n });\n }\n }\n }\n\n if (Sortable.active) {\n /* jshint eqnull:true */\n if (newIndex == null || newIndex === -1) {\n newIndex = oldIndex;\n newDraggableIndex = oldDraggableIndex;\n }\n\n _dispatchEvent({\n sortable: this,\n name: 'end',\n toEl: parentEl,\n originalEvent: evt\n }); // Save sorting\n\n\n this.save();\n }\n }\n }\n\n this._nulling();\n },\n _nulling: function _nulling() {\n pluginEvent('nulling', this);\n rootEl = dragEl = parentEl = ghostEl = nextEl = cloneEl = lastDownEl = cloneHidden = tapEvt = touchEvt = moved = newIndex = newDraggableIndex = oldIndex = oldDraggableIndex = lastTarget = lastDirection = putSortable = activeGroup = Sortable.dragged = Sortable.ghost = Sortable.clone = Sortable.active = null;\n savedInputChecked.forEach(function (el) {\n el.checked = true;\n });\n savedInputChecked.length = lastDx = lastDy = 0;\n },\n handleEvent: function handleEvent(\n /**Event*/\n evt) {\n switch (evt.type) {\n case 'drop':\n case 'dragend':\n this._onDrop(evt);\n\n break;\n\n case 'dragenter':\n case 'dragover':\n if (dragEl) {\n this._onDragOver(evt);\n\n _globalDragOver(evt);\n }\n\n break;\n\n case 'selectstart':\n evt.preventDefault();\n break;\n }\n },\n\n /**\n * Serializes the item into an array of string.\n * @returns {String[]}\n */\n toArray: function toArray() {\n var order = [],\n el,\n children = this.el.children,\n i = 0,\n n = children.length,\n options = this.options;\n\n for (; i < n; i++) {\n el = children[i];\n\n if (closest(el, options.draggable, this.el, false)) {\n order.push(el.getAttribute(options.dataIdAttr) || _generateId(el));\n }\n }\n\n return order;\n },\n\n /**\n * Sorts the elements according to the array.\n * @param {String[]} order order of the items\n */\n sort: function sort(order) {\n var items = {},\n rootEl = this.el;\n this.toArray().forEach(function (id, i) {\n var el = rootEl.children[i];\n\n if (closest(el, this.options.draggable, rootEl, false)) {\n items[id] = el;\n }\n }, this);\n order.forEach(function (id) {\n if (items[id]) {\n rootEl.removeChild(items[id]);\n rootEl.appendChild(items[id]);\n }\n });\n },\n\n /**\n * Save the current sorting\n */\n save: function save() {\n var store = this.options.store;\n store && store.set && store.set(this);\n },\n\n /**\n * For each element in the set, get the first element that matches the selector by testing the element itself and traversing up through its ancestors in the DOM tree.\n * @param {HTMLElement} el\n * @param {String} [selector] default: `options.draggable`\n * @returns {HTMLElement|null}\n */\n closest: function closest$1(el, selector) {\n return closest(el, selector || this.options.draggable, this.el, false);\n },\n\n /**\n * Set/get option\n * @param {string} name\n * @param {*} [value]\n * @returns {*}\n */\n option: function option(name, value) {\n var options = this.options;\n\n if (value === void 0) {\n return options[name];\n } else {\n var modifiedValue = PluginManager.modifyOption(this, name, value);\n\n if (typeof modifiedValue !== 'undefined') {\n options[name] = modifiedValue;\n } else {\n options[name] = value;\n }\n\n if (name === 'group') {\n _prepareGroup(options);\n }\n }\n },\n\n /**\n * Destroy\n */\n destroy: function destroy() {\n pluginEvent('destroy', this);\n var el = this.el;\n el[expando] = null;\n off(el, 'mousedown', this._onTapStart);\n off(el, 'touchstart', this._onTapStart);\n off(el, 'pointerdown', this._onTapStart);\n\n if (this.nativeDraggable) {\n off(el, 'dragover', this);\n off(el, 'dragenter', this);\n } // Remove draggable attributes\n\n\n Array.prototype.forEach.call(el.querySelectorAll('[draggable]'), function (el) {\n el.removeAttribute('draggable');\n });\n\n this._onDrop();\n\n this._disableDelayedDragEvents();\n\n sortables.splice(sortables.indexOf(this.el), 1);\n this.el = el = null;\n },\n _hideClone: function _hideClone() {\n if (!cloneHidden) {\n pluginEvent('hideClone', this);\n if (Sortable.eventCanceled) return;\n css(cloneEl, 'display', 'none');\n\n if (this.options.removeCloneOnHide && cloneEl.parentNode) {\n cloneEl.parentNode.removeChild(cloneEl);\n }\n\n cloneHidden = true;\n }\n },\n _showClone: function _showClone(putSortable) {\n if (putSortable.lastPutMode !== 'clone') {\n this._hideClone();\n\n return;\n }\n\n if (cloneHidden) {\n pluginEvent('showClone', this);\n if (Sortable.eventCanceled) return; // show clone at dragEl or original position\n\n if (rootEl.contains(dragEl) && !this.options.group.revertClone) {\n rootEl.insertBefore(cloneEl, dragEl);\n } else if (nextEl) {\n rootEl.insertBefore(cloneEl, nextEl);\n } else {\n rootEl.appendChild(cloneEl);\n }\n\n if (this.options.group.revertClone) {\n this.animate(dragEl, cloneEl);\n }\n\n css(cloneEl, 'display', '');\n cloneHidden = false;\n }\n }\n};\n\nfunction _globalDragOver(\n/**Event*/\nevt) {\n if (evt.dataTransfer) {\n evt.dataTransfer.dropEffect = 'move';\n }\n\n evt.cancelable && evt.preventDefault();\n}\n\nfunction _onMove(fromEl, toEl, dragEl, dragRect, targetEl, targetRect, originalEvent, willInsertAfter) {\n var evt,\n sortable = fromEl[expando],\n onMoveFn = sortable.options.onMove,\n retVal; // Support for new CustomEvent feature\n\n if (window.CustomEvent && !IE11OrLess && !Edge) {\n evt = new CustomEvent('move', {\n bubbles: true,\n cancelable: true\n });\n } else {\n evt = document.createEvent('Event');\n evt.initEvent('move', true, true);\n }\n\n evt.to = toEl;\n evt.from = fromEl;\n evt.dragged = dragEl;\n evt.draggedRect = dragRect;\n evt.related = targetEl || toEl;\n evt.relatedRect = targetRect || getRect(toEl);\n evt.willInsertAfter = willInsertAfter;\n evt.originalEvent = originalEvent;\n fromEl.dispatchEvent(evt);\n\n if (onMoveFn) {\n retVal = onMoveFn.call(sortable, evt, originalEvent);\n }\n\n return retVal;\n}\n\nfunction _disableDraggable(el) {\n el.draggable = false;\n}\n\nfunction _unsilent() {\n _silent = false;\n}\n\nfunction _ghostIsLast(evt, vertical, sortable) {\n var rect = getRect(lastChild(sortable.el, sortable.options.draggable));\n var spacer = 10;\n return vertical ? evt.clientX > rect.right + spacer || evt.clientX <= rect.right && evt.clientY > rect.bottom && evt.clientX >= rect.left : evt.clientX > rect.right && evt.clientY > rect.top || evt.clientX <= rect.right && evt.clientY > rect.bottom + spacer;\n}\n\nfunction _getSwapDirection(evt, target, targetRect, vertical, swapThreshold, invertedSwapThreshold, invertSwap, isLastTarget) {\n var mouseOnAxis = vertical ? evt.clientY : evt.clientX,\n targetLength = vertical ? targetRect.height : targetRect.width,\n targetS1 = vertical ? targetRect.top : targetRect.left,\n targetS2 = vertical ? targetRect.bottom : targetRect.right,\n invert = false;\n\n if (!invertSwap) {\n // Never invert or create dragEl shadow when target movemenet causes mouse to move past the end of regular swapThreshold\n if (isLastTarget && targetMoveDistance < targetLength * swapThreshold) {\n // multiplied only by swapThreshold because mouse will already be inside target by (1 - threshold) * targetLength / 2\n // check if past first invert threshold on side opposite of lastDirection\n if (!pastFirstInvertThresh && (lastDirection === 1 ? mouseOnAxis > targetS1 + targetLength * invertedSwapThreshold / 2 : mouseOnAxis < targetS2 - targetLength * invertedSwapThreshold / 2)) {\n // past first invert threshold, do not restrict inverted threshold to dragEl shadow\n pastFirstInvertThresh = true;\n }\n\n if (!pastFirstInvertThresh) {\n // dragEl shadow (target move distance shadow)\n if (lastDirection === 1 ? mouseOnAxis < targetS1 + targetMoveDistance // over dragEl shadow\n : mouseOnAxis > targetS2 - targetMoveDistance) {\n return -lastDirection;\n }\n } else {\n invert = true;\n }\n } else {\n // Regular\n if (mouseOnAxis > targetS1 + targetLength * (1 - swapThreshold) / 2 && mouseOnAxis < targetS2 - targetLength * (1 - swapThreshold) / 2) {\n return _getInsertDirection(target);\n }\n }\n }\n\n invert = invert || invertSwap;\n\n if (invert) {\n // Invert of regular\n if (mouseOnAxis < targetS1 + targetLength * invertedSwapThreshold / 2 || mouseOnAxis > targetS2 - targetLength * invertedSwapThreshold / 2) {\n return mouseOnAxis > targetS1 + targetLength / 2 ? 1 : -1;\n }\n }\n\n return 0;\n}\n/**\n * Gets the direction dragEl must be swapped relative to target in order to make it\n * seem that dragEl has been \"inserted\" into that element's position\n * @param {HTMLElement} target The target whose position dragEl is being inserted at\n * @return {Number} Direction dragEl must be swapped\n */\n\n\nfunction _getInsertDirection(target) {\n if (index(dragEl) < index(target)) {\n return 1;\n } else {\n return -1;\n }\n}\n/**\n * Generate id\n * @param {HTMLElement} el\n * @returns {String}\n * @private\n */\n\n\nfunction _generateId(el) {\n var str = el.tagName + el.className + el.src + el.href + el.textContent,\n i = str.length,\n sum = 0;\n\n while (i--) {\n sum += str.charCodeAt(i);\n }\n\n return sum.toString(36);\n}\n\nfunction _saveInputCheckedState(root) {\n savedInputChecked.length = 0;\n var inputs = root.getElementsByTagName('input');\n var idx = inputs.length;\n\n while (idx--) {\n var el = inputs[idx];\n el.checked && savedInputChecked.push(el);\n }\n}\n\nfunction _nextTick(fn) {\n return setTimeout(fn, 0);\n}\n\nfunction _cancelNextTick(id) {\n return clearTimeout(id);\n} // Fixed #973:\n\n\nif (documentExists) {\n on(document, 'touchmove', function (evt) {\n if ((Sortable.active || awaitingDragStarted) && evt.cancelable) {\n evt.preventDefault();\n }\n });\n} // Export utils\n\n\nSortable.utils = {\n on: on,\n off: off,\n css: css,\n find: find,\n is: function is(el, selector) {\n return !!closest(el, selector, el, false);\n },\n extend: extend,\n throttle: throttle,\n closest: closest,\n toggleClass: toggleClass,\n clone: clone,\n index: index,\n nextTick: _nextTick,\n cancelNextTick: _cancelNextTick,\n detectDirection: _detectDirection,\n getChild: getChild\n};\n/**\n * Get the Sortable instance of an element\n * @param {HTMLElement} element The element\n * @return {Sortable|undefined} The instance of Sortable\n */\n\nSortable.get = function (element) {\n return element[expando];\n};\n/**\n * Mount a plugin to Sortable\n * @param {...SortablePlugin|SortablePlugin[]} plugins Plugins being mounted\n */\n\n\nSortable.mount = function () {\n for (var _len = arguments.length, plugins = new Array(_len), _key = 0; _key < _len; _key++) {\n plugins[_key] = arguments[_key];\n }\n\n if (plugins[0].constructor === Array) plugins = plugins[0];\n plugins.forEach(function (plugin) {\n if (!plugin.prototype || !plugin.prototype.constructor) {\n throw \"Sortable: Mounted plugin must be a constructor function, not \".concat({}.toString.call(plugin));\n }\n\n if (plugin.utils) Sortable.utils = _objectSpread({}, Sortable.utils, plugin.utils);\n PluginManager.mount(plugin);\n });\n};\n/**\n * Create sortable instance\n * @param {HTMLElement} el\n * @param {Object} [options]\n */\n\n\nSortable.create = function (el, options) {\n return new Sortable(el, options);\n}; // Export\n\n\nSortable.version = version;\n\nvar autoScrolls = [],\n scrollEl,\n scrollRootEl,\n scrolling = false,\n lastAutoScrollX,\n lastAutoScrollY,\n touchEvt$1,\n pointerElemChangedInterval;\n\nfunction AutoScrollPlugin() {\n function AutoScroll() {\n this.defaults = {\n scroll: true,\n scrollSensitivity: 30,\n scrollSpeed: 10,\n bubbleScroll: true\n }; // Bind all private methods\n\n for (var fn in this) {\n if (fn.charAt(0) === '_' && typeof this[fn] === 'function') {\n this[fn] = this[fn].bind(this);\n }\n }\n }\n\n AutoScroll.prototype = {\n dragStarted: function dragStarted(_ref) {\n var originalEvent = _ref.originalEvent;\n\n if (this.sortable.nativeDraggable) {\n on(document, 'dragover', this._handleAutoScroll);\n } else {\n if (this.options.supportPointer) {\n on(document, 'pointermove', this._handleFallbackAutoScroll);\n } else if (originalEvent.touches) {\n on(document, 'touchmove', this._handleFallbackAutoScroll);\n } else {\n on(document, 'mousemove', this._handleFallbackAutoScroll);\n }\n }\n },\n dragOverCompleted: function dragOverCompleted(_ref2) {\n var originalEvent = _ref2.originalEvent;\n\n // For when bubbling is canceled and using fallback (fallback 'touchmove' always reached)\n if (!this.options.dragOverBubble && !originalEvent.rootEl) {\n this._handleAutoScroll(originalEvent);\n }\n },\n drop: function drop() {\n if (this.sortable.nativeDraggable) {\n off(document, 'dragover', this._handleAutoScroll);\n } else {\n off(document, 'pointermove', this._handleFallbackAutoScroll);\n off(document, 'touchmove', this._handleFallbackAutoScroll);\n off(document, 'mousemove', this._handleFallbackAutoScroll);\n }\n\n clearPointerElemChangedInterval();\n clearAutoScrolls();\n cancelThrottle();\n },\n nulling: function nulling() {\n touchEvt$1 = scrollRootEl = scrollEl = scrolling = pointerElemChangedInterval = lastAutoScrollX = lastAutoScrollY = null;\n autoScrolls.length = 0;\n },\n _handleFallbackAutoScroll: function _handleFallbackAutoScroll(evt) {\n this._handleAutoScroll(evt, true);\n },\n _handleAutoScroll: function _handleAutoScroll(evt, fallback) {\n var _this = this;\n\n var x = (evt.touches ? evt.touches[0] : evt).clientX,\n y = (evt.touches ? evt.touches[0] : evt).clientY,\n elem = document.elementFromPoint(x, y);\n touchEvt$1 = evt; // IE does not seem to have native autoscroll,\n // Edge's autoscroll seems too conditional,\n // MACOS Safari does not have autoscroll,\n // Firefox and Chrome are good\n\n if (fallback || Edge || IE11OrLess || Safari) {\n autoScroll(evt, this.options, elem, fallback); // Listener for pointer element change\n\n var ogElemScroller = getParentAutoScrollElement(elem, true);\n\n if (scrolling && (!pointerElemChangedInterval || x !== lastAutoScrollX || y !== lastAutoScrollY)) {\n pointerElemChangedInterval && clearPointerElemChangedInterval(); // Detect for pointer elem change, emulating native DnD behaviour\n\n pointerElemChangedInterval = setInterval(function () {\n var newElem = getParentAutoScrollElement(document.elementFromPoint(x, y), true);\n\n if (newElem !== ogElemScroller) {\n ogElemScroller = newElem;\n clearAutoScrolls();\n }\n\n autoScroll(evt, _this.options, newElem, fallback);\n }, 10);\n lastAutoScrollX = x;\n lastAutoScrollY = y;\n }\n } else {\n // if DnD is enabled (and browser has good autoscrolling), first autoscroll will already scroll, so get parent autoscroll of first autoscroll\n if (!this.options.bubbleScroll || getParentAutoScrollElement(elem, true) === getWindowScrollingElement()) {\n clearAutoScrolls();\n return;\n }\n\n autoScroll(evt, this.options, getParentAutoScrollElement(elem, false), false);\n }\n }\n };\n return _extends(AutoScroll, {\n pluginName: 'scroll',\n initializeByDefault: true\n });\n}\n\nfunction clearAutoScrolls() {\n autoScrolls.forEach(function (autoScroll) {\n clearInterval(autoScroll.pid);\n });\n autoScrolls = [];\n}\n\nfunction clearPointerElemChangedInterval() {\n clearInterval(pointerElemChangedInterval);\n}\n\nvar autoScroll = throttle(function (evt, options, rootEl, isFallback) {\n // Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=505521\n if (!options.scroll) return;\n var x = (evt.touches ? evt.touches[0] : evt).clientX,\n y = (evt.touches ? evt.touches[0] : evt).clientY,\n sens = options.scrollSensitivity,\n speed = options.scrollSpeed,\n winScroller = getWindowScrollingElement();\n var scrollThisInstance = false,\n scrollCustomFn; // New scroll root, set scrollEl\n\n if (scrollRootEl !== rootEl) {\n scrollRootEl = rootEl;\n clearAutoScrolls();\n scrollEl = options.scroll;\n scrollCustomFn = options.scrollFn;\n\n if (scrollEl === true) {\n scrollEl = getParentAutoScrollElement(rootEl, true);\n }\n }\n\n var layersOut = 0;\n var currentParent = scrollEl;\n\n do {\n var el = currentParent,\n rect = getRect(el),\n top = rect.top,\n bottom = rect.bottom,\n left = rect.left,\n right = rect.right,\n width = rect.width,\n height = rect.height,\n canScrollX = void 0,\n canScrollY = void 0,\n scrollWidth = el.scrollWidth,\n scrollHeight = el.scrollHeight,\n elCSS = css(el),\n scrollPosX = el.scrollLeft,\n scrollPosY = el.scrollTop;\n\n if (el === winScroller) {\n canScrollX = width < scrollWidth && (elCSS.overflowX === 'auto' || elCSS.overflowX === 'scroll' || elCSS.overflowX === 'visible');\n canScrollY = height < scrollHeight && (elCSS.overflowY === 'auto' || elCSS.overflowY === 'scroll' || elCSS.overflowY === 'visible');\n } else {\n canScrollX = width < scrollWidth && (elCSS.overflowX === 'auto' || elCSS.overflowX === 'scroll');\n canScrollY = height < scrollHeight && (elCSS.overflowY === 'auto' || elCSS.overflowY === 'scroll');\n }\n\n var vx = canScrollX && (Math.abs(right - x) <= sens && scrollPosX + width < scrollWidth) - (Math.abs(left - x) <= sens && !!scrollPosX);\n var vy = canScrollY && (Math.abs(bottom - y) <= sens && scrollPosY + height < scrollHeight) - (Math.abs(top - y) <= sens && !!scrollPosY);\n\n if (!autoScrolls[layersOut]) {\n for (var i = 0; i <= layersOut; i++) {\n if (!autoScrolls[i]) {\n autoScrolls[i] = {};\n }\n }\n }\n\n if (autoScrolls[layersOut].vx != vx || autoScrolls[layersOut].vy != vy || autoScrolls[layersOut].el !== el) {\n autoScrolls[layersOut].el = el;\n autoScrolls[layersOut].vx = vx;\n autoScrolls[layersOut].vy = vy;\n clearInterval(autoScrolls[layersOut].pid);\n\n if (vx != 0 || vy != 0) {\n scrollThisInstance = true;\n /* jshint loopfunc:true */\n\n autoScrolls[layersOut].pid = setInterval(function () {\n // emulate drag over during autoscroll (fallback), emulating native DnD behaviour\n if (isFallback && this.layer === 0) {\n Sortable.active._onTouchMove(touchEvt$1); // To move ghost if it is positioned absolutely\n\n }\n\n var scrollOffsetY = autoScrolls[this.layer].vy ? autoScrolls[this.layer].vy * speed : 0;\n var scrollOffsetX = autoScrolls[this.layer].vx ? autoScrolls[this.layer].vx * speed : 0;\n\n if (typeof scrollCustomFn === 'function') {\n if (scrollCustomFn.call(Sortable.dragged.parentNode[expando], scrollOffsetX, scrollOffsetY, evt, touchEvt$1, autoScrolls[this.layer].el) !== 'continue') {\n return;\n }\n }\n\n scrollBy(autoScrolls[this.layer].el, scrollOffsetX, scrollOffsetY);\n }.bind({\n layer: layersOut\n }), 24);\n }\n }\n\n layersOut++;\n } while (options.bubbleScroll && currentParent !== winScroller && (currentParent = getParentAutoScrollElement(currentParent, false)));\n\n scrolling = scrollThisInstance; // in case another function catches scrolling as false in between when it is not\n}, 30);\n\nvar drop = function drop(_ref) {\n var originalEvent = _ref.originalEvent,\n putSortable = _ref.putSortable,\n dragEl = _ref.dragEl,\n activeSortable = _ref.activeSortable,\n dispatchSortableEvent = _ref.dispatchSortableEvent,\n hideGhostForTarget = _ref.hideGhostForTarget,\n unhideGhostForTarget = _ref.unhideGhostForTarget;\n if (!originalEvent) return;\n var toSortable = putSortable || activeSortable;\n hideGhostForTarget();\n var touch = originalEvent.changedTouches && originalEvent.changedTouches.length ? originalEvent.changedTouches[0] : originalEvent;\n var target = document.elementFromPoint(touch.clientX, touch.clientY);\n unhideGhostForTarget();\n\n if (toSortable && !toSortable.el.contains(target)) {\n dispatchSortableEvent('spill');\n this.onSpill({\n dragEl: dragEl,\n putSortable: putSortable\n });\n }\n};\n\nfunction Revert() {}\n\nRevert.prototype = {\n startIndex: null,\n dragStart: function dragStart(_ref2) {\n var oldDraggableIndex = _ref2.oldDraggableIndex;\n this.startIndex = oldDraggableIndex;\n },\n onSpill: function onSpill(_ref3) {\n var dragEl = _ref3.dragEl,\n putSortable = _ref3.putSortable;\n this.sortable.captureAnimationState();\n\n if (putSortable) {\n putSortable.captureAnimationState();\n }\n\n var nextSibling = getChild(this.sortable.el, this.startIndex, this.options);\n\n if (nextSibling) {\n this.sortable.el.insertBefore(dragEl, nextSibling);\n } else {\n this.sortable.el.appendChild(dragEl);\n }\n\n this.sortable.animateAll();\n\n if (putSortable) {\n putSortable.animateAll();\n }\n },\n drop: drop\n};\n\n_extends(Revert, {\n pluginName: 'revertOnSpill'\n});\n\nfunction Remove() {}\n\nRemove.prototype = {\n onSpill: function onSpill(_ref4) {\n var dragEl = _ref4.dragEl,\n putSortable = _ref4.putSortable;\n var parentSortable = putSortable || this.sortable;\n parentSortable.captureAnimationState();\n dragEl.parentNode && dragEl.parentNode.removeChild(dragEl);\n parentSortable.animateAll();\n },\n drop: drop\n};\n\n_extends(Remove, {\n pluginName: 'removeOnSpill'\n});\n\nvar lastSwapEl;\n\nfunction SwapPlugin() {\n function Swap() {\n this.defaults = {\n swapClass: 'sortable-swap-highlight'\n };\n }\n\n Swap.prototype = {\n dragStart: function dragStart(_ref) {\n var dragEl = _ref.dragEl;\n lastSwapEl = dragEl;\n },\n dragOverValid: function dragOverValid(_ref2) {\n var completed = _ref2.completed,\n target = _ref2.target,\n onMove = _ref2.onMove,\n activeSortable = _ref2.activeSortable,\n changed = _ref2.changed,\n cancel = _ref2.cancel;\n if (!activeSortable.options.swap) return;\n var el = this.sortable.el,\n options = this.options;\n\n if (target && target !== el) {\n var prevSwapEl = lastSwapEl;\n\n if (onMove(target) !== false) {\n toggleClass(target, options.swapClass, true);\n lastSwapEl = target;\n } else {\n lastSwapEl = null;\n }\n\n if (prevSwapEl && prevSwapEl !== lastSwapEl) {\n toggleClass(prevSwapEl, options.swapClass, false);\n }\n }\n\n changed();\n completed(true);\n cancel();\n },\n drop: function drop(_ref3) {\n var activeSortable = _ref3.activeSortable,\n putSortable = _ref3.putSortable,\n dragEl = _ref3.dragEl;\n var toSortable = putSortable || this.sortable;\n var options = this.options;\n lastSwapEl && toggleClass(lastSwapEl, options.swapClass, false);\n\n if (lastSwapEl && (options.swap || putSortable && putSortable.options.swap)) {\n if (dragEl !== lastSwapEl) {\n toSortable.captureAnimationState();\n if (toSortable !== activeSortable) activeSortable.captureAnimationState();\n swapNodes(dragEl, lastSwapEl);\n toSortable.animateAll();\n if (toSortable !== activeSortable) activeSortable.animateAll();\n }\n }\n },\n nulling: function nulling() {\n lastSwapEl = null;\n }\n };\n return _extends(Swap, {\n pluginName: 'swap',\n eventProperties: function eventProperties() {\n return {\n swapItem: lastSwapEl\n };\n }\n });\n}\n\nfunction swapNodes(n1, n2) {\n var p1 = n1.parentNode,\n p2 = n2.parentNode,\n i1,\n i2;\n if (!p1 || !p2 || p1.isEqualNode(n2) || p2.isEqualNode(n1)) return;\n i1 = index(n1);\n i2 = index(n2);\n\n if (p1.isEqualNode(p2) && i1 < i2) {\n i2++;\n }\n\n p1.insertBefore(n2, p1.children[i1]);\n p2.insertBefore(n1, p2.children[i2]);\n}\n\nvar multiDragElements = [],\n multiDragClones = [],\n lastMultiDragSelect,\n // for selection with modifier key down (SHIFT)\nmultiDragSortable,\n initialFolding = false,\n // Initial multi-drag fold when drag started\nfolding = false,\n // Folding any other time\ndragStarted = false,\n dragEl$1,\n clonesFromRect,\n clonesHidden;\n\nfunction MultiDragPlugin() {\n function MultiDrag(sortable) {\n // Bind all private methods\n for (var fn in this) {\n if (fn.charAt(0) === '_' && typeof this[fn] === 'function') {\n this[fn] = this[fn].bind(this);\n }\n }\n\n if (sortable.options.supportPointer) {\n on(document, 'pointerup', this._deselectMultiDrag);\n } else {\n on(document, 'mouseup', this._deselectMultiDrag);\n on(document, 'touchend', this._deselectMultiDrag);\n }\n\n on(document, 'keydown', this._checkKeyDown);\n on(document, 'keyup', this._checkKeyUp);\n this.defaults = {\n selectedClass: 'sortable-selected',\n multiDragKey: null,\n setData: function setData(dataTransfer, dragEl) {\n var data = '';\n\n if (multiDragElements.length && multiDragSortable === sortable) {\n multiDragElements.forEach(function (multiDragElement, i) {\n data += (!i ? '' : ', ') + multiDragElement.textContent;\n });\n } else {\n data = dragEl.textContent;\n }\n\n dataTransfer.setData('Text', data);\n }\n };\n }\n\n MultiDrag.prototype = {\n multiDragKeyDown: false,\n isMultiDrag: false,\n delayStartGlobal: function delayStartGlobal(_ref) {\n var dragged = _ref.dragEl;\n dragEl$1 = dragged;\n },\n delayEnded: function delayEnded() {\n this.isMultiDrag = ~multiDragElements.indexOf(dragEl$1);\n },\n setupClone: function setupClone(_ref2) {\n var sortable = _ref2.sortable,\n cancel = _ref2.cancel;\n if (!this.isMultiDrag) return;\n\n for (var i = 0; i < multiDragElements.length; i++) {\n multiDragClones.push(clone(multiDragElements[i]));\n multiDragClones[i].sortableIndex = multiDragElements[i].sortableIndex;\n multiDragClones[i].draggable = false;\n multiDragClones[i].style['will-change'] = '';\n toggleClass(multiDragClones[i], this.options.selectedClass, false);\n multiDragElements[i] === dragEl$1 && toggleClass(multiDragClones[i], this.options.chosenClass, false);\n }\n\n sortable._hideClone();\n\n cancel();\n },\n clone: function clone(_ref3) {\n var sortable = _ref3.sortable,\n rootEl = _ref3.rootEl,\n dispatchSortableEvent = _ref3.dispatchSortableEvent,\n cancel = _ref3.cancel;\n if (!this.isMultiDrag) return;\n\n if (!this.options.removeCloneOnHide) {\n if (multiDragElements.length && multiDragSortable === sortable) {\n insertMultiDragClones(true, rootEl);\n dispatchSortableEvent('clone');\n cancel();\n }\n }\n },\n showClone: function showClone(_ref4) {\n var cloneNowShown = _ref4.cloneNowShown,\n rootEl = _ref4.rootEl,\n cancel = _ref4.cancel;\n if (!this.isMultiDrag) return;\n insertMultiDragClones(false, rootEl);\n multiDragClones.forEach(function (clone) {\n css(clone, 'display', '');\n });\n cloneNowShown();\n clonesHidden = false;\n cancel();\n },\n hideClone: function hideClone(_ref5) {\n var _this = this;\n\n var sortable = _ref5.sortable,\n cloneNowHidden = _ref5.cloneNowHidden,\n cancel = _ref5.cancel;\n if (!this.isMultiDrag) return;\n multiDragClones.forEach(function (clone) {\n css(clone, 'display', 'none');\n\n if (_this.options.removeCloneOnHide && clone.parentNode) {\n clone.parentNode.removeChild(clone);\n }\n });\n cloneNowHidden();\n clonesHidden = true;\n cancel();\n },\n dragStartGlobal: function dragStartGlobal(_ref6) {\n var sortable = _ref6.sortable;\n\n if (!this.isMultiDrag && multiDragSortable) {\n multiDragSortable.multiDrag._deselectMultiDrag();\n }\n\n multiDragElements.forEach(function (multiDragElement) {\n multiDragElement.sortableIndex = index(multiDragElement);\n }); // Sort multi-drag elements\n\n multiDragElements = multiDragElements.sort(function (a, b) {\n return a.sortableIndex - b.sortableIndex;\n });\n dragStarted = true;\n },\n dragStarted: function dragStarted(_ref7) {\n var _this2 = this;\n\n var sortable = _ref7.sortable;\n if (!this.isMultiDrag) return;\n\n if (this.options.sort) {\n // Capture rects,\n // hide multi drag elements (by positioning them absolute),\n // set multi drag elements rects to dragRect,\n // show multi drag elements,\n // animate to rects,\n // unset rects & remove from DOM\n sortable.captureAnimationState();\n\n if (this.options.animation) {\n multiDragElements.forEach(function (multiDragElement) {\n if (multiDragElement === dragEl$1) return;\n css(multiDragElement, 'position', 'absolute');\n });\n var dragRect = getRect(dragEl$1, false, true, true);\n multiDragElements.forEach(function (multiDragElement) {\n if (multiDragElement === dragEl$1) return;\n setRect(multiDragElement, dragRect);\n });\n folding = true;\n initialFolding = true;\n }\n }\n\n sortable.animateAll(function () {\n folding = false;\n initialFolding = false;\n\n if (_this2.options.animation) {\n multiDragElements.forEach(function (multiDragElement) {\n unsetRect(multiDragElement);\n });\n } // Remove all auxiliary multidrag items from el, if sorting enabled\n\n\n if (_this2.options.sort) {\n removeMultiDragElements();\n }\n });\n },\n dragOver: function dragOver(_ref8) {\n var target = _ref8.target,\n completed = _ref8.completed,\n cancel = _ref8.cancel;\n\n if (folding && ~multiDragElements.indexOf(target)) {\n completed(false);\n cancel();\n }\n },\n revert: function revert(_ref9) {\n var fromSortable = _ref9.fromSortable,\n rootEl = _ref9.rootEl,\n sortable = _ref9.sortable,\n dragRect = _ref9.dragRect;\n\n if (multiDragElements.length > 1) {\n // Setup unfold animation\n multiDragElements.forEach(function (multiDragElement) {\n sortable.addAnimationState({\n target: multiDragElement,\n rect: folding ? getRect(multiDragElement) : dragRect\n });\n unsetRect(multiDragElement);\n multiDragElement.fromRect = dragRect;\n fromSortable.removeAnimationState(multiDragElement);\n });\n folding = false;\n insertMultiDragElements(!this.options.removeCloneOnHide, rootEl);\n }\n },\n dragOverCompleted: function dragOverCompleted(_ref10) {\n var sortable = _ref10.sortable,\n isOwner = _ref10.isOwner,\n insertion = _ref10.insertion,\n activeSortable = _ref10.activeSortable,\n parentEl = _ref10.parentEl,\n putSortable = _ref10.putSortable;\n var options = this.options;\n\n if (insertion) {\n // Clones must be hidden before folding animation to capture dragRectAbsolute properly\n if (isOwner) {\n activeSortable._hideClone();\n }\n\n initialFolding = false; // If leaving sort:false root, or already folding - Fold to new location\n\n if (options.animation && multiDragElements.length > 1 && (folding || !isOwner && !activeSortable.options.sort && !putSortable)) {\n // Fold: Set all multi drag elements's rects to dragEl's rect when multi-drag elements are invisible\n var dragRectAbsolute = getRect(dragEl$1, false, true, true);\n multiDragElements.forEach(function (multiDragElement) {\n if (multiDragElement === dragEl$1) return;\n setRect(multiDragElement, dragRectAbsolute); // Move element(s) to end of parentEl so that it does not interfere with multi-drag clones insertion if they are inserted\n // while folding, and so that we can capture them again because old sortable will no longer be fromSortable\n\n parentEl.appendChild(multiDragElement);\n });\n folding = true;\n } // Clones must be shown (and check to remove multi drags) after folding when interfering multiDragElements are moved out\n\n\n if (!isOwner) {\n // Only remove if not folding (folding will remove them anyways)\n if (!folding) {\n removeMultiDragElements();\n }\n\n if (multiDragElements.length > 1) {\n var clonesHiddenBefore = clonesHidden;\n\n activeSortable._showClone(sortable); // Unfold animation for clones if showing from hidden\n\n\n if (activeSortable.options.animation && !clonesHidden && clonesHiddenBefore) {\n multiDragClones.forEach(function (clone) {\n activeSortable.addAnimationState({\n target: clone,\n rect: clonesFromRect\n });\n clone.fromRect = clonesFromRect;\n clone.thisAnimationDuration = null;\n });\n }\n } else {\n activeSortable._showClone(sortable);\n }\n }\n }\n },\n dragOverAnimationCapture: function dragOverAnimationCapture(_ref11) {\n var dragRect = _ref11.dragRect,\n isOwner = _ref11.isOwner,\n activeSortable = _ref11.activeSortable;\n multiDragElements.forEach(function (multiDragElement) {\n multiDragElement.thisAnimationDuration = null;\n });\n\n if (activeSortable.options.animation && !isOwner && activeSortable.multiDrag.isMultiDrag) {\n clonesFromRect = _extends({}, dragRect);\n var dragMatrix = matrix(dragEl$1, true);\n clonesFromRect.top -= dragMatrix.f;\n clonesFromRect.left -= dragMatrix.e;\n }\n },\n dragOverAnimationComplete: function dragOverAnimationComplete() {\n if (folding) {\n folding = false;\n removeMultiDragElements();\n }\n },\n drop: function drop(_ref12) {\n var evt = _ref12.originalEvent,\n rootEl = _ref12.rootEl,\n parentEl = _ref12.parentEl,\n sortable = _ref12.sortable,\n dispatchSortableEvent = _ref12.dispatchSortableEvent,\n oldIndex = _ref12.oldIndex,\n putSortable = _ref12.putSortable;\n var toSortable = putSortable || this.sortable;\n if (!evt) return;\n var options = this.options,\n children = parentEl.children; // Multi-drag selection\n\n if (!dragStarted) {\n if (options.multiDragKey && !this.multiDragKeyDown) {\n this._deselectMultiDrag();\n }\n\n toggleClass(dragEl$1, options.selectedClass, !~multiDragElements.indexOf(dragEl$1));\n\n if (!~multiDragElements.indexOf(dragEl$1)) {\n multiDragElements.push(dragEl$1);\n dispatchEvent({\n sortable: sortable,\n rootEl: rootEl,\n name: 'select',\n targetEl: dragEl$1,\n originalEvt: evt\n }); // Modifier activated, select from last to dragEl\n\n if (evt.shiftKey && lastMultiDragSelect && sortable.el.contains(lastMultiDragSelect)) {\n var lastIndex = index(lastMultiDragSelect),\n currentIndex = index(dragEl$1);\n\n if (~lastIndex && ~currentIndex && lastIndex !== currentIndex) {\n // Must include lastMultiDragSelect (select it), in case modified selection from no selection\n // (but previous selection existed)\n var n, i;\n\n if (currentIndex > lastIndex) {\n i = lastIndex;\n n = currentIndex;\n } else {\n i = currentIndex;\n n = lastIndex + 1;\n }\n\n for (; i < n; i++) {\n if (~multiDragElements.indexOf(children[i])) continue;\n toggleClass(children[i], options.selectedClass, true);\n multiDragElements.push(children[i]);\n dispatchEvent({\n sortable: sortable,\n rootEl: rootEl,\n name: 'select',\n targetEl: children[i],\n originalEvt: evt\n });\n }\n }\n } else {\n lastMultiDragSelect = dragEl$1;\n }\n\n multiDragSortable = toSortable;\n } else {\n multiDragElements.splice(multiDragElements.indexOf(dragEl$1), 1);\n lastMultiDragSelect = null;\n dispatchEvent({\n sortable: sortable,\n rootEl: rootEl,\n name: 'deselect',\n targetEl: dragEl$1,\n originalEvt: evt\n });\n }\n } // Multi-drag drop\n\n\n if (dragStarted && this.isMultiDrag) {\n // Do not \"unfold\" after around dragEl if reverted\n if ((parentEl[expando].options.sort || parentEl !== rootEl) && multiDragElements.length > 1) {\n var dragRect = getRect(dragEl$1),\n multiDragIndex = index(dragEl$1, ':not(.' + this.options.selectedClass + ')');\n if (!initialFolding && options.animation) dragEl$1.thisAnimationDuration = null;\n toSortable.captureAnimationState();\n\n if (!initialFolding) {\n if (options.animation) {\n dragEl$1.fromRect = dragRect;\n multiDragElements.forEach(function (multiDragElement) {\n multiDragElement.thisAnimationDuration = null;\n\n if (multiDragElement !== dragEl$1) {\n var rect = folding ? getRect(multiDragElement) : dragRect;\n multiDragElement.fromRect = rect; // Prepare unfold animation\n\n toSortable.addAnimationState({\n target: multiDragElement,\n rect: rect\n });\n }\n });\n } // Multi drag elements are not necessarily removed from the DOM on drop, so to reinsert\n // properly they must all be removed\n\n\n removeMultiDragElements();\n multiDragElements.forEach(function (multiDragElement) {\n if (children[multiDragIndex]) {\n parentEl.insertBefore(multiDragElement, children[multiDragIndex]);\n } else {\n parentEl.appendChild(multiDragElement);\n }\n\n multiDragIndex++;\n }); // If initial folding is done, the elements may have changed position because they are now\n // unfolding around dragEl, even though dragEl may not have his index changed, so update event\n // must be fired here as Sortable will not.\n\n if (oldIndex === index(dragEl$1)) {\n var update = false;\n multiDragElements.forEach(function (multiDragElement) {\n if (multiDragElement.sortableIndex !== index(multiDragElement)) {\n update = true;\n return;\n }\n });\n\n if (update) {\n dispatchSortableEvent('update');\n }\n }\n } // Must be done after capturing individual rects (scroll bar)\n\n\n multiDragElements.forEach(function (multiDragElement) {\n unsetRect(multiDragElement);\n });\n toSortable.animateAll();\n }\n\n multiDragSortable = toSortable;\n } // Remove clones if necessary\n\n\n if (rootEl === parentEl || putSortable && putSortable.lastPutMode !== 'clone') {\n multiDragClones.forEach(function (clone) {\n clone.parentNode && clone.parentNode.removeChild(clone);\n });\n }\n },\n nullingGlobal: function nullingGlobal() {\n this.isMultiDrag = dragStarted = false;\n multiDragClones.length = 0;\n },\n destroyGlobal: function destroyGlobal() {\n this._deselectMultiDrag();\n\n off(document, 'pointerup', this._deselectMultiDrag);\n off(document, 'mouseup', this._deselectMultiDrag);\n off(document, 'touchend', this._deselectMultiDrag);\n off(document, 'keydown', this._checkKeyDown);\n off(document, 'keyup', this._checkKeyUp);\n },\n _deselectMultiDrag: function _deselectMultiDrag(evt) {\n if (typeof dragStarted !== \"undefined\" && dragStarted) return; // Only deselect if selection is in this sortable\n\n if (multiDragSortable !== this.sortable) return; // Only deselect if target is not item in this sortable\n\n if (evt && closest(evt.target, this.options.draggable, this.sortable.el, false)) return; // Only deselect if left click\n\n if (evt && evt.button !== 0) return;\n\n while (multiDragElements.length) {\n var el = multiDragElements[0];\n toggleClass(el, this.options.selectedClass, false);\n multiDragElements.shift();\n dispatchEvent({\n sortable: this.sortable,\n rootEl: this.sortable.el,\n name: 'deselect',\n targetEl: el,\n originalEvt: evt\n });\n }\n },\n _checkKeyDown: function _checkKeyDown(evt) {\n if (evt.key === this.options.multiDragKey) {\n this.multiDragKeyDown = true;\n }\n },\n _checkKeyUp: function _checkKeyUp(evt) {\n if (evt.key === this.options.multiDragKey) {\n this.multiDragKeyDown = false;\n }\n }\n };\n return _extends(MultiDrag, {\n // Static methods & properties\n pluginName: 'multiDrag',\n utils: {\n /**\r\n * Selects the provided multi-drag item\r\n * @param {HTMLElement} el The element to be selected\r\n */\n select: function select(el) {\n var sortable = el.parentNode[expando];\n if (!sortable || !sortable.options.multiDrag || ~multiDragElements.indexOf(el)) return;\n\n if (multiDragSortable && multiDragSortable !== sortable) {\n multiDragSortable.multiDrag._deselectMultiDrag();\n\n multiDragSortable = sortable;\n }\n\n toggleClass(el, sortable.options.selectedClass, true);\n multiDragElements.push(el);\n },\n\n /**\r\n * Deselects the provided multi-drag item\r\n * @param {HTMLElement} el The element to be deselected\r\n */\n deselect: function deselect(el) {\n var sortable = el.parentNode[expando],\n index = multiDragElements.indexOf(el);\n if (!sortable || !sortable.options.multiDrag || !~index) return;\n toggleClass(el, sortable.options.selectedClass, false);\n multiDragElements.splice(index, 1);\n }\n },\n eventProperties: function eventProperties() {\n var _this3 = this;\n\n var oldIndicies = [],\n newIndicies = [];\n multiDragElements.forEach(function (multiDragElement) {\n oldIndicies.push({\n multiDragElement: multiDragElement,\n index: multiDragElement.sortableIndex\n }); // multiDragElements will already be sorted if folding\n\n var newIndex;\n\n if (folding && multiDragElement !== dragEl$1) {\n newIndex = -1;\n } else if (folding) {\n newIndex = index(multiDragElement, ':not(.' + _this3.options.selectedClass + ')');\n } else {\n newIndex = index(multiDragElement);\n }\n\n newIndicies.push({\n multiDragElement: multiDragElement,\n index: newIndex\n });\n });\n return {\n items: _toConsumableArray(multiDragElements),\n clones: [].concat(multiDragClones),\n oldIndicies: oldIndicies,\n newIndicies: newIndicies\n };\n },\n optionListeners: {\n multiDragKey: function multiDragKey(key) {\n key = key.toLowerCase();\n\n if (key === 'ctrl') {\n key = 'Control';\n } else if (key.length > 1) {\n key = key.charAt(0).toUpperCase() + key.substr(1);\n }\n\n return key;\n }\n }\n });\n}\n\nfunction insertMultiDragElements(clonesInserted, rootEl) {\n multiDragElements.forEach(function (multiDragElement, i) {\n var target = rootEl.children[multiDragElement.sortableIndex + (clonesInserted ? Number(i) : 0)];\n\n if (target) {\n rootEl.insertBefore(multiDragElement, target);\n } else {\n rootEl.appendChild(multiDragElement);\n }\n });\n}\n/**\r\n * Insert multi-drag clones\r\n * @param {[Boolean]} elementsInserted Whether the multi-drag elements are inserted\r\n * @param {HTMLElement} rootEl\r\n */\n\n\nfunction insertMultiDragClones(elementsInserted, rootEl) {\n multiDragClones.forEach(function (clone, i) {\n var target = rootEl.children[clone.sortableIndex + (elementsInserted ? Number(i) : 0)];\n\n if (target) {\n rootEl.insertBefore(clone, target);\n } else {\n rootEl.appendChild(clone);\n }\n });\n}\n\nfunction removeMultiDragElements() {\n multiDragElements.forEach(function (multiDragElement) {\n if (multiDragElement === dragEl$1) return;\n multiDragElement.parentNode && multiDragElement.parentNode.removeChild(multiDragElement);\n });\n}\n\nSortable.mount(new AutoScrollPlugin());\nSortable.mount(Remove, Revert);\n\nexport default Sortable;\nexport { MultiDragPlugin as MultiDrag, Sortable, SwapPlugin as Swap };\n","\"use strict\";\n\nvar _map = require(\"lodash/map\");\n\nvar _map2 = _interopRequireDefault(_map);\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.array = array;\n\nvar _core = require(\"./core\");\n\nvar _coder = require(\"./coder\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction array(entry) {\n return {\n encode: function encode(array) {\n return (0, _core.concat)([{ blob: (0, _core.toVarN)(array.length) }].concat((0, _map2.default)(array, entry.encode)));\n },\n decode: function decode(_ref) {\n var bits = _ref.bits;\n var blob = _ref.blob;\n\n var size;\n\n var _fromVarN = (0, _core.fromVarN)(blob);\n\n var _fromVarN2 = _slicedToArray(_fromVarN, 2);\n\n size = _fromVarN2[0];\n blob = _fromVarN2[1];\n\n var rest = { bits: bits, blob: blob };\n var array = [],\n result,\n i;\n for (i = 0; i < size; i++) {\n result = entry.decode(rest);\n array[i] = result.value;\n rest = result.rest;\n }\n return { value: array, rest: rest };\n }\n };\n}\n\n(0, _coder.register)('array', array);","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = boolean;\n\nvar _oneOf = require(\"./oneOf\");\n\nvar _oneOf2 = _interopRequireDefault(_oneOf);\n\nvar _coder = require(\"./coder\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction boolean() {\n return (0, _oneOf2.default)(true, false);\n}\n\n(0, _coder.register)('boolean', boolean);","\"use strict\";\n\nvar _fromPairs = require(\"lodash/fromPairs\");\n\nvar _fromPairs2 = _interopRequireDefault(_fromPairs);\n\nvar _keys = require(\"lodash/keys\");\n\nvar _keys2 = _interopRequireDefault(_keys);\n\nvar _isObject = require(\"lodash/isObject\");\n\nvar _isObject2 = _interopRequireDefault(_isObject);\n\nvar _tail = require(\"lodash/tail\");\n\nvar _tail2 = _interopRequireDefault(_tail);\n\nvar _map = require(\"lodash/map\");\n\nvar _map2 = _interopRequireDefault(_map);\n\nvar _isArray = require(\"lodash/isArray\");\n\nvar _isArray2 = _interopRequireDefault(_isArray);\n\nvar _reduce = require(\"lodash/reduce\");\n\nvar _reduce2 = _interopRequireDefault(_reduce);\n\nvar _filter = require(\"lodash/filter\");\n\nvar _filter2 = _interopRequireDefault(_filter);\n\nvar _sortBy = require(\"lodash/sortBy\");\n\nvar _sortBy2 = _interopRequireDefault(_sortBy);\n\nvar _find = require(\"lodash/find\");\n\nvar _find2 = _interopRequireDefault(_find);\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.register = register;\nexports.encode = encode;\nexports.decode = decode;\nexports.fromJson = fromJson;\n\nvar _core = require(\"./core\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar availableTypes = {};\n\nfunction register(name, type) {\n availableTypes[name] = type;\n}\n\nfunction encode(coder, object) {\n var _coder$spec$encode = coder.spec.encode(object);\n\n var bits = _coder$spec$encode.bits;\n var blob = _coder$spec$encode.blob;\n\n return coder.encodedVersion + (0, _core.toVarN)(bits.length) + (0, _core.bitsToN)(bits) + blob;\n}\n\nfunction decode(coders, string) {\n var version, bitSize;\n\n var _fromVarN = (0, _core.fromVarN)(string);\n\n var _fromVarN2 = _slicedToArray(_fromVarN, 2);\n\n version = _fromVarN2[0];\n string = _fromVarN2[1];\n\n var _fromVarN3 = (0, _core.fromVarN)(string);\n\n var _fromVarN4 = _slicedToArray(_fromVarN3, 2);\n\n bitSize = _fromVarN4[0];\n string = _fromVarN4[1];\n\n var coder = (0, _find2.default)(coders, function (c) {\n return c.version === version;\n });\n if (!coder) {\n throw new Error(\"Invalid version: \" + version);\n }\n\n var bitCharSize = Math.ceil(bitSize / 6);\n var bits = (0, _core.nToBits)(string.substr(0, bitCharSize), bitSize);\n var blob = string.substr(bitCharSize);\n var result = coder.spec.decode({ bits: bits, blob: blob });\n var pendingMigrations = (0, _sortBy2.default)((0, _filter2.default)(coders, function (coder) {\n return coder.version > version;\n }), 'version');\n return (0, _reduce2.default)(pendingMigrations, function (value, coder) {\n return coder.migrate(value);\n }, result.value);\n}\n\nfunction fromJson(version, jsonSpec, migrate) {\n function loop(spec) {\n if ((0, _isArray2.default)(spec)) {\n var method = spec[0];\n if (method === 'tuple') {\n return availableTypes.tuple((0, _map2.default)((0, _tail2.default)(spec), loop));\n } else if (method === 'array') {\n return availableTypes.array(loop(spec[1]));\n } else {\n return availableTypes[method].apply(null, (0, _tail2.default)(spec));\n }\n } else if ((0, _isObject2.default)(spec)) {\n var entries = (0, _keys2.default)(spec).sort();\n return availableTypes.object((0, _fromPairs2.default)((0, _map2.default)(entries, function (key) {\n return [key, loop(spec[key])];\n })));\n }\n }\n\n return {\n version: version,\n spec: loop(jsonSpec),\n jsonSpec: jsonSpec,\n encodedVersion: (0, _core.toVarN)(version),\n migrate: migrate || function (x) {\n return x;\n }\n };\n}","'use strict';\n\nvar _map = require('lodash/map');\n\nvar _map2 = _interopRequireDefault(_map);\n\nvar _reduce = require('lodash/reduce');\n\nvar _reduce2 = _interopRequireDefault(_reduce);\n\nvar _repeat = require('lodash/repeat');\n\nvar _repeat2 = _interopRequireDefault(_repeat);\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.none = exports.notNone = undefined;\nexports.bitsRequired = bitsRequired;\nexports.paddedBinary = paddedBinary;\nexports.isNone = isNone;\nexports.concat = concat;\nexports.toN = toN;\nexports.fromN = fromN;\nexports.fromVarN = fromVarN;\nexports.toVarN = toVarN;\nexports.paddedN = paddedN;\nexports.bitsToN = bitsToN;\nexports.nToBits = nToBits;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction bitsRequired(maxValue) {\n if (maxValue === 0) {\n return 1;\n }\n return Math.floor(Math.log(maxValue) / Math.LN2) + 1;\n}\n\nfunction paddedBinary(value, bitSize) {\n var binary = value.toString(2);\n if (binary.length > bitSize) {\n throw new Error('Invalid value or bitSize: can\\'t fit ' + value + ' in ' + bitSize + ' bits');\n }\n\n return (0, _repeat2.default)('0', bitSize - binary.length) + binary;\n}\n\nvar notNone = exports.notNone = paddedBinary(0, 1);\nvar none = exports.none = paddedBinary(1, 1);\n\nfunction isNone(bits) {\n return bits && bits.length >= 1 && bits[0] === none[0];\n}\n\nfunction concat(encoded) {\n return (0, _reduce2.default)(encoded, function (acc, obj) {\n return { bits: acc.bits + (obj.bits || ''), blob: acc.blob + (obj.blob || '') };\n }, { bits: '', blob: '' });\n}\n\nvar availableCharacters = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890_-';\nvar base = availableCharacters.length; // 64\n\nfunction toN(x) {\n if (x < 0) {\n throw new Error('Invalid number: can\\'t encode negative number ' + x);\n }\n\n var result = '';\n while (x >= base) {\n result = availableCharacters[x % base] + result;\n x = Math.floor(x / base);\n }\n\n result = availableCharacters[x] + result;\n return result;\n}\n\nfunction fromN(n) {\n var x = 0,\n index;\n for (var i = 0; i < n.length; i++) {\n index = availableCharacters.indexOf(n[i]);\n if (index === -1) {\n throw new Error('Invalid number: can\\'t decode ' + n);\n }\n x += index * Math.pow(base, n.length - i - 1);\n }\n return x;\n}\n\nfunction fromVarN(string) {\n var str = string;\n var value = 0;\n var hasMore = true;\n while (hasMore) {\n if (str.length === 0) {\n throw new Error('Invalid number: can\\'t decode ' + string);\n }\n var byte = str[0];\n str = str.substr(1);\n var n = fromN(byte);\n hasMore = n > 31;\n value = value << 5 | n & 31;\n }\n return [value, str];\n}\n\nfunction toVarN(n) {\n var result = '';\n var charsRequired = Math.ceil(bitsRequired(n) / 5);\n var bits = paddedBinary(n, charsRequired * 5);\n while (bits) {\n var part = bits.substr(0, 5);\n bits = bits.substr(5);\n part = (bits.length === 0 ? '0' : '1') + part;\n result += bitsToN(part);\n }\n return result;\n}\n\nfunction paddedN(x, charSize) {\n var r = toN(x);\n if (r.length > charSize) {\n throw new Error('Invalid charSize: can\\'t encode ' + x + ' in ' + charSize + ' chars');\n }\n\n return (0, _repeat2.default)(availableCharacters[0], charSize - r.length) + r;\n}\n\nfunction bitsToN(bits) {\n var result = '',\n char;\n while (bits) {\n char = bits.substr(0, 6);\n bits = bits.substr(6);\n\n if (char.length < 6) {\n char += (0, _repeat2.default)('0', 6 - char.length);\n }\n result += toN(parseInt(char, 2));\n }\n\n return result;\n}\n\nfunction nToBits(chars, bitSize) {\n return (0, _map2.default)(chars, function (c) {\n return paddedBinary(fromN(c), 6);\n }).join('').substr(0, bitSize);\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = fixedChar;\n\nvar _coder = require('./coder');\n\nfunction fixedChar(size) {\n return {\n encode: function encode(string) {\n return { bits: '', blob: string.toString() };\n },\n decode: function decode(_ref) {\n var bits = _ref.bits;\n var blob = _ref.blob;\n\n return {\n value: blob.substr(0, size),\n rest: { bits: bits, blob: blob.substr(size) }\n };\n }\n };\n}\n\n(0, _coder.register)('fixedchar', fixedChar);","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = integer;\n\nvar _core = require(\"./core\");\n\nvar _coder = require(\"./coder\");\n\nfunction integer() {\n return {\n encode: function encode(int) {\n var binary = Math.abs(int).toString(2);\n var bits = (0, _core.paddedBinary)(binary.length, 6) + (int > 0 ? '1' : '0') + binary;\n return { bits: bits, blob: '' };\n },\n decode: function decode(_ref) {\n var bits = _ref.bits;\n var blob = _ref.blob;\n\n var size = parseInt(bits.substr(0, 6), 2);\n bits = bits.substr(6);\n var sign = bits[0] === '1' ? 1 : -1;\n bits = bits.substr(1);\n return {\n value: sign * parseInt(bits.substr(0, size), 2),\n rest: { bits: bits.substr(size), blob: blob }\n };\n }\n };\n}\n\n(0, _coder.register)('integer', integer);","\"use strict\";\n\nvar _each = require(\"lodash/each\");\n\nvar _each2 = _interopRequireDefault(_each);\n\nvar _has = require(\"lodash/has\");\n\nvar _has2 = _interopRequireDefault(_has);\n\nvar _map = require(\"lodash/map\");\n\nvar _map2 = _interopRequireDefault(_map);\n\nvar _flatten = require(\"lodash/flatten\");\n\nvar _flatten2 = _interopRequireDefault(_flatten);\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\nexports.object = object;\n\nvar _core = require(\"./core\");\n\nvar _coder = require(\"./coder\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction object(entries) {\n\treturn {\n\t\tencode: function encode(object) {\n\t\t\treturn (0, _core.concat)((0, _flatten2.default)((0, _map2.default)(entries, function (entry, key) {\n\t\t\t\tif ((0, _has2.default)(object, key)) {\n\t\t\t\t\treturn [{ bits: _core.notNone }, entry.encode(object[key])];\n\t\t\t\t}\n\t\t\t\treturn { bits: _core.none };\n\t\t\t})));\n\t\t},\n\t\tdecode: function decode(_ref) {\n\t\t\tvar bits = _ref.bits;\n\t\t\tvar blob = _ref.blob;\n\n\t\t\tvar object = {};\n\t\t\t(0, _each2.default)(entries, function (entry, key) {\n\t\t\t\tif ((0, _core.isNone)(bits)) {\n\t\t\t\t\tbits = bits.substr(1);\n\t\t\t\t\treturn;\n\t\t\t\t} else {\n\t\t\t\t\tbits = bits.substr(1);\n\t\t\t\t}\n\n\t\t\t\tvar result = entry.decode({ bits: bits, blob: blob });\n\t\t\t\tbits = result.rest.bits;\n\t\t\t\tblob = result.rest.blob;\n\t\t\t\tobject[key] = result.value;\n\t\t\t});\n\t\t\treturn { value: object, rest: { bits: bits, blob: blob } };\n\t\t}\n\t};\n}\n\n(0, _coder.register)('object', object);","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = oneOf;\n\nvar _core = require(\"./core\");\n\nvar _coder = require(\"./coder\");\n\nfunction oneOf() {\n for (var _len = arguments.length, choices = Array(_len), _key = 0; _key < _len; _key++) {\n choices[_key] = arguments[_key];\n }\n\n var bitSize = (0, _core.bitsRequired)(choices.length - 1);\n return {\n encode: function encode(choice) {\n var index = choices.indexOf(choice);\n if (index === -1) {\n throw new Error(\"Invalid choice: \" + choice + \" is not one of \" + choices.join(','));\n }\n return { bits: (0, _core.paddedBinary)(index, bitSize), blob: '' };\n },\n\n decode: function decode(_ref) {\n var bits = _ref.bits;\n var blob = _ref.blob;\n\n var index = parseInt(bits.substr(0, bitSize), 2);\n return {\n value: choices[index],\n rest: { bits: bits.substring(bitSize), blob: blob }\n };\n }\n };\n}\n\n(0, _coder.register)('oneOf', oneOf);","\"use strict\";\n\nvar _each = require(\"lodash/each\");\n\nvar _each2 = _interopRequireDefault(_each);\n\nvar _map = require(\"lodash/map\");\n\nvar _map2 = _interopRequireDefault(_map);\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.tuple = tuple;\n\nvar _core = require(\"./core\");\n\nvar _coder = require(\"./coder\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction tuple(entries) {\n return {\n encode: function encode(array) {\n return (0, _core.concat)((0, _map2.default)(entries, function (entry, i) {\n return entry.encode(array[i]);\n }));\n },\n decode: function decode(rest) {\n var array = [];\n (0, _each2.default)(entries, function (entry, i) {\n var result = entry.decode(rest);\n array[i] = result.value;\n rest = result.rest;\n });\n return { value: array, rest: rest };\n }\n };\n}\n\n(0, _coder.register)('tuple', tuple);","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.register = exports.decode = exports.encode = exports.fromJson = undefined;\n\nvar _coder = require(\"./coder\");\n\nObject.defineProperty(exports, \"fromJson\", {\n enumerable: true,\n get: function get() {\n return _coder.fromJson;\n }\n});\nObject.defineProperty(exports, \"encode\", {\n enumerable: true,\n get: function get() {\n return _coder.encode;\n }\n});\nObject.defineProperty(exports, \"decode\", {\n enumerable: true,\n get: function get() {\n return _coder.decode;\n }\n});\nObject.defineProperty(exports, \"register\", {\n enumerable: true,\n get: function get() {\n return _coder.register;\n }\n});\n\nrequire(\"./oneOf\");\n\nrequire(\"./boolean\");\n\nrequire(\"./integer\");\n\nrequire(\"./varchar\");\n\nrequire(\"./fixedchar\");\n\nrequire(\"./object\");\n\nrequire(\"./tuple\");\n\nrequire(\"./array\");","\"use strict\";\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = varchar;\n\nvar _core = require(\"./core\");\n\nvar _coder = require(\"./coder\");\n\nfunction varchar() {\n return {\n encode: function encode(string) {\n return { bits: '', blob: (0, _core.toVarN)(string.length) + string };\n },\n decode: function decode(_ref) {\n var bits = _ref.bits;\n var blob = _ref.blob;\n\n var size;\n\n var _fromVarN = (0, _core.fromVarN)(blob);\n\n var _fromVarN2 = _slicedToArray(_fromVarN, 2);\n\n size = _fromVarN2[0];\n blob = _fromVarN2[1];\n\n return {\n value: blob.substr(0, size),\n rest: { bits: bits, blob: blob.substr(size) }\n };\n }\n };\n}\n\n(0, _coder.register)('varchar', varchar);","var nativeCreate = require('./_nativeCreate');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Creates an hash object.\n *\n * @private\n * @returns {Object} Returns the new hash object.\n */\nfunction Hash() {}\n\n// Avoid inheriting from `Object.prototype` when possible.\nHash.prototype = nativeCreate ? nativeCreate(null) : objectProto;\n\nmodule.exports = Hash;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nmodule.exports = Map;\n","var mapClear = require('./_mapClear'),\n mapDelete = require('./_mapDelete'),\n mapGet = require('./_mapGet'),\n mapHas = require('./_mapHas'),\n mapSet = require('./_mapSet');\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @param {Array} [values] The values to cache.\n */\nfunction MapCache(values) {\n var index = -1,\n length = values ? values.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = values[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add functions to the `MapCache`.\nMapCache.prototype.clear = mapClear;\nMapCache.prototype['delete'] = mapDelete;\nMapCache.prototype.get = mapGet;\nMapCache.prototype.has = mapHas;\nMapCache.prototype.set = mapSet;\n\nmodule.exports = MapCache;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nmodule.exports = Set;\n","var stackClear = require('./_stackClear'),\n stackDelete = require('./_stackDelete'),\n stackGet = require('./_stackGet'),\n stackHas = require('./_stackHas'),\n stackSet = require('./_stackSet');\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @param {Array} [values] The values to cache.\n */\nfunction Stack(values) {\n var index = -1,\n length = values ? values.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = values[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add functions to the `Stack` cache.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nmodule.exports = Stack;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nmodule.exports = Uint8Array;\n","/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {...*} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n var length = args.length;\n switch (length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\nmodule.exports = apply;\n","/**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n var index = -1,\n length = array.length;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n}\n\nmodule.exports = arrayEach;\n","/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array.length,\n resIndex = -1,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[++resIndex] = value;\n }\n }\n return result;\n}\n\nmodule.exports = arrayFilter;\n","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nmodule.exports = arrayMap;\n","/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nmodule.exports = arrayPush;\n","/**\n * A specialized version of `_.reduce` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the first element of `array` as the initial value.\n * @returns {*} Returns the accumulated value.\n */\nfunction arrayReduce(array, iteratee, accumulator, initAccum) {\n var index = -1,\n length = array.length;\n\n if (initAccum && length) {\n accumulator = array[++index];\n }\n while (++index < length) {\n accumulator = iteratee(accumulator, array[index], index, array);\n }\n return accumulator;\n}\n\nmodule.exports = arrayReduce;\n","/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check, else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\nmodule.exports = arraySome;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the associative array.\n *\n * @private\n * @param {Array} array The array to query.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction assocDelete(array, key) {\n var index = assocIndexOf(array, key);\n if (index < 0) {\n return false;\n }\n var lastIndex = array.length - 1;\n if (index == lastIndex) {\n array.pop();\n } else {\n splice.call(array, index, 1);\n }\n return true;\n}\n\nmodule.exports = assocDelete;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Gets the associative array value for `key`.\n *\n * @private\n * @param {Array} array The array to query.\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction assocGet(array, key) {\n var index = assocIndexOf(array, key);\n return index < 0 ? undefined : array[index][1];\n}\n\nmodule.exports = assocGet;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Checks if an associative array value for `key` exists.\n *\n * @private\n * @param {Array} array The array to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction assocHas(array, key) {\n return assocIndexOf(array, key) > -1;\n}\n\nmodule.exports = assocHas;\n","var eq = require('./eq');\n\n/**\n * Gets the index at which the first occurrence of `key` is found in `array`\n * of key-value pairs.\n *\n * @private\n * @param {Array} array The array to search.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nmodule.exports = assocIndexOf;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Sets the associative array `key` to `value`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n */\nfunction assocSet(array, key, value) {\n var index = assocIndexOf(array, key);\n if (index < 0) {\n array.push([key, value]);\n } else {\n array[index][1] = value;\n }\n}\n\nmodule.exports = assocSet;\n","var baseForOwn = require('./_baseForOwn'),\n createBaseEach = require('./_createBaseEach');\n\n/**\n * The base implementation of `_.forEach` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\nvar baseEach = createBaseEach(baseForOwn);\n\nmodule.exports = baseEach;\n","var baseEach = require('./_baseEach');\n\n/**\n * The base implementation of `_.filter` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction baseFilter(collection, predicate) {\n var result = [];\n baseEach(collection, function(value, index, collection) {\n if (predicate(value, index, collection)) {\n result.push(value);\n }\n });\n return result;\n}\n\nmodule.exports = baseFilter;\n","/**\n * The base implementation of methods like `_.find` and `_.findKey`, without\n * support for iteratee shorthands, which iterates over `collection` using\n * `eachFunc`.\n *\n * @private\n * @param {Array|Object} collection The collection to search.\n * @param {Function} predicate The function invoked per iteration.\n * @param {Function} eachFunc The function to iterate over `collection`.\n * @param {boolean} [retKey] Specify returning the key of the found element instead of the element itself.\n * @returns {*} Returns the found element or its key, else `undefined`.\n */\nfunction baseFind(collection, predicate, eachFunc, retKey) {\n var result;\n eachFunc(collection, function(value, key, collection) {\n if (predicate(value, key, collection)) {\n result = retKey ? key : value;\n return false;\n }\n });\n return result;\n}\n\nmodule.exports = baseFind;\n","/**\n * The base implementation of `_.findIndex` and `_.findLastIndex` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to search.\n * @param {Function} predicate The function invoked per iteration.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseFindIndex(array, predicate, fromRight) {\n var length = array.length,\n index = fromRight ? length : -1;\n\n while ((fromRight ? index-- : ++index < length)) {\n if (predicate(array[index], index, array)) {\n return index;\n }\n }\n return -1;\n}\n\nmodule.exports = baseFindIndex;\n","var arrayPush = require('./_arrayPush'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isArrayLikeObject = require('./isArrayLikeObject');\n\n/**\n * The base implementation of `_.flatten` with support for restricting flattening.\n *\n * @private\n * @param {Array} array The array to flatten.\n * @param {boolean} [isDeep] Specify a deep flatten.\n * @param {boolean} [isStrict] Restrict flattening to arrays-like objects.\n * @param {Array} [result=[]] The initial result value.\n * @returns {Array} Returns the new flattened array.\n */\nfunction baseFlatten(array, isDeep, isStrict, result) {\n result || (result = []);\n\n var index = -1,\n length = array.length;\n\n while (++index < length) {\n var value = array[index];\n if (isArrayLikeObject(value) &&\n (isStrict || isArray(value) || isArguments(value))) {\n if (isDeep) {\n // Recursively flatten arrays (susceptible to call stack limits).\n baseFlatten(value, isDeep, isStrict, result);\n } else {\n arrayPush(result, value);\n }\n } else if (!isStrict) {\n result[result.length] = value;\n }\n }\n return result;\n}\n\nmodule.exports = baseFlatten;\n","var createBaseFor = require('./_createBaseFor');\n\n/**\n * The base implementation of `baseForIn` and `baseForOwn` which iterates\n * over `object` properties returned by `keysFunc` invoking `iteratee` for\n * each property. Iteratee functions may exit iteration early by explicitly\n * returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\nmodule.exports = baseFor;\n","var baseFor = require('./_baseFor'),\n keys = require('./keys');\n\n/**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\nfunction baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n}\n\nmodule.exports = baseForOwn;\n","var baseToPath = require('./_baseToPath'),\n isKey = require('./_isKey');\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = isKey(path, object) ? [path + ''] : baseToPath(path);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[path[index++]];\n }\n return (index && index == length) ? object : undefined;\n}\n\nmodule.exports = baseGet;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar getPrototypeOf = Object.getPrototypeOf;\n\n/**\n * The base implementation of `_.has` without support for deep paths.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHas(object, key) {\n // Avoid a bug in IE 10-11 where objects with a [[Prototype]] of `null`,\n // that are composed entirely of index properties, return `false` for\n // `hasOwnProperty` checks of them.\n return hasOwnProperty.call(object, key) ||\n (typeof object == 'object' && key in object && getPrototypeOf(object) === null);\n}\n\nmodule.exports = baseHas;\n","/**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHasIn(object, key) {\n return key in Object(object);\n}\n\nmodule.exports = baseHasIn;\n","var baseIsEqualDeep = require('./_baseIsEqualDeep'),\n isObject = require('./isObject'),\n isObjectLike = require('./isObjectLike');\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {boolean} [bitmask] The bitmask of comparison flags.\n * The bitmask may be composed of the following flags:\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, customizer, bitmask, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObject(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, baseIsEqual, customizer, bitmask, stack);\n}\n\nmodule.exports = baseIsEqual;\n","var Stack = require('./_Stack'),\n equalArrays = require('./_equalArrays'),\n equalByTag = require('./_equalByTag'),\n equalObjects = require('./_equalObjects'),\n getTag = require('./_getTag'),\n isArray = require('./isArray'),\n isHostObject = require('./_isHostObject'),\n isTypedArray = require('./isTypedArray');\n\n/** Used to compose bitmasks for comparison styles. */\nvar PARTIAL_COMPARE_FLAG = 2;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {number} [bitmask] The bitmask of comparison flags. See `baseIsEqual` for more details.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, equalFunc, customizer, bitmask, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = arrayTag,\n othTag = arrayTag;\n\n if (!objIsArr) {\n objTag = getTag(object);\n if (objTag == argsTag) {\n objTag = objectTag;\n } else if (objTag != objectTag) {\n objIsArr = isTypedArray(object);\n }\n }\n if (!othIsArr) {\n othTag = getTag(other);\n if (othTag == argsTag) {\n othTag = objectTag;\n } else if (othTag != objectTag) {\n othIsArr = isTypedArray(other);\n }\n }\n var objIsObj = objTag == objectTag && !isHostObject(object),\n othIsObj = othTag == objectTag && !isHostObject(other),\n isSameTag = objTag == othTag;\n\n if (isSameTag && !(objIsArr || objIsObj)) {\n return equalByTag(object, other, objTag, equalFunc, customizer, bitmask);\n }\n var isPartial = bitmask & PARTIAL_COMPARE_FLAG;\n if (!isPartial) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n return equalFunc(objIsWrapped ? object.value() : object, othIsWrapped ? other.value() : other, customizer, bitmask, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return (objIsArr ? equalArrays : equalObjects)(object, other, equalFunc, customizer, bitmask, stack);\n}\n\nmodule.exports = baseIsEqualDeep;\n","var Stack = require('./_Stack'),\n baseIsEqual = require('./_baseIsEqual');\n\n/** Used to compose bitmasks for comparison styles. */\nvar UNORDERED_COMPARE_FLAG = 1,\n PARTIAL_COMPARE_FLAG = 2;\n\n/**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n */\nfunction baseIsMatch(object, source, matchData, customizer) {\n var index = matchData.length,\n length = index,\n noCustomizer = !customizer;\n\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (index--) {\n var data = matchData[index];\n if ((noCustomizer && data[2])\n ? data[1] !== object[data[0]]\n : !(data[0] in object)\n ) {\n return false;\n }\n }\n while (++index < length) {\n data = matchData[index];\n var key = data[0],\n objValue = object[key],\n srcValue = data[1];\n\n if (noCustomizer && data[2]) {\n if (objValue === undefined && !(key in object)) {\n return false;\n }\n } else {\n var stack = new Stack,\n result = customizer ? customizer(objValue, srcValue, key, object, source, stack) : undefined;\n\n if (!(result === undefined\n ? baseIsEqual(srcValue, objValue, customizer, UNORDERED_COMPARE_FLAG | PARTIAL_COMPARE_FLAG, stack)\n : result\n )) {\n return false;\n }\n }\n }\n return true;\n}\n\nmodule.exports = baseIsMatch;\n","var baseMatches = require('./_baseMatches'),\n baseMatchesProperty = require('./_baseMatchesProperty'),\n identity = require('./identity'),\n isArray = require('./isArray'),\n property = require('./property');\n\n/**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\nfunction baseIteratee(value) {\n var type = typeof value;\n if (type == 'function') {\n return value;\n }\n if (value == null) {\n return identity;\n }\n if (type == 'object') {\n return isArray(value)\n ? baseMatchesProperty(value[0], value[1])\n : baseMatches(value);\n }\n return property(value);\n}\n\nmodule.exports = baseIteratee;\n","/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = Object.keys;\n\n/**\n * The base implementation of `_.keys` which doesn't skip the constructor\n * property of prototypes or treat sparse arrays as dense.\n *\n * @private\n * @type Function\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n return nativeKeys(Object(object));\n}\n\nmodule.exports = baseKeys;\n","var baseEach = require('./_baseEach'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * The base implementation of `_.map` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction baseMap(collection, iteratee) {\n var index = -1,\n result = isArrayLike(collection) ? Array(collection.length) : [];\n\n baseEach(collection, function(value, key, collection) {\n result[++index] = iteratee(value, key, collection);\n });\n return result;\n}\n\nmodule.exports = baseMap;\n","var baseIsMatch = require('./_baseIsMatch'),\n getMatchData = require('./_getMatchData');\n\n/**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new function.\n */\nfunction baseMatches(source) {\n var matchData = getMatchData(source);\n if (matchData.length == 1 && matchData[0][2]) {\n var key = matchData[0][0],\n value = matchData[0][1];\n\n return function(object) {\n if (object == null) {\n return false;\n }\n return object[key] === value &&\n (value !== undefined || (key in Object(object)));\n };\n }\n return function(object) {\n return object === source || baseIsMatch(object, source, matchData);\n };\n}\n\nmodule.exports = baseMatches;\n","var baseIsEqual = require('./_baseIsEqual'),\n get = require('./get'),\n hasIn = require('./hasIn');\n\n/** Used to compose bitmasks for comparison styles. */\nvar UNORDERED_COMPARE_FLAG = 1,\n PARTIAL_COMPARE_FLAG = 2;\n\n/**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new function.\n */\nfunction baseMatchesProperty(path, srcValue) {\n return function(object) {\n var objValue = get(object, path);\n return (objValue === undefined && objValue === srcValue)\n ? hasIn(object, path)\n : baseIsEqual(srcValue, objValue, undefined, UNORDERED_COMPARE_FLAG | PARTIAL_COMPARE_FLAG);\n };\n}\n\nmodule.exports = baseMatchesProperty;\n","var arrayMap = require('./_arrayMap'),\n baseIteratee = require('./_baseIteratee'),\n baseMap = require('./_baseMap'),\n baseSortBy = require('./_baseSortBy'),\n compareMultiple = require('./_compareMultiple');\n\n/**\n * The base implementation of `_.orderBy` without param guards.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function[]|Object[]|string[]} iteratees The iteratees to sort by.\n * @param {string[]} orders The sort orders of `iteratees`.\n * @returns {Array} Returns the new sorted array.\n */\nfunction baseOrderBy(collection, iteratees, orders) {\n var index = -1,\n toIteratee = baseIteratee;\n\n iteratees = arrayMap(iteratees.length ? iteratees : Array(1), function(iteratee) {\n return toIteratee(iteratee);\n });\n\n var result = baseMap(collection, function(value, key, collection) {\n var criteria = arrayMap(iteratees, function(iteratee) {\n return iteratee(value);\n });\n return { 'criteria': criteria, 'index': ++index, 'value': value };\n });\n\n return baseSortBy(result, function(object, other) {\n return compareMultiple(object, other, orders);\n });\n}\n\nmodule.exports = baseOrderBy;\n","/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new function.\n */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n}\n\nmodule.exports = baseProperty;\n","var baseGet = require('./_baseGet');\n\n/**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new function.\n */\nfunction basePropertyDeep(path) {\n return function(object) {\n return baseGet(object, path);\n };\n}\n\nmodule.exports = basePropertyDeep;\n","/**\n * The base implementation of `_.reduce` and `_.reduceRight`, without support\n * for iteratee shorthands, which iterates over `collection` using `eachFunc`.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} accumulator The initial value.\n * @param {boolean} initAccum Specify using the first or last element of `collection` as the initial value.\n * @param {Function} eachFunc The function to iterate over `collection`.\n * @returns {*} Returns the accumulated value.\n */\nfunction baseReduce(collection, iteratee, accumulator, initAccum, eachFunc) {\n eachFunc(collection, function(value, index, collection) {\n accumulator = initAccum\n ? (initAccum = false, value)\n : iteratee(accumulator, value, index, collection);\n });\n return accumulator;\n}\n\nmodule.exports = baseReduce;\n","/**\n * The base implementation of `_.slice` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\nfunction baseSlice(array, start, end) {\n var index = -1,\n length = array.length;\n\n if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = end > length ? length : end;\n if (end < 0) {\n end += length;\n }\n length = start > end ? 0 : ((end - start) >>> 0);\n start >>>= 0;\n\n var result = Array(length);\n while (++index < length) {\n result[index] = array[index + start];\n }\n return result;\n}\n\nmodule.exports = baseSlice;\n","/**\n * The base implementation of `_.sortBy` which uses `comparer` to define\n * the sort order of `array` and replaces criteria objects with their\n * corresponding values.\n *\n * @private\n * @param {Array} array The array to sort.\n * @param {Function} comparer The function to define sort order.\n * @returns {Array} Returns `array`.\n */\nfunction baseSortBy(array, comparer) {\n var length = array.length;\n\n array.sort(comparer);\n while (length--) {\n array[length] = array[length].value;\n }\n return array;\n}\n\nmodule.exports = baseSortBy;\n","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nmodule.exports = baseTimes;\n","var arrayMap = require('./_arrayMap');\n\n/**\n * The base implementation of `_.toPairs` and `_.toPairsIn` which creates an array\n * of key-value pairs for `object` corresponding to the property names of `props`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} props The property names to get values for.\n * @returns {Object} Returns the new array of key-value pairs.\n */\nfunction baseToPairs(object, props) {\n return arrayMap(props, function(key) {\n return [key, object[key]];\n });\n}\n\nmodule.exports = baseToPairs;\n","var isArray = require('./isArray'),\n stringToPath = require('./_stringToPath');\n\n/**\n * The base implementation of `_.toPath` which only converts `value` to a\n * path if it's not one.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {Array} Returns the property path array.\n */\nfunction baseToPath(value) {\n return isArray(value) ? value : stringToPath(value);\n}\n\nmodule.exports = baseToPath;\n","/**\n * Checks if `value` is a global object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {null|Object} Returns `value` if it's a global object, else `null`.\n */\nfunction checkGlobal(value) {\n return (value && value.Object === Object) ? value : null;\n}\n\nmodule.exports = checkGlobal;\n","/**\n * Compares values to sort them in ascending order.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {number} Returns the sort order indicator for `value`.\n */\nfunction compareAscending(value, other) {\n if (value !== other) {\n var valIsNull = value === null,\n valIsUndef = value === undefined,\n valIsReflexive = value === value;\n\n var othIsNull = other === null,\n othIsUndef = other === undefined,\n othIsReflexive = other === other;\n\n if ((value > other && !othIsNull) || !valIsReflexive ||\n (valIsNull && !othIsUndef && othIsReflexive) ||\n (valIsUndef && othIsReflexive)) {\n return 1;\n }\n if ((value < other && !valIsNull) || !othIsReflexive ||\n (othIsNull && !valIsUndef && valIsReflexive) ||\n (othIsUndef && valIsReflexive)) {\n return -1;\n }\n }\n return 0;\n}\n\nmodule.exports = compareAscending;\n","var compareAscending = require('./_compareAscending');\n\n/**\n * Used by `_.orderBy` to compare multiple properties of a value to another\n * and stable sort them.\n *\n * If `orders` is unspecified, all values are sorted in ascending order. Otherwise,\n * specify an order of \"desc\" for descending or \"asc\" for ascending sort order\n * of corresponding values.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {boolean[]|string[]} orders The order to sort by for each property.\n * @returns {number} Returns the sort order indicator for `object`.\n */\nfunction compareMultiple(object, other, orders) {\n var index = -1,\n objCriteria = object.criteria,\n othCriteria = other.criteria,\n length = objCriteria.length,\n ordersLength = orders.length;\n\n while (++index < length) {\n var result = compareAscending(objCriteria[index], othCriteria[index]);\n if (result) {\n if (index >= ordersLength) {\n return result;\n }\n var order = orders[index];\n return result * (order == 'desc' ? -1 : 1);\n }\n }\n // Fixes an `Array#sort` bug in the JS engine embedded in Adobe applications\n // that causes it, under certain circumstances, to provide the same value for\n // `object` and `other`. See https://github.com/jashkenas/underscore/pull/1247\n // for more details.\n //\n // This also ensures a stable sort in V8 and other engines.\n // See https://code.google.com/p/v8/issues/detail?id=90 for more details.\n return object.index - other.index;\n}\n\nmodule.exports = compareMultiple;\n","var isArrayLike = require('./isArrayLike');\n\n/**\n * Creates a `baseEach` or `baseEachRight` function.\n *\n * @private\n * @param {Function} eachFunc The function to iterate over a collection.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseEach(eachFunc, fromRight) {\n return function(collection, iteratee) {\n if (collection == null) {\n return collection;\n }\n if (!isArrayLike(collection)) {\n return eachFunc(collection, iteratee);\n }\n var length = collection.length,\n index = fromRight ? length : -1,\n iterable = Object(collection);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (iteratee(iterable[index], index, iterable) === false) {\n break;\n }\n }\n return collection;\n };\n}\n\nmodule.exports = createBaseEach;\n","/**\n * Creates a base function for methods like `_.forIn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\nmodule.exports = createBaseFor;\n","var arraySome = require('./_arraySome');\n\n/** Used to compose bitmasks for comparison styles. */\nvar UNORDERED_COMPARE_FLAG = 1,\n PARTIAL_COMPARE_FLAG = 2;\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {number} [bitmask] The bitmask of comparison flags. See `baseIsEqual` for more details.\n * @param {Object} [stack] Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, equalFunc, customizer, bitmask, stack) {\n var index = -1,\n isPartial = bitmask & PARTIAL_COMPARE_FLAG,\n isUnordered = bitmask & UNORDERED_COMPARE_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(array);\n if (stacked) {\n return stacked == other;\n }\n var result = true;\n stack.set(array, other);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (isUnordered) {\n if (!arraySome(other, function(othValue) {\n return arrValue === othValue || equalFunc(arrValue, othValue, customizer, bitmask, stack);\n })) {\n result = false;\n break;\n }\n } else if (!(arrValue === othValue || equalFunc(arrValue, othValue, customizer, bitmask, stack))) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n return result;\n}\n\nmodule.exports = equalArrays;\n","var Symbol = require('./_Symbol'),\n Uint8Array = require('./_Uint8Array'),\n mapToArray = require('./_mapToArray'),\n setToArray = require('./_setToArray');\n\n/** Used to compose bitmasks for comparison styles. */\nvar UNORDERED_COMPARE_FLAG = 1,\n PARTIAL_COMPARE_FLAG = 2;\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = Symbol ? symbolProto.valueOf : undefined;\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {number} [bitmask] The bitmask of comparison flags. See `baseIsEqual` for more details.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, equalFunc, customizer, bitmask) {\n switch (tag) {\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n // Coerce dates and booleans to numbers, dates to milliseconds and booleans\n // to `1` or `0` treating invalid dates coerced to `NaN` as not equal.\n return +object == +other;\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case numberTag:\n // Treat `NaN` vs. `NaN` as equal.\n return (object != +object) ? other != +other : object == +other;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings primitives and string\n // objects as equal. See https://es5.github.io/#x15.10.6.4 for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & PARTIAL_COMPARE_FLAG;\n convert || (convert = setToArray);\n\n // Recursively compare objects (susceptible to call stack limits).\n return (isPartial || object.size == other.size) &&\n equalFunc(convert(object), convert(other), customizer, bitmask | UNORDERED_COMPARE_FLAG);\n\n case symbolTag:\n return !!Symbol && (symbolValueOf.call(object) == symbolValueOf.call(other));\n }\n return false;\n}\n\nmodule.exports = equalByTag;\n","var baseHas = require('./_baseHas'),\n keys = require('./keys');\n\n/** Used to compose bitmasks for comparison styles. */\nvar PARTIAL_COMPARE_FLAG = 2;\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {number} [bitmask] The bitmask of comparison flags. See `baseIsEqual` for more details.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, equalFunc, customizer, bitmask, stack) {\n var isPartial = bitmask & PARTIAL_COMPARE_FLAG,\n objProps = keys(object),\n objLength = objProps.length,\n othProps = keys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : baseHas(other, key))) {\n return false;\n }\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n var result = true;\n stack.set(object, other);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, customizer, bitmask, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n return result;\n}\n\nmodule.exports = equalObjects;\n","var baseProperty = require('./_baseProperty');\n\n/**\n * Gets the \"length\" property value of `object`.\n *\n * **Note:** This function is used to avoid a [JIT bug](https://bugs.webkit.org/show_bug.cgi?id=142792)\n * that affects Safari on at least iOS 8.1-8.3 ARM64.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {*} Returns the \"length\" value.\n */\nvar getLength = baseProperty('length');\n\nmodule.exports = getLength;\n","var isStrictComparable = require('./_isStrictComparable'),\n toPairs = require('./toPairs');\n\n/**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\nfunction getMatchData(object) {\n var result = toPairs(object),\n length = result.length;\n\n while (length--) {\n result[length][2] = isStrictComparable(result[length][1]);\n }\n return result;\n}\n\nmodule.exports = getMatchData;\n","var isNative = require('./isNative');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = object == null ? undefined : object[key];\n return isNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n","var Map = require('./_Map'),\n Set = require('./_Set');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n setTag = '[object Set]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = Function.prototype.toString;\n\n/**\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/** Used to detect maps and sets. */\nvar mapCtorString = Map ? funcToString.call(Map) : '',\n setCtorString = Set ? funcToString.call(Set) : '';\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction getTag(value) {\n return objectToString.call(value);\n}\n\n// Fallback for IE 11 providing `toStringTag` values for maps and sets.\nif ((Map && getTag(new Map) != mapTag) || (Set && getTag(new Set) != setTag)) {\n getTag = function(value) {\n var result = objectToString.call(value),\n Ctor = result == objectTag ? value.constructor : null,\n ctorString = typeof Ctor == 'function' ? funcToString.call(Ctor) : '';\n\n if (ctorString) {\n if (ctorString == mapCtorString) {\n return mapTag;\n }\n if (ctorString == setCtorString) {\n return setTag;\n }\n }\n return result;\n };\n}\n\nmodule.exports = getTag;\n","var baseToPath = require('./_baseToPath'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isIndex = require('./_isIndex'),\n isKey = require('./_isKey'),\n isLength = require('./isLength'),\n isString = require('./isString'),\n last = require('./last'),\n parent = require('./_parent');\n\n/**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\nfunction hasPath(object, path, hasFunc) {\n if (object == null) {\n return false;\n }\n var result = hasFunc(object, path);\n if (!result && !isKey(path)) {\n path = baseToPath(path);\n object = parent(object, path);\n if (object != null) {\n path = last(path);\n result = hasFunc(object, path);\n }\n }\n var length = object ? object.length : undefined;\n return result || (\n !!length && isLength(length) && isIndex(path, length) &&\n (isArray(object) || isString(object) || isArguments(object))\n );\n}\n\nmodule.exports = hasPath;\n","var hashHas = require('./_hashHas');\n\n/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(hash, key) {\n return hashHas(hash, key) && delete hash[key];\n}\n\nmodule.exports = hashDelete;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @param {Object} hash The hash to query.\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(hash, key) {\n if (nativeCreate) {\n var result = hash[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(hash, key) ? hash[key] : undefined;\n}\n\nmodule.exports = hashGet;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @param {Object} hash The hash to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(hash, key) {\n return nativeCreate ? hash[key] !== undefined : hasOwnProperty.call(hash, key);\n}\n\nmodule.exports = hashHas;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n */\nfunction hashSet(hash, key, value) {\n hash[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n}\n\nmodule.exports = hashSet;\n","var baseTimes = require('./_baseTimes'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isLength = require('./isLength'),\n isString = require('./isString');\n\n/**\n * Creates an array of index keys for `object` values of arrays,\n * `arguments` objects, and strings, otherwise `null` is returned.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array|null} Returns index keys, else `null`.\n */\nfunction indexKeys(object) {\n var length = object ? object.length : undefined;\n if (isLength(length) &&\n (isArray(object) || isString(object) || isArguments(object))) {\n return baseTimes(length, String);\n }\n return null;\n}\n\nmodule.exports = indexKeys;\n","/**\n * Checks if `value` is a host object in IE < 9.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a host object, else `false`.\n */\nfunction isHostObject(value) {\n // Many host objects are `Object` objects that can coerce to strings\n // despite having improperly defined `toString` methods.\n var result = false;\n if (value != null && typeof value.toString != 'function') {\n try {\n result = !!(value + '');\n } catch (e) {}\n }\n return result;\n}\n\nmodule.exports = isHostObject;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n value = (typeof value == 'number' || reIsUint.test(value)) ? +value : -1;\n length = length == null ? MAX_SAFE_INTEGER : length;\n return value > -1 && value % 1 == 0 && value < length;\n}\n\nmodule.exports = isIndex;\n","var eq = require('./eq'),\n isArrayLike = require('./isArrayLike'),\n isIndex = require('./_isIndex'),\n isObject = require('./isObject');\n\n/**\n * Checks if the provided arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call, else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)) {\n return eq(object[index], value);\n }\n return false;\n}\n\nmodule.exports = isIterateeCall;\n","var isArray = require('./isArray');\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/;\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (typeof value == 'number') {\n return true;\n }\n return !isArray(value) &&\n (reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object)));\n}\n\nmodule.exports = isKey;\n","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return type == 'number' || type == 'boolean' ||\n (type == 'string' && value !== '__proto__') || value == null;\n}\n\nmodule.exports = isKeyable;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nmodule.exports = isPrototype;\n","var isObject = require('./isObject');\n\n/**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n * equality comparisons, else `false`.\n */\nfunction isStrictComparable(value) {\n return value === value && !isObject(value);\n}\n\nmodule.exports = isStrictComparable;\n","var Hash = require('./_Hash'),\n Map = require('./_Map');\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapClear() {\n this.__data__ = { 'hash': new Hash, 'map': Map ? new Map : [], 'string': new Hash };\n}\n\nmodule.exports = mapClear;\n","var Map = require('./_Map'),\n assocDelete = require('./_assocDelete'),\n hashDelete = require('./_hashDelete'),\n isKeyable = require('./_isKeyable');\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapDelete(key) {\n var data = this.__data__;\n if (isKeyable(key)) {\n return hashDelete(typeof key == 'string' ? data.string : data.hash, key);\n }\n return Map ? data.map['delete'](key) : assocDelete(data.map, key);\n}\n\nmodule.exports = mapDelete;\n","var Map = require('./_Map'),\n assocGet = require('./_assocGet'),\n hashGet = require('./_hashGet'),\n isKeyable = require('./_isKeyable');\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapGet(key) {\n var data = this.__data__;\n if (isKeyable(key)) {\n return hashGet(typeof key == 'string' ? data.string : data.hash, key);\n }\n return Map ? data.map.get(key) : assocGet(data.map, key);\n}\n\nmodule.exports = mapGet;\n","var Map = require('./_Map'),\n assocHas = require('./_assocHas'),\n hashHas = require('./_hashHas'),\n isKeyable = require('./_isKeyable');\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapHas(key) {\n var data = this.__data__;\n if (isKeyable(key)) {\n return hashHas(typeof key == 'string' ? data.string : data.hash, key);\n }\n return Map ? data.map.has(key) : assocHas(data.map, key);\n}\n\nmodule.exports = mapHas;\n","var Map = require('./_Map'),\n assocSet = require('./_assocSet'),\n hashSet = require('./_hashSet'),\n isKeyable = require('./_isKeyable');\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache object.\n */\nfunction mapSet(key, value) {\n var data = this.__data__;\n if (isKeyable(key)) {\n hashSet(typeof key == 'string' ? data.string : data.hash, key, value);\n } else if (Map) {\n data.map.set(key, value);\n } else {\n assocSet(data.map, key, value);\n }\n return this;\n}\n\nmodule.exports = mapSet;\n","/**\n * Converts `map` to an array.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\nmodule.exports = mapToArray;\n","var getNative = require('./_getNative');\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nmodule.exports = nativeCreate;\n","var baseSlice = require('./_baseSlice'),\n get = require('./get');\n\n/**\n * Gets the parent value at `path` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} path The path to get the parent value of.\n * @returns {*} Returns the parent value.\n */\nfunction parent(object, path) {\n return path.length == 1 ? object : get(object, baseSlice(path, 0, -1));\n}\n\nmodule.exports = parent;\n","var checkGlobal = require('./_checkGlobal');\n\n/** Used to determine if values are of the language type `Object`. */\nvar objectTypes = {\n 'function': true,\n 'object': true\n};\n\n/** Detect free variable `exports`. */\nvar freeExports = (objectTypes[typeof exports] && exports && !exports.nodeType) ? exports : null;\n\n/** Detect free variable `module`. */\nvar freeModule = (objectTypes[typeof module] && module && !module.nodeType) ? module : null;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = checkGlobal(freeExports && freeModule && typeof global == 'object' && global);\n\n/** Detect free variable `self`. */\nvar freeSelf = checkGlobal(objectTypes[typeof self] && self);\n\n/** Detect free variable `window`. */\nvar freeWindow = checkGlobal(objectTypes[typeof window] && window);\n\n/** Detect `this` as the global object. */\nvar thisGlobal = checkGlobal(objectTypes[typeof this] && this);\n\n/**\n * Used as a reference to the global object.\n *\n * The `this` value is used if it's the global object to avoid Greasemonkey's\n * restricted `window` object, otherwise the `window` object is used.\n */\nvar root = freeGlobal || ((freeWindow !== (thisGlobal && thisGlobal.window)) && freeWindow) || freeSelf || thisGlobal || Function('return this')();\n\nmodule.exports = root;\n","/**\n * Converts `set` to an array.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\nmodule.exports = setToArray;\n","/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = { 'array': [], 'map': null };\n}\n\nmodule.exports = stackClear;\n","var assocDelete = require('./_assocDelete');\n\n/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n array = data.array;\n\n return array ? assocDelete(array, key) : data.map['delete'](key);\n}\n\nmodule.exports = stackDelete;\n","var assocGet = require('./_assocGet');\n\n/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n var data = this.__data__,\n array = data.array;\n\n return array ? assocGet(array, key) : data.map.get(key);\n}\n\nmodule.exports = stackGet;\n","var assocHas = require('./_assocHas');\n\n/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n var data = this.__data__,\n array = data.array;\n\n return array ? assocHas(array, key) : data.map.has(key);\n}\n\nmodule.exports = stackHas;\n","var MapCache = require('./_MapCache'),\n assocSet = require('./_assocSet');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache object.\n */\nfunction stackSet(key, value) {\n var data = this.__data__,\n array = data.array;\n\n if (array) {\n if (array.length < (LARGE_ARRAY_SIZE - 1)) {\n assocSet(array, key, value);\n } else {\n data.array = null;\n data.map = new MapCache(array);\n }\n }\n var map = data.map;\n if (map) {\n map.set(key, value);\n }\n return this;\n}\n\nmodule.exports = stackSet;\n","var toString = require('./toString');\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nfunction stringToPath(string) {\n var result = [];\n toString(string).replace(rePropName, function(match, number, quote, string) {\n result.push(quote ? string.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n}\n\nmodule.exports = stringToPath;\n","var identity = require('./identity');\n\n/**\n * Converts `value` to a function if it's not one.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {Function} Returns the function.\n */\nfunction toFunction(value) {\n return typeof value == 'function' ? value : identity;\n}\n\nmodule.exports = toFunction;\n","var baseSlice = require('./_baseSlice'),\n toInteger = require('./toInteger');\n\n/**\n * Creates a slice of `array` with `n` elements dropped from the beginning.\n *\n * @static\n * @memberOf _\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=1] The number of elements to drop.\n * @param- {Object} [guard] Enables use as an iteratee for functions like `_.map`.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.drop([1, 2, 3]);\n * // => [2, 3]\n *\n * _.drop([1, 2, 3], 2);\n * // => [3]\n *\n * _.drop([1, 2, 3], 5);\n * // => []\n *\n * _.drop([1, 2, 3], 0);\n * // => [1, 2, 3]\n */\nfunction drop(array, n, guard) {\n var length = array ? array.length : 0;\n if (!length) {\n return [];\n }\n n = (guard || n === undefined) ? 1 : toInteger(n);\n return baseSlice(array, n < 0 ? 0 : n, length);\n}\n\nmodule.exports = drop;\n","module.exports = require('./forEach');\n","/**\n * Performs a [`SameValueZero`](http://ecma-international.org/ecma-262/6.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'user': 'fred' };\n * var other = { 'user': 'fred' };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nmodule.exports = eq;\n","var arrayFilter = require('./_arrayFilter'),\n baseFilter = require('./_baseFilter'),\n baseIteratee = require('./_baseIteratee'),\n isArray = require('./isArray');\n\n/**\n * Iterates over elements of `collection`, returning an array of all elements\n * `predicate` returns truthy for. The predicate is invoked with three arguments:\n * (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function|Object|string} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false }\n * ];\n *\n * _.filter(users, function(o) { return !o.active; });\n * // => objects for ['fred']\n *\n * // The `_.matches` iteratee shorthand.\n * _.filter(users, { 'age': 36, 'active': true });\n * // => objects for ['barney']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.filter(users, ['active', false]);\n * // => objects for ['fred']\n *\n * // The `_.property` iteratee shorthand.\n * _.filter(users, 'active');\n * // => objects for ['barney']\n */\nfunction filter(collection, predicate) {\n var func = isArray(collection) ? arrayFilter : baseFilter;\n return func(collection, baseIteratee(predicate, 3));\n}\n\nmodule.exports = filter;\n","var baseEach = require('./_baseEach'),\n baseFind = require('./_baseFind'),\n baseFindIndex = require('./_baseFindIndex'),\n baseIteratee = require('./_baseIteratee'),\n isArray = require('./isArray');\n\n/**\n * Iterates over elements of `collection`, returning the first element\n * `predicate` returns truthy for. The predicate is invoked with three arguments:\n * (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @category Collection\n * @param {Array|Object} collection The collection to search.\n * @param {Function|Object|string} [predicate=_.identity] The function invoked per iteration.\n * @returns {*} Returns the matched element, else `undefined`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false },\n * { 'user': 'pebbles', 'age': 1, 'active': true }\n * ];\n *\n * _.find(users, function(o) { return o.age < 40; });\n * // => object for 'barney'\n *\n * // The `_.matches` iteratee shorthand.\n * _.find(users, { 'age': 1, 'active': true });\n * // => object for 'pebbles'\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.find(users, ['active', false]);\n * // => object for 'fred'\n *\n * // The `_.property` iteratee shorthand.\n * _.find(users, 'active');\n * // => object for 'barney'\n */\nfunction find(collection, predicate) {\n predicate = baseIteratee(predicate, 3);\n if (isArray(collection)) {\n var index = baseFindIndex(collection, predicate);\n return index > -1 ? collection[index] : undefined;\n }\n return baseFind(collection, predicate, baseEach);\n}\n\nmodule.exports = find;\n","var baseFlatten = require('./_baseFlatten');\n\n/**\n * Flattens `array` a single level.\n *\n * @static\n * @memberOf _\n * @category Array\n * @param {Array} array The array to flatten.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * _.flatten([1, [2, 3, [4]]]);\n * // => [1, 2, 3, [4]]\n */\nfunction flatten(array) {\n var length = array ? array.length : 0;\n return length ? baseFlatten(array) : [];\n}\n\nmodule.exports = flatten;\n","var arrayEach = require('./_arrayEach'),\n baseEach = require('./_baseEach'),\n isArray = require('./isArray'),\n toFunction = require('./_toFunction');\n\n/**\n * Iterates over elements of `collection` invoking `iteratee` for each element.\n * The iteratee is invoked with three arguments: (value, index|key, collection).\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * **Note:** As with other \"Collections\" methods, objects with a \"length\" property\n * are iterated like arrays. To avoid this behavior use `_.forIn` or `_.forOwn`\n * for object iteration.\n *\n * @static\n * @memberOf _\n * @alias each\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n * @example\n *\n * _([1, 2]).forEach(function(value) {\n * console.log(value);\n * });\n * // => logs `1` then `2`\n *\n * _.forEach({ 'a': 1, 'b': 2 }, function(value, key) {\n * console.log(key);\n * });\n * // => logs 'a' then 'b' (iteration order is not guaranteed)\n */\nfunction forEach(collection, iteratee) {\n return (typeof iteratee == 'function' && isArray(collection))\n ? arrayEach(collection, iteratee)\n : baseEach(collection, toFunction(iteratee));\n}\n\nmodule.exports = forEach;\n","/**\n * The inverse of `_.toPairs`; this method returns an object composed\n * from key-value `pairs`.\n *\n * @static\n * @memberOf _\n * @category Array\n * @param {Array} pairs The key-value pairs.\n * @returns {Object} Returns the new object.\n * @example\n *\n * _.fromPairs([['fred', 30], ['barney', 40]]);\n * // => { 'fred': 30, 'barney': 40 }\n */\nfunction fromPairs(pairs) {\n var index = -1,\n length = pairs ? pairs.length : 0,\n result = {};\n\n while (++index < length) {\n var pair = pairs[index];\n result[pair[0]] = pair[1];\n }\n return result;\n}\n\nmodule.exports = fromPairs;\n","var baseGet = require('./_baseGet');\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined` the `defaultValue` is used in its place.\n *\n * @static\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned if the resolved value is `undefined`.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\nmodule.exports = get;\n","var baseHas = require('./_baseHas'),\n hasPath = require('./_hasPath');\n\n/**\n * Checks if `path` is a direct property of `object`.\n *\n * @static\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = { 'a': { 'b': { 'c': 3 } } };\n * var other = _.create({ 'a': _.create({ 'b': _.create({ 'c': 3 }) }) });\n *\n * _.has(object, 'a');\n * // => true\n *\n * _.has(object, 'a.b.c');\n * // => true\n *\n * _.has(object, ['a', 'b', 'c']);\n * // => true\n *\n * _.has(other, 'a');\n * // => false\n */\nfunction has(object, path) {\n return hasPath(object, path, baseHas);\n}\n\nmodule.exports = has;\n","var baseHasIn = require('./_baseHasIn'),\n hasPath = require('./_hasPath');\n\n/**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': _.create({ 'c': 3 }) }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b.c');\n * // => true\n *\n * _.hasIn(object, ['a', 'b', 'c']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\nfunction hasIn(object, path) {\n return hasPath(object, path, baseHasIn);\n}\n\nmodule.exports = hasIn;\n","/**\n * This method returns the first argument provided to it.\n *\n * @static\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'user': 'fred' };\n *\n * _.identity(object) === object;\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;\n","var isArrayLikeObject = require('./isArrayLikeObject');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nfunction isArguments(value) {\n // Safari 8.1 incorrectly makes `arguments.callee` enumerable in strict mode.\n return isArrayLikeObject(value) && hasOwnProperty.call(value, 'callee') &&\n (!propertyIsEnumerable.call(value, 'callee') || objectToString.call(value) == argsTag);\n}\n\nmodule.exports = isArguments;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @type Function\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n","var getLength = require('./_getLength'),\n isFunction = require('./isFunction'),\n isLength = require('./isLength');\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @type Function\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null &&\n !(typeof value == 'function' && isFunction(value)) && isLength(getLength(value));\n}\n\nmodule.exports = isArrayLike;\n","var isArrayLike = require('./isArrayLike'),\n isObjectLike = require('./isObjectLike');\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @type Function\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object, else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\nmodule.exports = isArrayLikeObject;\n","var isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 8 which returns 'object' for typed array constructors, and\n // PhantomJS 1.9 which returns 'function' for `NodeList` instances.\n var tag = isObject(value) ? objectToString.call(value) : '';\n return tag == funcTag || tag == genTag;\n}\n\nmodule.exports = isFunction;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This function is loosely based on [`ToLength`](http://ecma-international.org/ecma-262/6.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n","var isFunction = require('./isFunction'),\n isHostObject = require('./_isHostObject'),\n isObjectLike = require('./isObjectLike');\n\n/** Used to match `RegExp` [syntax characters](http://ecma-international.org/ecma-262/6.0/#sec-patterns). */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari > 5). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = Function.prototype.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * Checks if `value` is a native function.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function, else `false`.\n * @example\n *\n * _.isNative(Array.prototype.push);\n * // => true\n *\n * _.isNative(_);\n * // => false\n */\nfunction isNative(value) {\n if (value == null) {\n return false;\n }\n if (isFunction(value)) {\n return reIsNative.test(funcToString.call(value));\n }\n return isObjectLike(value) &&\n (isHostObject(value) ? reIsNative : reIsHostCtor).test(value);\n}\n\nmodule.exports = isNative;\n","/**\n * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.\n * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var isArray = require('./isArray'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar stringTag = '[object String]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\nfunction isString(value) {\n return typeof value == 'string' ||\n (!isArray(value) && isObjectLike(value) && objectToString.call(value) == stringTag);\n}\n\nmodule.exports = isString;\n","var isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n","var isLength = require('./isLength'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dateTag] = typedArrayTags[errorTag] =\ntypedArrayTags[funcTag] = typedArrayTags[mapTag] =\ntypedArrayTags[numberTag] = typedArrayTags[objectTag] =\ntypedArrayTags[regexpTag] = typedArrayTags[setTag] =\ntypedArrayTags[stringTag] = typedArrayTags[weakMapTag] = false;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nfunction isTypedArray(value) {\n return isObjectLike(value) && isLength(value.length) && !!typedArrayTags[objectToString.call(value)];\n}\n\nmodule.exports = isTypedArray;\n","var baseHas = require('./_baseHas'),\n baseKeys = require('./_baseKeys'),\n indexKeys = require('./_indexKeys'),\n isArrayLike = require('./isArrayLike'),\n isIndex = require('./_isIndex'),\n isPrototype = require('./_isPrototype');\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/6.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n var isProto = isPrototype(object);\n if (!(isProto || isArrayLike(object))) {\n return baseKeys(object);\n }\n var indexes = indexKeys(object),\n skipIndexes = !!indexes,\n result = indexes || [],\n length = result.length;\n\n for (var key in object) {\n if (baseHas(object, key) &&\n !(skipIndexes && (key == 'length' || isIndex(key, length))) &&\n !(isProto && key == 'constructor')) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = keys;\n","/**\n * Gets the last element of `array`.\n *\n * @static\n * @memberOf _\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the last element of `array`.\n * @example\n *\n * _.last([1, 2, 3]);\n * // => 3\n */\nfunction last(array) {\n var length = array ? array.length : 0;\n return length ? array[length - 1] : undefined;\n}\n\nmodule.exports = last;\n","var arrayMap = require('./_arrayMap'),\n baseIteratee = require('./_baseIteratee'),\n baseMap = require('./_baseMap'),\n isArray = require('./isArray');\n\n/**\n * Creates an array of values by running each element in `collection` through\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`.\n *\n * The guarded methods are:\n * `ary`, `curry`, `curryRight`, `drop`, `dropRight`, `every`, `fill`,\n * `invert`, `parseInt`, `random`, `range`, `rangeRight`, `slice`, `some`,\n * `sortBy`, `take`, `takeRight`, `template`, `trim`, `trimEnd`, `trimStart`,\n * and `words`\n *\n * @static\n * @memberOf _\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function|Object|string} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * _.map([4, 8], square);\n * // => [16, 64]\n *\n * _.map({ 'a': 4, 'b': 8 }, square);\n * // => [16, 64] (iteration order is not guaranteed)\n *\n * var users = [\n * { 'user': 'barney' },\n * { 'user': 'fred' }\n * ];\n *\n * // The `_.property` iteratee shorthand.\n * _.map(users, 'user');\n * // => ['barney', 'fred']\n */\nfunction map(collection, iteratee) {\n var func = isArray(collection) ? arrayMap : baseMap;\n return func(collection, baseIteratee(iteratee, 3));\n}\n\nmodule.exports = map;\n","var baseProperty = require('./_baseProperty'),\n basePropertyDeep = require('./_basePropertyDeep'),\n isKey = require('./_isKey');\n\n/**\n * Creates a function that returns the value at `path` of a given object.\n *\n * @static\n * @memberOf _\n * @category Util\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var objects = [\n * { 'a': { 'b': { 'c': 2 } } },\n * { 'a': { 'b': { 'c': 1 } } }\n * ];\n *\n * _.map(objects, _.property('a.b.c'));\n * // => [2, 1]\n *\n * _.map(_.sortBy(objects, _.property(['a', 'b', 'c'])), 'a.b.c');\n * // => [1, 2]\n */\nfunction property(path) {\n return isKey(path) ? baseProperty(path) : basePropertyDeep(path);\n}\n\nmodule.exports = property;\n","var arrayReduce = require('./_arrayReduce'),\n baseEach = require('./_baseEach'),\n baseIteratee = require('./_baseIteratee'),\n baseReduce = require('./_baseReduce'),\n isArray = require('./isArray');\n\n/**\n * Reduces `collection` to a value which is the accumulated result of running\n * each element in `collection` through `iteratee`, where each successive\n * invocation is supplied the return value of the previous. If `accumulator`\n * is not provided the first element of `collection` is used as the initial\n * value. The iteratee is invoked with four arguments:\n * (accumulator, value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.reduce`, `_.reduceRight`, and `_.transform`.\n *\n * The guarded methods are:\n * `assign`, `defaults`, `defaultsDeep`, `includes`, `merge`, `orderBy`,\n * and `sortBy`\n *\n * @static\n * @memberOf _\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @returns {*} Returns the accumulated value.\n * @example\n *\n * _.reduce([1, 2], function(sum, n) {\n * return sum + n;\n * }, 0);\n * // => 3\n *\n * _.reduce({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) {\n * (result[value] || (result[value] = [])).push(key);\n * return result;\n * }, {});\n * // => { '1': ['a', 'c'], '2': ['b'] } (iteration order is not guaranteed)\n */\nfunction reduce(collection, iteratee, accumulator) {\n var func = isArray(collection) ? arrayReduce : baseReduce,\n initAccum = arguments.length < 3;\n\n return func(collection, baseIteratee(iteratee, 4), accumulator, initAccum, baseEach);\n}\n\nmodule.exports = reduce;\n","var toInteger = require('./toInteger'),\n toString = require('./toString');\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeFloor = Math.floor;\n\n/**\n * Repeats the given string `n` times.\n *\n * @static\n * @memberOf _\n * @category String\n * @param {string} [string=''] The string to repeat.\n * @param {number} [n=0] The number of times to repeat the string.\n * @returns {string} Returns the repeated string.\n * @example\n *\n * _.repeat('*', 3);\n * // => '***'\n *\n * _.repeat('abc', 2);\n * // => 'abcabc'\n *\n * _.repeat('abc', 0);\n * // => ''\n */\nfunction repeat(string, n) {\n string = toString(string);\n n = toInteger(n);\n\n var result = '';\n if (!string || n < 1 || n > MAX_SAFE_INTEGER) {\n return result;\n }\n // Leverage the exponentiation by squaring algorithm for a faster repeat.\n // See https://en.wikipedia.org/wiki/Exponentiation_by_squaring for more details.\n do {\n if (n % 2) {\n result += string;\n }\n n = nativeFloor(n / 2);\n string += string;\n } while (n);\n\n return result;\n}\n\nmodule.exports = repeat;\n","var apply = require('./_apply'),\n toInteger = require('./toInteger');\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * Creates a function that invokes `func` with the `this` binding of the\n * created function and arguments from `start` and beyond provided as an array.\n *\n * **Note:** This method is based on the [rest parameter](https://mdn.io/rest_parameters).\n *\n * @static\n * @memberOf _\n * @category Function\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var say = _.rest(function(what, names) {\n * return what + ' ' + _.initial(names).join(', ') +\n * (_.size(names) > 1 ? ', & ' : '') + _.last(names);\n * });\n *\n * say('hello', 'fred', 'barney', 'pebbles');\n * // => 'hello fred, barney, & pebbles'\n */\nfunction rest(func, start) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n start = nativeMax(start === undefined ? (func.length - 1) : toInteger(start), 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n switch (start) {\n case 0: return func.call(this, array);\n case 1: return func.call(this, args[0], array);\n case 2: return func.call(this, args[0], args[1], array);\n }\n var otherArgs = Array(start + 1);\n index = -1;\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = array;\n return apply(func, this, otherArgs);\n };\n}\n\nmodule.exports = rest;\n","var baseFlatten = require('./_baseFlatten'),\n baseOrderBy = require('./_baseOrderBy'),\n isIterateeCall = require('./_isIterateeCall'),\n rest = require('./rest');\n\n/**\n * Creates an array of elements, sorted in ascending order by the results of\n * running each element in a collection through each iteratee. This method\n * performs a stable sort, that is, it preserves the original sort order of\n * equal elements. The iteratees are invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {...(Function|Function[]|Object|Object[]|string|string[])} [iteratees=[_.identity]]\n * The iteratees to sort by, specified individually or in arrays.\n * @returns {Array} Returns the new sorted array.\n * @example\n *\n * var users = [\n * { 'user': 'fred', 'age': 48 },\n * { 'user': 'barney', 'age': 36 },\n * { 'user': 'fred', 'age': 42 },\n * { 'user': 'barney', 'age': 34 }\n * ];\n *\n * _.sortBy(users, function(o) { return o.user; });\n * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 42]]\n *\n * _.sortBy(users, ['user', 'age']);\n * // => objects for [['barney', 34], ['barney', 36], ['fred', 42], ['fred', 48]]\n *\n * _.sortBy(users, 'user', function(o) {\n * return Math.floor(o.age / 10);\n * });\n * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 42]]\n */\nvar sortBy = rest(function(collection, iteratees) {\n if (collection == null) {\n return [];\n }\n var length = iteratees.length;\n if (length > 1 && isIterateeCall(collection, iteratees[0], iteratees[1])) {\n iteratees = [];\n } else if (length > 2 && isIterateeCall(iteratees[0], iteratees[1], iteratees[2])) {\n iteratees.length = 1;\n }\n return baseOrderBy(collection, baseFlatten(iteratees), []);\n});\n\nmodule.exports = sortBy;\n","var drop = require('./drop');\n\n/**\n * Gets all but the first element of `array`.\n *\n * @static\n * @memberOf _\n * @category Array\n * @param {Array} array The array to query.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.tail([1, 2, 3]);\n * // => [2, 3]\n */\nfunction tail(array) {\n return drop(array, 1);\n}\n\nmodule.exports = tail;\n","var toNumber = require('./toNumber');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0,\n MAX_INTEGER = 1.7976931348623157e+308;\n\n/**\n * Converts `value` to an integer.\n *\n * **Note:** This function is loosely based on [`ToInteger`](http://www.ecma-international.org/ecma-262/6.0/#sec-tointeger).\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toInteger(3);\n * // => 3\n *\n * _.toInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toInteger(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toInteger('3');\n * // => 3\n */\nfunction toInteger(value) {\n if (!value) {\n return value === 0 ? value : 0;\n }\n value = toNumber(value);\n if (value === INFINITY || value === -INFINITY) {\n var sign = (value < 0 ? -1 : 1);\n return sign * MAX_INTEGER;\n }\n var remainder = value % 1;\n return value === value ? (remainder ? value - remainder : value) : 0;\n}\n\nmodule.exports = toInteger;\n","var isFunction = require('./isFunction'),\n isObject = require('./isObject');\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3);\n * // => 3\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3');\n * // => 3\n */\nfunction toNumber(value) {\n if (isObject(value)) {\n var other = isFunction(value.valueOf) ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = toNumber;\n","var baseToPairs = require('./_baseToPairs'),\n keys = require('./keys');\n\n/**\n * Creates an array of own enumerable key-value pairs for `object`.\n *\n * @static\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the new array of key-value pairs.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.toPairs(new Foo);\n * // => [['a', 1], ['b', 2]] (iteration order is not guaranteed)\n */\nfunction toPairs(object) {\n return baseToPairs(object, keys(object));\n}\n\nmodule.exports = toPairs;\n","var Symbol = require('./_Symbol'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = Symbol ? symbolProto.toString : undefined;\n\n/**\n * Converts `value` to a string if it's not one. An empty string is returned\n * for `null` and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (value == null) {\n return '';\n }\n if (isSymbol(value)) {\n return Symbol ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = toString;\n","/**!\n * @fileOverview Kickass library to create and place poppers near their reference elements.\n * @version 1.16.1\n * @license\n * Copyright (c) 2016 Federico Zivolo and contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && typeof navigator !== 'undefined';\n\nvar timeoutDuration = function () {\n var longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\n for (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n return 1;\n }\n }\n return 0;\n}();\n\nfunction microtaskDebounce(fn) {\n var called = false;\n return function () {\n if (called) {\n return;\n }\n called = true;\n window.Promise.resolve().then(function () {\n called = false;\n fn();\n });\n };\n}\n\nfunction taskDebounce(fn) {\n var scheduled = false;\n return function () {\n if (!scheduled) {\n scheduled = true;\n setTimeout(function () {\n scheduled = false;\n fn();\n }, timeoutDuration);\n }\n };\n}\n\nvar supportsMicroTasks = isBrowser && window.Promise;\n\n/**\n* Create a debounced version of a method, that's asynchronously deferred\n* but called in the minimum time possible.\n*\n* @method\n* @memberof Popper.Utils\n* @argument {Function} fn\n* @returns {Function}\n*/\nvar debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;\n\n/**\n * Check if the given variable is a function\n * @method\n * @memberof Popper.Utils\n * @argument {Any} functionToCheck - variable to check\n * @returns {Boolean} answer to: is a function?\n */\nfunction isFunction(functionToCheck) {\n var getType = {};\n return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';\n}\n\n/**\n * Get CSS computed property of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Eement} element\n * @argument {String} property\n */\nfunction getStyleComputedProperty(element, property) {\n if (element.nodeType !== 1) {\n return [];\n }\n // NOTE: 1 DOM access here\n var window = element.ownerDocument.defaultView;\n var css = window.getComputedStyle(element, null);\n return property ? css[property] : css;\n}\n\n/**\n * Returns the parentNode or the host of the element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} parent\n */\nfunction getParentNode(element) {\n if (element.nodeName === 'HTML') {\n return element;\n }\n return element.parentNode || element.host;\n}\n\n/**\n * Returns the scrolling parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} scroll parent\n */\nfunction getScrollParent(element) {\n // Return body, `getScroll` will take care to get the correct `scrollTop` from it\n if (!element) {\n return document.body;\n }\n\n switch (element.nodeName) {\n case 'HTML':\n case 'BODY':\n return element.ownerDocument.body;\n case '#document':\n return element.body;\n }\n\n // Firefox want us to check `-x` and `-y` variations as well\n\n var _getStyleComputedProp = getStyleComputedProperty(element),\n overflow = _getStyleComputedProp.overflow,\n overflowX = _getStyleComputedProp.overflowX,\n overflowY = _getStyleComputedProp.overflowY;\n\n if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n return element;\n }\n\n return getScrollParent(getParentNode(element));\n}\n\n/**\n * Returns the reference node of the reference object, or the reference object itself.\n * @method\n * @memberof Popper.Utils\n * @param {Element|Object} reference - the reference element (the popper will be relative to this)\n * @returns {Element} parent\n */\nfunction getReferenceNode(reference) {\n return reference && reference.referenceNode ? reference.referenceNode : reference;\n}\n\nvar isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\nvar isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);\n\n/**\n * Determines if the browser is Internet Explorer\n * @method\n * @memberof Popper.Utils\n * @param {Number} version to check\n * @returns {Boolean} isIE\n */\nfunction isIE(version) {\n if (version === 11) {\n return isIE11;\n }\n if (version === 10) {\n return isIE10;\n }\n return isIE11 || isIE10;\n}\n\n/**\n * Returns the offset parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} offset parent\n */\nfunction getOffsetParent(element) {\n if (!element) {\n return document.documentElement;\n }\n\n var noOffsetParent = isIE(10) ? document.body : null;\n\n // NOTE: 1 DOM access here\n var offsetParent = element.offsetParent || null;\n // Skip hidden elements which don't have an offsetParent\n while (offsetParent === noOffsetParent && element.nextElementSibling) {\n offsetParent = (element = element.nextElementSibling).offsetParent;\n }\n\n var nodeName = offsetParent && offsetParent.nodeName;\n\n if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n return element ? element.ownerDocument.documentElement : document.documentElement;\n }\n\n // .offsetParent will return the closest TH, TD or TABLE in case\n // no offsetParent is present, I hate this job...\n if (['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {\n return getOffsetParent(offsetParent);\n }\n\n return offsetParent;\n}\n\nfunction isOffsetContainer(element) {\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY') {\n return false;\n }\n return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;\n}\n\n/**\n * Finds the root node (document, shadowDOM root) of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} node\n * @returns {Element} root node\n */\nfunction getRoot(node) {\n if (node.parentNode !== null) {\n return getRoot(node.parentNode);\n }\n\n return node;\n}\n\n/**\n * Finds the offset parent common to the two provided nodes\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element1\n * @argument {Element} element2\n * @returns {Element} common offset parent\n */\nfunction findCommonOffsetParent(element1, element2) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\n return document.documentElement;\n }\n\n // Here we make sure to give as \"start\" the element that comes first in the DOM\n var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;\n var start = order ? element1 : element2;\n var end = order ? element2 : element1;\n\n // Get common ancestor container\n var range = document.createRange();\n range.setStart(start, 0);\n range.setEnd(end, 0);\n var commonAncestorContainer = range.commonAncestorContainer;\n\n // Both nodes are inside #document\n\n if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {\n if (isOffsetContainer(commonAncestorContainer)) {\n return commonAncestorContainer;\n }\n\n return getOffsetParent(commonAncestorContainer);\n }\n\n // one of the nodes is inside shadowDOM, find which one\n var element1root = getRoot(element1);\n if (element1root.host) {\n return findCommonOffsetParent(element1root.host, element2);\n } else {\n return findCommonOffsetParent(element1, getRoot(element2).host);\n }\n}\n\n/**\n * Gets the scroll value of the given element in the given side (top and left)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {String} side `top` or `left`\n * @returns {number} amount of scrolled pixels\n */\nfunction getScroll(element) {\n var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';\n\n var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n var html = element.ownerDocument.documentElement;\n var scrollingElement = element.ownerDocument.scrollingElement || html;\n return scrollingElement[upperSide];\n }\n\n return element[upperSide];\n}\n\n/*\n * Sum or subtract the element scroll values (left and top) from a given rect object\n * @method\n * @memberof Popper.Utils\n * @param {Object} rect - Rect object you want to change\n * @param {HTMLElement} element - The element from the function reads the scroll values\n * @param {Boolean} subtract - set to true if you want to subtract the scroll values\n * @return {Object} rect - The modifier rect object\n */\nfunction includeScroll(rect, element) {\n var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n var modifier = subtract ? -1 : 1;\n rect.top += scrollTop * modifier;\n rect.bottom += scrollTop * modifier;\n rect.left += scrollLeft * modifier;\n rect.right += scrollLeft * modifier;\n return rect;\n}\n\n/*\n * Helper to detect borders of a given element\n * @method\n * @memberof Popper.Utils\n * @param {CSSStyleDeclaration} styles\n * Result of `getStyleComputedProperty` on the given element\n * @param {String} axis - `x` or `y`\n * @return {number} borders - The borders size of the given axis\n */\n\nfunction getBordersSize(styles, axis) {\n var sideA = axis === 'x' ? 'Left' : 'Top';\n var sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n\n return parseFloat(styles['border' + sideA + 'Width']) + parseFloat(styles['border' + sideB + 'Width']);\n}\n\nfunction getSize(axis, body, html, computedStyle) {\n return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE(10) ? parseInt(html['offset' + axis]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')]) : 0);\n}\n\nfunction getWindowSizes(document) {\n var body = document.body;\n var html = document.documentElement;\n var computedStyle = isIE(10) && getComputedStyle(html);\n\n return {\n height: getSize('Height', body, html, computedStyle),\n width: getSize('Width', body, html, computedStyle)\n };\n}\n\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\n\n\n\n\nvar defineProperty = function (obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n};\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\n/**\n * Given element offsets, generate an output similar to getBoundingClientRect\n * @method\n * @memberof Popper.Utils\n * @argument {Object} offsets\n * @returns {Object} ClientRect like output\n */\nfunction getClientRect(offsets) {\n return _extends({}, offsets, {\n right: offsets.left + offsets.width,\n bottom: offsets.top + offsets.height\n });\n}\n\n/**\n * Get bounding client rect of given element\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} element\n * @return {Object} client rect\n */\nfunction getBoundingClientRect(element) {\n var rect = {};\n\n // IE10 10 FIX: Please, don't ask, the element isn't\n // considered in DOM in some circumstances...\n // This isn't reproducible in IE10 compatibility mode of IE11\n try {\n if (isIE(10)) {\n rect = element.getBoundingClientRect();\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n rect.top += scrollTop;\n rect.left += scrollLeft;\n rect.bottom += scrollTop;\n rect.right += scrollLeft;\n } else {\n rect = element.getBoundingClientRect();\n }\n } catch (e) {}\n\n var result = {\n left: rect.left,\n top: rect.top,\n width: rect.right - rect.left,\n height: rect.bottom - rect.top\n };\n\n // subtract scrollbar size from sizes\n var sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};\n var width = sizes.width || element.clientWidth || result.width;\n var height = sizes.height || element.clientHeight || result.height;\n\n var horizScrollbar = element.offsetWidth - width;\n var vertScrollbar = element.offsetHeight - height;\n\n // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n // we make this check conditional for performance reasons\n if (horizScrollbar || vertScrollbar) {\n var styles = getStyleComputedProperty(element);\n horizScrollbar -= getBordersSize(styles, 'x');\n vertScrollbar -= getBordersSize(styles, 'y');\n\n result.width -= horizScrollbar;\n result.height -= vertScrollbar;\n }\n\n return getClientRect(result);\n}\n\nfunction getOffsetRectRelativeToArbitraryNode(children, parent) {\n var fixedPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var isIE10 = isIE(10);\n var isHTML = parent.nodeName === 'HTML';\n var childrenRect = getBoundingClientRect(children);\n var parentRect = getBoundingClientRect(parent);\n var scrollParent = getScrollParent(children);\n\n var styles = getStyleComputedProperty(parent);\n var borderTopWidth = parseFloat(styles.borderTopWidth);\n var borderLeftWidth = parseFloat(styles.borderLeftWidth);\n\n // In cases where the parent is fixed, we must ignore negative scroll in offset calc\n if (fixedPosition && isHTML) {\n parentRect.top = Math.max(parentRect.top, 0);\n parentRect.left = Math.max(parentRect.left, 0);\n }\n var offsets = getClientRect({\n top: childrenRect.top - parentRect.top - borderTopWidth,\n left: childrenRect.left - parentRect.left - borderLeftWidth,\n width: childrenRect.width,\n height: childrenRect.height\n });\n offsets.marginTop = 0;\n offsets.marginLeft = 0;\n\n // Subtract margins of documentElement in case it's being used as parent\n // we do this only on HTML because it's the only element that behaves\n // differently when margins are applied to it. The margins are included in\n // the box of the documentElement, in the other cases not.\n if (!isIE10 && isHTML) {\n var marginTop = parseFloat(styles.marginTop);\n var marginLeft = parseFloat(styles.marginLeft);\n\n offsets.top -= borderTopWidth - marginTop;\n offsets.bottom -= borderTopWidth - marginTop;\n offsets.left -= borderLeftWidth - marginLeft;\n offsets.right -= borderLeftWidth - marginLeft;\n\n // Attach marginTop and marginLeft because in some circumstances we may need them\n offsets.marginTop = marginTop;\n offsets.marginLeft = marginLeft;\n }\n\n if (isIE10 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {\n offsets = includeScroll(offsets, parent);\n }\n\n return offsets;\n}\n\nfunction getViewportOffsetRectRelativeToArtbitraryNode(element) {\n var excludeScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var html = element.ownerDocument.documentElement;\n var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n var width = Math.max(html.clientWidth, window.innerWidth || 0);\n var height = Math.max(html.clientHeight, window.innerHeight || 0);\n\n var scrollTop = !excludeScroll ? getScroll(html) : 0;\n var scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n\n var offset = {\n top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n width: width,\n height: height\n };\n\n return getClientRect(offset);\n}\n\n/**\n * Check if the given element is fixed or is inside a fixed parent\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {Element} customContainer\n * @returns {Boolean} answer to \"isFixed?\"\n */\nfunction isFixed(element) {\n var nodeName = element.nodeName;\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n return false;\n }\n if (getStyleComputedProperty(element, 'position') === 'fixed') {\n return true;\n }\n var parentNode = getParentNode(element);\n if (!parentNode) {\n return false;\n }\n return isFixed(parentNode);\n}\n\n/**\n * Finds the first parent of an element that has a transformed property defined\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} first transformed parent or documentElement\n */\n\nfunction getFixedPositionOffsetParent(element) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element || !element.parentElement || isIE()) {\n return document.documentElement;\n }\n var el = element.parentElement;\n while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n el = el.parentElement;\n }\n return el || document.documentElement;\n}\n\n/**\n * Computed the boundaries limits and return them\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} popper\n * @param {HTMLElement} reference\n * @param {number} padding\n * @param {HTMLElement} boundariesElement - Element used to define the boundaries\n * @param {Boolean} fixedPosition - Is in fixed position mode\n * @returns {Object} Coordinates of the boundaries\n */\nfunction getBoundaries(popper, reference, padding, boundariesElement) {\n var fixedPosition = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n\n // NOTE: 1 DOM access here\n\n var boundaries = { top: 0, left: 0 };\n var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n\n // Handle viewport case\n if (boundariesElement === 'viewport') {\n boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n } else {\n // Handle other cases based on DOM element used as boundaries\n var boundariesNode = void 0;\n if (boundariesElement === 'scrollParent') {\n boundariesNode = getScrollParent(getParentNode(reference));\n if (boundariesNode.nodeName === 'BODY') {\n boundariesNode = popper.ownerDocument.documentElement;\n }\n } else if (boundariesElement === 'window') {\n boundariesNode = popper.ownerDocument.documentElement;\n } else {\n boundariesNode = boundariesElement;\n }\n\n var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition);\n\n // In case of HTML, we need a different computation\n if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n var _getWindowSizes = getWindowSizes(popper.ownerDocument),\n height = _getWindowSizes.height,\n width = _getWindowSizes.width;\n\n boundaries.top += offsets.top - offsets.marginTop;\n boundaries.bottom = height + offsets.top;\n boundaries.left += offsets.left - offsets.marginLeft;\n boundaries.right = width + offsets.left;\n } else {\n // for all the other DOM elements, this one is good\n boundaries = offsets;\n }\n }\n\n // Add paddings\n padding = padding || 0;\n var isPaddingNumber = typeof padding === 'number';\n boundaries.left += isPaddingNumber ? padding : padding.left || 0;\n boundaries.top += isPaddingNumber ? padding : padding.top || 0;\n boundaries.right -= isPaddingNumber ? padding : padding.right || 0;\n boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0;\n\n return boundaries;\n}\n\nfunction getArea(_ref) {\n var width = _ref.width,\n height = _ref.height;\n\n return width * height;\n}\n\n/**\n * Utility used to transform the `auto` placement to the placement with more\n * available space.\n * @method\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) {\n var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;\n\n if (placement.indexOf('auto') === -1) {\n return placement;\n }\n\n var boundaries = getBoundaries(popper, reference, padding, boundariesElement);\n\n var rects = {\n top: {\n width: boundaries.width,\n height: refRect.top - boundaries.top\n },\n right: {\n width: boundaries.right - refRect.right,\n height: boundaries.height\n },\n bottom: {\n width: boundaries.width,\n height: boundaries.bottom - refRect.bottom\n },\n left: {\n width: refRect.left - boundaries.left,\n height: boundaries.height\n }\n };\n\n var sortedAreas = Object.keys(rects).map(function (key) {\n return _extends({\n key: key\n }, rects[key], {\n area: getArea(rects[key])\n });\n }).sort(function (a, b) {\n return b.area - a.area;\n });\n\n var filteredAreas = sortedAreas.filter(function (_ref2) {\n var width = _ref2.width,\n height = _ref2.height;\n return width >= popper.clientWidth && height >= popper.clientHeight;\n });\n\n var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;\n\n var variation = placement.split('-')[1];\n\n return computedPlacement + (variation ? '-' + variation : '');\n}\n\n/**\n * Get offsets to the reference element\n * @method\n * @memberof Popper.Utils\n * @param {Object} state\n * @param {Element} popper - the popper element\n * @param {Element} reference - the reference element (the popper will be relative to this)\n * @param {Element} fixedPosition - is in fixed position mode\n * @returns {Object} An object containing the offsets which will be applied to the popper\n */\nfunction getReferenceOffsets(state, popper, reference) {\n var fixedPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\n}\n\n/**\n * Get the outer sizes of the given element (offset size + margins)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Object} object containing width and height properties\n */\nfunction getOuterSizes(element) {\n var window = element.ownerDocument.defaultView;\n var styles = window.getComputedStyle(element);\n var x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0);\n var y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0);\n var result = {\n width: element.offsetWidth + y,\n height: element.offsetHeight + x\n };\n return result;\n}\n\n/**\n * Get the opposite placement of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement\n * @returns {String} flipped placement\n */\nfunction getOppositePlacement(placement) {\n var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}\n\n/**\n * Get offsets to the popper\n * @method\n * @memberof Popper.Utils\n * @param {Object} position - CSS position the Popper will get applied\n * @param {HTMLElement} popper - the popper element\n * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)\n * @param {String} placement - one of the valid placement options\n * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper\n */\nfunction getPopperOffsets(popper, referenceOffsets, placement) {\n placement = placement.split('-')[0];\n\n // Get popper node sizes\n var popperRect = getOuterSizes(popper);\n\n // Add position, width and height to our offsets object\n var popperOffsets = {\n width: popperRect.width,\n height: popperRect.height\n };\n\n // depending by the popper placement we have to compute its offsets slightly differently\n var isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n var mainSide = isHoriz ? 'top' : 'left';\n var secondarySide = isHoriz ? 'left' : 'top';\n var measurement = isHoriz ? 'height' : 'width';\n var secondaryMeasurement = !isHoriz ? 'height' : 'width';\n\n popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;\n if (placement === secondarySide) {\n popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n } else {\n popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];\n }\n\n return popperOffsets;\n}\n\n/**\n * Mimics the `find` method of Array\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction find(arr, check) {\n // use native find if supported\n if (Array.prototype.find) {\n return arr.find(check);\n }\n\n // use `filter` to obtain the same behavior of `find`\n return arr.filter(check)[0];\n}\n\n/**\n * Return the index of the matching object\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction findIndex(arr, prop, value) {\n // use native findIndex if supported\n if (Array.prototype.findIndex) {\n return arr.findIndex(function (cur) {\n return cur[prop] === value;\n });\n }\n\n // use `find` + `indexOf` if `findIndex` isn't supported\n var match = find(arr, function (obj) {\n return obj[prop] === value;\n });\n return arr.indexOf(match);\n}\n\n/**\n * Loop trough the list of modifiers and run them in order,\n * each of them will then edit the data object.\n * @method\n * @memberof Popper.Utils\n * @param {dataObject} data\n * @param {Array} modifiers\n * @param {String} ends - Optional modifier name used as stopper\n * @returns {dataObject}\n */\nfunction runModifiers(modifiers, data, ends) {\n var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n\n modifiersToRun.forEach(function (modifier) {\n if (modifier['function']) {\n // eslint-disable-line dot-notation\n console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n }\n var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation\n if (modifier.enabled && isFunction(fn)) {\n // Add properties to offsets to make them a complete clientRect object\n // we do this before each modifier to make sure the previous one doesn't\n // mess with these values\n data.offsets.popper = getClientRect(data.offsets.popper);\n data.offsets.reference = getClientRect(data.offsets.reference);\n\n data = fn(data, modifier);\n }\n });\n\n return data;\n}\n\n/**\n * Updates the position of the popper, computing the new offsets and applying\n * the new style.<br />\n * Prefer `scheduleUpdate` over `update` because of performance reasons.\n * @method\n * @memberof Popper\n */\nfunction update() {\n // if popper is destroyed, don't perform any further update\n if (this.state.isDestroyed) {\n return;\n }\n\n var data = {\n instance: this,\n styles: {},\n arrowStyles: {},\n attributes: {},\n flipped: false,\n offsets: {}\n };\n\n // compute reference element offsets\n data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference, this.options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding);\n\n // store the computed placement inside `originalPlacement`\n data.originalPlacement = data.placement;\n\n data.positionFixed = this.options.positionFixed;\n\n // compute the popper offsets\n data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement);\n\n data.offsets.popper.position = this.options.positionFixed ? 'fixed' : 'absolute';\n\n // run the modifiers\n data = runModifiers(this.modifiers, data);\n\n // the first `update` will call `onCreate` callback\n // the other ones will call `onUpdate` callback\n if (!this.state.isCreated) {\n this.state.isCreated = true;\n this.options.onCreate(data);\n } else {\n this.options.onUpdate(data);\n }\n}\n\n/**\n * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\nfunction isModifierEnabled(modifiers, modifierName) {\n return modifiers.some(function (_ref) {\n var name = _ref.name,\n enabled = _ref.enabled;\n return enabled && name === modifierName;\n });\n}\n\n/**\n * Get the prefixed supported property name\n * @method\n * @memberof Popper.Utils\n * @argument {String} property (camelCase)\n * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)\n */\nfunction getSupportedPropertyName(property) {\n var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n var upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n for (var i = 0; i < prefixes.length; i++) {\n var prefix = prefixes[i];\n var toCheck = prefix ? '' + prefix + upperProp : property;\n if (typeof document.body.style[toCheck] !== 'undefined') {\n return toCheck;\n }\n }\n return null;\n}\n\n/**\n * Destroys the popper.\n * @method\n * @memberof Popper\n */\nfunction destroy() {\n this.state.isDestroyed = true;\n\n // touch DOM only if `applyStyle` modifier is enabled\n if (isModifierEnabled(this.modifiers, 'applyStyle')) {\n this.popper.removeAttribute('x-placement');\n this.popper.style.position = '';\n this.popper.style.top = '';\n this.popper.style.left = '';\n this.popper.style.right = '';\n this.popper.style.bottom = '';\n this.popper.style.willChange = '';\n this.popper.style[getSupportedPropertyName('transform')] = '';\n }\n\n this.disableEventListeners();\n\n // remove the popper if user explicitly asked for the deletion on destroy\n // do not use `remove` because IE11 doesn't support it\n if (this.options.removeOnDestroy) {\n this.popper.parentNode.removeChild(this.popper);\n }\n return this;\n}\n\n/**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\nfunction getWindow(element) {\n var ownerDocument = element.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView : window;\n}\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n var isBody = scrollParent.nodeName === 'BODY';\n var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n target.addEventListener(event, callback, { passive: true });\n\n if (!isBody) {\n attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);\n }\n scrollParents.push(target);\n}\n\n/**\n * Setup needed event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction setupEventListeners(reference, options, state, updateBound) {\n // Resize event listener on window\n state.updateBound = updateBound;\n getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });\n\n // Scroll event listener on scroll parents\n var scrollElement = getScrollParent(reference);\n attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);\n state.scrollElement = scrollElement;\n state.eventsEnabled = true;\n\n return state;\n}\n\n/**\n * It will add resize/scroll events and start recalculating\n * position of the popper element when they are triggered.\n * @method\n * @memberof Popper\n */\nfunction enableEventListeners() {\n if (!this.state.eventsEnabled) {\n this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate);\n }\n}\n\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction removeEventListeners(reference, state) {\n // Remove resize event listener on window\n getWindow(reference).removeEventListener('resize', state.updateBound);\n\n // Remove scroll event listener on scroll parents\n state.scrollParents.forEach(function (target) {\n target.removeEventListener('scroll', state.updateBound);\n });\n\n // Reset state\n state.updateBound = null;\n state.scrollParents = [];\n state.scrollElement = null;\n state.eventsEnabled = false;\n return state;\n}\n\n/**\n * It will remove resize/scroll events and won't recalculate popper position\n * when they are triggered. It also won't trigger `onUpdate` callback anymore,\n * unless you call `update` method manually.\n * @method\n * @memberof Popper\n */\nfunction disableEventListeners() {\n if (this.state.eventsEnabled) {\n cancelAnimationFrame(this.scheduleUpdate);\n this.state = removeEventListeners(this.reference, this.state);\n }\n}\n\n/**\n * Tells if a given input is a number\n * @method\n * @memberof Popper.Utils\n * @param {*} input to check\n * @return {Boolean}\n */\nfunction isNumeric(n) {\n return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n\n/**\n * Set the style to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the style to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setStyles(element, styles) {\n Object.keys(styles).forEach(function (prop) {\n var unit = '';\n // add unit if the value is numeric and is one of the following\n if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {\n unit = 'px';\n }\n element.style[prop] = styles[prop] + unit;\n });\n}\n\n/**\n * Set the attributes to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the attributes to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setAttributes(element, attributes) {\n Object.keys(attributes).forEach(function (prop) {\n var value = attributes[prop];\n if (value !== false) {\n element.setAttribute(prop, attributes[prop]);\n } else {\n element.removeAttribute(prop);\n }\n });\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} data.styles - List of style properties - values to apply to popper element\n * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The same data object\n */\nfunction applyStyle(data) {\n // any property present in `data.styles` will be applied to the popper,\n // in this way we can make the 3rd party modifiers add custom styles to it\n // Be aware, modifiers could override the properties defined in the previous\n // lines of this modifier!\n setStyles(data.instance.popper, data.styles);\n\n // any property present in `data.attributes` will be applied to the popper,\n // they will be set as HTML attributes of the element\n setAttributes(data.instance.popper, data.attributes);\n\n // if arrowElement is defined and arrowStyles has some properties\n if (data.arrowElement && Object.keys(data.arrowStyles).length) {\n setStyles(data.arrowElement, data.arrowStyles);\n }\n\n return data;\n}\n\n/**\n * Set the x-placement attribute before everything else because it could be used\n * to add margins to the popper margins needs to be calculated to get the\n * correct popper offsets.\n * @method\n * @memberof Popper.modifiers\n * @param {HTMLElement} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as popper\n * @param {Object} options - Popper.js options\n */\nfunction applyStyleOnLoad(reference, popper, options, modifierOptions, state) {\n // compute reference element offsets\n var referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);\n\n popper.setAttribute('x-placement', placement);\n\n // Apply `position` to popper before anything else because\n // without the position applied we can't guarantee correct computations\n setStyles(popper, { position: options.positionFixed ? 'fixed' : 'absolute' });\n\n return options;\n}\n\n/**\n * @function\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Boolean} shouldRound - If the offsets should be rounded at all\n * @returns {Object} The popper's position offsets rounded\n *\n * The tale of pixel-perfect positioning. It's still not 100% perfect, but as\n * good as it can be within reason.\n * Discussion here: https://github.com/FezVrasta/popper.js/pull/715\n *\n * Low DPI screens cause a popper to be blurry if not using full pixels (Safari\n * as well on High DPI screens).\n *\n * Firefox prefers no rounding for positioning and does not have blurriness on\n * high DPI screens.\n *\n * Only horizontal placement and left/right values need to be considered.\n */\nfunction getRoundedOffsets(data, shouldRound) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n var round = Math.round,\n floor = Math.floor;\n\n var noRound = function noRound(v) {\n return v;\n };\n\n var referenceWidth = round(reference.width);\n var popperWidth = round(popper.width);\n\n var isVertical = ['left', 'right'].indexOf(data.placement) !== -1;\n var isVariation = data.placement.indexOf('-') !== -1;\n var sameWidthParity = referenceWidth % 2 === popperWidth % 2;\n var bothOddWidth = referenceWidth % 2 === 1 && popperWidth % 2 === 1;\n\n var horizontalToInteger = !shouldRound ? noRound : isVertical || isVariation || sameWidthParity ? round : floor;\n var verticalToInteger = !shouldRound ? noRound : round;\n\n return {\n left: horizontalToInteger(bothOddWidth && !isVariation && shouldRound ? popper.left - 1 : popper.left),\n top: verticalToInteger(popper.top),\n bottom: verticalToInteger(popper.bottom),\n right: horizontalToInteger(popper.right)\n };\n}\n\nvar isFirefox = isBrowser && /Firefox/i.test(navigator.userAgent);\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeStyle(data, options) {\n var x = options.x,\n y = options.y;\n var popper = data.offsets.popper;\n\n // Remove this legacy support in Popper.js v2\n\n var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'applyStyle';\n }).gpuAcceleration;\n if (legacyGpuAccelerationOption !== undefined) {\n console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');\n }\n var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;\n\n var offsetParent = getOffsetParent(data.instance.popper);\n var offsetParentRect = getBoundingClientRect(offsetParent);\n\n // Styles\n var styles = {\n position: popper.position\n };\n\n var offsets = getRoundedOffsets(data, window.devicePixelRatio < 2 || !isFirefox);\n\n var sideA = x === 'bottom' ? 'top' : 'bottom';\n var sideB = y === 'right' ? 'left' : 'right';\n\n // if gpuAcceleration is set to `true` and transform is supported,\n // we use `translate3d` to apply the position to the popper we\n // automatically use the supported prefixed version if needed\n var prefixedProperty = getSupportedPropertyName('transform');\n\n // now, let's make a step back and look at this code closely (wtf?)\n // If the content of the popper grows once it's been positioned, it\n // may happen that the popper gets misplaced because of the new content\n // overflowing its reference element\n // To avoid this problem, we provide two options (x and y), which allow\n // the consumer to define the offset origin.\n // If we position a popper on top of a reference element, we can set\n // `x` to `top` to make the popper grow towards its top instead of\n // its bottom.\n var left = void 0,\n top = void 0;\n if (sideA === 'bottom') {\n // when offsetParent is <html> the positioning is relative to the bottom of the screen (excluding the scrollbar)\n // and not the bottom of the html element\n if (offsetParent.nodeName === 'HTML') {\n top = -offsetParent.clientHeight + offsets.bottom;\n } else {\n top = -offsetParentRect.height + offsets.bottom;\n }\n } else {\n top = offsets.top;\n }\n if (sideB === 'right') {\n if (offsetParent.nodeName === 'HTML') {\n left = -offsetParent.clientWidth + offsets.right;\n } else {\n left = -offsetParentRect.width + offsets.right;\n }\n } else {\n left = offsets.left;\n }\n if (gpuAcceleration && prefixedProperty) {\n styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)';\n styles[sideA] = 0;\n styles[sideB] = 0;\n styles.willChange = 'transform';\n } else {\n // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties\n var invertTop = sideA === 'bottom' ? -1 : 1;\n var invertLeft = sideB === 'right' ? -1 : 1;\n styles[sideA] = top * invertTop;\n styles[sideB] = left * invertLeft;\n styles.willChange = sideA + ', ' + sideB;\n }\n\n // Attributes\n var attributes = {\n 'x-placement': data.placement\n };\n\n // Update `data` attributes, styles and arrowStyles\n data.attributes = _extends({}, attributes, data.attributes);\n data.styles = _extends({}, styles, data.styles);\n data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles);\n\n return data;\n}\n\n/**\n * Helper used to know if the given modifier depends from another one.<br />\n * It checks if the needed modifier is listed and enabled.\n * @method\n * @memberof Popper.Utils\n * @param {Array} modifiers - list of modifiers\n * @param {String} requestingName - name of requesting modifier\n * @param {String} requestedName - name of requested modifier\n * @returns {Boolean}\n */\nfunction isModifierRequired(modifiers, requestingName, requestedName) {\n var requesting = find(modifiers, function (_ref) {\n var name = _ref.name;\n return name === requestingName;\n });\n\n var isRequired = !!requesting && modifiers.some(function (modifier) {\n return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;\n });\n\n if (!isRequired) {\n var _requesting = '`' + requestingName + '`';\n var requested = '`' + requestedName + '`';\n console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!');\n }\n return isRequired;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction arrow(data, options) {\n var _data$offsets$arrow;\n\n // arrow depends on keepTogether in order to work\n if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\n return data;\n }\n\n var arrowElement = options.element;\n\n // if arrowElement is a string, suppose it's a CSS selector\n if (typeof arrowElement === 'string') {\n arrowElement = data.instance.popper.querySelector(arrowElement);\n\n // if arrowElement is not found, don't run the modifier\n if (!arrowElement) {\n return data;\n }\n } else {\n // if the arrowElement isn't a query selector we must check that the\n // provided DOM node is child of its popper node\n if (!data.instance.popper.contains(arrowElement)) {\n console.warn('WARNING: `arrow.element` must be child of its popper element!');\n return data;\n }\n }\n\n var placement = data.placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isVertical = ['left', 'right'].indexOf(placement) !== -1;\n\n var len = isVertical ? 'height' : 'width';\n var sideCapitalized = isVertical ? 'Top' : 'Left';\n var side = sideCapitalized.toLowerCase();\n var altSide = isVertical ? 'left' : 'top';\n var opSide = isVertical ? 'bottom' : 'right';\n var arrowElementSize = getOuterSizes(arrowElement)[len];\n\n //\n // extends keepTogether behavior making sure the popper and its\n // reference have enough pixels in conjunction\n //\n\n // top/left side\n if (reference[opSide] - arrowElementSize < popper[side]) {\n data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize);\n }\n // bottom/right side\n if (reference[side] + arrowElementSize > popper[opSide]) {\n data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide];\n }\n data.offsets.popper = getClientRect(data.offsets.popper);\n\n // compute center of the popper\n var center = reference[side] + reference[len] / 2 - arrowElementSize / 2;\n\n // Compute the sideValue using the updated popper offsets\n // take popper margin in account because we don't have this info available\n var css = getStyleComputedProperty(data.instance.popper);\n var popperMarginSide = parseFloat(css['margin' + sideCapitalized]);\n var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width']);\n var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;\n\n // prevent arrowElement from being placed not contiguously to its popper\n sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);\n\n data.arrowElement = arrowElement;\n data.offsets.arrow = (_data$offsets$arrow = {}, defineProperty(_data$offsets$arrow, side, Math.round(sideValue)), defineProperty(_data$offsets$arrow, altSide, ''), _data$offsets$arrow);\n\n return data;\n}\n\n/**\n * Get the opposite placement variation of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement variation\n * @returns {String} flipped placement variation\n */\nfunction getOppositeVariation(variation) {\n if (variation === 'end') {\n return 'start';\n } else if (variation === 'start') {\n return 'end';\n }\n return variation;\n}\n\n/**\n * List of accepted placements to use as values of the `placement` option.<br />\n * Valid placements are:\n * - `auto`\n * - `top`\n * - `right`\n * - `bottom`\n * - `left`\n *\n * Each placement can have a variation from this list:\n * - `-start`\n * - `-end`\n *\n * Variations are interpreted easily if you think of them as the left to right\n * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`\n * is right.<br />\n * Vertically (`left` and `right`), `start` is top and `end` is bottom.\n *\n * Some valid examples are:\n * - `top-end` (on top of reference, right aligned)\n * - `right-start` (on right of reference, top aligned)\n * - `bottom` (on bottom, centered)\n * - `auto-end` (on the side with more space available, alignment depends by placement)\n *\n * @static\n * @type {Array}\n * @enum {String}\n * @readonly\n * @method placements\n * @memberof Popper\n */\nvar placements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start'];\n\n// Get rid of `auto` `auto-start` and `auto-end`\nvar validPlacements = placements.slice(3);\n\n/**\n * Given an initial placement, returns all the subsequent placements\n * clockwise (or counter-clockwise).\n *\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement - A valid placement (it accepts variations)\n * @argument {Boolean} counter - Set to true to walk the placements counterclockwise\n * @returns {Array} placements including their variations\n */\nfunction clockwise(placement) {\n var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var index = validPlacements.indexOf(placement);\n var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index));\n return counter ? arr.reverse() : arr;\n}\n\nvar BEHAVIORS = {\n FLIP: 'flip',\n CLOCKWISE: 'clockwise',\n COUNTERCLOCKWISE: 'counterclockwise'\n};\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction flip(data, options) {\n // if `inner` modifier is enabled, we can't use the `flip` modifier\n if (isModifierEnabled(data.instance.modifiers, 'inner')) {\n return data;\n }\n\n if (data.flipped && data.placement === data.originalPlacement) {\n // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides\n return data;\n }\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement, data.positionFixed);\n\n var placement = data.placement.split('-')[0];\n var placementOpposite = getOppositePlacement(placement);\n var variation = data.placement.split('-')[1] || '';\n\n var flipOrder = [];\n\n switch (options.behavior) {\n case BEHAVIORS.FLIP:\n flipOrder = [placement, placementOpposite];\n break;\n case BEHAVIORS.CLOCKWISE:\n flipOrder = clockwise(placement);\n break;\n case BEHAVIORS.COUNTERCLOCKWISE:\n flipOrder = clockwise(placement, true);\n break;\n default:\n flipOrder = options.behavior;\n }\n\n flipOrder.forEach(function (step, index) {\n if (placement !== step || flipOrder.length === index + 1) {\n return data;\n }\n\n placement = data.placement.split('-')[0];\n placementOpposite = getOppositePlacement(placement);\n\n var popperOffsets = data.offsets.popper;\n var refOffsets = data.offsets.reference;\n\n // using floor because the reference offsets may contain decimals we are not going to consider here\n var floor = Math.floor;\n var overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom);\n\n var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);\n var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);\n var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);\n var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom);\n\n var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom;\n\n // flip the variation if required\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n\n // flips variation if reference element overflows boundaries\n var flippedVariationByRef = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom);\n\n // flips variation if popper content overflows boundaries\n var flippedVariationByContent = !!options.flipVariationsByContent && (isVertical && variation === 'start' && overflowsRight || isVertical && variation === 'end' && overflowsLeft || !isVertical && variation === 'start' && overflowsBottom || !isVertical && variation === 'end' && overflowsTop);\n\n var flippedVariation = flippedVariationByRef || flippedVariationByContent;\n\n if (overlapsRef || overflowsBoundaries || flippedVariation) {\n // this boolean to detect any flip loop\n data.flipped = true;\n\n if (overlapsRef || overflowsBoundaries) {\n placement = flipOrder[index + 1];\n }\n\n if (flippedVariation) {\n variation = getOppositeVariation(variation);\n }\n\n data.placement = placement + (variation ? '-' + variation : '');\n\n // this object contains `position`, we want to preserve it along with\n // any additional property we may add in the future\n data.offsets.popper = _extends({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement));\n\n data = runModifiers(data.instance.modifiers, data, 'flip');\n }\n });\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction keepTogether(data) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var placement = data.placement.split('-')[0];\n var floor = Math.floor;\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n var side = isVertical ? 'right' : 'bottom';\n var opSide = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n if (popper[side] < floor(reference[opSide])) {\n data.offsets.popper[opSide] = floor(reference[opSide]) - popper[measurement];\n }\n if (popper[opSide] > floor(reference[side])) {\n data.offsets.popper[opSide] = floor(reference[side]);\n }\n\n return data;\n}\n\n/**\n * Converts a string containing value + unit into a px value number\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} str - Value + unit string\n * @argument {String} measurement - `height` or `width`\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @returns {Number|String}\n * Value in pixels, or original string if no values were extracted\n */\nfunction toValue(str, measurement, popperOffsets, referenceOffsets) {\n // separate value from unit\n var split = str.match(/((?:\\-|\\+)?\\d*\\.?\\d*)(.*)/);\n var value = +split[1];\n var unit = split[2];\n\n // If it's not a number it's an operator, I guess\n if (!value) {\n return str;\n }\n\n if (unit.indexOf('%') === 0) {\n var element = void 0;\n switch (unit) {\n case '%p':\n element = popperOffsets;\n break;\n case '%':\n case '%r':\n default:\n element = referenceOffsets;\n }\n\n var rect = getClientRect(element);\n return rect[measurement] / 100 * value;\n } else if (unit === 'vh' || unit === 'vw') {\n // if is a vh or vw, we calculate the size based on the viewport\n var size = void 0;\n if (unit === 'vh') {\n size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);\n } else {\n size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);\n }\n return size / 100 * value;\n } else {\n // if is an explicit pixel unit, we get rid of the unit and keep the value\n // if is an implicit unit, it's px, and we return just the value\n return value;\n }\n}\n\n/**\n * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} offset\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @argument {String} basePlacement\n * @returns {Array} a two cells array with x and y offsets in numbers\n */\nfunction parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) {\n var offsets = [0, 0];\n\n // Use height if placement is left or right and index is 0 otherwise use width\n // in this way the first offset will use an axis and the second one\n // will use the other one\n var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1;\n\n // Split the offset string to obtain a list of values and operands\n // The regex addresses values with the plus or minus sign in front (+10, -20, etc)\n var fragments = offset.split(/(\\+|\\-)/).map(function (frag) {\n return frag.trim();\n });\n\n // Detect if the offset string contains a pair of values or a single one\n // they could be separated by comma or space\n var divider = fragments.indexOf(find(fragments, function (frag) {\n return frag.search(/,|\\s/) !== -1;\n }));\n\n if (fragments[divider] && fragments[divider].indexOf(',') === -1) {\n console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');\n }\n\n // If divider is found, we divide the list of values and operands to divide\n // them by ofset X and Y.\n var splitRegex = /\\s*,\\s*|\\s+/;\n var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments];\n\n // Convert the values with units to absolute pixels to allow our computations\n ops = ops.map(function (op, index) {\n // Most of the units rely on the orientation of the popper\n var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width';\n var mergeWithPrevious = false;\n return op\n // This aggregates any `+` or `-` sign that aren't considered operators\n // e.g.: 10 + +5 => [10, +, +5]\n .reduce(function (a, b) {\n if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {\n a[a.length - 1] = b;\n mergeWithPrevious = true;\n return a;\n } else if (mergeWithPrevious) {\n a[a.length - 1] += b;\n mergeWithPrevious = false;\n return a;\n } else {\n return a.concat(b);\n }\n }, [])\n // Here we convert the string values into number values (in px)\n .map(function (str) {\n return toValue(str, measurement, popperOffsets, referenceOffsets);\n });\n });\n\n // Loop trough the offsets arrays and execute the operations\n ops.forEach(function (op, index) {\n op.forEach(function (frag, index2) {\n if (isNumeric(frag)) {\n offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);\n }\n });\n });\n return offsets;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @argument {Number|String} options.offset=0\n * The offset value as described in the modifier description\n * @returns {Object} The data object, properly modified\n */\nfunction offset(data, _ref) {\n var offset = _ref.offset;\n var placement = data.placement,\n _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var basePlacement = placement.split('-')[0];\n\n var offsets = void 0;\n if (isNumeric(+offset)) {\n offsets = [+offset, 0];\n } else {\n offsets = parseOffset(offset, popper, reference, basePlacement);\n }\n\n if (basePlacement === 'left') {\n popper.top += offsets[0];\n popper.left -= offsets[1];\n } else if (basePlacement === 'right') {\n popper.top += offsets[0];\n popper.left += offsets[1];\n } else if (basePlacement === 'top') {\n popper.left += offsets[0];\n popper.top -= offsets[1];\n } else if (basePlacement === 'bottom') {\n popper.left += offsets[0];\n popper.top += offsets[1];\n }\n\n data.popper = popper;\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction preventOverflow(data, options) {\n var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper);\n\n // If offsetParent is the reference element, we really want to\n // go one step up and use the next offsetParent as reference to\n // avoid to make this modifier completely useless and look like broken\n if (data.instance.reference === boundariesElement) {\n boundariesElement = getOffsetParent(boundariesElement);\n }\n\n // NOTE: DOM access here\n // resets the popper's position so that the document size can be calculated excluding\n // the size of the popper element itself\n var transformProp = getSupportedPropertyName('transform');\n var popperStyles = data.instance.popper.style; // assignment to help minification\n var top = popperStyles.top,\n left = popperStyles.left,\n transform = popperStyles[transformProp];\n\n popperStyles.top = '';\n popperStyles.left = '';\n popperStyles[transformProp] = '';\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement, data.positionFixed);\n\n // NOTE: DOM access here\n // restores the original style properties after the offsets have been computed\n popperStyles.top = top;\n popperStyles.left = left;\n popperStyles[transformProp] = transform;\n\n options.boundaries = boundaries;\n\n var order = options.priority;\n var popper = data.offsets.popper;\n\n var check = {\n primary: function primary(placement) {\n var value = popper[placement];\n if (popper[placement] < boundaries[placement] && !options.escapeWithReference) {\n value = Math.max(popper[placement], boundaries[placement]);\n }\n return defineProperty({}, placement, value);\n },\n secondary: function secondary(placement) {\n var mainSide = placement === 'right' ? 'left' : 'top';\n var value = popper[mainSide];\n if (popper[placement] > boundaries[placement] && !options.escapeWithReference) {\n value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height));\n }\n return defineProperty({}, mainSide, value);\n }\n };\n\n order.forEach(function (placement) {\n var side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';\n popper = _extends({}, popper, check[side](placement));\n });\n\n data.offsets.popper = popper;\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction shift(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var shiftvariation = placement.split('-')[1];\n\n // if shift shiftvariation is specified, run the modifier\n if (shiftvariation) {\n var _data$offsets = data.offsets,\n reference = _data$offsets.reference,\n popper = _data$offsets.popper;\n\n var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n var side = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n var shiftOffsets = {\n start: defineProperty({}, side, reference[side]),\n end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement])\n };\n\n data.offsets.popper = _extends({}, popper, shiftOffsets[shiftvariation]);\n }\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction hide(data) {\n if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {\n return data;\n }\n\n var refRect = data.offsets.reference;\n var bound = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'preventOverflow';\n }).boundaries;\n\n if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === true) {\n return data;\n }\n\n data.hide = true;\n data.attributes['x-out-of-boundaries'] = '';\n } else {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === false) {\n return data;\n }\n\n data.hide = false;\n data.attributes['x-out-of-boundaries'] = false;\n }\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction inner(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;\n\n var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;\n\n popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);\n\n data.placement = getOppositePlacement(placement);\n data.offsets.popper = getClientRect(popper);\n\n return data;\n}\n\n/**\n * Modifier function, each modifier can have a function of this type assigned\n * to its `fn` property.<br />\n * These functions will be called on each update, this means that you must\n * make sure they are performant enough to avoid performance bottlenecks.\n *\n * @function ModifierFn\n * @argument {dataObject} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {dataObject} The data object, properly modified\n */\n\n/**\n * Modifiers are plugins used to alter the behavior of your poppers.<br />\n * Popper.js uses a set of 9 modifiers to provide all the basic functionalities\n * needed by the library.\n *\n * Usually you don't want to override the `order`, `fn` and `onLoad` props.\n * All the other properties are configurations that could be tweaked.\n * @namespace modifiers\n */\nvar modifiers = {\n /**\n * Modifier used to shift the popper on the start or end of its reference\n * element.<br />\n * It will read the variation of the `placement` property.<br />\n * It can be one either `-end` or `-start`.\n * @memberof modifiers\n * @inner\n */\n shift: {\n /** @prop {number} order=100 - Index used to define the order of execution */\n order: 100,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: shift\n },\n\n /**\n * The `offset` modifier can shift your popper on both its axis.\n *\n * It accepts the following units:\n * - `px` or unit-less, interpreted as pixels\n * - `%` or `%r`, percentage relative to the length of the reference element\n * - `%p`, percentage relative to the length of the popper element\n * - `vw`, CSS viewport width unit\n * - `vh`, CSS viewport height unit\n *\n * For length is intended the main axis relative to the placement of the popper.<br />\n * This means that if the placement is `top` or `bottom`, the length will be the\n * `width`. In case of `left` or `right`, it will be the `height`.\n *\n * You can provide a single value (as `Number` or `String`), or a pair of values\n * as `String` divided by a comma or one (or more) white spaces.<br />\n * The latter is a deprecated method because it leads to confusion and will be\n * removed in v2.<br />\n * Additionally, it accepts additions and subtractions between different units.\n * Note that multiplications and divisions aren't supported.\n *\n * Valid examples are:\n * ```\n * 10\n * '10%'\n * '10, 10'\n * '10%, 10'\n * '10 + 10%'\n * '10 - 5vh + 3%'\n * '-10px + 5vh, 5px - 6%'\n * ```\n * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap\n * > with their reference element, unfortunately, you will have to disable the `flip` modifier.\n * > You can read more on this at this [issue](https://github.com/FezVrasta/popper.js/issues/373).\n *\n * @memberof modifiers\n * @inner\n */\n offset: {\n /** @prop {number} order=200 - Index used to define the order of execution */\n order: 200,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: offset,\n /** @prop {Number|String} offset=0\n * The offset value as described in the modifier description\n */\n offset: 0\n },\n\n /**\n * Modifier used to prevent the popper from being positioned outside the boundary.\n *\n * A scenario exists where the reference itself is not within the boundaries.<br />\n * We can say it has \"escaped the boundaries\" — or just \"escaped\".<br />\n * In this case we need to decide whether the popper should either:\n *\n * - detach from the reference and remain \"trapped\" in the boundaries, or\n * - if it should ignore the boundary and \"escape with its reference\"\n *\n * When `escapeWithReference` is set to`true` and reference is completely\n * outside its boundaries, the popper will overflow (or completely leave)\n * the boundaries in order to remain attached to the edge of the reference.\n *\n * @memberof modifiers\n * @inner\n */\n preventOverflow: {\n /** @prop {number} order=300 - Index used to define the order of execution */\n order: 300,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: preventOverflow,\n /**\n * @prop {Array} [priority=['left','right','top','bottom']]\n * Popper will try to prevent overflow following these priorities by default,\n * then, it could overflow on the left and on top of the `boundariesElement`\n */\n priority: ['left', 'right', 'top', 'bottom'],\n /**\n * @prop {number} padding=5\n * Amount of pixel used to define a minimum distance between the boundaries\n * and the popper. This makes sure the popper always has a little padding\n * between the edges of its container\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='scrollParent'\n * Boundaries used by the modifier. Can be `scrollParent`, `window`,\n * `viewport` or any DOM element.\n */\n boundariesElement: 'scrollParent'\n },\n\n /**\n * Modifier used to make sure the reference and its popper stay near each other\n * without leaving any gap between the two. Especially useful when the arrow is\n * enabled and you want to ensure that it points to its reference element.\n * It cares only about the first axis. You can still have poppers with margin\n * between the popper and its reference element.\n * @memberof modifiers\n * @inner\n */\n keepTogether: {\n /** @prop {number} order=400 - Index used to define the order of execution */\n order: 400,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: keepTogether\n },\n\n /**\n * This modifier is used to move the `arrowElement` of the popper to make\n * sure it is positioned between the reference element and its popper element.\n * It will read the outer size of the `arrowElement` node to detect how many\n * pixels of conjunction are needed.\n *\n * It has no effect if no `arrowElement` is provided.\n * @memberof modifiers\n * @inner\n */\n arrow: {\n /** @prop {number} order=500 - Index used to define the order of execution */\n order: 500,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: arrow,\n /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */\n element: '[x-arrow]'\n },\n\n /**\n * Modifier used to flip the popper's placement when it starts to overlap its\n * reference element.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n *\n * **NOTE:** this modifier will interrupt the current update cycle and will\n * restart it if it detects the need to flip the placement.\n * @memberof modifiers\n * @inner\n */\n flip: {\n /** @prop {number} order=600 - Index used to define the order of execution */\n order: 600,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: flip,\n /**\n * @prop {String|Array} behavior='flip'\n * The behavior used to change the popper's placement. It can be one of\n * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid\n * placements (with optional variations)\n */\n behavior: 'flip',\n /**\n * @prop {number} padding=5\n * The popper will flip if it hits the edges of the `boundariesElement`\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='viewport'\n * The element which will define the boundaries of the popper position.\n * The popper will never be placed outside of the defined boundaries\n * (except if `keepTogether` is enabled)\n */\n boundariesElement: 'viewport',\n /**\n * @prop {Boolean} flipVariations=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the reference element overlaps its boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariations: false,\n /**\n * @prop {Boolean} flipVariationsByContent=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the popper element overlaps its reference boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariationsByContent: false\n },\n\n /**\n * Modifier used to make the popper flow toward the inner of the reference element.\n * By default, when this modifier is disabled, the popper will be placed outside\n * the reference element.\n * @memberof modifiers\n * @inner\n */\n inner: {\n /** @prop {number} order=700 - Index used to define the order of execution */\n order: 700,\n /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */\n enabled: false,\n /** @prop {ModifierFn} */\n fn: inner\n },\n\n /**\n * Modifier used to hide the popper when its reference element is outside of the\n * popper boundaries. It will set a `x-out-of-boundaries` attribute which can\n * be used to hide with a CSS selector the popper when its reference is\n * out of boundaries.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n * @memberof modifiers\n * @inner\n */\n hide: {\n /** @prop {number} order=800 - Index used to define the order of execution */\n order: 800,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: hide\n },\n\n /**\n * Computes the style that will be applied to the popper element to gets\n * properly positioned.\n *\n * Note that this modifier will not touch the DOM, it just prepares the styles\n * so that `applyStyle` modifier can apply it. This separation is useful\n * in case you need to replace `applyStyle` with a custom implementation.\n *\n * This modifier has `850` as `order` value to maintain backward compatibility\n * with previous versions of Popper.js. Expect the modifiers ordering method\n * to change in future major versions of the library.\n *\n * @memberof modifiers\n * @inner\n */\n computeStyle: {\n /** @prop {number} order=850 - Index used to define the order of execution */\n order: 850,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: computeStyle,\n /**\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: true,\n /**\n * @prop {string} [x='bottom']\n * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.\n * Change this if your popper should grow in a direction different from `bottom`\n */\n x: 'bottom',\n /**\n * @prop {string} [x='left']\n * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.\n * Change this if your popper should grow in a direction different from `right`\n */\n y: 'right'\n },\n\n /**\n * Applies the computed styles to the popper element.\n *\n * All the DOM manipulations are limited to this modifier. This is useful in case\n * you want to integrate Popper.js inside a framework or view library and you\n * want to delegate all the DOM manipulations to it.\n *\n * Note that if you disable this modifier, you must make sure the popper element\n * has its position set to `absolute` before Popper.js can do its work!\n *\n * Just disable this modifier and define your own to achieve the desired effect.\n *\n * @memberof modifiers\n * @inner\n */\n applyStyle: {\n /** @prop {number} order=900 - Index used to define the order of execution */\n order: 900,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: applyStyle,\n /** @prop {Function} */\n onLoad: applyStyleOnLoad,\n /**\n * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: undefined\n }\n};\n\n/**\n * The `dataObject` is an object containing all the information used by Popper.js.\n * This object is passed to modifiers and to the `onCreate` and `onUpdate` callbacks.\n * @name dataObject\n * @property {Object} data.instance The Popper.js instance\n * @property {String} data.placement Placement applied to popper\n * @property {String} data.originalPlacement Placement originally defined on init\n * @property {Boolean} data.flipped True if popper has been flipped by flip modifier\n * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper\n * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier\n * @property {Object} data.styles Any CSS property defined here will be applied to the popper. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.boundaries Offsets of the popper boundaries\n * @property {Object} data.offsets The measurements of popper, reference and arrow elements\n * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0\n */\n\n/**\n * Default options provided to Popper.js constructor.<br />\n * These can be overridden using the `options` argument of Popper.js.<br />\n * To override an option, simply pass an object with the same\n * structure of the `options` object, as the 3rd argument. For example:\n * ```\n * new Popper(ref, pop, {\n * modifiers: {\n * preventOverflow: { enabled: false }\n * }\n * })\n * ```\n * @type {Object}\n * @static\n * @memberof Popper\n */\nvar Defaults = {\n /**\n * Popper's placement.\n * @prop {Popper.placements} placement='bottom'\n */\n placement: 'bottom',\n\n /**\n * Set this to true if you want popper to position it self in 'fixed' mode\n * @prop {Boolean} positionFixed=false\n */\n positionFixed: false,\n\n /**\n * Whether events (resize, scroll) are initially enabled.\n * @prop {Boolean} eventsEnabled=true\n */\n eventsEnabled: true,\n\n /**\n * Set to true if you want to automatically remove the popper when\n * you call the `destroy` method.\n * @prop {Boolean} removeOnDestroy=false\n */\n removeOnDestroy: false,\n\n /**\n * Callback called when the popper is created.<br />\n * By default, it is set to no-op.<br />\n * Access Popper.js instance with `data.instance`.\n * @prop {onCreate}\n */\n onCreate: function onCreate() {},\n\n /**\n * Callback called when the popper is updated. This callback is not called\n * on the initialization/creation of the popper, but only on subsequent\n * updates.<br />\n * By default, it is set to no-op.<br />\n * Access Popper.js instance with `data.instance`.\n * @prop {onUpdate}\n */\n onUpdate: function onUpdate() {},\n\n /**\n * List of modifiers used to modify the offsets before they are applied to the popper.\n * They provide most of the functionalities of Popper.js.\n * @prop {modifiers}\n */\n modifiers: modifiers\n};\n\n/**\n * @callback onCreate\n * @param {dataObject} data\n */\n\n/**\n * @callback onUpdate\n * @param {dataObject} data\n */\n\n// Utils\n// Methods\nvar Popper = function () {\n /**\n * Creates a new Popper.js instance.\n * @class Popper\n * @param {Element|referenceObject} reference - The reference element used to position the popper\n * @param {Element} popper - The HTML / XML element used as the popper\n * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)\n * @return {Object} instance - The generated Popper.js instance\n */\n function Popper(reference, popper) {\n var _this = this;\n\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n classCallCheck(this, Popper);\n\n this.scheduleUpdate = function () {\n return requestAnimationFrame(_this.update);\n };\n\n // make update() debounced, so that it only runs at most once-per-tick\n this.update = debounce(this.update.bind(this));\n\n // with {} we create a new object with the options inside it\n this.options = _extends({}, Popper.Defaults, options);\n\n // init state\n this.state = {\n isDestroyed: false,\n isCreated: false,\n scrollParents: []\n };\n\n // get reference and popper elements (allow jQuery wrappers)\n this.reference = reference && reference.jquery ? reference[0] : reference;\n this.popper = popper && popper.jquery ? popper[0] : popper;\n\n // Deep merge modifiers options\n this.options.modifiers = {};\n Object.keys(_extends({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) {\n _this.options.modifiers[name] = _extends({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {});\n });\n\n // Refactoring modifiers' list (Object => Array)\n this.modifiers = Object.keys(this.options.modifiers).map(function (name) {\n return _extends({\n name: name\n }, _this.options.modifiers[name]);\n })\n // sort the modifiers by order\n .sort(function (a, b) {\n return a.order - b.order;\n });\n\n // modifiers have the ability to execute arbitrary code when Popper.js get inited\n // such code is executed in the same order of its modifier\n // they could add new properties to their options configuration\n // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!\n this.modifiers.forEach(function (modifierOptions) {\n if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {\n modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state);\n }\n });\n\n // fire the first update to position the popper in the right place\n this.update();\n\n var eventsEnabled = this.options.eventsEnabled;\n if (eventsEnabled) {\n // setup event listeners, they will take care of update the position in specific situations\n this.enableEventListeners();\n }\n\n this.state.eventsEnabled = eventsEnabled;\n }\n\n // We can't use class properties because they don't get listed in the\n // class prototype and break stuff like Sinon stubs\n\n\n createClass(Popper, [{\n key: 'update',\n value: function update$$1() {\n return update.call(this);\n }\n }, {\n key: 'destroy',\n value: function destroy$$1() {\n return destroy.call(this);\n }\n }, {\n key: 'enableEventListeners',\n value: function enableEventListeners$$1() {\n return enableEventListeners.call(this);\n }\n }, {\n key: 'disableEventListeners',\n value: function disableEventListeners$$1() {\n return disableEventListeners.call(this);\n }\n\n /**\n * Schedules an update. It will run on the next UI update available.\n * @method scheduleUpdate\n * @memberof Popper\n */\n\n\n /**\n * Collection of utilities useful when writing custom modifiers.\n * Starting from version 1.7, this method is available only if you\n * include `popper-utils.js` before `popper.js`.\n *\n * **DEPRECATION**: This way to access PopperUtils is deprecated\n * and will be removed in v2! Use the PopperUtils module directly instead.\n * Due to the high instability of the methods contained in Utils, we can't\n * guarantee them to follow semver. Use them at your own risk!\n * @static\n * @private\n * @type {Object}\n * @deprecated since version 1.8\n * @member Utils\n * @memberof Popper\n */\n\n }]);\n return Popper;\n}();\n\n/**\n * The `referenceObject` is an object that provides an interface compatible with Popper.js\n * and lets you use it as replacement of a real DOM node.<br />\n * You can use this method to position a popper relatively to a set of coordinates\n * in case you don't have a DOM node to use as reference.\n *\n * ```\n * new Popper(referenceObject, popperNode);\n * ```\n *\n * NB: This feature isn't supported in Internet Explorer 10.\n * @name referenceObject\n * @property {Function} data.getBoundingClientRect\n * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.\n * @property {number} data.clientWidth\n * An ES6 getter that will return the width of the virtual reference element.\n * @property {number} data.clientHeight\n * An ES6 getter that will return the height of the virtual reference element.\n */\n\n\nPopper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;\nPopper.placements = placements;\nPopper.Defaults = Defaults;\n\n/**!\n* tippy.js v4.3.5\n* (c) 2017-2019 atomiks\n* MIT License\n*/\n\nvar css = \".tippy-iOS{cursor:pointer!important;-webkit-tap-highlight-color:transparent}.tippy-popper{transition-timing-function:cubic-bezier(.165,.84,.44,1);max-width:calc(100% - 8px);pointer-events:none;outline:0}.tippy-popper[x-placement^=top] .tippy-backdrop{border-radius:40% 40% 0 0}.tippy-popper[x-placement^=top] .tippy-roundarrow{bottom:-7px;bottom:-6.5px;-webkit-transform-origin:50% 0;transform-origin:50% 0;margin:0 3px}.tippy-popper[x-placement^=top] .tippy-roundarrow svg{position:absolute;left:0;-webkit-transform:rotate(180deg);transform:rotate(180deg)}.tippy-popper[x-placement^=top] .tippy-arrow{border-top:8px solid #333;border-right:8px solid transparent;border-left:8px solid transparent;bottom:-7px;margin:0 3px;-webkit-transform-origin:50% 0;transform-origin:50% 0}.tippy-popper[x-placement^=top] .tippy-backdrop{-webkit-transform-origin:0 25%;transform-origin:0 25%}.tippy-popper[x-placement^=top] .tippy-backdrop[data-state=visible]{-webkit-transform:scale(1) translate(-50%,-55%);transform:scale(1) translate(-50%,-55%)}.tippy-popper[x-placement^=top] .tippy-backdrop[data-state=hidden]{-webkit-transform:scale(.2) translate(-50%,-45%);transform:scale(.2) translate(-50%,-45%);opacity:0}.tippy-popper[x-placement^=top] [data-animation=shift-toward][data-state=visible]{-webkit-transform:translateY(-10px);transform:translateY(-10px)}.tippy-popper[x-placement^=top] [data-animation=shift-toward][data-state=hidden]{opacity:0;-webkit-transform:translateY(-20px);transform:translateY(-20px)}.tippy-popper[x-placement^=top] [data-animation=perspective]{-webkit-transform-origin:bottom;transform-origin:bottom}.tippy-popper[x-placement^=top] [data-animation=perspective][data-state=visible]{-webkit-transform:perspective(700px) translateY(-10px);transform:perspective(700px) translateY(-10px)}.tippy-popper[x-placement^=top] [data-animation=perspective][data-state=hidden]{opacity:0;-webkit-transform:perspective(700px) rotateX(60deg);transform:perspective(700px) rotateX(60deg)}.tippy-popper[x-placement^=top] [data-animation=fade][data-state=visible]{-webkit-transform:translateY(-10px);transform:translateY(-10px)}.tippy-popper[x-placement^=top] [data-animation=fade][data-state=hidden]{opacity:0;-webkit-transform:translateY(-10px);transform:translateY(-10px)}.tippy-popper[x-placement^=top] [data-animation=shift-away][data-state=visible]{-webkit-transform:translateY(-10px);transform:translateY(-10px)}.tippy-popper[x-placement^=top] [data-animation=shift-away][data-state=hidden]{opacity:0}.tippy-popper[x-placement^=top] [data-animation=scale]{-webkit-transform-origin:bottom;transform-origin:bottom}.tippy-popper[x-placement^=top] [data-animation=scale][data-state=visible]{-webkit-transform:translateY(-10px);transform:translateY(-10px)}.tippy-popper[x-placement^=top] [data-animation=scale][data-state=hidden]{opacity:0;-webkit-transform:translateY(-10px) scale(.5);transform:translateY(-10px) scale(.5)}.tippy-popper[x-placement^=bottom] .tippy-backdrop{border-radius:0 0 30% 30%}.tippy-popper[x-placement^=bottom] .tippy-roundarrow{top:-7px;-webkit-transform-origin:50% 100%;transform-origin:50% 100%;margin:0 3px}.tippy-popper[x-placement^=bottom] .tippy-roundarrow svg{position:absolute;left:0}.tippy-popper[x-placement^=bottom] .tippy-arrow{border-bottom:8px solid #333;border-right:8px solid transparent;border-left:8px solid transparent;top:-7px;margin:0 3px;-webkit-transform-origin:50% 100%;transform-origin:50% 100%}.tippy-popper[x-placement^=bottom] .tippy-backdrop{-webkit-transform-origin:0 -50%;transform-origin:0 -50%}.tippy-popper[x-placement^=bottom] .tippy-backdrop[data-state=visible]{-webkit-transform:scale(1) translate(-50%,-45%);transform:scale(1) translate(-50%,-45%)}.tippy-popper[x-placement^=bottom] .tippy-backdrop[data-state=hidden]{-webkit-transform:scale(.2) translate(-50%);transform:scale(.2) translate(-50%);opacity:0}.tippy-popper[x-placement^=bottom] [data-animation=shift-toward][data-state=visible]{-webkit-transform:translateY(10px);transform:translateY(10px)}.tippy-popper[x-placement^=bottom] [data-animation=shift-toward][data-state=hidden]{opacity:0;-webkit-transform:translateY(20px);transform:translateY(20px)}.tippy-popper[x-placement^=bottom] [data-animation=perspective]{-webkit-transform-origin:top;transform-origin:top}.tippy-popper[x-placement^=bottom] [data-animation=perspective][data-state=visible]{-webkit-transform:perspective(700px) translateY(10px);transform:perspective(700px) translateY(10px)}.tippy-popper[x-placement^=bottom] [data-animation=perspective][data-state=hidden]{opacity:0;-webkit-transform:perspective(700px) rotateX(-60deg);transform:perspective(700px) rotateX(-60deg)}.tippy-popper[x-placement^=bottom] [data-animation=fade][data-state=visible]{-webkit-transform:translateY(10px);transform:translateY(10px)}.tippy-popper[x-placement^=bottom] [data-animation=fade][data-state=hidden]{opacity:0;-webkit-transform:translateY(10px);transform:translateY(10px)}.tippy-popper[x-placement^=bottom] [data-animation=shift-away][data-state=visible]{-webkit-transform:translateY(10px);transform:translateY(10px)}.tippy-popper[x-placement^=bottom] [data-animation=shift-away][data-state=hidden]{opacity:0}.tippy-popper[x-placement^=bottom] [data-animation=scale]{-webkit-transform-origin:top;transform-origin:top}.tippy-popper[x-placement^=bottom] [data-animation=scale][data-state=visible]{-webkit-transform:translateY(10px);transform:translateY(10px)}.tippy-popper[x-placement^=bottom] [data-animation=scale][data-state=hidden]{opacity:0;-webkit-transform:translateY(10px) scale(.5);transform:translateY(10px) scale(.5)}.tippy-popper[x-placement^=left] .tippy-backdrop{border-radius:50% 0 0 50%}.tippy-popper[x-placement^=left] .tippy-roundarrow{right:-12px;-webkit-transform-origin:33.33333333% 50%;transform-origin:33.33333333% 50%;margin:3px 0}.tippy-popper[x-placement^=left] .tippy-roundarrow svg{position:absolute;left:0;-webkit-transform:rotate(90deg);transform:rotate(90deg)}.tippy-popper[x-placement^=left] .tippy-arrow{border-left:8px solid #333;border-top:8px solid transparent;border-bottom:8px solid transparent;right:-7px;margin:3px 0;-webkit-transform-origin:0 50%;transform-origin:0 50%}.tippy-popper[x-placement^=left] .tippy-backdrop{-webkit-transform-origin:50% 0;transform-origin:50% 0}.tippy-popper[x-placement^=left] .tippy-backdrop[data-state=visible]{-webkit-transform:scale(1) translate(-50%,-50%);transform:scale(1) translate(-50%,-50%)}.tippy-popper[x-placement^=left] .tippy-backdrop[data-state=hidden]{-webkit-transform:scale(.2) translate(-75%,-50%);transform:scale(.2) translate(-75%,-50%);opacity:0}.tippy-popper[x-placement^=left] [data-animation=shift-toward][data-state=visible]{-webkit-transform:translateX(-10px);transform:translateX(-10px)}.tippy-popper[x-placement^=left] [data-animation=shift-toward][data-state=hidden]{opacity:0;-webkit-transform:translateX(-20px);transform:translateX(-20px)}.tippy-popper[x-placement^=left] [data-animation=perspective]{-webkit-transform-origin:right;transform-origin:right}.tippy-popper[x-placement^=left] [data-animation=perspective][data-state=visible]{-webkit-transform:perspective(700px) translateX(-10px);transform:perspective(700px) translateX(-10px)}.tippy-popper[x-placement^=left] [data-animation=perspective][data-state=hidden]{opacity:0;-webkit-transform:perspective(700px) rotateY(-60deg);transform:perspective(700px) rotateY(-60deg)}.tippy-popper[x-placement^=left] [data-animation=fade][data-state=visible]{-webkit-transform:translateX(-10px);transform:translateX(-10px)}.tippy-popper[x-placement^=left] [data-animation=fade][data-state=hidden]{opacity:0;-webkit-transform:translateX(-10px);transform:translateX(-10px)}.tippy-popper[x-placement^=left] [data-animation=shift-away][data-state=visible]{-webkit-transform:translateX(-10px);transform:translateX(-10px)}.tippy-popper[x-placement^=left] [data-animation=shift-away][data-state=hidden]{opacity:0}.tippy-popper[x-placement^=left] [data-animation=scale]{-webkit-transform-origin:right;transform-origin:right}.tippy-popper[x-placement^=left] [data-animation=scale][data-state=visible]{-webkit-transform:translateX(-10px);transform:translateX(-10px)}.tippy-popper[x-placement^=left] [data-animation=scale][data-state=hidden]{opacity:0;-webkit-transform:translateX(-10px) scale(.5);transform:translateX(-10px) scale(.5)}.tippy-popper[x-placement^=right] .tippy-backdrop{border-radius:0 50% 50% 0}.tippy-popper[x-placement^=right] .tippy-roundarrow{left:-12px;-webkit-transform-origin:66.66666666% 50%;transform-origin:66.66666666% 50%;margin:3px 0}.tippy-popper[x-placement^=right] .tippy-roundarrow svg{position:absolute;left:0;-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}.tippy-popper[x-placement^=right] .tippy-arrow{border-right:8px solid #333;border-top:8px solid transparent;border-bottom:8px solid transparent;left:-7px;margin:3px 0;-webkit-transform-origin:100% 50%;transform-origin:100% 50%}.tippy-popper[x-placement^=right] .tippy-backdrop{-webkit-transform-origin:-50% 0;transform-origin:-50% 0}.tippy-popper[x-placement^=right] .tippy-backdrop[data-state=visible]{-webkit-transform:scale(1) translate(-50%,-50%);transform:scale(1) translate(-50%,-50%)}.tippy-popper[x-placement^=right] .tippy-backdrop[data-state=hidden]{-webkit-transform:scale(.2) translate(-25%,-50%);transform:scale(.2) translate(-25%,-50%);opacity:0}.tippy-popper[x-placement^=right] [data-animation=shift-toward][data-state=visible]{-webkit-transform:translateX(10px);transform:translateX(10px)}.tippy-popper[x-placement^=right] [data-animation=shift-toward][data-state=hidden]{opacity:0;-webkit-transform:translateX(20px);transform:translateX(20px)}.tippy-popper[x-placement^=right] [data-animation=perspective]{-webkit-transform-origin:left;transform-origin:left}.tippy-popper[x-placement^=right] [data-animation=perspective][data-state=visible]{-webkit-transform:perspective(700px) translateX(10px);transform:perspective(700px) translateX(10px)}.tippy-popper[x-placement^=right] [data-animation=perspective][data-state=hidden]{opacity:0;-webkit-transform:perspective(700px) rotateY(60deg);transform:perspective(700px) rotateY(60deg)}.tippy-popper[x-placement^=right] [data-animation=fade][data-state=visible]{-webkit-transform:translateX(10px);transform:translateX(10px)}.tippy-popper[x-placement^=right] [data-animation=fade][data-state=hidden]{opacity:0;-webkit-transform:translateX(10px);transform:translateX(10px)}.tippy-popper[x-placement^=right] [data-animation=shift-away][data-state=visible]{-webkit-transform:translateX(10px);transform:translateX(10px)}.tippy-popper[x-placement^=right] [data-animation=shift-away][data-state=hidden]{opacity:0}.tippy-popper[x-placement^=right] [data-animation=scale]{-webkit-transform-origin:left;transform-origin:left}.tippy-popper[x-placement^=right] [data-animation=scale][data-state=visible]{-webkit-transform:translateX(10px);transform:translateX(10px)}.tippy-popper[x-placement^=right] [data-animation=scale][data-state=hidden]{opacity:0;-webkit-transform:translateX(10px) scale(.5);transform:translateX(10px) scale(.5)}.tippy-tooltip{position:relative;color:#fff;border-radius:.25rem;font-size:.875rem;padding:.3125rem .5625rem;line-height:1.4;text-align:center;background-color:#333}.tippy-tooltip[data-size=small]{padding:.1875rem .375rem;font-size:.75rem}.tippy-tooltip[data-size=large]{padding:.375rem .75rem;font-size:1rem}.tippy-tooltip[data-animatefill]{overflow:hidden;background-color:initial}.tippy-tooltip[data-interactive],.tippy-tooltip[data-interactive] .tippy-roundarrow path{pointer-events:auto}.tippy-tooltip[data-inertia][data-state=visible]{transition-timing-function:cubic-bezier(.54,1.5,.38,1.11)}.tippy-tooltip[data-inertia][data-state=hidden]{transition-timing-function:ease}.tippy-arrow,.tippy-roundarrow{position:absolute;width:0;height:0}.tippy-roundarrow{width:18px;height:7px;fill:#333;pointer-events:none}.tippy-backdrop{position:absolute;background-color:#333;border-radius:50%;width:calc(110% + 2rem);left:50%;top:50%;z-index:-1;transition:all cubic-bezier(.46,.1,.52,.98);-webkit-backface-visibility:hidden;backface-visibility:hidden}.tippy-backdrop:after{content:\\\"\\\";float:left;padding-top:100%}.tippy-backdrop+.tippy-content{transition-property:opacity;will-change:opacity}.tippy-backdrop+.tippy-content[data-state=hidden]{opacity:0}\";\n\nfunction _extends$1() {\n _extends$1 = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends$1.apply(this, arguments);\n}\n\nvar version = \"4.3.5\";\n\nvar isBrowser$1 = typeof window !== 'undefined' && typeof document !== 'undefined';\nvar ua = isBrowser$1 ? navigator.userAgent : '';\nvar isIE$1 = /MSIE |Trident\\//.test(ua);\nvar isUCBrowser = /UCBrowser\\//.test(ua);\nvar isIOS = isBrowser$1 && /iPhone|iPad|iPod/.test(navigator.platform) && !window.MSStream;\n\nvar defaultProps = {\n a11y: true,\n allowHTML: true,\n animateFill: true,\n animation: 'shift-away',\n appendTo: function appendTo() {\n return document.body;\n },\n aria: 'describedby',\n arrow: false,\n arrowType: 'sharp',\n boundary: 'scrollParent',\n content: '',\n delay: 0,\n distance: 10,\n duration: [325, 275],\n flip: true,\n flipBehavior: 'flip',\n flipOnUpdate: false,\n followCursor: false,\n hideOnClick: true,\n ignoreAttributes: false,\n inertia: false,\n interactive: false,\n interactiveBorder: 2,\n interactiveDebounce: 0,\n lazy: true,\n maxWidth: 350,\n multiple: false,\n offset: 0,\n onHidden: function onHidden() {},\n onHide: function onHide() {},\n onMount: function onMount() {},\n onShow: function onShow() {},\n onShown: function onShown() {},\n onTrigger: function onTrigger() {},\n placement: 'top',\n popperOptions: {},\n role: 'tooltip',\n showOnInit: false,\n size: 'regular',\n sticky: false,\n target: '',\n theme: 'dark',\n touch: true,\n touchHold: false,\n trigger: 'mouseenter focus',\n triggerTarget: null,\n updateDuration: 0,\n wait: null,\n zIndex: 9999\n /**\n * If the set() method encounters one of these, the popperInstance must be\n * recreated\n */\n\n};\nvar POPPER_INSTANCE_DEPENDENCIES = ['arrow', 'arrowType', 'boundary', 'distance', 'flip', 'flipBehavior', 'flipOnUpdate', 'offset', 'placement', 'popperOptions'];\n\nvar elementProto = isBrowser$1 ? Element.prototype : {};\nvar matches = elementProto.matches || elementProto.matchesSelector || elementProto.webkitMatchesSelector || elementProto.mozMatchesSelector || elementProto.msMatchesSelector;\n/**\n * Ponyfill for Array.from - converts iterable values to an array\n */\n\nfunction arrayFrom(value) {\n return [].slice.call(value);\n}\n/**\n * Ponyfill for Element.prototype.closest\n */\n\nfunction closest(element, selector) {\n return closestCallback(element, function (el) {\n return matches.call(el, selector);\n });\n}\n/**\n * Works like Element.prototype.closest, but uses a callback instead\n */\n\nfunction closestCallback(element, callback) {\n while (element) {\n if (callback(element)) {\n return element;\n }\n\n element = element.parentElement;\n }\n\n return null;\n}\n\n// Passive event listener config\nvar PASSIVE = {\n passive: true // Popper `preventOverflow` padding\n\n};\nvar PADDING = 4; // Popper attributes\n// In Popper v2 these will be `data-*` instead of `x-*` to adhere to HTML5 spec\n\nvar PLACEMENT_ATTRIBUTE = 'x-placement';\nvar OUT_OF_BOUNDARIES_ATTRIBUTE = 'x-out-of-boundaries'; // Classes\n\nvar IOS_CLASS = \"tippy-iOS\";\nvar ACTIVE_CLASS = \"tippy-active\";\nvar POPPER_CLASS = \"tippy-popper\";\nvar TOOLTIP_CLASS = \"tippy-tooltip\";\nvar CONTENT_CLASS = \"tippy-content\";\nvar BACKDROP_CLASS = \"tippy-backdrop\";\nvar ARROW_CLASS = \"tippy-arrow\";\nvar ROUND_ARROW_CLASS = \"tippy-roundarrow\"; // Selectors\n\nvar POPPER_SELECTOR = \".\".concat(POPPER_CLASS);\nvar TOOLTIP_SELECTOR = \".\".concat(TOOLTIP_CLASS);\nvar CONTENT_SELECTOR = \".\".concat(CONTENT_CLASS);\nvar BACKDROP_SELECTOR = \".\".concat(BACKDROP_CLASS);\nvar ARROW_SELECTOR = \".\".concat(ARROW_CLASS);\nvar ROUND_ARROW_SELECTOR = \".\".concat(ROUND_ARROW_CLASS);\n\nvar isUsingTouch = false;\nfunction onDocumentTouch() {\n if (isUsingTouch) {\n return;\n }\n\n isUsingTouch = true;\n\n if (isIOS) {\n document.body.classList.add(IOS_CLASS);\n }\n\n if (window.performance) {\n document.addEventListener('mousemove', onDocumentMouseMove);\n }\n}\nvar lastMouseMoveTime = 0;\nfunction onDocumentMouseMove() {\n var now = performance.now(); // Chrome 60+ is 1 mousemove per animation frame, use 20ms time difference\n\n if (now - lastMouseMoveTime < 20) {\n isUsingTouch = false;\n document.removeEventListener('mousemove', onDocumentMouseMove);\n\n if (!isIOS) {\n document.body.classList.remove(IOS_CLASS);\n }\n }\n\n lastMouseMoveTime = now;\n}\nfunction onWindowBlur() {\n var _document = document,\n activeElement = _document.activeElement;\n\n if (activeElement && activeElement.blur && activeElement._tippy) {\n activeElement.blur();\n }\n}\n/**\n * Adds the needed global event listeners\n */\n\nfunction bindGlobalEventListeners() {\n document.addEventListener('touchstart', onDocumentTouch, PASSIVE);\n window.addEventListener('blur', onWindowBlur);\n}\n\nvar keys = Object.keys(defaultProps);\n/**\n * Returns an object of optional props from data-tippy-* attributes\n */\n\nfunction getDataAttributeOptions(reference) {\n return keys.reduce(function (acc, key) {\n var valueAsString = (reference.getAttribute(\"data-tippy-\".concat(key)) || '').trim();\n\n if (!valueAsString) {\n return acc;\n }\n\n if (key === 'content') {\n acc[key] = valueAsString;\n } else {\n try {\n acc[key] = JSON.parse(valueAsString);\n } catch (e) {\n acc[key] = valueAsString;\n }\n }\n\n return acc;\n }, {});\n}\n/**\n * Polyfills the virtual reference (plain object) with Element.prototype props\n * Mutating because DOM elements are mutated, adds `_tippy` property\n */\n\nfunction polyfillElementPrototypeProperties(virtualReference) {\n var polyfills = {\n isVirtual: true,\n attributes: virtualReference.attributes || {},\n contains: function contains() {},\n setAttribute: function setAttribute(key, value) {\n virtualReference.attributes[key] = value;\n },\n getAttribute: function getAttribute(key) {\n return virtualReference.attributes[key];\n },\n removeAttribute: function removeAttribute(key) {\n delete virtualReference.attributes[key];\n },\n hasAttribute: function hasAttribute(key) {\n return key in virtualReference.attributes;\n },\n addEventListener: function addEventListener() {},\n removeEventListener: function removeEventListener() {},\n classList: {\n classNames: {},\n add: function add(key) {\n virtualReference.classList.classNames[key] = true;\n },\n remove: function remove(key) {\n delete virtualReference.classList.classNames[key];\n },\n contains: function contains(key) {\n return key in virtualReference.classList.classNames;\n }\n }\n };\n\n for (var key in polyfills) {\n virtualReference[key] = polyfills[key];\n }\n}\n\n/**\n * Determines if a value is a \"bare\" virtual element (before mutations done\n * by `polyfillElementPrototypeProperties()`). JSDOM elements show up as\n * [object Object], we can check if the value is \"element-like\" if it has\n * `addEventListener`\n */\n\nfunction isBareVirtualElement(value) {\n return {}.toString.call(value) === '[object Object]' && !value.addEventListener;\n}\n/**\n * Determines if the value is a reference element\n */\n\nfunction isReferenceElement(value) {\n return !!value._tippy && !matches.call(value, POPPER_SELECTOR);\n}\n/**\n * Safe .hasOwnProperty check, for prototype-less objects\n */\n\nfunction hasOwnProperty(obj, key) {\n return {}.hasOwnProperty.call(obj, key);\n}\n/**\n * Returns an array of elements based on the value\n */\n\nfunction getArrayOfElements(value) {\n if (isSingular(value)) {\n // TODO: VirtualReference is not compatible to type Element\n return [value];\n }\n\n if (value instanceof NodeList) {\n return arrayFrom(value);\n }\n\n if (Array.isArray(value)) {\n return value;\n }\n\n try {\n return arrayFrom(document.querySelectorAll(value));\n } catch (e) {\n return [];\n }\n}\n/**\n * Returns a value at a given index depending on if it's an array or number\n */\n\nfunction getValue(value, index, defaultValue) {\n if (Array.isArray(value)) {\n var v = value[index];\n return v == null ? defaultValue : v;\n }\n\n return value;\n}\n/**\n * Debounce utility. To avoid bloating bundle size, we're only passing 1\n * argument here, a more generic function would pass all arguments. Only\n * `onMouseMove` uses this which takes the event object for now.\n */\n\nfunction debounce$1(fn, ms) {\n // Avoid wrapping in `setTimeout` if ms is 0 anyway\n if (ms === 0) {\n return fn;\n }\n\n var timeout;\n return function (arg) {\n clearTimeout(timeout);\n timeout = setTimeout(function () {\n fn(arg);\n }, ms);\n };\n}\n/**\n * Prevents errors from being thrown while accessing nested modifier objects\n * in `popperOptions`\n */\n\nfunction getModifier(obj, key) {\n return obj && obj.modifiers && obj.modifiers[key];\n}\n/**\n * Determines if an array or string includes a value\n */\n\nfunction includes(a, b) {\n return a.indexOf(b) > -1;\n}\n/**\n * Determines if the value is a real element\n */\n\nfunction isRealElement(value) {\n return value instanceof Element;\n}\n/**\n * Determines if the value is singular-like\n */\n\nfunction isSingular(value) {\n return !!(value && hasOwnProperty(value, 'isVirtual')) || isRealElement(value);\n}\n/**\n * Firefox extensions don't allow setting .innerHTML directly, this will trick it\n */\n\nfunction innerHTML() {\n return 'innerHTML';\n}\n/**\n * Evaluates a function if one, or returns the value\n */\n\nfunction invokeWithArgsOrReturn(value, args) {\n return typeof value === 'function' ? value.apply(null, args) : value;\n}\n/**\n * Sets a popperInstance `flip` modifier's enabled state\n */\n\nfunction setFlipModifierEnabled(modifiers, value) {\n modifiers.filter(function (m) {\n return m.name === 'flip';\n })[0].enabled = value;\n}\n/**\n * Determines if an element can receive focus\n * Always returns true for virtual objects\n */\n\nfunction canReceiveFocus(element) {\n return isRealElement(element) ? matches.call(element, 'a[href],area[href],button,details,input,textarea,select,iframe,[tabindex]') && !element.hasAttribute('disabled') : true;\n}\n/**\n * Returns a new `div` element\n */\n\nfunction div() {\n return document.createElement('div');\n}\n/**\n * Applies a transition duration to a list of elements\n */\n\nfunction setTransitionDuration(els, value) {\n els.forEach(function (el) {\n if (el) {\n el.style.transitionDuration = \"\".concat(value, \"ms\");\n }\n });\n}\n/**\n * Sets the visibility state to elements so they can begin to transition\n */\n\nfunction setVisibilityState(els, state) {\n els.forEach(function (el) {\n if (el) {\n el.setAttribute('data-state', state);\n }\n });\n}\n/**\n * Evaluates the props object by merging data attributes and\n * disabling conflicting options where necessary\n */\n\nfunction evaluateProps(reference, props) {\n var out = _extends$1({}, props, {\n content: invokeWithArgsOrReturn(props.content, [reference])\n }, props.ignoreAttributes ? {} : getDataAttributeOptions(reference));\n\n if (out.arrow || isUCBrowser) {\n out.animateFill = false;\n }\n\n return out;\n}\n/**\n * Validates an object of options with the valid default props object\n */\n\nfunction validateOptions(options, defaultProps) {\n Object.keys(options).forEach(function (option) {\n if (!hasOwnProperty(defaultProps, option)) {\n throw new Error(\"[tippy]: `\".concat(option, \"` is not a valid option\"));\n }\n });\n}\n\n/**\n * Sets the innerHTML of an element\n */\n\nfunction setInnerHTML(element, html) {\n element[innerHTML()] = isRealElement(html) ? html[innerHTML()] : html;\n}\n/**\n * Sets the content of a tooltip\n */\n\nfunction setContent(contentEl, props) {\n if (isRealElement(props.content)) {\n setInnerHTML(contentEl, '');\n contentEl.appendChild(props.content);\n } else if (typeof props.content !== 'function') {\n var key = props.allowHTML ? 'innerHTML' : 'textContent';\n contentEl[key] = props.content;\n }\n}\n/**\n * Returns the child elements of a popper element\n */\n\nfunction getChildren(popper) {\n return {\n tooltip: popper.querySelector(TOOLTIP_SELECTOR),\n backdrop: popper.querySelector(BACKDROP_SELECTOR),\n content: popper.querySelector(CONTENT_SELECTOR),\n arrow: popper.querySelector(ARROW_SELECTOR) || popper.querySelector(ROUND_ARROW_SELECTOR)\n };\n}\n/**\n * Adds `data-inertia` attribute\n */\n\nfunction addInertia(tooltip) {\n tooltip.setAttribute('data-inertia', '');\n}\n/**\n * Removes `data-inertia` attribute\n */\n\nfunction removeInertia(tooltip) {\n tooltip.removeAttribute('data-inertia');\n}\n/**\n * Creates an arrow element and returns it\n */\n\nfunction createArrowElement(arrowType) {\n var arrow = div();\n\n if (arrowType === 'round') {\n arrow.className = ROUND_ARROW_CLASS;\n setInnerHTML(arrow, '<svg viewBox=\"0 0 18 7\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M0 7s2.021-.015 5.253-4.218C6.584 1.051 7.797.007 9 0c1.203-.007 2.416 1.035 3.761 2.782C16.012 7.005 18 7 18 7H0z\"/></svg>');\n } else {\n arrow.className = ARROW_CLASS;\n }\n\n return arrow;\n}\n/**\n * Creates a backdrop element and returns it\n */\n\nfunction createBackdropElement() {\n var backdrop = div();\n backdrop.className = BACKDROP_CLASS;\n backdrop.setAttribute('data-state', 'hidden');\n return backdrop;\n}\n/**\n * Adds interactive-related attributes\n */\n\nfunction addInteractive(popper, tooltip) {\n popper.setAttribute('tabindex', '-1');\n tooltip.setAttribute('data-interactive', '');\n}\n/**\n * Removes interactive-related attributes\n */\n\nfunction removeInteractive(popper, tooltip) {\n popper.removeAttribute('tabindex');\n tooltip.removeAttribute('data-interactive');\n}\n/**\n * Add/remove transitionend listener from tooltip\n */\n\nfunction updateTransitionEndListener(tooltip, action, listener) {\n // UC Browser hasn't adopted the `transitionend` event despite supporting\n // unprefixed transitions...\n var eventName = isUCBrowser && document.body.style.webkitTransition !== undefined ? 'webkitTransitionEnd' : 'transitionend';\n tooltip[action + 'EventListener'](eventName, listener);\n}\n/**\n * Returns the popper's placement, ignoring shifting (top-start, etc)\n */\n\nfunction getBasicPlacement(popper) {\n var fullPlacement = popper.getAttribute(PLACEMENT_ATTRIBUTE);\n return fullPlacement ? fullPlacement.split('-')[0] : '';\n}\n/**\n * Triggers reflow\n */\n\nfunction reflow(popper) {\n void popper.offsetHeight;\n}\n/**\n * Adds/removes theme from tooltip's classList\n */\n\nfunction updateTheme(tooltip, action, theme) {\n theme.split(' ').forEach(function (themeName) {\n tooltip.classList[action](themeName + '-theme');\n });\n}\n/**\n * Constructs the popper element and returns it\n */\n\nfunction createPopperElement(id, props) {\n var popper = div();\n popper.className = POPPER_CLASS;\n popper.id = \"tippy-\".concat(id);\n popper.style.zIndex = '' + props.zIndex;\n popper.style.position = 'absolute';\n popper.style.top = '0';\n popper.style.left = '0';\n\n if (props.role) {\n popper.setAttribute('role', props.role);\n }\n\n var tooltip = div();\n tooltip.className = TOOLTIP_CLASS;\n tooltip.style.maxWidth = props.maxWidth + (typeof props.maxWidth === 'number' ? 'px' : '');\n tooltip.setAttribute('data-size', props.size);\n tooltip.setAttribute('data-animation', props.animation);\n tooltip.setAttribute('data-state', 'hidden');\n updateTheme(tooltip, 'add', props.theme);\n var content = div();\n content.className = CONTENT_CLASS;\n content.setAttribute('data-state', 'hidden');\n\n if (props.interactive) {\n addInteractive(popper, tooltip);\n }\n\n if (props.arrow) {\n tooltip.appendChild(createArrowElement(props.arrowType));\n }\n\n if (props.animateFill) {\n tooltip.appendChild(createBackdropElement());\n tooltip.setAttribute('data-animatefill', '');\n }\n\n if (props.inertia) {\n addInertia(tooltip);\n }\n\n setContent(content, props);\n tooltip.appendChild(content);\n popper.appendChild(tooltip);\n return popper;\n}\n/**\n * Updates the popper element based on the new props\n */\n\nfunction updatePopperElement(popper, prevProps, nextProps) {\n var _getChildren = getChildren(popper),\n tooltip = _getChildren.tooltip,\n content = _getChildren.content,\n backdrop = _getChildren.backdrop,\n arrow = _getChildren.arrow;\n\n popper.style.zIndex = '' + nextProps.zIndex;\n tooltip.setAttribute('data-size', nextProps.size);\n tooltip.setAttribute('data-animation', nextProps.animation);\n tooltip.style.maxWidth = nextProps.maxWidth + (typeof nextProps.maxWidth === 'number' ? 'px' : '');\n\n if (nextProps.role) {\n popper.setAttribute('role', nextProps.role);\n } else {\n popper.removeAttribute('role');\n }\n\n if (prevProps.content !== nextProps.content) {\n setContent(content, nextProps);\n } // animateFill\n\n\n if (!prevProps.animateFill && nextProps.animateFill) {\n tooltip.appendChild(createBackdropElement());\n tooltip.setAttribute('data-animatefill', '');\n } else if (prevProps.animateFill && !nextProps.animateFill) {\n tooltip.removeChild(backdrop);\n tooltip.removeAttribute('data-animatefill');\n } // arrow\n\n\n if (!prevProps.arrow && nextProps.arrow) {\n tooltip.appendChild(createArrowElement(nextProps.arrowType));\n } else if (prevProps.arrow && !nextProps.arrow) {\n tooltip.removeChild(arrow);\n } // arrowType\n\n\n if (prevProps.arrow && nextProps.arrow && prevProps.arrowType !== nextProps.arrowType) {\n tooltip.replaceChild(createArrowElement(nextProps.arrowType), arrow);\n } // interactive\n\n\n if (!prevProps.interactive && nextProps.interactive) {\n addInteractive(popper, tooltip);\n } else if (prevProps.interactive && !nextProps.interactive) {\n removeInteractive(popper, tooltip);\n } // inertia\n\n\n if (!prevProps.inertia && nextProps.inertia) {\n addInertia(tooltip);\n } else if (prevProps.inertia && !nextProps.inertia) {\n removeInertia(tooltip);\n } // theme\n\n\n if (prevProps.theme !== nextProps.theme) {\n updateTheme(tooltip, 'remove', prevProps.theme);\n updateTheme(tooltip, 'add', nextProps.theme);\n }\n}\n/**\n * Hides all visible poppers on the document\n */\n\nfunction hideAll() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n excludedReferenceOrInstance = _ref.exclude,\n duration = _ref.duration;\n\n arrayFrom(document.querySelectorAll(POPPER_SELECTOR)).forEach(function (popper) {\n var instance = popper._tippy;\n\n if (instance) {\n var isExcluded = false;\n\n if (excludedReferenceOrInstance) {\n isExcluded = isReferenceElement(excludedReferenceOrInstance) ? instance.reference === excludedReferenceOrInstance : popper === excludedReferenceOrInstance.popper;\n }\n\n if (!isExcluded) {\n instance.hide(duration);\n }\n }\n });\n}\n/**\n * Determines if the mouse cursor is outside of the popper's interactive border\n * region\n */\n\nfunction isCursorOutsideInteractiveBorder(popperPlacement, popperRect, event, props) {\n if (!popperPlacement) {\n return true;\n }\n\n var x = event.clientX,\n y = event.clientY;\n var interactiveBorder = props.interactiveBorder,\n distance = props.distance;\n var exceedsTop = popperRect.top - y > (popperPlacement === 'top' ? interactiveBorder + distance : interactiveBorder);\n var exceedsBottom = y - popperRect.bottom > (popperPlacement === 'bottom' ? interactiveBorder + distance : interactiveBorder);\n var exceedsLeft = popperRect.left - x > (popperPlacement === 'left' ? interactiveBorder + distance : interactiveBorder);\n var exceedsRight = x - popperRect.right > (popperPlacement === 'right' ? interactiveBorder + distance : interactiveBorder);\n return exceedsTop || exceedsBottom || exceedsLeft || exceedsRight;\n}\n/**\n * Returns the distance offset, taking into account the default offset due to\n * the transform: translate() rule (10px) in CSS\n */\n\nfunction getOffsetDistanceInPx(distance) {\n return -(distance - 10) + 'px';\n}\n\nvar idCounter = 1; // Workaround for IE11's lack of new MouseEvent constructor\n\nvar mouseMoveListeners = [];\n/**\n * Creates and returns a Tippy object. We're using a closure pattern instead of\n * a class so that the exposed object API is clean without private members\n * prefixed with `_`.\n */\n\nfunction createTippy(reference, collectionProps) {\n var props = evaluateProps(reference, collectionProps); // If the reference shouldn't have multiple tippys, return null early\n\n if (!props.multiple && reference._tippy) {\n return null;\n }\n /* ======================= 🔒 Private members 🔒 ======================= */\n\n\n var lastTriggerEventType;\n var lastMouseMoveEvent;\n var showTimeoutId;\n var hideTimeoutId;\n var scheduleHideAnimationFrameId;\n var isScheduledToShow = false;\n var isBeingDestroyed = false;\n var previousPlacement;\n var wasVisibleDuringPreviousUpdate = false;\n var hasMountCallbackRun = false;\n var currentMountCallback;\n var currentTransitionEndListener;\n var listeners = [];\n var currentComputedPadding;\n var debouncedOnMouseMove = debounce$1(onMouseMove, props.interactiveDebounce);\n /* ======================= 🔑 Public members 🔑 ======================= */\n\n var id = idCounter++;\n var popper = createPopperElement(id, props);\n var popperChildren = getChildren(popper);\n var popperInstance = null;\n var state = {\n // Is the instance currently enabled?\n isEnabled: true,\n // Is the tippy currently showing and not transitioning out?\n isVisible: false,\n // Has the instance been destroyed?\n isDestroyed: false,\n // Is the tippy currently mounted to the DOM?\n isMounted: false,\n // Has the tippy finished transitioning in?\n isShown: false\n };\n var instance = {\n // properties\n id: id,\n reference: reference,\n popper: popper,\n popperChildren: popperChildren,\n popperInstance: popperInstance,\n props: props,\n state: state,\n // methods\n clearDelayTimeouts: clearDelayTimeouts,\n set: set,\n setContent: setContent,\n show: show,\n hide: hide,\n enable: enable,\n disable: disable,\n destroy: destroy\n /* ==================== Initial instance mutations =================== */\n\n };\n reference._tippy = instance;\n popper._tippy = instance;\n addTriggersToReference();\n\n if (!props.lazy) {\n createPopperInstance();\n }\n\n if (props.showOnInit) {\n scheduleShow();\n } // Ensure the event listeners target can receive focus\n\n\n if (props.a11y && !props.target && !canReceiveFocus(getEventListenersTarget())) {\n getEventListenersTarget().setAttribute('tabindex', '0');\n } // Prevent a tippy with a delay from hiding if the cursor left then returned\n // before it started hiding\n\n\n popper.addEventListener('mouseenter', function (event) {\n if (instance.props.interactive && instance.state.isVisible && lastTriggerEventType === 'mouseenter') {\n // We don't want props.onTrigger() to be called here, since the `event`\n // object is not related to the reference element\n scheduleShow(event, true);\n }\n });\n popper.addEventListener('mouseleave', function () {\n if (instance.props.interactive && lastTriggerEventType === 'mouseenter') {\n document.addEventListener('mousemove', debouncedOnMouseMove);\n }\n });\n return instance;\n /* ======================= 🔒 Private methods 🔒 ======================= */\n\n /**\n * Removes the follow cursor listener\n */\n\n function removeFollowCursorListener() {\n document.removeEventListener('mousemove', positionVirtualReferenceNearCursor);\n }\n /**\n * Cleans up interactive mouse listeners\n */\n\n\n function cleanupInteractiveMouseListeners() {\n document.body.removeEventListener('mouseleave', scheduleHide);\n document.removeEventListener('mousemove', debouncedOnMouseMove);\n mouseMoveListeners = mouseMoveListeners.filter(function (listener) {\n return listener !== debouncedOnMouseMove;\n });\n }\n /**\n * Returns correct target used for event listeners\n */\n\n\n function getEventListenersTarget() {\n return instance.props.triggerTarget || reference;\n }\n /**\n * Adds the document click event listener for the instance\n */\n\n\n function addDocumentClickListener() {\n document.addEventListener('click', onDocumentClick, true);\n }\n /**\n * Removes the document click event listener for the instance\n */\n\n\n function removeDocumentClickListener() {\n document.removeEventListener('click', onDocumentClick, true);\n }\n /**\n * Returns transitionable inner elements used in show/hide methods\n */\n\n\n function getTransitionableElements() {\n return [instance.popperChildren.tooltip, instance.popperChildren.backdrop, instance.popperChildren.content];\n }\n /**\n * Determines if the instance is in `followCursor` mode.\n * NOTE: in v5, touch devices will use `initial` behavior no matter the value.\n */\n\n\n function getIsInLooseFollowCursorMode() {\n var followCursor = instance.props.followCursor;\n return followCursor && lastTriggerEventType !== 'focus' || isUsingTouch && followCursor === 'initial';\n }\n /**\n * Updates the tooltip's position on each animation frame\n */\n\n\n function makeSticky() {\n setTransitionDuration([popper], isIE$1 ? 0 : instance.props.updateDuration);\n var prevRefRect = reference.getBoundingClientRect();\n\n function updatePosition() {\n var currentRefRect = reference.getBoundingClientRect(); // Only schedule an update if the reference rect has changed\n\n if (prevRefRect.top !== currentRefRect.top || prevRefRect.right !== currentRefRect.right || prevRefRect.bottom !== currentRefRect.bottom || prevRefRect.left !== currentRefRect.left) {\n instance.popperInstance.scheduleUpdate();\n }\n\n prevRefRect = currentRefRect;\n\n if (instance.state.isMounted) {\n requestAnimationFrame(updatePosition);\n }\n }\n\n updatePosition();\n }\n /**\n * Invokes a callback once the tooltip has fully transitioned out\n */\n\n\n function onTransitionedOut(duration, callback) {\n onTransitionEnd(duration, function () {\n if (!instance.state.isVisible && popper.parentNode && popper.parentNode.contains(popper)) {\n callback();\n }\n });\n }\n /**\n * Invokes a callback once the tooltip has fully transitioned in\n */\n\n\n function onTransitionedIn(duration, callback) {\n onTransitionEnd(duration, callback);\n }\n /**\n * Invokes a callback once the tooltip's CSS transition ends\n */\n\n\n function onTransitionEnd(duration, callback) {\n var tooltip = instance.popperChildren.tooltip;\n /**\n * Listener added as the `transitionend` handler\n */\n\n function listener(event) {\n if (event.target === tooltip) {\n updateTransitionEndListener(tooltip, 'remove', listener);\n callback();\n }\n } // Make callback synchronous if duration is 0\n // `transitionend` won't fire otherwise\n\n\n if (duration === 0) {\n return callback();\n }\n\n updateTransitionEndListener(tooltip, 'remove', currentTransitionEndListener);\n updateTransitionEndListener(tooltip, 'add', listener);\n currentTransitionEndListener = listener;\n }\n /**\n * Adds an event listener to the reference and stores it in `listeners`\n */\n\n\n function on(eventType, handler) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n getEventListenersTarget().addEventListener(eventType, handler, options);\n listeners.push({\n eventType: eventType,\n handler: handler,\n options: options\n });\n }\n /**\n * Adds event listeners to the reference based on the `trigger` prop\n */\n\n\n function addTriggersToReference() {\n if (instance.props.touchHold && !instance.props.target) {\n on('touchstart', onTrigger, PASSIVE);\n on('touchend', onMouseLeave, PASSIVE);\n }\n\n instance.props.trigger.trim().split(' ').forEach(function (eventType) {\n if (eventType === 'manual') {\n return;\n } // Non-delegates\n\n\n if (!instance.props.target) {\n on(eventType, onTrigger);\n\n switch (eventType) {\n case 'mouseenter':\n on('mouseleave', onMouseLeave);\n break;\n\n case 'focus':\n on(isIE$1 ? 'focusout' : 'blur', onBlur);\n break;\n }\n } else {\n // Delegates\n switch (eventType) {\n case 'mouseenter':\n on('mouseover', onDelegateShow);\n on('mouseout', onDelegateHide);\n break;\n\n case 'focus':\n on('focusin', onDelegateShow);\n on('focusout', onDelegateHide);\n break;\n\n case 'click':\n on(eventType, onDelegateShow);\n break;\n }\n }\n });\n }\n /**\n * Removes event listeners from the reference\n */\n\n\n function removeTriggersFromReference() {\n listeners.forEach(function (_ref) {\n var eventType = _ref.eventType,\n handler = _ref.handler,\n options = _ref.options;\n getEventListenersTarget().removeEventListener(eventType, handler, options);\n });\n listeners = [];\n }\n /**\n * Positions the virtual reference near the cursor\n */\n\n\n function positionVirtualReferenceNearCursor(event) {\n var _lastMouseMoveEvent = lastMouseMoveEvent = event,\n x = _lastMouseMoveEvent.clientX,\n y = _lastMouseMoveEvent.clientY; // Gets set once popperInstance `onCreate` has been called\n\n\n if (!currentComputedPadding) {\n return;\n } // If the instance is interactive, avoid updating the position unless it's\n // over the reference element\n\n\n var isCursorOverReference = closestCallback(event.target, function (el) {\n return el === reference;\n });\n var rect = reference.getBoundingClientRect();\n var followCursor = instance.props.followCursor;\n var isHorizontal = followCursor === 'horizontal';\n var isVertical = followCursor === 'vertical'; // The virtual reference needs some size to prevent itself from overflowing\n\n var isVerticalPlacement = includes(['top', 'bottom'], getBasicPlacement(popper));\n var fullPlacement = popper.getAttribute(PLACEMENT_ATTRIBUTE);\n var isVariation = fullPlacement ? !!fullPlacement.split('-')[1] : false;\n var size = isVerticalPlacement ? popper.offsetWidth : popper.offsetHeight;\n var halfSize = size / 2;\n var verticalIncrease = isVerticalPlacement ? 0 : isVariation ? size : halfSize;\n var horizontalIncrease = isVerticalPlacement ? isVariation ? size : halfSize : 0;\n\n if (isCursorOverReference || !instance.props.interactive) {\n instance.popperInstance.reference = _extends$1({}, instance.popperInstance.reference, {\n // This will exist in next Popper.js feature release to fix #532\n // @ts-ignore\n referenceNode: reference,\n // These `client` values don't get used by Popper.js if they are 0\n clientWidth: 0,\n clientHeight: 0,\n getBoundingClientRect: function getBoundingClientRect() {\n return {\n width: isVerticalPlacement ? size : 0,\n height: isVerticalPlacement ? 0 : size,\n top: (isHorizontal ? rect.top : y) - verticalIncrease,\n bottom: (isHorizontal ? rect.bottom : y) + verticalIncrease,\n left: (isVertical ? rect.left : x) - horizontalIncrease,\n right: (isVertical ? rect.right : x) + horizontalIncrease\n };\n }\n });\n instance.popperInstance.update();\n }\n\n if (followCursor === 'initial' && instance.state.isVisible) {\n removeFollowCursorListener();\n }\n }\n /**\n * Creates the tippy instance for a delegate when it's been triggered\n */\n\n\n function createDelegateChildTippy(event) {\n if (event) {\n var targetEl = closest(event.target, instance.props.target);\n\n if (targetEl && !targetEl._tippy) {\n createTippy(targetEl, _extends$1({}, instance.props, {\n content: invokeWithArgsOrReturn(collectionProps.content, [targetEl]),\n appendTo: collectionProps.appendTo,\n target: '',\n showOnInit: true\n }));\n }\n }\n }\n /**\n * Event listener invoked upon trigger\n */\n\n\n function onTrigger(event) {\n if (!instance.state.isEnabled || isEventListenerStopped(event)) {\n return;\n }\n\n if (!instance.state.isVisible) {\n lastTriggerEventType = event.type;\n\n if (event instanceof MouseEvent) {\n lastMouseMoveEvent = event; // If scrolling, `mouseenter` events can be fired if the cursor lands\n // over a new target, but `mousemove` events don't get fired. This\n // causes interactive tooltips to get stuck open until the cursor is\n // moved\n\n mouseMoveListeners.forEach(function (listener) {\n return listener(event);\n });\n }\n } // Toggle show/hide when clicking click-triggered tooltips\n\n\n if (event.type === 'click' && instance.props.hideOnClick !== false && instance.state.isVisible) {\n scheduleHide();\n } else {\n scheduleShow(event);\n }\n }\n /**\n * Event listener used for interactive tooltips to detect when they should\n * hide\n */\n\n\n function onMouseMove(event) {\n var isCursorOverPopper = closest(event.target, POPPER_SELECTOR) === popper;\n var isCursorOverReference = closestCallback(event.target, function (el) {\n return el === reference;\n });\n\n if (isCursorOverPopper || isCursorOverReference) {\n return;\n }\n\n if (isCursorOutsideInteractiveBorder(getBasicPlacement(popper), popper.getBoundingClientRect(), event, instance.props)) {\n cleanupInteractiveMouseListeners();\n scheduleHide();\n }\n }\n /**\n * Event listener invoked upon mouseleave\n */\n\n\n function onMouseLeave(event) {\n if (isEventListenerStopped(event)) {\n return;\n }\n\n if (instance.props.interactive) {\n document.body.addEventListener('mouseleave', scheduleHide);\n document.addEventListener('mousemove', debouncedOnMouseMove);\n mouseMoveListeners.push(debouncedOnMouseMove);\n return;\n }\n\n scheduleHide();\n }\n /**\n * Event listener invoked upon blur\n */\n\n\n function onBlur(event) {\n if (event.target !== getEventListenersTarget()) {\n return;\n }\n\n if (instance.props.interactive && event.relatedTarget && popper.contains(event.relatedTarget)) {\n return;\n }\n\n scheduleHide();\n }\n /**\n * Event listener invoked when a child target is triggered\n */\n\n\n function onDelegateShow(event) {\n if (closest(event.target, instance.props.target)) {\n scheduleShow(event);\n }\n }\n /**\n * Event listener invoked when a child target should hide\n */\n\n\n function onDelegateHide(event) {\n if (closest(event.target, instance.props.target)) {\n scheduleHide();\n }\n }\n /**\n * Determines if an event listener should stop further execution due to the\n * `touchHold` option\n */\n\n\n function isEventListenerStopped(event) {\n var supportsTouch = 'ontouchstart' in window;\n var isTouchEvent = includes(event.type, 'touch');\n var touchHold = instance.props.touchHold;\n return supportsTouch && isUsingTouch && touchHold && !isTouchEvent || isUsingTouch && !touchHold && isTouchEvent;\n }\n /**\n * Runs the mount callback\n */\n\n\n function runMountCallback() {\n if (!hasMountCallbackRun && currentMountCallback) {\n hasMountCallbackRun = true;\n reflow(popper);\n currentMountCallback();\n }\n }\n /**\n * Creates the popper instance for the instance\n */\n\n\n function createPopperInstance() {\n var popperOptions = instance.props.popperOptions;\n var _instance$popperChild = instance.popperChildren,\n tooltip = _instance$popperChild.tooltip,\n arrow = _instance$popperChild.arrow;\n var preventOverflowModifier = getModifier(popperOptions, 'preventOverflow');\n\n function applyMutations(data) {\n if (instance.props.flip && !instance.props.flipOnUpdate) {\n if (data.flipped) {\n instance.popperInstance.options.placement = data.placement;\n }\n\n setFlipModifierEnabled(instance.popperInstance.modifiers, false);\n } // Apply all of the popper's attributes to the tootip node as well.\n // Allows users to avoid using the .tippy-popper selector for themes.\n\n\n tooltip.setAttribute(PLACEMENT_ATTRIBUTE, data.placement);\n\n if (data.attributes[OUT_OF_BOUNDARIES_ATTRIBUTE] !== false) {\n tooltip.setAttribute(OUT_OF_BOUNDARIES_ATTRIBUTE, '');\n } else {\n tooltip.removeAttribute(OUT_OF_BOUNDARIES_ATTRIBUTE);\n } // Prevents a transition when changing placements (while tippy is visible)\n // for scroll/resize updates\n\n\n if (previousPlacement && previousPlacement !== data.placement && wasVisibleDuringPreviousUpdate) {\n tooltip.style.transition = 'none';\n requestAnimationFrame(function () {\n tooltip.style.transition = '';\n });\n }\n\n previousPlacement = data.placement;\n wasVisibleDuringPreviousUpdate = instance.state.isVisible;\n var basicPlacement = getBasicPlacement(popper);\n var styles = tooltip.style; // Account for the `distance` offset\n\n styles.top = styles.bottom = styles.left = styles.right = '';\n styles[basicPlacement] = getOffsetDistanceInPx(instance.props.distance);\n var padding = preventOverflowModifier && preventOverflowModifier.padding !== undefined ? preventOverflowModifier.padding : PADDING;\n var isPaddingNumber = typeof padding === 'number';\n\n var computedPadding = _extends$1({\n top: isPaddingNumber ? padding : padding.top,\n bottom: isPaddingNumber ? padding : padding.bottom,\n left: isPaddingNumber ? padding : padding.left,\n right: isPaddingNumber ? padding : padding.right\n }, !isPaddingNumber && padding);\n\n computedPadding[basicPlacement] = isPaddingNumber ? padding + instance.props.distance : (padding[basicPlacement] || 0) + instance.props.distance;\n instance.popperInstance.modifiers.filter(function (m) {\n return m.name === 'preventOverflow';\n })[0].padding = computedPadding;\n currentComputedPadding = computedPadding;\n }\n\n var config = _extends$1({\n eventsEnabled: false,\n placement: instance.props.placement\n }, popperOptions, {\n modifiers: _extends$1({}, popperOptions ? popperOptions.modifiers : {}, {\n preventOverflow: _extends$1({\n boundariesElement: instance.props.boundary,\n padding: PADDING\n }, preventOverflowModifier),\n arrow: _extends$1({\n element: arrow,\n enabled: !!arrow\n }, getModifier(popperOptions, 'arrow')),\n flip: _extends$1({\n enabled: instance.props.flip,\n // The tooltip is offset by 10px from the popper in CSS,\n // we need to account for its distance\n padding: instance.props.distance + PADDING,\n behavior: instance.props.flipBehavior\n }, getModifier(popperOptions, 'flip')),\n offset: _extends$1({\n offset: instance.props.offset\n }, getModifier(popperOptions, 'offset'))\n }),\n onCreate: function onCreate(data) {\n applyMutations(data);\n runMountCallback();\n\n if (popperOptions && popperOptions.onCreate) {\n popperOptions.onCreate(data);\n }\n },\n onUpdate: function onUpdate(data) {\n applyMutations(data);\n runMountCallback();\n\n if (popperOptions && popperOptions.onUpdate) {\n popperOptions.onUpdate(data);\n }\n }\n });\n\n instance.popperInstance = new Popper(reference, popper, config);\n }\n /**\n * Mounts the tooltip to the DOM\n */\n\n\n function mount() {\n hasMountCallbackRun = false;\n var isInLooseFollowCursorMode = getIsInLooseFollowCursorMode();\n\n if (instance.popperInstance) {\n setFlipModifierEnabled(instance.popperInstance.modifiers, instance.props.flip);\n\n if (!isInLooseFollowCursorMode) {\n instance.popperInstance.reference = reference;\n instance.popperInstance.enableEventListeners();\n }\n\n instance.popperInstance.scheduleUpdate();\n } else {\n createPopperInstance();\n\n if (!isInLooseFollowCursorMode) {\n instance.popperInstance.enableEventListeners();\n }\n }\n\n var appendTo = instance.props.appendTo;\n var parentNode = appendTo === 'parent' ? reference.parentNode : invokeWithArgsOrReturn(appendTo, [reference]);\n\n if (!parentNode.contains(popper)) {\n parentNode.appendChild(popper);\n instance.props.onMount(instance);\n instance.state.isMounted = true;\n }\n }\n /**\n * Setup before show() is invoked (delays, etc.)\n */\n\n\n function scheduleShow(event, shouldAvoidCallingOnTrigger) {\n clearDelayTimeouts();\n\n if (instance.state.isVisible) {\n return;\n } // Is a delegate, create an instance for the child target\n\n\n if (instance.props.target) {\n return createDelegateChildTippy(event);\n }\n\n isScheduledToShow = true;\n\n if (event && !shouldAvoidCallingOnTrigger) {\n instance.props.onTrigger(instance, event);\n }\n\n if (instance.props.wait) {\n return instance.props.wait(instance, event);\n } // If the tooltip has a delay, we need to be listening to the mousemove as\n // soon as the trigger event is fired, so that it's in the correct position\n // upon mount.\n // Edge case: if the tooltip is still mounted, but then scheduleShow() is\n // called, it causes a jump.\n\n\n if (getIsInLooseFollowCursorMode() && !instance.state.isMounted) {\n if (!instance.popperInstance) {\n createPopperInstance();\n }\n\n document.addEventListener('mousemove', positionVirtualReferenceNearCursor);\n }\n\n addDocumentClickListener();\n var delay = getValue(instance.props.delay, 0, defaultProps.delay);\n\n if (delay) {\n showTimeoutId = setTimeout(function () {\n show();\n }, delay);\n } else {\n show();\n }\n }\n /**\n * Setup before hide() is invoked (delays, etc.)\n */\n\n\n function scheduleHide() {\n clearDelayTimeouts();\n\n if (!instance.state.isVisible) {\n removeFollowCursorListener();\n removeDocumentClickListener();\n return;\n }\n\n isScheduledToShow = false;\n var delay = getValue(instance.props.delay, 1, defaultProps.delay);\n\n if (delay) {\n hideTimeoutId = setTimeout(function () {\n if (instance.state.isVisible) {\n hide();\n }\n }, delay);\n } else {\n // Fixes a `transitionend` problem when it fires 1 frame too\n // late sometimes, we don't want hide() to be called.\n scheduleHideAnimationFrameId = requestAnimationFrame(function () {\n hide();\n });\n }\n }\n /**\n * Listener to handle clicks on the document to determine if the\n * instance should hide\n */\n\n\n function onDocumentClick(event) {\n // Clicked on interactive popper\n if (instance.props.interactive && popper.contains(event.target)) {\n return;\n } // Clicked on the event listeners target\n\n\n if (getEventListenersTarget().contains(event.target)) {\n if (isUsingTouch) {\n return;\n }\n\n if (instance.state.isVisible && includes(instance.props.trigger, 'click')) {\n return;\n }\n }\n\n if (instance.props.hideOnClick === true) {\n clearDelayTimeouts();\n hide();\n }\n }\n /* ======================= 🔑 Public methods 🔑 ======================= */\n\n /**\n * Enables the instance to allow it to show or hide\n */\n\n\n function enable() {\n instance.state.isEnabled = true;\n }\n /**\n * Disables the instance to disallow it to show or hide\n */\n\n\n function disable() {\n instance.state.isEnabled = false;\n }\n /**\n * Clears pending timeouts related to the `delay` prop if any\n */\n\n\n function clearDelayTimeouts() {\n clearTimeout(showTimeoutId);\n clearTimeout(hideTimeoutId);\n cancelAnimationFrame(scheduleHideAnimationFrameId);\n }\n /**\n * Sets new props for the instance and redraws the tooltip\n */\n\n\n function set(options) {\n // Backwards-compatible after TypeScript change\n options = options || {};\n validateOptions(options, defaultProps);\n removeTriggersFromReference();\n var prevProps = instance.props;\n var nextProps = evaluateProps(reference, _extends$1({}, instance.props, {}, options, {\n ignoreAttributes: true\n }));\n nextProps.ignoreAttributes = hasOwnProperty(options, 'ignoreAttributes') ? options.ignoreAttributes || false : prevProps.ignoreAttributes;\n instance.props = nextProps;\n addTriggersToReference();\n cleanupInteractiveMouseListeners();\n debouncedOnMouseMove = debounce$1(onMouseMove, nextProps.interactiveDebounce);\n updatePopperElement(popper, prevProps, nextProps);\n instance.popperChildren = getChildren(popper);\n\n if (instance.popperInstance) {\n if (POPPER_INSTANCE_DEPENDENCIES.some(function (prop) {\n return hasOwnProperty(options, prop) && options[prop] !== prevProps[prop];\n })) {\n instance.popperInstance.destroy();\n createPopperInstance();\n\n if (instance.state.isVisible) {\n instance.popperInstance.enableEventListeners();\n }\n\n if (instance.props.followCursor && lastMouseMoveEvent) {\n positionVirtualReferenceNearCursor(lastMouseMoveEvent);\n }\n } else {\n instance.popperInstance.update();\n }\n }\n }\n /**\n * Shortcut for .set({ content: newContent })\n */\n\n\n function setContent(content) {\n set({\n content: content\n });\n }\n /**\n * Shows the tooltip\n */\n\n\n function show() {\n var duration = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getValue(instance.props.duration, 0, defaultProps.duration[1]);\n\n if (instance.state.isDestroyed || !instance.state.isEnabled || isUsingTouch && !instance.props.touch) {\n return;\n } // Standardize `disabled` behavior across browsers.\n // Firefox allows events on disabled elements, but Chrome doesn't.\n // Using a wrapper element (i.e. <span>) is recommended.\n\n\n if (getEventListenersTarget().hasAttribute('disabled')) {\n return;\n }\n\n if (instance.props.onShow(instance) === false) {\n return;\n }\n\n addDocumentClickListener();\n popper.style.visibility = 'visible';\n instance.state.isVisible = true;\n\n if (instance.props.interactive) {\n getEventListenersTarget().classList.add(ACTIVE_CLASS);\n } // Prevent a transition if the popper is at the opposite placement\n\n\n var transitionableElements = getTransitionableElements();\n setTransitionDuration(transitionableElements.concat(popper), 0);\n\n currentMountCallback = function currentMountCallback() {\n if (!instance.state.isVisible) {\n return;\n }\n\n var isInLooseFollowCursorMode = getIsInLooseFollowCursorMode();\n\n if (isInLooseFollowCursorMode && lastMouseMoveEvent) {\n positionVirtualReferenceNearCursor(lastMouseMoveEvent);\n } else if (!isInLooseFollowCursorMode) {\n // Double update will apply correct mutations\n instance.popperInstance.update();\n }\n\n if (instance.popperChildren.backdrop) {\n instance.popperChildren.content.style.transitionDelay = Math.round(duration / 12) + 'ms';\n }\n\n if (instance.props.sticky) {\n makeSticky();\n }\n\n setTransitionDuration([popper], instance.props.updateDuration);\n setTransitionDuration(transitionableElements, duration);\n setVisibilityState(transitionableElements, 'visible');\n onTransitionedIn(duration, function () {\n if (instance.props.aria) {\n getEventListenersTarget().setAttribute(\"aria-\".concat(instance.props.aria), popper.id);\n }\n\n instance.props.onShown(instance);\n instance.state.isShown = true;\n });\n };\n\n mount();\n }\n /**\n * Hides the tooltip\n */\n\n\n function hide() {\n var duration = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getValue(instance.props.duration, 1, defaultProps.duration[1]);\n\n if (instance.state.isDestroyed || !instance.state.isEnabled && !isBeingDestroyed) {\n return;\n }\n\n if (instance.props.onHide(instance) === false && !isBeingDestroyed) {\n return;\n }\n\n removeDocumentClickListener();\n popper.style.visibility = 'hidden';\n instance.state.isVisible = false;\n instance.state.isShown = false;\n wasVisibleDuringPreviousUpdate = false;\n\n if (instance.props.interactive) {\n getEventListenersTarget().classList.remove(ACTIVE_CLASS);\n }\n\n var transitionableElements = getTransitionableElements();\n setTransitionDuration(transitionableElements, duration);\n setVisibilityState(transitionableElements, 'hidden');\n onTransitionedOut(duration, function () {\n if (!isScheduledToShow) {\n removeFollowCursorListener();\n }\n\n if (instance.props.aria) {\n getEventListenersTarget().removeAttribute(\"aria-\".concat(instance.props.aria));\n }\n\n instance.popperInstance.disableEventListeners();\n instance.popperInstance.options.placement = instance.props.placement;\n popper.parentNode.removeChild(popper);\n instance.props.onHidden(instance);\n instance.state.isMounted = false;\n });\n }\n /**\n * Destroys the tooltip\n */\n\n\n function destroy(destroyTargetInstances) {\n if (instance.state.isDestroyed) {\n return;\n }\n\n isBeingDestroyed = true; // If the popper is currently mounted to the DOM, we want to ensure it gets\n // hidden and unmounted instantly upon destruction\n\n if (instance.state.isMounted) {\n hide(0);\n }\n\n removeTriggersFromReference();\n delete reference._tippy;\n var target = instance.props.target;\n\n if (target && destroyTargetInstances && isRealElement(reference)) {\n arrayFrom(reference.querySelectorAll(target)).forEach(function (child) {\n if (child._tippy) {\n child._tippy.destroy();\n }\n });\n }\n\n if (instance.popperInstance) {\n instance.popperInstance.destroy();\n }\n\n isBeingDestroyed = false;\n instance.state.isDestroyed = true;\n }\n}\n\n/**\n * Groups an array of instances by taking control of their props during\n * certain lifecycles.\n */\nfunction group(instances) {\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n _ref$delay = _ref.delay,\n delay = _ref$delay === void 0 ? instances[0].props.delay : _ref$delay,\n _ref$duration = _ref.duration,\n duration = _ref$duration === void 0 ? 0 : _ref$duration;\n\n var isAnyTippyOpen = false;\n instances.forEach(function (instance) {\n if (instance._originalProps) {\n instance.set(instance._originalProps);\n } else {\n instance._originalProps = _extends$1({}, instance.props);\n }\n });\n\n function setIsAnyTippyOpen(value) {\n isAnyTippyOpen = value;\n updateInstances();\n }\n\n function onShow(instance) {\n instance._originalProps.onShow(instance);\n\n instances.forEach(function (instance) {\n instance.set({\n duration: duration\n });\n\n if (instance.state.isVisible) {\n instance.hide();\n }\n });\n setIsAnyTippyOpen(true);\n }\n\n function onHide(instance) {\n instance._originalProps.onHide(instance);\n\n setIsAnyTippyOpen(false);\n }\n\n function onShown(instance) {\n instance._originalProps.onShown(instance);\n\n instance.set({\n duration: instance._originalProps.duration\n });\n }\n\n function updateInstances() {\n instances.forEach(function (instance) {\n instance.set({\n onShow: onShow,\n onShown: onShown,\n onHide: onHide,\n delay: isAnyTippyOpen ? [0, Array.isArray(delay) ? delay[1] : delay] : delay,\n duration: isAnyTippyOpen ? duration : instance._originalProps.duration\n });\n });\n }\n\n updateInstances();\n}\n\nvar globalEventListenersBound = false;\n/**\n * Exported module\n */\n\nfunction tippy(targets, options) {\n validateOptions(options || {}, defaultProps);\n\n if (!globalEventListenersBound) {\n bindGlobalEventListeners();\n globalEventListenersBound = true;\n }\n\n var props = _extends$1({}, defaultProps, {}, options); // If they are specifying a virtual positioning reference, we need to polyfill\n // some native DOM props\n\n\n if (isBareVirtualElement(targets)) {\n polyfillElementPrototypeProperties(targets);\n }\n\n var instances = getArrayOfElements(targets).reduce(function (acc, reference) {\n var instance = reference && createTippy(reference, props);\n\n if (instance) {\n acc.push(instance);\n }\n\n return acc;\n }, []);\n return isSingular(targets) ? instances[0] : instances;\n}\n/**\n * Static props\n */\n\n\ntippy.version = version;\ntippy.defaults = defaultProps;\n/**\n * Static methods\n */\n\ntippy.setDefaults = function (partialDefaults) {\n Object.keys(partialDefaults).forEach(function (key) {\n // @ts-ignore\n defaultProps[key] = partialDefaults[key];\n });\n};\n\ntippy.hideAll = hideAll;\ntippy.group = group;\n/**\n * Auto-init tooltips for elements with a `data-tippy=\"...\"` attribute\n */\n\nfunction autoInit() {\n arrayFrom(document.querySelectorAll('[data-tippy]')).forEach(function (el) {\n var content = el.getAttribute('data-tippy');\n\n if (content) {\n tippy(el, {\n content: content\n });\n }\n });\n}\n\nif (isBrowser$1) {\n setTimeout(autoInit);\n}\n\n/**\n * Injects a string of CSS styles to a style node in <head>\n */\n\nfunction injectCSS(css) {\n if (isBrowser$1) {\n var style = document.createElement('style');\n style.type = 'text/css';\n style.textContent = css;\n style.setAttribute('data-tippy-stylesheet', '');\n var head = document.head;\n var firstStyleOrLinkTag = head.querySelector('style,link');\n\n if (firstStyleOrLinkTag) {\n head.insertBefore(style, firstStyleOrLinkTag);\n } else {\n head.appendChild(style);\n }\n }\n}\n\ninjectCSS(css);\n\nvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\n\nfunction createCommonjsModule(fn, module) {\n\treturn module = { exports: {} }, fn(module, module.exports), module.exports;\n}\n\nvar humps = createCommonjsModule(function (module) {\n(function(global) {\n\n var _processKeys = function(convert, obj, options) {\n if(!_isObject(obj) || _isDate(obj) || _isRegExp(obj) || _isBoolean(obj) || _isFunction(obj)) {\n return obj;\n }\n\n var output,\n i = 0,\n l = 0;\n\n if(_isArray(obj)) {\n output = [];\n for(l=obj.length; i<l; i++) {\n output.push(_processKeys(convert, obj[i], options));\n }\n }\n else {\n output = {};\n for(var key in obj) {\n if(Object.prototype.hasOwnProperty.call(obj, key)) {\n output[convert(key, options)] = _processKeys(convert, obj[key], options);\n }\n }\n }\n return output;\n };\n\n // String conversion methods\n\n var separateWords = function(string, options) {\n options = options || {};\n var separator = options.separator || '_';\n var split = options.split || /(?=[A-Z])/;\n\n return string.split(split).join(separator);\n };\n\n var camelize = function(string) {\n if (_isNumerical(string)) {\n return string;\n }\n string = string.replace(/[\\-_\\s]+(.)?/g, function(match, chr) {\n return chr ? chr.toUpperCase() : '';\n });\n // Ensure 1st char is always lowercase\n return string.substr(0, 1).toLowerCase() + string.substr(1);\n };\n\n var pascalize = function(string) {\n var camelized = camelize(string);\n // Ensure 1st char is always uppercase\n return camelized.substr(0, 1).toUpperCase() + camelized.substr(1);\n };\n\n var decamelize = function(string, options) {\n return separateWords(string, options).toLowerCase();\n };\n\n // Utilities\n // Taken from Underscore.js\n\n var toString = Object.prototype.toString;\n\n var _isFunction = function(obj) {\n return typeof(obj) === 'function';\n };\n var _isObject = function(obj) {\n return obj === Object(obj);\n };\n var _isArray = function(obj) {\n return toString.call(obj) == '[object Array]';\n };\n var _isDate = function(obj) {\n return toString.call(obj) == '[object Date]';\n };\n var _isRegExp = function(obj) {\n return toString.call(obj) == '[object RegExp]';\n };\n var _isBoolean = function(obj) {\n return toString.call(obj) == '[object Boolean]';\n };\n\n // Performant way to determine if obj coerces to a number\n var _isNumerical = function(obj) {\n obj = obj - 0;\n return obj === obj;\n };\n\n // Sets up function which handles processing keys\n // allowing the convert function to be modified by a callback\n var _processor = function(convert, options) {\n var callback = options && 'process' in options ? options.process : options;\n\n if(typeof(callback) !== 'function') {\n return convert;\n }\n\n return function(string, options) {\n return callback(string, convert, options);\n }\n };\n\n var humps = {\n camelize: camelize,\n decamelize: decamelize,\n pascalize: pascalize,\n depascalize: decamelize,\n camelizeKeys: function(object, options) {\n return _processKeys(_processor(camelize, options), object);\n },\n decamelizeKeys: function(object, options) {\n return _processKeys(_processor(decamelize, options), object, options);\n },\n pascalizeKeys: function(object, options) {\n return _processKeys(_processor(pascalize, options), object);\n },\n depascalizeKeys: function () {\n return this.decamelizeKeys.apply(this, arguments);\n }\n };\n\n if ( module.exports) {\n module.exports = humps;\n } else {\n global.humps = humps;\n }\n\n})(commonjsGlobal);\n});\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nvar booleanProps = {\n a11y: true,\n allowHTML: true,\n animateFill: true,\n arrow: false,\n flip: true,\n flipOnUpdate: false,\n followCursor: false,\n hideOnClick: true,\n ignoreAttributes: false,\n inertia: false,\n interactive: false,\n lazy: true,\n multiple: false,\n showOnInit: false,\n sticky: false,\n touch: true,\n touchHold: false\n};\nvar defaultProps$1 = _objectSpread2({\n animation: 'shift-away',\n appendTo: function appendTo() {\n return document.body;\n },\n aria: 'describedby',\n arrowType: 'sharp',\n boundary: 'scrollParent',\n content: '',\n delay: 0,\n distance: 10,\n duration: [325, 275],\n flipBehavior: 'flip',\n interactiveBorder: 2,\n interactiveDebounce: 0,\n maxWidth: 350,\n offset: 0,\n onHidden: function onHidden() {},\n onHide: function onHide() {},\n onMount: function onMount() {},\n onShow: function onShow() {},\n onShown: function onShown() {},\n placement: 'top',\n popperOptions: {},\n role: 'tooltip',\n size: 'regular',\n target: '',\n theme: 'dark',\n trigger: 'mouseenter focus',\n updateDuration: 0,\n wait: null,\n zIndex: 9999\n}, booleanProps);\n\n//\nvar script = {\n props: {\n to: undefined,\n toSelector: undefined,\n toElement: undefined,\n content: undefined,\n enabled: undefined,\n visible: undefined,\n triggerTarget: undefined,\n tag: {\n type: String,\n default: \"div\"\n },\n triggerTag: String,\n contentTag: String\n },\n data: function data() {\n return {\n tip: null,\n options: {}\n };\n },\n mounted: function mounted() {\n this.init();\n },\n watch: {\n content: function content() {\n if (this.tip) {\n this.tip.set(this.getOptions());\n }\n },\n enabled: function enabled(val) {\n if (!this.tip) return;\n\n if (val) {\n this.tip.enable();\n } else {\n this.tip.hide();\n this.tip.disable();\n }\n },\n visible: function visible(val) {\n if (!this.tip) return;\n\n if (val) {\n this.tip.show();\n } else {\n this.tip.hide();\n }\n }\n },\n updated: function updated() {\n if (this.tip && !this.content) {\n this.tip.set(this.getOptions());\n }\n },\n beforeDestroy: function beforeDestroy() {\n if (!this.tip) return;\n this.tip.destroy();\n },\n computed: {\n isManualTrigger: function isManualTrigger() {\n return this.options.trigger === \"manual\";\n }\n },\n methods: {\n init: function init() {\n if (this.tip) {\n try {\n this.tip.destroy();\n } catch (error) {}\n\n this.tip = null;\n }\n\n var elm = this.toElement;\n\n if (elm == null) {\n if (this.to) {\n elm = document.querySelector(\"[name='\".concat(this.to, \"']\"));\n } else if (this.toSelector) {\n elm = document.querySelector(this.toSelector);\n } else if (this.$refs.trigger && this.$refs.trigger.childElementCount > 0) {\n elm = this.$refs.trigger;\n } else {\n elm = this.$el.parentElement;\n }\n }\n\n if (!elm) {\n return;\n }\n\n var tip = tippy(elm, this.getOptions());\n\n if (!tip) {\n return;\n }\n\n if (Array.isArray(tip)) {\n if (tip.length > 0) {\n this.tip = tip[0];\n } else {\n return;\n }\n }\n\n this.tip = tip;\n this.$emit(\"onCreate\", this.tip);\n this.$emit(\"init\", this.tip);\n\n if (this.enabled === false) {\n this.tip.disable();\n }\n\n if (this.isManualTrigger && this.visible === true) {\n this.tip.show();\n }\n },\n tippy: function tippy() {\n return this.tip;\n },\n filterOptions: function filterOptions() {\n var getValue = function getValue(key, value) {\n if (booleanProps.hasOwnProperty(key)) {\n if (value === \"\") return true;\n if (value === \"false\") return false;\n if (value === \"true\") return true;\n }\n\n return value;\n };\n\n for (var _i = 0, _Object$keys = Object.keys(this.options); _i < _Object$keys.length; _i++) {\n var key = _Object$keys[_i];\n\n if (!defaultProps$1.hasOwnProperty(key)) {\n // We're replacing this.options anyway, we don't have to worry about modifying the object\n delete this.options[key];\n } else {\n this.options[key] = getValue(key, this.options[key]);\n }\n }\n\n return this.options;\n },\n getOptions: function getOptions() {\n var _this = this;\n\n this.options.content = this.content ? this.content : this.$refs.content;\n Object.assign(this.options, humps.camelizeKeys(this.$attrs));\n this.filterOptions();\n\n if (!this.options.onShow && this.$listeners && this.$listeners[\"show\"]) {\n this.options.onShow = function () {\n var _this$$listeners$show;\n\n return (_this$$listeners$show = _this.$listeners[\"show\"]).fns.apply(_this$$listeners$show, arguments);\n };\n }\n\n if (!this.options.onShow && this.$listeners && this.$listeners[\"shown\"]) {\n this.options.onShown = function () {\n var _this$$listeners$show2;\n\n return (_this$$listeners$show2 = _this.$listeners[\"shown\"]).fns.apply(_this$$listeners$show2, arguments);\n };\n }\n\n if (!this.options.onHidden && this.$listeners && this.$listeners[\"hidden\"]) {\n this.options.onHidden = function () {\n var _this$$listeners$hidd;\n\n return (_this$$listeners$hidd = _this.$listeners[\"hidden\"]).fns.apply(_this$$listeners$hidd, arguments);\n };\n }\n\n if (!this.options.onHide && this.$listeners && this.$listeners[\"hide\"]) {\n this.options.onHide = function () {\n var _this$$listeners$hide;\n\n return (_this$$listeners$hide = _this.$listeners[\"hide\"]).fns.apply(_this$$listeners$hide, arguments);\n };\n }\n\n if (!this.options.onMount && this.$listeners && this.$listeners[\"mount\"]) {\n this.options.onMount = function () {\n var _this$$listeners$moun;\n\n return (_this$$listeners$moun = _this.$listeners[\"mount\"]).fns.apply(_this$$listeners$moun, arguments);\n };\n }\n\n this.options.triggerTarget = this.triggerTarget;\n return this.options;\n }\n }\n};\n\nfunction normalizeComponent(template, style, script, scopeId, isFunctionalTemplate, moduleIdentifier\n/* server only */\n, shadowMode, createInjector, createInjectorSSR, createInjectorShadow) {\n if (typeof shadowMode !== 'boolean') {\n createInjectorSSR = createInjector;\n createInjector = shadowMode;\n shadowMode = false;\n } // Vue.extend constructor export interop.\n\n\n var options = typeof script === 'function' ? script.options : script; // render functions\n\n if (template && template.render) {\n options.render = template.render;\n options.staticRenderFns = template.staticRenderFns;\n options._compiled = true; // functional template\n\n if (isFunctionalTemplate) {\n options.functional = true;\n }\n } // scopedId\n\n\n if (scopeId) {\n options._scopeId = scopeId;\n }\n\n var hook;\n\n if (moduleIdentifier) {\n // server build\n hook = function hook(context) {\n // 2.3 injection\n context = 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\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__;\n } // inject component styles\n\n\n if (style) {\n style.call(this, createInjectorSSR(context));\n } // register component module identifier for async chunk inference\n\n\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier);\n }\n }; // used by ssr in case component is cached and beforeCreate\n // never gets called\n\n\n options._ssrRegister = hook;\n } else if (style) {\n hook = shadowMode ? function () {\n style.call(this, createInjectorShadow(this.$root.$options.shadowRoot));\n } : function (context) {\n style.call(this, createInjector(context));\n };\n }\n\n if (hook) {\n if (options.functional) {\n // register for functional component in vue file\n var originalRender = options.render;\n\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 ? [].concat(existing, hook) : [hook];\n }\n }\n\n return script;\n}\n\nvar normalizeComponent_1 = normalizeComponent;\n\n/* script */\nvar __vue_script__ = script;\n/* template */\n\nvar __vue_render__ = function __vue_render__() {\n var _vm = this;\n\n var _h = _vm.$createElement;\n\n var _c = _vm._self._c || _h;\n\n return _c(_vm.tag, {\n tag: \"component\",\n attrs: {\n \"data-tippy-component\": \"\"\n }\n }, [_c(_vm.triggerTag || _vm.tag, {\n ref: \"trigger\",\n tag: \"component\",\n attrs: {\n \"data-tippy-component-trigger\": \"\"\n }\n }, [_vm._t(\"trigger\")], 2), _vm._v(\" \"), _c(_vm.contentTag || _vm.tag, {\n ref: \"content\",\n tag: \"component\"\n }, [_vm._t(\"default\")], 2)], 1);\n};\n\nvar __vue_staticRenderFns__ = [];\n__vue_render__._withStripped = true;\n/* style */\n\nvar __vue_inject_styles__ = undefined;\n/* scoped */\n\nvar __vue_scope_id__ = undefined;\n/* module identifier */\n\nvar __vue_module_identifier__ = undefined;\n/* functional template */\n\nvar __vue_is_functional_template__ = false;\n/* style inject */\n\n/* style inject SSR */\n\nvar TippyComponent = normalizeComponent_1({\n render: __vue_render__,\n staticRenderFns: __vue_staticRenderFns__\n}, __vue_inject_styles__, __vue_script__, __vue_scope_id__, __vue_is_functional_template__, __vue_module_identifier__, undefined, undefined);\n\nvar tippyDirective = 'tippy';\nvar plugin = {\n install: function install(Vue) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n tippyDirective = options.directive || 'tippy';\n tippy.setDefaults(options || {});\n\n function createTippy(el, binding, vnode) {\n var handlers = vnode.data && vnode.data.on || vnode.componentOptions && vnode.componentOptions.listeners;\n el.setAttribute('data-tippy-directive', '');\n var opts = deriveOpts(binding);\n var modifiers = Object.keys(binding.modifiers || {});\n var placement = modifiers.find(function (modifier) {\n return modifier !== 'arrow';\n });\n var withArrow = modifiers.findIndex(function (modifier) {\n return modifier === 'arrow';\n }) !== -1;\n opts = Object.assign({}, options, opts);\n\n if (placement) {\n opts.placement = opts.placement || placement;\n }\n\n if (withArrow) {\n opts.arrow = opts.arrow !== undefined ? opts.arrow : true;\n }\n\n if (handlers && handlers['show']) {\n opts.onShow = function () {\n var _handlers$show;\n\n return (_handlers$show = handlers['show']).fns.apply(_handlers$show, arguments);\n };\n }\n\n if (handlers && handlers['shown']) {\n opts.onShown = function () {\n var _handlers$shown;\n\n (_handlers$shown = handlers['shown']).fns.apply(_handlers$shown, arguments);\n };\n }\n\n if (handlers && handlers['hidden']) {\n opts.onHidden = function () {\n var _handlers$hidden;\n\n (_handlers$hidden = handlers['hidden']).fns.apply(_handlers$hidden, arguments);\n };\n }\n\n if (handlers && handlers['hide']) {\n opts.onHide = function () {\n var _handlers$hide;\n\n return (_handlers$hide = handlers['hide']).fns.apply(_handlers$hide, arguments);\n };\n }\n\n if (handlers && handlers['mount']) {\n opts.onMount = function () {\n var _handlers$mount;\n\n (_handlers$mount = handlers['mount']).fns.apply(_handlers$mount, arguments);\n };\n }\n\n if (el.getAttribute('title') && !opts.content) {\n opts.content = el.getAttribute('title');\n el.removeAttribute('title');\n }\n\n if (el.getAttribute('content') && !opts.content) {\n opts.content = el.getAttribute('content');\n }\n\n tippy(el, opts);\n\n if (opts.showOnLoad) {\n el._tippy.show();\n }\n\n Vue.nextTick(function () {\n if (handlers && handlers['init']) {\n handlers['init'].fns(el._tippy, el);\n }\n });\n }\n\n Vue.directive(tippyDirective, {\n inserted: function inserted(el, binding, vnode) {\n Vue.nextTick(function () {\n createTippy(el, binding, vnode);\n });\n },\n unbind: function unbind(el) {\n el._tippy && el._tippy.destroy();\n },\n componentUpdated: function componentUpdated(el, binding, vnode) {\n if (el._tippy) {\n var opts = deriveOpts(binding);\n\n if (el.getAttribute('title') && !opts.content) {\n opts.content = el.getAttribute('title');\n el.removeAttribute('title');\n }\n\n if (el.getAttribute('content') && !opts.content) {\n opts.content = el.getAttribute('content');\n }\n\n el._tippy.set(opts);\n }\n }\n });\n\n function deriveOpts(binding) {\n return typeof binding.value === 'string' ? {\n content: binding.value\n } : binding.value || {};\n }\n }\n};\n\nif (typeof window !== 'undefined' && window.Vue) {\n window.Vue.use(plugin);\n window.Vue.component('tippy', TippyComponent);\n}\n\nexport default plugin;\nexport { TippyComponent, tippy };\n","/**\n *\n * @author Jerry Bendy\n * @since 4/12/2017\n */\n\nfunction touchX(event) {\n if(event.type.indexOf('mouse') !== -1){\n return event.clientX;\n }\n return event.touches[0].clientX;\n}\n\nfunction touchY(event) {\n if(event.type.indexOf('mouse') !== -1){\n return event.clientY;\n }\n return event.touches[0].clientY;\n}\n\nvar isPassiveSupported = (function() {\n var supportsPassive = false;\n try {\n var opts = Object.defineProperty({}, 'passive', {\n get: function() {\n supportsPassive = true;\n }\n });\n window.addEventListener('test', null, opts);\n } catch (e) {}\n return supportsPassive;\n})();\n\n// Save last touch time globally (touch start time or touch end time), if a `click` event triggered,\n// and the time near by the last touch time, this `click` event will be ignored. This is used for\n// resolve touch through issue.\nvar globalLastTouchTime = 0;\n\nvar vueTouchEvents = {\n install: function (Vue, constructorOptions) {\n\n var globalOptions = Object.assign({}, {\n disableClick: false,\n tapTolerance: 10, // px\n swipeTolerance: 30, // px\n touchHoldTolerance: 400, // ms\n longTapTimeInterval: 400, // ms\n touchClass: '',\n namespace: 'touch'\n }, constructorOptions);\n\n function touchStartEvent(event) {\n var $this = this.$$touchObj,\n isTouchEvent = event.type.indexOf('touch') >= 0,\n isMouseEvent = event.type.indexOf('mouse') >= 0,\n $el = this;\n\n if (isTouchEvent) {\n globalLastTouchTime = event.timeStamp;\n }\n\n if (isMouseEvent && globalLastTouchTime && event.timeStamp - globalLastTouchTime < 350) {\n return;\n }\n\n if ($this.touchStarted) {\n return;\n }\n\n addTouchClass(this);\n\n $this.touchStarted = true;\n\n $this.touchMoved = false;\n $this.swipeOutBounded = false;\n\n $this.startX = touchX(event);\n $this.startY = touchY(event);\n\n $this.currentX = 0;\n $this.currentY = 0;\n\n $this.touchStartTime = event.timeStamp;\n\n // Trigger touchhold event after `touchHoldTolerance`ms\n $this.touchHoldTimer = setTimeout(function() {\n $this.touchHoldTimer = null;\n triggerEvent(event, $el, 'touchhold');\n }, $this.options.touchHoldTolerance);\n\n triggerEvent(event, this, 'start');\n }\n\n function touchMoveEvent(event) {\n var $this = this.$$touchObj;\n\n $this.currentX = touchX(event);\n $this.currentY = touchY(event);\n\n if (!$this.touchMoved) {\n var tapTolerance = $this.options.tapTolerance;\n\n $this.touchMoved = Math.abs($this.startX - $this.currentX) > tapTolerance ||\n Math.abs($this.startY - $this.currentY) > tapTolerance;\n\n if($this.touchMoved){\n cancelTouchHoldTimer($this);\n triggerEvent(event, this, 'moved');\n }\n\n } else if (!$this.swipeOutBounded) {\n var swipeOutBounded = $this.options.swipeTolerance;\n\n $this.swipeOutBounded = Math.abs($this.startX - $this.currentX) > swipeOutBounded &&\n Math.abs($this.startY - $this.currentY) > swipeOutBounded;\n }\n\n if($this.touchMoved){\n triggerEvent(event, this, 'moving');\n }\n }\n\n function touchCancelEvent() {\n var $this = this.$$touchObj;\n\n cancelTouchHoldTimer($this);\n removeTouchClass(this);\n\n $this.touchStarted = $this.touchMoved = false;\n $this.startX = $this.startY = 0;\n }\n\n function touchEndEvent(event) {\n var $this = this.$$touchObj,\n isTouchEvent = event.type.indexOf('touch') >= 0,\n isMouseEvent = event.type.indexOf('mouse') >= 0;\n\n if (isTouchEvent) {\n globalLastTouchTime = event.timeStamp;\n }\n\n var touchholdEnd = isTouchEvent && !$this.touchHoldTimer;\n cancelTouchHoldTimer($this);\n\n $this.touchStarted = false;\n\n removeTouchClass(this);\n\n if (isMouseEvent && globalLastTouchTime && event.timeStamp - globalLastTouchTime < 350) {\n return;\n }\n\n // Fix #33, Trigger `end` event when touch stopped\n triggerEvent(event, this, 'end');\n\n if (!$this.touchMoved) {\n // detect if this is a longTap event or not\n if ($this.callbacks.longtap && event.timeStamp - $this.touchStartTime > $this.options.longTapTimeInterval) {\n if (event.cancelable) {\n event.preventDefault();\n }\n triggerEvent(event, this, 'longtap');\n\n } else if ($this.callbacks.touchhold && touchholdEnd) {\n if (event.cancelable) {\n event.preventDefault();\n }\n return;\n } else {\n // emit tap event\n triggerEvent(event, this, 'tap');\n }\n\n } else if (!$this.swipeOutBounded) {\n var swipeOutBounded = $this.options.swipeTolerance,\n direction,\n distanceY = Math.abs($this.startY - $this.currentY),\n distanceX = Math.abs($this.startX - $this.currentX);\n\n if (distanceY > swipeOutBounded || distanceX > swipeOutBounded) {\n if (distanceY > distanceX) {\n direction = $this.startY > $this.currentY ? 'top' : 'bottom';\n } else {\n direction = $this.startX > $this.currentX ? 'left' : 'right';\n }\n\n // Only emit the specified event when it has modifiers\n if ($this.callbacks['swipe.' + direction]) {\n triggerEvent(event, this, 'swipe.' + direction, direction);\n } else {\n // Emit a common event when it has no any modifier\n triggerEvent(event, this, 'swipe', direction);\n }\n }\n }\n }\n\n function mouseEnterEvent() {\n addTouchClass(this);\n }\n\n function mouseLeaveEvent() {\n removeTouchClass(this);\n }\n\n function triggerEvent(e, $el, eventType, param) {\n var $this = $el.$$touchObj;\n\n // get the callback list\n var callbacks = $this && $this.callbacks[eventType] || [];\n if (callbacks.length === 0) {\n return null;\n }\n\n for (var i = 0; i < callbacks.length; i++) {\n var binding = callbacks[i];\n\n if (binding.modifiers.stop) {\n e.stopPropagation();\n }\n\n if (binding.modifiers.prevent && e.cancelable) {\n e.preventDefault();\n }\n\n // handle `self` modifier`\n if (binding.modifiers.self && e.target !== e.currentTarget) {\n continue;\n }\n\n if (typeof binding.value === 'function') {\n if (param) {\n binding.value(param, e);\n } else {\n binding.value(e);\n }\n }\n }\n }\n\n function addTouchClass($el) {\n var className = $el.$$touchObj.options.touchClass;\n className && $el.classList.add(className);\n }\n\n function removeTouchClass($el) {\n var className = $el.$$touchObj.options.touchClass;\n className && $el.classList.remove(className);\n }\n\n function cancelTouchHoldTimer($this) {\n if ($this.touchHoldTimer) {\n clearTimeout($this.touchHoldTimer);\n $this.touchHoldTimer = null;\n }\n }\n\n function buildTouchObj($el, extraOptions) {\n var touchObj = $el.$$touchObj || {\n // an object contains all callbacks registered,\n // key is event name, value is an array\n callbacks: {},\n // prevent bind twice, set to true when event bound\n hasBindTouchEvents: false,\n // default options, would be override by v-touch-options\n options: globalOptions\n };\n if (extraOptions) {\n touchObj.options = Object.assign({}, touchObj.options, extraOptions);\n }\n $el.$$touchObj = touchObj;\n return $el.$$touchObj;\n }\n\n Vue.directive(globalOptions.namespace, {\n bind: function ($el, binding) {\n // build a touch configuration object\n var $this = buildTouchObj($el);\n // declare passive option for the event listener. Defaults to { passive: true } if supported\n var passiveOpt = isPassiveSupported ? { passive: true } : false;\n // register callback\n var eventType = binding.arg || 'tap';\n switch (eventType) {\n case 'swipe':\n var _m = binding.modifiers;\n if (_m.left || _m.right || _m.top || _m.bottom) {\n for (var i in binding.modifiers) {\n if (['left', 'right', 'top', 'bottom'].indexOf(i) >= 0) {\n var _e = 'swipe.' + i;\n $this.callbacks[_e] = $this.callbacks[_e] || [];\n $this.callbacks[_e].push(binding);\n }\n }\n } else {\n $this.callbacks.swipe = $this.callbacks.swipe || [];\n $this.callbacks.swipe.push(binding);\n }\n break;\n \n case 'start':\n case 'moving':\n if (binding.modifiers.disablePassive) {\n // change the passive option for the moving event if disablePassive modifier exists\n passiveOpt = false;\n }\n // fallthrough\n default:\n $this.callbacks[eventType] = $this.callbacks[eventType] || [];\n $this.callbacks[eventType].push(binding);\n }\n\n // prevent bind twice\n if ($this.hasBindTouchEvents) {\n return;\n }\n\n $el.addEventListener('touchstart', touchStartEvent, passiveOpt);\n $el.addEventListener('touchmove', touchMoveEvent, passiveOpt);\n $el.addEventListener('touchcancel', touchCancelEvent);\n $el.addEventListener('touchend', touchEndEvent);\n\n if (!$this.options.disableClick) {\n $el.addEventListener('mousedown', touchStartEvent);\n $el.addEventListener('mousemove', touchMoveEvent);\n $el.addEventListener('mouseup', touchEndEvent);\n $el.addEventListener('mouseenter', mouseEnterEvent);\n $el.addEventListener('mouseleave', mouseLeaveEvent);\n }\n\n // set bind mark to true\n $this.hasBindTouchEvents = true;\n },\n\n unbind: function ($el) {\n $el.removeEventListener('touchstart', touchStartEvent);\n $el.removeEventListener('touchmove', touchMoveEvent);\n $el.removeEventListener('touchcancel', touchCancelEvent);\n $el.removeEventListener('touchend', touchEndEvent);\n\n if ($el.$$touchObj && !$el.$$touchObj.options.disableClick) {\n $el.removeEventListener('mousedown', touchStartEvent);\n $el.removeEventListener('mousemove', touchMoveEvent);\n $el.removeEventListener('mouseup', touchEndEvent);\n $el.removeEventListener('mouseenter', mouseEnterEvent);\n $el.removeEventListener('mouseleave', mouseLeaveEvent);\n }\n\n // remove vars\n delete $el.$$touchObj;\n }\n });\n\n Vue.directive(globalOptions.namespace + '-class', {\n bind: function ($el, binding) {\n buildTouchObj($el, {\n touchClass: binding.value\n });\n }\n });\n\n Vue.directive(globalOptions.namespace + '-options', {\n bind: function($el, binding) {\n buildTouchObj($el, binding.value);\n }\n });\n }\n};\n\n\n/*\n * Exports\n */\nif (typeof module === 'object') {\n module.exports = vueTouchEvents;\n\n} else if (typeof define === 'function' && define.amd) {\n define([], function () {\n return vueTouchEvents;\n });\n} else if (window.Vue) {\n window.vueTouchEvents = vueTouchEvents;\n Vue.use(vueTouchEvents);\n}\n","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"sortablejs\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"sortablejs\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"vuedraggable\"] = factory(require(\"sortablejs\"));\n\telse\n\t\troot[\"vuedraggable\"] = factory(root[\"Sortable\"]);\n})((typeof self !== 'undefined' ? self : this), function(__WEBPACK_EXTERNAL_MODULE_a352__) {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = \"fb15\");\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ \"01f9\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar LIBRARY = __webpack_require__(\"2d00\");\nvar $export = __webpack_require__(\"5ca1\");\nvar redefine = __webpack_require__(\"2aba\");\nvar hide = __webpack_require__(\"32e9\");\nvar Iterators = __webpack_require__(\"84f2\");\nvar $iterCreate = __webpack_require__(\"41a0\");\nvar setToStringTag = __webpack_require__(\"7f20\");\nvar getPrototypeOf = __webpack_require__(\"38fd\");\nvar ITERATOR = __webpack_require__(\"2b4c\")('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n $iterCreate(Constructor, NAME, next);\n var getMethod = function (kind) {\n if (!BUGGY && kind in proto) return proto[kind];\n switch (kind) {\n case KEYS: return function keys() { return new Constructor(this, kind); };\n case VALUES: return function values() { return new Constructor(this, kind); };\n } return function entries() { return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator';\n var DEF_VALUES = DEFAULT == VALUES;\n var VALUES_BUG = false;\n var proto = Base.prototype;\n var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n var $default = $native || getMethod(DEFAULT);\n var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n var methods, key, IteratorPrototype;\n // Fix native\n if ($anyNative) {\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // fix for some old engines\n if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEF_VALUES && $native && $native.name !== VALUES) {\n VALUES_BUG = true;\n $default = function values() { return $native.call(this); };\n }\n // Define iterator\n if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if (DEFAULT) {\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if (FORCED) for (key in methods) {\n if (!(key in proto)) redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n\n\n/***/ }),\n\n/***/ \"02f4\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(\"4588\");\nvar defined = __webpack_require__(\"be13\");\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function (TO_STRING) {\n return function (that, pos) {\n var s = String(defined(that));\n var i = toInteger(pos);\n var l = s.length;\n var a, b;\n if (i < 0 || i >= l) return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n\n\n/***/ }),\n\n/***/ \"0390\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar at = __webpack_require__(\"02f4\")(true);\n\n // `AdvanceStringIndex` abstract operation\n// https://tc39.github.io/ecma262/#sec-advancestringindex\nmodule.exports = function (S, index, unicode) {\n return index + (unicode ? at(S, index).length : 1);\n};\n\n\n/***/ }),\n\n/***/ \"0bfb\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// 21.2.5.3 get RegExp.prototype.flags\nvar anObject = __webpack_require__(\"cb7c\");\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.unicode) result += 'u';\n if (that.sticky) result += 'y';\n return result;\n};\n\n\n/***/ }),\n\n/***/ \"0d58\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = __webpack_require__(\"ce10\");\nvar enumBugKeys = __webpack_require__(\"e11e\");\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n\n\n/***/ }),\n\n/***/ \"1495\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar dP = __webpack_require__(\"86cc\");\nvar anObject = __webpack_require__(\"cb7c\");\nvar getKeys = __webpack_require__(\"0d58\");\n\nmodule.exports = __webpack_require__(\"9e1e\") ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = getKeys(Properties);\n var length = keys.length;\n var i = 0;\n var P;\n while (length > i) dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n\n\n/***/ }),\n\n/***/ \"214f\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n__webpack_require__(\"b0c5\");\nvar redefine = __webpack_require__(\"2aba\");\nvar hide = __webpack_require__(\"32e9\");\nvar fails = __webpack_require__(\"79e5\");\nvar defined = __webpack_require__(\"be13\");\nvar wks = __webpack_require__(\"2b4c\");\nvar regexpExec = __webpack_require__(\"520a\");\n\nvar SPECIES = wks('species');\n\nvar REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {\n // #replace needs built-in support for named groups.\n // #match works fine because it just return the exec results, even if it has\n // a \"grops\" property.\n var re = /./;\n re.exec = function () {\n var result = [];\n result.groups = { a: '7' };\n return result;\n };\n return ''.replace(re, '$<a>') !== '7';\n});\n\nvar SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = (function () {\n // Chrome 51 has a buggy \"split\" implementation when RegExp#exec !== nativeExec\n var re = /(?:)/;\n var originalExec = re.exec;\n re.exec = function () { return originalExec.apply(this, arguments); };\n var result = 'ab'.split(re);\n return result.length === 2 && result[0] === 'a' && result[1] === 'b';\n})();\n\nmodule.exports = function (KEY, length, exec) {\n var SYMBOL = wks(KEY);\n\n var DELEGATES_TO_SYMBOL = !fails(function () {\n // String methods call symbol-named RegEp methods\n var O = {};\n O[SYMBOL] = function () { return 7; };\n return ''[KEY](O) != 7;\n });\n\n var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL ? !fails(function () {\n // Symbol-named RegExp methods call .exec\n var execCalled = false;\n var re = /a/;\n re.exec = function () { execCalled = true; return null; };\n if (KEY === 'split') {\n // RegExp[@@split] doesn't call the regex's exec method, but first creates\n // a new one. We need to return the patched regex when creating the new one.\n re.constructor = {};\n re.constructor[SPECIES] = function () { return re; };\n }\n re[SYMBOL]('');\n return !execCalled;\n }) : undefined;\n\n if (\n !DELEGATES_TO_SYMBOL ||\n !DELEGATES_TO_EXEC ||\n (KEY === 'replace' && !REPLACE_SUPPORTS_NAMED_GROUPS) ||\n (KEY === 'split' && !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC)\n ) {\n var nativeRegExpMethod = /./[SYMBOL];\n var fns = exec(\n defined,\n SYMBOL,\n ''[KEY],\n function maybeCallNative(nativeMethod, regexp, str, arg2, forceStringMethod) {\n if (regexp.exec === regexpExec) {\n if (DELEGATES_TO_SYMBOL && !forceStringMethod) {\n // The native String method already delegates to @@method (this\n // polyfilled function), leasing to infinite recursion.\n // We avoid it by directly calling the native @@method method.\n return { done: true, value: nativeRegExpMethod.call(regexp, str, arg2) };\n }\n return { done: true, value: nativeMethod.call(str, regexp, arg2) };\n }\n return { done: false };\n }\n );\n var strfn = fns[0];\n var rxfn = fns[1];\n\n redefine(String.prototype, KEY, strfn);\n hide(RegExp.prototype, SYMBOL, length == 2\n // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue)\n // 21.2.5.11 RegExp.prototype[@@split](string, limit)\n ? function (string, arg) { return rxfn.call(string, this, arg); }\n // 21.2.5.6 RegExp.prototype[@@match](string)\n // 21.2.5.9 RegExp.prototype[@@search](string)\n : function (string) { return rxfn.call(string, this); }\n );\n }\n};\n\n\n/***/ }),\n\n/***/ \"230e\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(\"d3f4\");\nvar document = __webpack_require__(\"7726\").document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n\n\n/***/ }),\n\n/***/ \"23c6\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// getting tag from 19.1.3.6 Object.prototype.toString()\nvar cof = __webpack_require__(\"2d95\");\nvar TAG = __webpack_require__(\"2b4c\")('toStringTag');\n// ES3 wrong here\nvar ARG = cof(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (e) { /* empty */ }\n};\n\nmodule.exports = function (it) {\n var O, T, B;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T\n // builtinTag case\n : ARG ? cof(O)\n // ES3 arguments fallback\n : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};\n\n\n/***/ }),\n\n/***/ \"2621\":\n/***/ (function(module, exports) {\n\nexports.f = Object.getOwnPropertySymbols;\n\n\n/***/ }),\n\n/***/ \"2aba\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(\"7726\");\nvar hide = __webpack_require__(\"32e9\");\nvar has = __webpack_require__(\"69a8\");\nvar SRC = __webpack_require__(\"ca5a\")('src');\nvar $toString = __webpack_require__(\"fa5b\");\nvar TO_STRING = 'toString';\nvar TPL = ('' + $toString).split(TO_STRING);\n\n__webpack_require__(\"8378\").inspectSource = function (it) {\n return $toString.call(it);\n};\n\n(module.exports = function (O, key, val, safe) {\n var isFunction = typeof val == 'function';\n if (isFunction) has(val, 'name') || hide(val, 'name', key);\n if (O[key] === val) return;\n if (isFunction) has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));\n if (O === global) {\n O[key] = val;\n } else if (!safe) {\n delete O[key];\n hide(O, key, val);\n } else if (O[key]) {\n O[key] = val;\n } else {\n hide(O, key, val);\n }\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, TO_STRING, function toString() {\n return typeof this == 'function' && this[SRC] || $toString.call(this);\n});\n\n\n/***/ }),\n\n/***/ \"2aeb\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = __webpack_require__(\"cb7c\");\nvar dPs = __webpack_require__(\"1495\");\nvar enumBugKeys = __webpack_require__(\"e11e\");\nvar IE_PROTO = __webpack_require__(\"613b\")('IE_PROTO');\nvar Empty = function () { /* empty */ };\nvar PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = __webpack_require__(\"230e\")('iframe');\n var i = enumBugKeys.length;\n var lt = '<';\n var gt = '>';\n var iframeDocument;\n iframe.style.display = 'none';\n __webpack_require__(\"fab2\").appendChild(iframe);\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n // createDict = iframe.contentWindow.Object;\n // html.removeChild(iframe);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];\n return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n};\n\n\n/***/ }),\n\n/***/ \"2b4c\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar store = __webpack_require__(\"5537\")('wks');\nvar uid = __webpack_require__(\"ca5a\");\nvar Symbol = __webpack_require__(\"7726\").Symbol;\nvar USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n\n\n/***/ }),\n\n/***/ \"2d00\":\n/***/ (function(module, exports) {\n\nmodule.exports = false;\n\n\n/***/ }),\n\n/***/ \"2d95\":\n/***/ (function(module, exports) {\n\nvar toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n\n\n/***/ }),\n\n/***/ \"2fdb\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n// 21.1.3.7 String.prototype.includes(searchString, position = 0)\n\nvar $export = __webpack_require__(\"5ca1\");\nvar context = __webpack_require__(\"d2c8\");\nvar INCLUDES = 'includes';\n\n$export($export.P + $export.F * __webpack_require__(\"5147\")(INCLUDES), 'String', {\n includes: function includes(searchString /* , position = 0 */) {\n return !!~context(this, searchString, INCLUDES)\n .indexOf(searchString, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n\n/***/ }),\n\n/***/ \"32e9\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar dP = __webpack_require__(\"86cc\");\nvar createDesc = __webpack_require__(\"4630\");\nmodule.exports = __webpack_require__(\"9e1e\") ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n\n\n/***/ }),\n\n/***/ \"38fd\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = __webpack_require__(\"69a8\");\nvar toObject = __webpack_require__(\"4bf8\");\nvar IE_PROTO = __webpack_require__(\"613b\")('IE_PROTO');\nvar ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};\n\n\n/***/ }),\n\n/***/ \"41a0\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar create = __webpack_require__(\"2aeb\");\nvar descriptor = __webpack_require__(\"4630\");\nvar setToStringTag = __webpack_require__(\"7f20\");\nvar IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\n__webpack_require__(\"32e9\")(IteratorPrototype, __webpack_require__(\"2b4c\")('iterator'), function () { return this; });\n\nmodule.exports = function (Constructor, NAME, next) {\n Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n\n\n/***/ }),\n\n/***/ \"456d\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.14 Object.keys(O)\nvar toObject = __webpack_require__(\"4bf8\");\nvar $keys = __webpack_require__(\"0d58\");\n\n__webpack_require__(\"5eda\")('keys', function () {\n return function keys(it) {\n return $keys(toObject(it));\n };\n});\n\n\n/***/ }),\n\n/***/ \"4588\":\n/***/ (function(module, exports) {\n\n// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n\n\n/***/ }),\n\n/***/ \"4630\":\n/***/ (function(module, exports) {\n\nmodule.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n\n\n/***/ }),\n\n/***/ \"4bf8\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 7.1.13 ToObject(argument)\nvar defined = __webpack_require__(\"be13\");\nmodule.exports = function (it) {\n return Object(defined(it));\n};\n\n\n/***/ }),\n\n/***/ \"5147\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar MATCH = __webpack_require__(\"2b4c\")('match');\nmodule.exports = function (KEY) {\n var re = /./;\n try {\n '/./'[KEY](re);\n } catch (e) {\n try {\n re[MATCH] = false;\n return !'/./'[KEY](re);\n } catch (f) { /* empty */ }\n } return true;\n};\n\n\n/***/ }),\n\n/***/ \"520a\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar regexpFlags = __webpack_require__(\"0bfb\");\n\nvar nativeExec = RegExp.prototype.exec;\n// This always refers to the native implementation, because the\n// String#replace polyfill uses ./fix-regexp-well-known-symbol-logic.js,\n// which loads this file before patching the method.\nvar nativeReplace = String.prototype.replace;\n\nvar patchedExec = nativeExec;\n\nvar LAST_INDEX = 'lastIndex';\n\nvar UPDATES_LAST_INDEX_WRONG = (function () {\n var re1 = /a/,\n re2 = /b*/g;\n nativeExec.call(re1, 'a');\n nativeExec.call(re2, 'a');\n return re1[LAST_INDEX] !== 0 || re2[LAST_INDEX] !== 0;\n})();\n\n// nonparticipating capturing group, copied from es5-shim's String#split patch.\nvar NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;\n\nvar PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED;\n\nif (PATCH) {\n patchedExec = function exec(str) {\n var re = this;\n var lastIndex, reCopy, match, i;\n\n if (NPCG_INCLUDED) {\n reCopy = new RegExp('^' + re.source + '$(?!\\\\s)', regexpFlags.call(re));\n }\n if (UPDATES_LAST_INDEX_WRONG) lastIndex = re[LAST_INDEX];\n\n match = nativeExec.call(re, str);\n\n if (UPDATES_LAST_INDEX_WRONG && match) {\n re[LAST_INDEX] = re.global ? match.index + match[0].length : lastIndex;\n }\n if (NPCG_INCLUDED && match && match.length > 1) {\n // Fix browsers whose `exec` methods don't consistently return `undefined`\n // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/\n // eslint-disable-next-line no-loop-func\n nativeReplace.call(match[0], reCopy, function () {\n for (i = 1; i < arguments.length - 2; i++) {\n if (arguments[i] === undefined) match[i] = undefined;\n }\n });\n }\n\n return match;\n };\n}\n\nmodule.exports = patchedExec;\n\n\n/***/ }),\n\n/***/ \"52a7\":\n/***/ (function(module, exports) {\n\nexports.f = {}.propertyIsEnumerable;\n\n\n/***/ }),\n\n/***/ \"5537\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar core = __webpack_require__(\"8378\");\nvar global = __webpack_require__(\"7726\");\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: core.version,\n mode: __webpack_require__(\"2d00\") ? 'pure' : 'global',\n copyright: '© 2019 Denis Pushkarev (zloirock.ru)'\n});\n\n\n/***/ }),\n\n/***/ \"5ca1\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(\"7726\");\nvar core = __webpack_require__(\"8378\");\nvar hide = __webpack_require__(\"32e9\");\nvar redefine = __webpack_require__(\"2aba\");\nvar ctx = __webpack_require__(\"9b43\");\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE];\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {});\n var key, own, out, exp;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n // export native or passed\n out = (own ? target : source)[key];\n // bind timers to global for call from export context\n exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // extend global\n if (target) redefine(target, key, out, type & $export.U);\n // export\n if (exports[key] != out) hide(exports, key, exp);\n if (IS_PROTO && expProto[key] != out) expProto[key] = out;\n }\n};\nglobal.core = core;\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n\n\n/***/ }),\n\n/***/ \"5eda\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// most Object methods by ES6 should accept primitives\nvar $export = __webpack_require__(\"5ca1\");\nvar core = __webpack_require__(\"8378\");\nvar fails = __webpack_require__(\"79e5\");\nmodule.exports = function (KEY, exec) {\n var fn = (core.Object || {})[KEY] || Object[KEY];\n var exp = {};\n exp[KEY] = exec(fn);\n $export($export.S + $export.F * fails(function () { fn(1); }), 'Object', exp);\n};\n\n\n/***/ }),\n\n/***/ \"5f1b\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar classof = __webpack_require__(\"23c6\");\nvar builtinExec = RegExp.prototype.exec;\n\n // `RegExpExec` abstract operation\n// https://tc39.github.io/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n var exec = R.exec;\n if (typeof exec === 'function') {\n var result = exec.call(R, S);\n if (typeof result !== 'object') {\n throw new TypeError('RegExp exec method returned something other than an Object or null');\n }\n return result;\n }\n if (classof(R) !== 'RegExp') {\n throw new TypeError('RegExp#exec called on incompatible receiver');\n }\n return builtinExec.call(R, S);\n};\n\n\n/***/ }),\n\n/***/ \"613b\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar shared = __webpack_require__(\"5537\")('keys');\nvar uid = __webpack_require__(\"ca5a\");\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n\n\n/***/ }),\n\n/***/ \"626a\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = __webpack_require__(\"2d95\");\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n\n\n/***/ }),\n\n/***/ \"6762\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// https://github.com/tc39/Array.prototype.includes\nvar $export = __webpack_require__(\"5ca1\");\nvar $includes = __webpack_require__(\"c366\")(true);\n\n$export($export.P, 'Array', {\n includes: function includes(el /* , fromIndex = 0 */) {\n return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n__webpack_require__(\"9c6c\")('includes');\n\n\n/***/ }),\n\n/***/ \"6821\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = __webpack_require__(\"626a\");\nvar defined = __webpack_require__(\"be13\");\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n\n\n/***/ }),\n\n/***/ \"69a8\":\n/***/ (function(module, exports) {\n\nvar hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n\n\n/***/ }),\n\n/***/ \"6a99\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = __webpack_require__(\"d3f4\");\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n\n\n/***/ }),\n\n/***/ \"7333\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// 19.1.2.1 Object.assign(target, source, ...)\nvar getKeys = __webpack_require__(\"0d58\");\nvar gOPS = __webpack_require__(\"2621\");\nvar pIE = __webpack_require__(\"52a7\");\nvar toObject = __webpack_require__(\"4bf8\");\nvar IObject = __webpack_require__(\"626a\");\nvar $assign = Object.assign;\n\n// should work with symbols and should have deterministic property order (V8 bug)\nmodule.exports = !$assign || __webpack_require__(\"79e5\")(function () {\n var A = {};\n var B = {};\n // eslint-disable-next-line no-undef\n var S = Symbol();\n var K = 'abcdefghijklmnopqrst';\n A[S] = 7;\n K.split('').forEach(function (k) { B[k] = k; });\n return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\n var T = toObject(target);\n var aLen = arguments.length;\n var index = 1;\n var getSymbols = gOPS.f;\n var isEnum = pIE.f;\n while (aLen > index) {\n var S = IObject(arguments[index++]);\n var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) if (isEnum.call(S, key = keys[j++])) T[key] = S[key];\n } return T;\n} : $assign;\n\n\n/***/ }),\n\n/***/ \"7726\":\n/***/ (function(module, exports) {\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n\n\n/***/ }),\n\n/***/ \"77f1\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(\"4588\");\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n\n\n/***/ }),\n\n/***/ \"79e5\":\n/***/ (function(module, exports) {\n\nmodule.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n\n\n/***/ }),\n\n/***/ \"7f20\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar def = __webpack_require__(\"86cc\").f;\nvar has = __webpack_require__(\"69a8\");\nvar TAG = __webpack_require__(\"2b4c\")('toStringTag');\n\nmodule.exports = function (it, tag, stat) {\n if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });\n};\n\n\n/***/ }),\n\n/***/ \"8378\":\n/***/ (function(module, exports) {\n\nvar core = module.exports = { version: '2.6.5' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n\n\n/***/ }),\n\n/***/ \"84f2\":\n/***/ (function(module, exports) {\n\nmodule.exports = {};\n\n\n/***/ }),\n\n/***/ \"86cc\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar anObject = __webpack_require__(\"cb7c\");\nvar IE8_DOM_DEFINE = __webpack_require__(\"c69a\");\nvar toPrimitive = __webpack_require__(\"6a99\");\nvar dP = Object.defineProperty;\n\nexports.f = __webpack_require__(\"9e1e\") ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n\n\n/***/ }),\n\n/***/ \"9b43\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// optional / simple context binding\nvar aFunction = __webpack_require__(\"d8e8\");\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n\n\n/***/ }),\n\n/***/ \"9c6c\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 22.1.3.31 Array.prototype[@@unscopables]\nvar UNSCOPABLES = __webpack_require__(\"2b4c\")('unscopables');\nvar ArrayProto = Array.prototype;\nif (ArrayProto[UNSCOPABLES] == undefined) __webpack_require__(\"32e9\")(ArrayProto, UNSCOPABLES, {});\nmodule.exports = function (key) {\n ArrayProto[UNSCOPABLES][key] = true;\n};\n\n\n/***/ }),\n\n/***/ \"9def\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 7.1.15 ToLength\nvar toInteger = __webpack_require__(\"4588\");\nvar min = Math.min;\nmodule.exports = function (it) {\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n\n\n/***/ }),\n\n/***/ \"9e1e\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !__webpack_require__(\"79e5\")(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n\n\n/***/ }),\n\n/***/ \"a352\":\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_a352__;\n\n/***/ }),\n\n/***/ \"a481\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar anObject = __webpack_require__(\"cb7c\");\nvar toObject = __webpack_require__(\"4bf8\");\nvar toLength = __webpack_require__(\"9def\");\nvar toInteger = __webpack_require__(\"4588\");\nvar advanceStringIndex = __webpack_require__(\"0390\");\nvar regExpExec = __webpack_require__(\"5f1b\");\nvar max = Math.max;\nvar min = Math.min;\nvar floor = Math.floor;\nvar SUBSTITUTION_SYMBOLS = /\\$([$&`']|\\d\\d?|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&`']|\\d\\d?)/g;\n\nvar maybeToString = function (it) {\n return it === undefined ? it : String(it);\n};\n\n// @@replace logic\n__webpack_require__(\"214f\")('replace', 2, function (defined, REPLACE, $replace, maybeCallNative) {\n return [\n // `String.prototype.replace` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.replace\n function replace(searchValue, replaceValue) {\n var O = defined(this);\n var fn = searchValue == undefined ? undefined : searchValue[REPLACE];\n return fn !== undefined\n ? fn.call(searchValue, O, replaceValue)\n : $replace.call(String(O), searchValue, replaceValue);\n },\n // `RegExp.prototype[@@replace]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@replace\n function (regexp, replaceValue) {\n var res = maybeCallNative($replace, regexp, this, replaceValue);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\n var functionalReplace = typeof replaceValue === 'function';\n if (!functionalReplace) replaceValue = String(replaceValue);\n var global = rx.global;\n if (global) {\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n }\n var results = [];\n while (true) {\n var result = regExpExec(rx, S);\n if (result === null) break;\n results.push(result);\n if (!global) break;\n var matchStr = String(result[0]);\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n }\n var accumulatedResult = '';\n var nextSourcePosition = 0;\n for (var i = 0; i < results.length; i++) {\n result = results[i];\n var matched = String(result[0]);\n var position = max(min(toInteger(result.index), S.length), 0);\n var captures = [];\n // NOTE: This is equivalent to\n // captures = result.slice(1).map(maybeToString)\n // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\n // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\n // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\n for (var j = 1; j < result.length; j++) captures.push(maybeToString(result[j]));\n var namedCaptures = result.groups;\n if (functionalReplace) {\n var replacerArgs = [matched].concat(captures, position, S);\n if (namedCaptures !== undefined) replacerArgs.push(namedCaptures);\n var replacement = String(replaceValue.apply(undefined, replacerArgs));\n } else {\n replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n }\n if (position >= nextSourcePosition) {\n accumulatedResult += S.slice(nextSourcePosition, position) + replacement;\n nextSourcePosition = position + matched.length;\n }\n }\n return accumulatedResult + S.slice(nextSourcePosition);\n }\n ];\n\n // https://tc39.github.io/ecma262/#sec-getsubstitution\n function getSubstitution(matched, str, position, captures, namedCaptures, replacement) {\n var tailPos = position + matched.length;\n var m = captures.length;\n var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n if (namedCaptures !== undefined) {\n namedCaptures = toObject(namedCaptures);\n symbols = SUBSTITUTION_SYMBOLS;\n }\n return $replace.call(replacement, symbols, function (match, ch) {\n var capture;\n switch (ch.charAt(0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return str.slice(0, position);\n case \"'\": return str.slice(tailPos);\n case '<':\n capture = namedCaptures[ch.slice(1, -1)];\n break;\n default: // \\d\\d?\n var n = +ch;\n if (n === 0) return match;\n if (n > m) {\n var f = floor(n / 10);\n if (f === 0) return match;\n if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\n }\n});\n\n\n/***/ }),\n\n/***/ \"aae3\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 7.2.8 IsRegExp(argument)\nvar isObject = __webpack_require__(\"d3f4\");\nvar cof = __webpack_require__(\"2d95\");\nvar MATCH = __webpack_require__(\"2b4c\")('match');\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : cof(it) == 'RegExp');\n};\n\n\n/***/ }),\n\n/***/ \"ac6a\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar $iterators = __webpack_require__(\"cadf\");\nvar getKeys = __webpack_require__(\"0d58\");\nvar redefine = __webpack_require__(\"2aba\");\nvar global = __webpack_require__(\"7726\");\nvar hide = __webpack_require__(\"32e9\");\nvar Iterators = __webpack_require__(\"84f2\");\nvar wks = __webpack_require__(\"2b4c\");\nvar ITERATOR = wks('iterator');\nvar TO_STRING_TAG = wks('toStringTag');\nvar ArrayValues = Iterators.Array;\n\nvar DOMIterables = {\n CSSRuleList: true, // TODO: Not spec compliant, should be false.\n CSSStyleDeclaration: false,\n CSSValueList: false,\n ClientRectList: false,\n DOMRectList: false,\n DOMStringList: false,\n DOMTokenList: true,\n DataTransferItemList: false,\n FileList: false,\n HTMLAllCollection: false,\n HTMLCollection: false,\n HTMLFormElement: false,\n HTMLSelectElement: false,\n MediaList: true, // TODO: Not spec compliant, should be false.\n MimeTypeArray: false,\n NamedNodeMap: false,\n NodeList: true,\n PaintRequestList: false,\n Plugin: false,\n PluginArray: false,\n SVGLengthList: false,\n SVGNumberList: false,\n SVGPathSegList: false,\n SVGPointList: false,\n SVGStringList: false,\n SVGTransformList: false,\n SourceBufferList: false,\n StyleSheetList: true, // TODO: Not spec compliant, should be false.\n TextTrackCueList: false,\n TextTrackList: false,\n TouchList: false\n};\n\nfor (var collections = getKeys(DOMIterables), i = 0; i < collections.length; i++) {\n var NAME = collections[i];\n var explicit = DOMIterables[NAME];\n var Collection = global[NAME];\n var proto = Collection && Collection.prototype;\n var key;\n if (proto) {\n if (!proto[ITERATOR]) hide(proto, ITERATOR, ArrayValues);\n if (!proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);\n Iterators[NAME] = ArrayValues;\n if (explicit) for (key in $iterators) if (!proto[key]) redefine(proto, key, $iterators[key], true);\n }\n}\n\n\n/***/ }),\n\n/***/ \"b0c5\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar regexpExec = __webpack_require__(\"520a\");\n__webpack_require__(\"5ca1\")({\n target: 'RegExp',\n proto: true,\n forced: regexpExec !== /./.exec\n}, {\n exec: regexpExec\n});\n\n\n/***/ }),\n\n/***/ \"be13\":\n/***/ (function(module, exports) {\n\n// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n\n\n/***/ }),\n\n/***/ \"c366\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = __webpack_require__(\"6821\");\nvar toLength = __webpack_require__(\"9def\");\nvar toAbsoluteIndex = __webpack_require__(\"77f1\");\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\n\n/***/ }),\n\n/***/ \"c649\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(global) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return insertNodeAt; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return camelize; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return console; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"d\", function() { return removeNode; });\n/* harmony import */ var core_js_modules_es6_regexp_replace__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(\"a481\");\n/* harmony import */ var core_js_modules_es6_regexp_replace__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_regexp_replace__WEBPACK_IMPORTED_MODULE_0__);\n\n\nfunction getConsole() {\n if (typeof window !== \"undefined\") {\n return window.console;\n }\n\n return global.console;\n}\n\nvar console = getConsole();\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\nvar regex = /-(\\w)/g;\nvar camelize = cached(function (str) {\n return str.replace(regex, function (_, c) {\n return c ? c.toUpperCase() : \"\";\n });\n});\n\nfunction removeNode(node) {\n if (node.parentElement !== null) {\n node.parentElement.removeChild(node);\n }\n}\n\nfunction insertNodeAt(fatherNode, node, position) {\n var refNode = position === 0 ? fatherNode.children[0] : fatherNode.children[position - 1].nextSibling;\n fatherNode.insertBefore(node, refNode);\n}\n\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(\"c8ba\")))\n\n/***/ }),\n\n/***/ \"c69a\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = !__webpack_require__(\"9e1e\") && !__webpack_require__(\"79e5\")(function () {\n return Object.defineProperty(__webpack_require__(\"230e\")('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n\n\n/***/ }),\n\n/***/ \"c8ba\":\n/***/ (function(module, exports) {\n\nvar g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n\n\n/***/ }),\n\n/***/ \"ca5a\":\n/***/ (function(module, exports) {\n\nvar id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n\n\n/***/ }),\n\n/***/ \"cadf\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar addToUnscopables = __webpack_require__(\"9c6c\");\nvar step = __webpack_require__(\"d53b\");\nvar Iterators = __webpack_require__(\"84f2\");\nvar toIObject = __webpack_require__(\"6821\");\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = __webpack_require__(\"01f9\")(Array, 'Array', function (iterated, kind) {\n this._t = toIObject(iterated); // target\n this._i = 0; // next index\n this._k = kind; // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var kind = this._k;\n var index = this._i++;\n if (!O || index >= O.length) {\n this._t = undefined;\n return step(1);\n }\n if (kind == 'keys') return step(0, index);\n if (kind == 'values') return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n\n/***/ }),\n\n/***/ \"cb7c\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(\"d3f4\");\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n\n\n/***/ }),\n\n/***/ \"ce10\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar has = __webpack_require__(\"69a8\");\nvar toIObject = __webpack_require__(\"6821\");\nvar arrayIndexOf = __webpack_require__(\"c366\")(false);\nvar IE_PROTO = __webpack_require__(\"613b\")('IE_PROTO');\n\nmodule.exports = function (object, names) {\n var O = toIObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\n\n\n/***/ }),\n\n/***/ \"d2c8\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// helper for String#{startsWith, endsWith, includes}\nvar isRegExp = __webpack_require__(\"aae3\");\nvar defined = __webpack_require__(\"be13\");\n\nmodule.exports = function (that, searchString, NAME) {\n if (isRegExp(searchString)) throw TypeError('String#' + NAME + \" doesn't accept regex!\");\n return String(defined(that));\n};\n\n\n/***/ }),\n\n/***/ \"d3f4\":\n/***/ (function(module, exports) {\n\nmodule.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n\n\n/***/ }),\n\n/***/ \"d53b\":\n/***/ (function(module, exports) {\n\nmodule.exports = function (done, value) {\n return { value: value, done: !!done };\n};\n\n\n/***/ }),\n\n/***/ \"d8e8\":\n/***/ (function(module, exports) {\n\nmodule.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n\n\n/***/ }),\n\n/***/ \"e11e\":\n/***/ (function(module, exports) {\n\n// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n\n\n/***/ }),\n\n/***/ \"f559\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n// 21.1.3.18 String.prototype.startsWith(searchString [, position ])\n\nvar $export = __webpack_require__(\"5ca1\");\nvar toLength = __webpack_require__(\"9def\");\nvar context = __webpack_require__(\"d2c8\");\nvar STARTS_WITH = 'startsWith';\nvar $startsWith = ''[STARTS_WITH];\n\n$export($export.P + $export.F * __webpack_require__(\"5147\")(STARTS_WITH), 'String', {\n startsWith: function startsWith(searchString /* , position = 0 */) {\n var that = context(this, searchString, STARTS_WITH);\n var index = toLength(Math.min(arguments.length > 1 ? arguments[1] : undefined, that.length));\n var search = String(searchString);\n return $startsWith\n ? $startsWith.call(that, search, index)\n : that.slice(index, index + search.length) === search;\n }\n});\n\n\n/***/ }),\n\n/***/ \"f6fd\":\n/***/ (function(module, exports) {\n\n// document.currentScript polyfill by Adam Miller\n\n// MIT license\n\n(function(document){\n var currentScript = \"currentScript\",\n scripts = document.getElementsByTagName('script'); // Live NodeList collection\n\n // If browser needs currentScript polyfill, add get currentScript() to the document object\n if (!(currentScript in document)) {\n Object.defineProperty(document, currentScript, {\n get: function(){\n\n // IE 6-10 supports script readyState\n // IE 10+ support stack trace\n try { throw new Error(); }\n catch (err) {\n\n // Find the second match for the \"at\" string to get file src url from stack.\n // Specifically works with the format of stack traces in IE.\n var i, res = ((/.*at [^\\(]*\\((.*):.+:.+\\)$/ig).exec(err.stack) || [false])[1];\n\n // For all scripts on the page, if src matches or if ready state is interactive, return the script tag\n for(i in scripts){\n if(scripts[i].src == res || scripts[i].readyState == \"interactive\"){\n return scripts[i];\n }\n }\n\n // If no match, return null\n return null;\n }\n }\n });\n }\n})(document);\n\n\n/***/ }),\n\n/***/ \"f751\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.3.1 Object.assign(target, source)\nvar $export = __webpack_require__(\"5ca1\");\n\n$export($export.S + $export.F, 'Object', { assign: __webpack_require__(\"7333\") });\n\n\n/***/ }),\n\n/***/ \"fa5b\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(\"5537\")('native-function-to-string', Function.toString);\n\n\n/***/ }),\n\n/***/ \"fab2\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar document = __webpack_require__(\"7726\").document;\nmodule.exports = document && document.documentElement;\n\n\n/***/ }),\n\n/***/ \"fb15\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n// ESM COMPAT FLAG\n__webpack_require__.r(__webpack_exports__);\n\n// CONCATENATED MODULE: ./node_modules/@vue/cli-service/lib/commands/build/setPublicPath.js\n// This file is imported into lib/wc client bundles.\n\nif (typeof window !== 'undefined') {\n if (true) {\n __webpack_require__(\"f6fd\")\n }\n\n var setPublicPath_i\n if ((setPublicPath_i = window.document.currentScript) && (setPublicPath_i = setPublicPath_i.src.match(/(.+\\/)[^/]+\\.js(\\?.*)?$/))) {\n __webpack_require__.p = setPublicPath_i[1] // eslint-disable-line\n }\n}\n\n// Indicate to webpack that this file can be concatenated\n/* harmony default export */ var setPublicPath = (null);\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es6.object.assign.js\nvar es6_object_assign = __webpack_require__(\"f751\");\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es6.string.starts-with.js\nvar es6_string_starts_with = __webpack_require__(\"f559\");\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/web.dom.iterable.js\nvar web_dom_iterable = __webpack_require__(\"ac6a\");\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es6.array.iterator.js\nvar es6_array_iterator = __webpack_require__(\"cadf\");\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es6.object.keys.js\nvar es6_object_keys = __webpack_require__(\"456d\");\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js\nfunction _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/slicedToArray.js\n\n\n\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es7.array.includes.js\nvar es7_array_includes = __webpack_require__(\"6762\");\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es6.string.includes.js\nvar es6_string_includes = __webpack_require__(\"2fdb\");\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/iterableToArray.js\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js\n\n\n\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\n// EXTERNAL MODULE: external {\"commonjs\":\"sortablejs\",\"commonjs2\":\"sortablejs\",\"amd\":\"sortablejs\",\"root\":\"Sortable\"}\nvar external_commonjs_sortablejs_commonjs2_sortablejs_amd_sortablejs_root_Sortable_ = __webpack_require__(\"a352\");\nvar external_commonjs_sortablejs_commonjs2_sortablejs_amd_sortablejs_root_Sortable_default = /*#__PURE__*/__webpack_require__.n(external_commonjs_sortablejs_commonjs2_sortablejs_amd_sortablejs_root_Sortable_);\n\n// EXTERNAL MODULE: ./src/util/helper.js\nvar helper = __webpack_require__(\"c649\");\n\n// CONCATENATED MODULE: ./src/vuedraggable.js\n\n\n\n\n\n\n\n\n\n\n\n\nfunction buildAttribute(object, propName, value) {\n if (value === undefined) {\n return object;\n }\n\n object = object || {};\n object[propName] = value;\n return object;\n}\n\nfunction computeVmIndex(vnodes, element) {\n return vnodes.map(function (elt) {\n return elt.elm;\n }).indexOf(element);\n}\n\nfunction _computeIndexes(slots, children, isTransition, footerOffset) {\n if (!slots) {\n return [];\n }\n\n var elmFromNodes = slots.map(function (elt) {\n return elt.elm;\n });\n var footerIndex = children.length - footerOffset;\n\n var rawIndexes = _toConsumableArray(children).map(function (elt, idx) {\n return idx >= footerIndex ? elmFromNodes.length : elmFromNodes.indexOf(elt);\n });\n\n return isTransition ? rawIndexes.filter(function (ind) {\n return ind !== -1;\n }) : rawIndexes;\n}\n\nfunction emit(evtName, evtData) {\n var _this = this;\n\n this.$nextTick(function () {\n return _this.$emit(evtName.toLowerCase(), evtData);\n });\n}\n\nfunction delegateAndEmit(evtName) {\n var _this2 = this;\n\n return function (evtData) {\n if (_this2.realList !== null) {\n _this2[\"onDrag\" + evtName](evtData);\n }\n\n emit.call(_this2, evtName, evtData);\n };\n}\n\nfunction isTransitionName(name) {\n return [\"transition-group\", \"TransitionGroup\"].includes(name);\n}\n\nfunction vuedraggable_isTransition(slots) {\n if (!slots || slots.length !== 1) {\n return false;\n }\n\n var _slots = _slicedToArray(slots, 1),\n componentOptions = _slots[0].componentOptions;\n\n if (!componentOptions) {\n return false;\n }\n\n return isTransitionName(componentOptions.tag);\n}\n\nfunction getSlot(slot, scopedSlot, key) {\n return slot[key] || (scopedSlot[key] ? scopedSlot[key]() : undefined);\n}\n\nfunction computeChildrenAndOffsets(children, slot, scopedSlot) {\n var headerOffset = 0;\n var footerOffset = 0;\n var header = getSlot(slot, scopedSlot, \"header\");\n\n if (header) {\n headerOffset = header.length;\n children = children ? [].concat(_toConsumableArray(header), _toConsumableArray(children)) : _toConsumableArray(header);\n }\n\n var footer = getSlot(slot, scopedSlot, \"footer\");\n\n if (footer) {\n footerOffset = footer.length;\n children = children ? [].concat(_toConsumableArray(children), _toConsumableArray(footer)) : _toConsumableArray(footer);\n }\n\n return {\n children: children,\n headerOffset: headerOffset,\n footerOffset: footerOffset\n };\n}\n\nfunction getComponentAttributes($attrs, componentData) {\n var attributes = null;\n\n var update = function update(name, value) {\n attributes = buildAttribute(attributes, name, value);\n };\n\n var attrs = Object.keys($attrs).filter(function (key) {\n return key === \"id\" || key.startsWith(\"data-\");\n }).reduce(function (res, key) {\n res[key] = $attrs[key];\n return res;\n }, {});\n update(\"attrs\", attrs);\n\n if (!componentData) {\n return attributes;\n }\n\n var on = componentData.on,\n props = componentData.props,\n componentDataAttrs = componentData.attrs;\n update(\"on\", on);\n update(\"props\", props);\n Object.assign(attributes.attrs, componentDataAttrs);\n return attributes;\n}\n\nvar eventsListened = [\"Start\", \"Add\", \"Remove\", \"Update\", \"End\"];\nvar eventsToEmit = [\"Choose\", \"Unchoose\", \"Sort\", \"Filter\", \"Clone\"];\nvar readonlyProperties = [\"Move\"].concat(eventsListened, eventsToEmit).map(function (evt) {\n return \"on\" + evt;\n});\nvar draggingElement = null;\nvar props = {\n options: Object,\n list: {\n type: Array,\n required: false,\n default: null\n },\n value: {\n type: Array,\n required: false,\n default: null\n },\n noTransitionOnDrag: {\n type: Boolean,\n default: false\n },\n clone: {\n type: Function,\n default: function _default(original) {\n return original;\n }\n },\n element: {\n type: String,\n default: \"div\"\n },\n tag: {\n type: String,\n default: null\n },\n move: {\n type: Function,\n default: null\n },\n componentData: {\n type: Object,\n required: false,\n default: null\n }\n};\nvar draggableComponent = {\n name: \"draggable\",\n inheritAttrs: false,\n props: props,\n data: function data() {\n return {\n transitionMode: false,\n noneFunctionalComponentMode: false\n };\n },\n render: function render(h) {\n var slots = this.$slots.default;\n this.transitionMode = vuedraggable_isTransition(slots);\n\n var _computeChildrenAndOf = computeChildrenAndOffsets(slots, this.$slots, this.$scopedSlots),\n children = _computeChildrenAndOf.children,\n headerOffset = _computeChildrenAndOf.headerOffset,\n footerOffset = _computeChildrenAndOf.footerOffset;\n\n this.headerOffset = headerOffset;\n this.footerOffset = footerOffset;\n var attributes = getComponentAttributes(this.$attrs, this.componentData);\n return h(this.getTag(), attributes, children);\n },\n created: function created() {\n if (this.list !== null && this.value !== null) {\n helper[\"b\" /* console */].error(\"Value and list props are mutually exclusive! Please set one or another.\");\n }\n\n if (this.element !== \"div\") {\n helper[\"b\" /* console */].warn(\"Element props is deprecated please use tag props instead. See https://github.com/SortableJS/Vue.Draggable/blob/master/documentation/migrate.md#element-props\");\n }\n\n if (this.options !== undefined) {\n helper[\"b\" /* console */].warn(\"Options props is deprecated, add sortable options directly as vue.draggable item, or use v-bind. See https://github.com/SortableJS/Vue.Draggable/blob/master/documentation/migrate.md#options-props\");\n }\n },\n mounted: function mounted() {\n var _this3 = this;\n\n this.noneFunctionalComponentMode = this.getTag().toLowerCase() !== this.$el.nodeName.toLowerCase() && !this.getIsFunctional();\n\n if (this.noneFunctionalComponentMode && this.transitionMode) {\n throw new Error(\"Transition-group inside component is not supported. Please alter tag value or remove transition-group. Current tag value: \".concat(this.getTag()));\n }\n\n var optionsAdded = {};\n eventsListened.forEach(function (elt) {\n optionsAdded[\"on\" + elt] = delegateAndEmit.call(_this3, elt);\n });\n eventsToEmit.forEach(function (elt) {\n optionsAdded[\"on\" + elt] = emit.bind(_this3, elt);\n });\n var attributes = Object.keys(this.$attrs).reduce(function (res, key) {\n res[Object(helper[\"a\" /* camelize */])(key)] = _this3.$attrs[key];\n return res;\n }, {});\n var options = Object.assign({}, this.options, attributes, optionsAdded, {\n onMove: function onMove(evt, originalEvent) {\n return _this3.onDragMove(evt, originalEvent);\n }\n });\n !(\"draggable\" in options) && (options.draggable = \">*\");\n this._sortable = new external_commonjs_sortablejs_commonjs2_sortablejs_amd_sortablejs_root_Sortable_default.a(this.rootContainer, options);\n this.computeIndexes();\n },\n beforeDestroy: function beforeDestroy() {\n if (this._sortable !== undefined) this._sortable.destroy();\n },\n computed: {\n rootContainer: function rootContainer() {\n return this.transitionMode ? this.$el.children[0] : this.$el;\n },\n realList: function realList() {\n return this.list ? this.list : this.value;\n }\n },\n watch: {\n options: {\n handler: function handler(newOptionValue) {\n this.updateOptions(newOptionValue);\n },\n deep: true\n },\n $attrs: {\n handler: function handler(newOptionValue) {\n this.updateOptions(newOptionValue);\n },\n deep: true\n },\n realList: function realList() {\n this.computeIndexes();\n }\n },\n methods: {\n getIsFunctional: function getIsFunctional() {\n var fnOptions = this._vnode.fnOptions;\n return fnOptions && fnOptions.functional;\n },\n getTag: function getTag() {\n return this.tag || this.element;\n },\n updateOptions: function updateOptions(newOptionValue) {\n for (var property in newOptionValue) {\n var value = Object(helper[\"a\" /* camelize */])(property);\n\n if (readonlyProperties.indexOf(value) === -1) {\n this._sortable.option(value, newOptionValue[property]);\n }\n }\n },\n getChildrenNodes: function getChildrenNodes() {\n if (this.noneFunctionalComponentMode) {\n return this.$children[0].$slots.default;\n }\n\n var rawNodes = this.$slots.default;\n return this.transitionMode ? rawNodes[0].child.$slots.default : rawNodes;\n },\n computeIndexes: function computeIndexes() {\n var _this4 = this;\n\n this.$nextTick(function () {\n _this4.visibleIndexes = _computeIndexes(_this4.getChildrenNodes(), _this4.rootContainer.children, _this4.transitionMode, _this4.footerOffset);\n });\n },\n getUnderlyingVm: function getUnderlyingVm(htmlElt) {\n var index = computeVmIndex(this.getChildrenNodes() || [], htmlElt);\n\n if (index === -1) {\n //Edge case during move callback: related element might be\n //an element different from collection\n return null;\n }\n\n var element = this.realList[index];\n return {\n index: index,\n element: element\n };\n },\n getUnderlyingPotencialDraggableComponent: function getUnderlyingPotencialDraggableComponent(_ref) {\n var vue = _ref.__vue__;\n\n if (!vue || !vue.$options || !isTransitionName(vue.$options._componentTag)) {\n if (!(\"realList\" in vue) && vue.$children.length === 1 && \"realList\" in vue.$children[0]) return vue.$children[0];\n return vue;\n }\n\n return vue.$parent;\n },\n emitChanges: function emitChanges(evt) {\n var _this5 = this;\n\n this.$nextTick(function () {\n _this5.$emit(\"change\", evt);\n });\n },\n alterList: function alterList(onList) {\n if (this.list) {\n onList(this.list);\n return;\n }\n\n var newList = _toConsumableArray(this.value);\n\n onList(newList);\n this.$emit(\"input\", newList);\n },\n spliceList: function spliceList() {\n var _arguments = arguments;\n\n var spliceList = function spliceList(list) {\n return list.splice.apply(list, _toConsumableArray(_arguments));\n };\n\n this.alterList(spliceList);\n },\n updatePosition: function updatePosition(oldIndex, newIndex) {\n var updatePosition = function updatePosition(list) {\n return list.splice(newIndex, 0, list.splice(oldIndex, 1)[0]);\n };\n\n this.alterList(updatePosition);\n },\n getRelatedContextFromMoveEvent: function getRelatedContextFromMoveEvent(_ref2) {\n var to = _ref2.to,\n related = _ref2.related;\n var component = this.getUnderlyingPotencialDraggableComponent(to);\n\n if (!component) {\n return {\n component: component\n };\n }\n\n var list = component.realList;\n var context = {\n list: list,\n component: component\n };\n\n if (to !== related && list && component.getUnderlyingVm) {\n var destination = component.getUnderlyingVm(related);\n\n if (destination) {\n return Object.assign(destination, context);\n }\n }\n\n return context;\n },\n getVmIndex: function getVmIndex(domIndex) {\n var indexes = this.visibleIndexes;\n var numberIndexes = indexes.length;\n return domIndex > numberIndexes - 1 ? numberIndexes : indexes[domIndex];\n },\n getComponent: function getComponent() {\n return this.$slots.default[0].componentInstance;\n },\n resetTransitionData: function resetTransitionData(index) {\n if (!this.noTransitionOnDrag || !this.transitionMode) {\n return;\n }\n\n var nodes = this.getChildrenNodes();\n nodes[index].data = null;\n var transitionContainer = this.getComponent();\n transitionContainer.children = [];\n transitionContainer.kept = undefined;\n },\n onDragStart: function onDragStart(evt) {\n this.context = this.getUnderlyingVm(evt.item);\n evt.item._underlying_vm_ = this.clone(this.context.element);\n draggingElement = evt.item;\n },\n onDragAdd: function onDragAdd(evt) {\n var element = evt.item._underlying_vm_;\n\n if (element === undefined) {\n return;\n }\n\n Object(helper[\"d\" /* removeNode */])(evt.item);\n var newIndex = this.getVmIndex(evt.newIndex);\n this.spliceList(newIndex, 0, element);\n this.computeIndexes();\n var added = {\n element: element,\n newIndex: newIndex\n };\n this.emitChanges({\n added: added\n });\n },\n onDragRemove: function onDragRemove(evt) {\n Object(helper[\"c\" /* insertNodeAt */])(this.rootContainer, evt.item, evt.oldIndex);\n\n if (evt.pullMode === \"clone\") {\n Object(helper[\"d\" /* removeNode */])(evt.clone);\n return;\n }\n\n var oldIndex = this.context.index;\n this.spliceList(oldIndex, 1);\n var removed = {\n element: this.context.element,\n oldIndex: oldIndex\n };\n this.resetTransitionData(oldIndex);\n this.emitChanges({\n removed: removed\n });\n },\n onDragUpdate: function onDragUpdate(evt) {\n Object(helper[\"d\" /* removeNode */])(evt.item);\n Object(helper[\"c\" /* insertNodeAt */])(evt.from, evt.item, evt.oldIndex);\n var oldIndex = this.context.index;\n var newIndex = this.getVmIndex(evt.newIndex);\n this.updatePosition(oldIndex, newIndex);\n var moved = {\n element: this.context.element,\n oldIndex: oldIndex,\n newIndex: newIndex\n };\n this.emitChanges({\n moved: moved\n });\n },\n updateProperty: function updateProperty(evt, propertyName) {\n evt.hasOwnProperty(propertyName) && (evt[propertyName] += this.headerOffset);\n },\n computeFutureIndex: function computeFutureIndex(relatedContext, evt) {\n if (!relatedContext.element) {\n return 0;\n }\n\n var domChildren = _toConsumableArray(evt.to.children).filter(function (el) {\n return el.style[\"display\"] !== \"none\";\n });\n\n var currentDOMIndex = domChildren.indexOf(evt.related);\n var currentIndex = relatedContext.component.getVmIndex(currentDOMIndex);\n var draggedInList = domChildren.indexOf(draggingElement) !== -1;\n return draggedInList || !evt.willInsertAfter ? currentIndex : currentIndex + 1;\n },\n onDragMove: function onDragMove(evt, originalEvent) {\n var onMove = this.move;\n\n if (!onMove || !this.realList) {\n return true;\n }\n\n var relatedContext = this.getRelatedContextFromMoveEvent(evt);\n var draggedContext = this.context;\n var futureIndex = this.computeFutureIndex(relatedContext, evt);\n Object.assign(draggedContext, {\n futureIndex: futureIndex\n });\n var sendEvt = Object.assign({}, evt, {\n relatedContext: relatedContext,\n draggedContext: draggedContext\n });\n return onMove(sendEvt, originalEvent);\n },\n onDragEnd: function onDragEnd() {\n this.computeIndexes();\n draggingElement = null;\n }\n }\n};\n\nif (typeof window !== \"undefined\" && \"Vue\" in window) {\n window.Vue.component(\"draggable\", draggableComponent);\n}\n\n/* harmony default export */ var vuedraggable = (draggableComponent);\n// CONCATENATED MODULE: ./node_modules/@vue/cli-service/lib/commands/build/entry-lib.js\n\n\n/* harmony default export */ var entry_lib = __webpack_exports__[\"default\"] = (vuedraggable);\n\n\n\n/***/ })\n\n/******/ })[\"default\"];\n});\n//# sourceMappingURL=vuedraggable.umd.js.map","module.exports = __WEBPACK_EXTERNAL_MODULE__4857__;","module.exports = __WEBPACK_EXTERNAL_MODULE__8794__;","module.exports = __WEBPACK_EXTERNAL_MODULE__3192__;","module.exports = __WEBPACK_EXTERNAL_MODULE__8070__;","module.exports = __WEBPACK_EXTERNAL_MODULE__748__;","module.exports = __WEBPACK_EXTERNAL_MODULE__390__;","module.exports = __WEBPACK_EXTERNAL_MODULE__590__;","'use strict';\nvar isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n if (isCallable(argument)) return argument;\n throw new $TypeError(tryToString(argument) + ' is not a function');\n};\n","'use strict';\nvar isObject = require('../internals/is-object');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n if (isObject(argument)) return argument;\n throw new $TypeError($String(argument) + ' is not an object');\n};\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = lengthOfArrayLike(O);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el !== el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value !== value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar isArray = require('../internals/is-array');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Safari < 13 does not throw an error in this case\nvar SILENT_ON_NON_WRITABLE_LENGTH_SET = DESCRIPTORS && !function () {\n // makes no sense without proper strict mode support\n if (this !== undefined) return true;\n try {\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty([], 'length', { writable: false }).length = 1;\n } catch (error) {\n return error instanceof TypeError;\n }\n}();\n\nmodule.exports = SILENT_ON_NON_WRITABLE_LENGTH_SET ? function (O, length) {\n if (isArray(O) && !getOwnPropertyDescriptor(O, 'length').writable) {\n throw new $TypeError('Cannot set read only .length');\n } return O.length = length;\n} : function (O, length) {\n return O.length = length;\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar toString = uncurryThis({}.toString);\nvar stringSlice = uncurryThis(''.slice);\n\nmodule.exports = function (it) {\n return stringSlice(toString(it), 8, -1);\n};\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar isCallable = require('../internals/is-callable');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar $Object = Object;\n\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) === 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = $Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) === 'Object' && isCallable(O.callee) ? 'Arguments' : result;\n};\n","'use strict';\nvar hasOwn = require('../internals/has-own-property');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source, exceptions) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) {\n defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n }\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","'use strict';\nmodule.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","'use strict';\nvar makeBuiltIn = require('../internals/make-built-in');\nvar defineProperty = require('../internals/object-define-property');\n\nmodule.exports = function (target, name, descriptor) {\n if (descriptor.get) makeBuiltIn(descriptor.get, name, { getter: true });\n if (descriptor.set) makeBuiltIn(descriptor.set, name, { setter: true });\n return defineProperty.f(target, name, descriptor);\n};\n","'use strict';\nvar isCallable = require('../internals/is-callable');\nvar definePropertyModule = require('../internals/object-define-property');\nvar makeBuiltIn = require('../internals/make-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nmodule.exports = function (O, key, value, options) {\n if (!options) options = {};\n var simple = options.enumerable;\n var name = options.name !== undefined ? options.name : key;\n if (isCallable(value)) makeBuiltIn(value, name, options);\n if (options.global) {\n if (simple) O[key] = value;\n else defineGlobalProperty(key, value);\n } else {\n try {\n if (!options.unsafe) delete O[key];\n else if (O[key]) simple = true;\n } catch (error) { /* empty */ }\n if (simple) O[key] = value;\n else definePropertyModule.f(O, key, {\n value: value,\n enumerable: false,\n configurable: !options.nonConfigurable,\n writable: !options.nonWritable\n });\n } return O;\n};\n","'use strict';\nvar global = require('../internals/global');\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n try {\n defineProperty(global, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","'use strict';\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (O, P) {\n if (!delete O[P]) throw new $TypeError('Cannot delete property ' + tryToString(P) + ' of ' + tryToString(O));\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] !== 7;\n});\n","'use strict';\nvar documentAll = typeof document == 'object' && document.all;\n\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot\n// eslint-disable-next-line unicorn/no-typeof-undefined -- required for testing\nvar IS_HTMLDDA = typeof documentAll == 'undefined' && documentAll !== undefined;\n\nmodule.exports = {\n all: documentAll,\n IS_HTMLDDA: IS_HTMLDDA\n};\n","'use strict';\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","'use strict';\nvar $TypeError = TypeError;\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF; // 2 ** 53 - 1 == 9007199254740991\n\nmodule.exports = function (it) {\n if (it > MAX_SAFE_INTEGER) throw $TypeError('Maximum allowed index exceeded');\n return it;\n};\n","'use strict';\nmodule.exports = typeof navigator != 'undefined' && String(navigator.userAgent) || '';\n","'use strict';\nvar global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar Deno = global.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n // but their correct versions are not interesting for us\n version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = +match[1];\n }\n}\n\nmodule.exports = version;\n","'use strict';\n// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","'use strict';\nvar global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.dontCallGetSet - prevent calling a getter on target\n options.name - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || defineGlobalProperty(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.dontCallGetSet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty == typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n defineBuiltIn(target, key, sourceProperty, options);\n }\n};\n","'use strict';\nmodule.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-function-prototype-bind -- safe\n var test = (function () { /* empty */ }).bind();\n // eslint-disable-next-line no-prototype-builtins -- safe\n return typeof test != 'function' || test.hasOwnProperty('prototype');\n});\n","'use strict';\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar call = Function.prototype.call;\n\nmodule.exports = NATIVE_BIND ? call.bind(call) : function () {\n return call.apply(call, arguments);\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar hasOwn = require('../internals/has-own-property');\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\nmodule.exports = {\n EXISTS: EXISTS,\n PROPER: PROPER,\n CONFIGURABLE: CONFIGURABLE\n};\n","'use strict';\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar call = FunctionPrototype.call;\nvar uncurryThisWithBind = NATIVE_BIND && FunctionPrototype.bind.bind(call, call);\n\nmodule.exports = NATIVE_BIND ? uncurryThisWithBind : function (fn) {\n return function () {\n return call.apply(fn, arguments);\n };\n};\n","'use strict';\nvar global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar aFunction = function (argument) {\n return isCallable(argument) ? argument : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method];\n};\n","'use strict';\nvar aCallable = require('../internals/a-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n var func = V[P];\n return isNullOrUndefined(func) ? undefined : aCallable(func);\n};\n","'use strict';\nvar check = function (it) {\n return it && it.Math === Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || this || Function('return this')();\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\n// eslint-disable-next-line es/no-object-hasown -- safe\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};\n","'use strict';\nmodule.exports = {};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thanks to IE8 for its funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a !== 7;\n});\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar $Object = Object;\nvar split = uncurryThis(''.split);\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !$Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) === 'String' ? split(it, '') : $Object(it);\n} : $Object;\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar store = require('../internals/shared-store');\n\nvar functionToString = uncurryThis(Function.toString);\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (!isCallable(store.inspectSource)) {\n store.inspectSource = function (it) {\n return functionToString(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","'use strict';\nvar NATIVE_WEAK_MAP = require('../internals/weak-map-basic-detection');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = global.TypeError;\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw new TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n /* eslint-disable no-self-assign -- prototype methods protection */\n store.get = store.get;\n store.has = store.has;\n store.set = store.set;\n /* eslint-enable no-self-assign -- prototype methods protection */\n set = function (it, metadata) {\n if (store.has(it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n store.set(it, metadata);\n return metadata;\n };\n get = function (it) {\n return store.get(it) || {};\n };\n has = function (it) {\n return store.has(it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (hasOwn(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return hasOwn(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return hasOwn(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","'use strict';\nvar classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.es/ecma262/#sec-isarray\n// eslint-disable-next-line es/no-array-isarray -- safe\nmodule.exports = Array.isArray || function isArray(argument) {\n return classof(argument) === 'Array';\n};\n","'use strict';\nvar $documentAll = require('../internals/document-all');\n\nvar documentAll = $documentAll.all;\n\n// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\nmodule.exports = $documentAll.IS_HTMLDDA ? function (argument) {\n return typeof argument == 'function' || argument === documentAll;\n} : function (argument) {\n return typeof argument == 'function';\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value === POLYFILL ? true\n : value === NATIVE ? false\n : isCallable(detection) ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","'use strict';\n// we can't use just `it == null` since of `document.all` special case\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec\nmodule.exports = function (it) {\n return it === null || it === undefined;\n};\n","'use strict';\nvar isCallable = require('../internals/is-callable');\nvar $documentAll = require('../internals/document-all');\n\nvar documentAll = $documentAll.all;\n\nmodule.exports = $documentAll.IS_HTMLDDA ? function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it) || it === documentAll;\n} : function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\n};\n","'use strict';\nmodule.exports = false;\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar $Object = Object;\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, $Object(it));\n};\n","'use strict';\nvar toLength = require('../internals/to-length');\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n return toLength(obj.length);\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar CONFIGURABLE_FUNCTION_NAME = require('../internals/function-name').CONFIGURABLE;\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\nvar $String = String;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\nvar stringSlice = uncurryThis(''.slice);\nvar replace = uncurryThis(''.replace);\nvar join = uncurryThis([].join);\n\nvar CONFIGURABLE_LENGTH = DESCRIPTORS && !fails(function () {\n return defineProperty(function () { /* empty */ }, 'length', { value: 8 }).length !== 8;\n});\n\nvar TEMPLATE = String(String).split('String');\n\nvar makeBuiltIn = module.exports = function (value, name, options) {\n if (stringSlice($String(name), 0, 7) === 'Symbol(') {\n name = '[' + replace($String(name), /^Symbol\\(([^)]*)\\)/, '$1') + ']';\n }\n if (options && options.getter) name = 'get ' + name;\n if (options && options.setter) name = 'set ' + name;\n if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {\n if (DESCRIPTORS) defineProperty(value, 'name', { value: name, configurable: true });\n else value.name = name;\n }\n if (CONFIGURABLE_LENGTH && options && hasOwn(options, 'arity') && value.length !== options.arity) {\n defineProperty(value, 'length', { value: options.arity });\n }\n try {\n if (options && hasOwn(options, 'constructor') && options.constructor) {\n if (DESCRIPTORS) defineProperty(value, 'prototype', { writable: false });\n // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable\n } else if (value.prototype) value.prototype = undefined;\n } catch (error) { /* empty */ }\n var state = enforceInternalState(value);\n if (!hasOwn(state, 'source')) {\n state.source = join(TEMPLATE, typeof name == 'string' ? name : '');\n } return value;\n};\n\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n// eslint-disable-next-line no-extend-native -- required\nFunction.prototype.toString = makeBuiltIn(function toString() {\n return isCallable(this) && getInternalState(this).source || inspectSource(this);\n}, 'toString');\n","'use strict';\nvar ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `Math.trunc` method\n// https://tc39.es/ecma262/#sec-math.trunc\n// eslint-disable-next-line es/no-math-trunc -- safe\nmodule.exports = Math.trunc || function trunc(x) {\n var n = +x;\n return (n > 0 ? floor : ceil)(n);\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar ENUMERABLE = 'enumerable';\nvar CONFIGURABLE = 'configurable';\nvar WRITABLE = 'writable';\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {\n var current = $getOwnPropertyDescriptor(O, P);\n if (current && current[WRITABLE]) {\n O[P] = Attributes.value;\n Attributes = {\n configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],\n enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],\n writable: false\n };\n }\n } return $defineProperty(O, P, Attributes);\n} : $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw new $TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar call = require('../internals/function-call');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n","'use strict';\nvar internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","'use strict';\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (hasOwn(O, key = names[i++])) {\n ~indexOf(result, key) || push(result, key);\n }\n return result;\n};\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","'use strict';\nvar call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar $TypeError = TypeError;\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n throw new $TypeError(\"Can't convert object to primitive value\");\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\nvar concat = uncurryThis([].concat);\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};\n","'use strict';\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\nvar $TypeError = TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (isNullOrUndefined(it)) throw new $TypeError(\"Can't call method on \" + it);\n return it;\n};\n","'use strict';\nvar shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","'use strict';\nvar global = require('../internals/global');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || defineGlobalProperty(SHARED, {});\n\nmodule.exports = store;\n","'use strict';\nvar IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.33.1',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2014-2023 Denis Pushkarev (zloirock.ru)',\n license: 'https://github.com/zloirock/core-js/blob/v3.33.1/LICENSE',\n source: 'https://github.com/zloirock/core-js'\n});\n","'use strict';\n/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\nvar global = require('../internals/global');\n\nvar $String = global.String;\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol('symbol detection');\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n // nb: Do not call `String` directly to avoid this being optimized out to `symbol+''` which will,\n // of course, fail.\n return !$String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toIntegerOrInfinity(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","'use strict';\n// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","'use strict';\nvar trunc = require('../internals/math-trunc');\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n var number = +argument;\n // eslint-disable-next-line no-self-compare -- NaN check\n return number !== number || number === 0 ? 0 : trunc(number);\n};\n","'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","'use strict';\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar $Object = Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return $Object(requireObjectCoercible(argument));\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar getMethod = require('../internals/get-method');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar $TypeError = TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input)) return input;\n var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n var result;\n if (exoticToPrim) {\n if (pref === undefined) pref = 'default';\n result = call(exoticToPrim, input, pref);\n if (!isObject(result) || isSymbol(result)) return result;\n throw new $TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n","'use strict';\nvar toPrimitive = require('../internals/to-primitive');\nvar isSymbol = require('../internals/is-symbol');\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : key + '';\n};\n","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","'use strict';\nvar classof = require('../internals/classof');\n\nvar $String = String;\n\nmodule.exports = function (argument) {\n if (classof(argument) === 'Symbol') throw new TypeError('Cannot convert a Symbol value to a string');\n return $String(argument);\n};\n","'use strict';\nvar $String = String;\n\nmodule.exports = function (argument) {\n try {\n return $String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.0.toString);\n\nmodule.exports = function (key) {\n return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n","'use strict';\n/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\nmodule.exports = NATIVE_SYMBOL\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\n\n// V8 ~ Chrome 36-\n// https://bugs.chromium.org/p/v8/issues/detail?id=3334\nmodule.exports = DESCRIPTORS && fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(function () { /* empty */ }, 'prototype', {\n value: 42,\n writable: false\n }).prototype !== 42;\n});\n","'use strict';\nvar $TypeError = TypeError;\n\nmodule.exports = function (passed, required) {\n if (passed < required) throw new $TypeError('Not enough arguments');\n return passed;\n};\n","'use strict';\nvar global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(String(WeakMap));\n","'use strict';\nvar global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar hasOwn = require('../internals/has-own-property');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar Symbol = global.Symbol;\nvar WellKnownSymbolsStore = shared('wks');\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol['for'] || Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name)) {\n WellKnownSymbolsStore[name] = NATIVE_SYMBOL && hasOwn(Symbol, name)\n ? Symbol[name]\n : createWellKnownSymbol('Symbol.' + name);\n } return WellKnownSymbolsStore[name];\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar setArrayLength = require('../internals/array-set-length');\nvar doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');\nvar fails = require('../internals/fails');\n\nvar INCORRECT_TO_LENGTH = fails(function () {\n return [].push.call({ length: 0x100000000 }, 1) !== 4294967297;\n});\n\n// V8 and Safari <= 15.4, FF < 23 throws InternalError\n// https://bugs.chromium.org/p/v8/issues/detail?id=12681\nvar properErrorOnNonWritableLength = function () {\n try {\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty([], 'length', { writable: false }).push();\n } catch (error) {\n return error instanceof TypeError;\n }\n};\n\nvar FORCED = INCORRECT_TO_LENGTH || !properErrorOnNonWritableLength();\n\n// `Array.prototype.push` method\n// https://tc39.es/ecma262/#sec-array.prototype.push\n$({ target: 'Array', proto: true, arity: 1, forced: FORCED }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n push: function push(item) {\n var O = toObject(this);\n var len = lengthOfArrayLike(O);\n var argCount = arguments.length;\n doesNotExceedSafeInteger(len + argCount);\n for (var i = 0; i < argCount; i++) {\n O[len] = arguments[i];\n len++;\n }\n setArrayLength(O, len);\n return len;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar setArrayLength = require('../internals/array-set-length');\nvar deletePropertyOrThrow = require('../internals/delete-property-or-throw');\nvar doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');\n\n// IE8-\nvar INCORRECT_RESULT = [].unshift(0) !== 1;\n\n// V8 ~ Chrome < 71 and Safari <= 15.4, FF < 23 throws InternalError\nvar properErrorOnNonWritableLength = function () {\n try {\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty([], 'length', { writable: false }).unshift();\n } catch (error) {\n return error instanceof TypeError;\n }\n};\n\nvar FORCED = INCORRECT_RESULT || !properErrorOnNonWritableLength();\n\n// `Array.prototype.unshift` method\n// https://tc39.es/ecma262/#sec-array.prototype.unshift\n$({ target: 'Array', proto: true, arity: 1, forced: FORCED }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n unshift: function unshift(item) {\n var O = toObject(this);\n var len = lengthOfArrayLike(O);\n var argCount = arguments.length;\n if (argCount) {\n doesNotExceedSafeInteger(len + argCount);\n var k = len;\n while (k--) {\n var to = k + argCount;\n if (k in O) O[to] = O[k];\n else deletePropertyOrThrow(O, to);\n }\n for (var j = 0; j < argCount; j++) {\n O[j] = arguments[j];\n }\n } return setArrayLength(O, len + argCount);\n }\n});\n","'use strict';\nvar defineBuiltIn = require('../internals/define-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toString = require('../internals/to-string');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\n\nvar $URLSearchParams = URLSearchParams;\nvar URLSearchParamsPrototype = $URLSearchParams.prototype;\nvar append = uncurryThis(URLSearchParamsPrototype.append);\nvar $delete = uncurryThis(URLSearchParamsPrototype['delete']);\nvar forEach = uncurryThis(URLSearchParamsPrototype.forEach);\nvar push = uncurryThis([].push);\nvar params = new $URLSearchParams('a=1&a=2&b=3');\n\nparams['delete']('a', 1);\n// `undefined` case is a Chromium 117 bug\n// https://bugs.chromium.org/p/v8/issues/detail?id=14222\nparams['delete']('b', undefined);\n\nif (params + '' !== 'a=2') {\n defineBuiltIn(URLSearchParamsPrototype, 'delete', function (name /* , value */) {\n var length = arguments.length;\n var $value = length < 2 ? undefined : arguments[1];\n if (length && $value === undefined) return $delete(this, name);\n var entries = [];\n forEach(this, function (v, k) { // also validates `this`\n push(entries, { key: k, value: v });\n });\n validateArgumentsLength(length, 1);\n var key = toString(name);\n var value = toString($value);\n var index = 0;\n var dindex = 0;\n var found = false;\n var entriesLength = entries.length;\n var entry;\n while (index < entriesLength) {\n entry = entries[index++];\n if (found || entry.key === key) {\n found = true;\n $delete(this, entry.key);\n } else dindex++;\n }\n while (dindex < entriesLength) {\n entry = entries[dindex++];\n if (!(entry.key === key && entry.value === value)) append(this, entry.key, entry.value);\n }\n }, { enumerable: true, unsafe: true });\n}\n","'use strict';\nvar defineBuiltIn = require('../internals/define-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toString = require('../internals/to-string');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\n\nvar $URLSearchParams = URLSearchParams;\nvar URLSearchParamsPrototype = $URLSearchParams.prototype;\nvar getAll = uncurryThis(URLSearchParamsPrototype.getAll);\nvar $has = uncurryThis(URLSearchParamsPrototype.has);\nvar params = new $URLSearchParams('a=1');\n\n// `undefined` case is a Chromium 117 bug\n// https://bugs.chromium.org/p/v8/issues/detail?id=14222\nif (params.has('a', 2) || !params.has('a', undefined)) {\n defineBuiltIn(URLSearchParamsPrototype, 'has', function has(name /* , value */) {\n var length = arguments.length;\n var $value = length < 2 ? undefined : arguments[1];\n if (length && $value === undefined) return $has(this, name);\n var values = getAll(this, name); // also validates `this`\n validateArgumentsLength(length, 1);\n var value = toString($value);\n var index = 0;\n while (index < values.length) {\n if (values[index++] === value) return true;\n } return false;\n }, { enumerable: true, unsafe: true });\n}\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\n\nvar URLSearchParamsPrototype = URLSearchParams.prototype;\nvar forEach = uncurryThis(URLSearchParamsPrototype.forEach);\n\n// `URLSearchParams.prototype.size` getter\n// https://github.com/whatwg/url/pull/734\nif (DESCRIPTORS && !('size' in URLSearchParamsPrototype)) {\n defineBuiltInAccessor(URLSearchParamsPrototype, 'size', {\n get: function size() {\n var count = 0;\n forEach(this, function () { count++; });\n return count;\n },\n configurable: true,\n enumerable: true\n });\n}\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\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\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__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = function(chunkId) {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce(function(promises, key) {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"xwiki-livedata-vue.umd.min.\" + chunkId + \".js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"less/\" + chunkId + \".less?evaluate=true\";\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); }","var inProgress = {};\nvar dataWebpackPrefix = \"xwiki-livedata-vue:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = function(url, done, key, chunkId) {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = function(prev, event) {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach(function(fn) { return fn(event); });\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// 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};","__webpack_require__.nmd = function(module) {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.p = \"\";","if (typeof document === \"undefined\") return;\nvar createStylesheet = function(chunkId, fullhref, oldTag, resolve, reject) {\n\tvar linkTag = document.createElement(\"link\");\n\n\tlinkTag.rel = \"stylesheet\";\n\tlinkTag.type = \"text/css\";\n\tvar onLinkComplete = function(event) {\n\t\t// avoid mem leaks.\n\t\tlinkTag.onerror = linkTag.onload = null;\n\t\tif (event.type === 'load') {\n\t\t\tresolve();\n\t\t} else {\n\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\tvar realHref = event && event.target && event.target.href || fullhref;\n\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + realHref + \")\");\n\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n\t\t\terr.type = errorType;\n\t\t\terr.request = realHref;\n\t\t\tif (linkTag.parentNode) linkTag.parentNode.removeChild(linkTag)\n\t\t\treject(err);\n\t\t}\n\t}\n\tlinkTag.onerror = linkTag.onload = onLinkComplete;\n\tlinkTag.href = fullhref;\n\n\tif (oldTag) {\n\t\toldTag.parentNode.insertBefore(linkTag, oldTag.nextSibling);\n\t} else {\n\t\tdocument.head.appendChild(linkTag);\n\t}\n\treturn linkTag;\n};\nvar findStylesheet = function(href, fullhref) {\n\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n\tfor(var i = 0; i < existingLinkTags.length; i++) {\n\t\tvar tag = existingLinkTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return tag;\n\t}\n\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n\tfor(var i = 0; i < existingStyleTags.length; i++) {\n\t\tvar tag = existingStyleTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\");\n\t\tif(dataHref === href || dataHref === fullhref) return tag;\n\t}\n};\nvar loadStylesheet = function(chunkId) {\n\treturn new Promise(function(resolve, reject) {\n\t\tvar href = __webpack_require__.miniCssF(chunkId);\n\t\tvar fullhref = __webpack_require__.p + href;\n\t\tif(findStylesheet(href, fullhref)) return resolve();\n\t\tcreateStylesheet(chunkId, fullhref, null, resolve, reject);\n\t});\n}\n// object to store loaded CSS chunks\nvar installedCssChunks = {\n\t274: 0\n};\n\n__webpack_require__.f.miniCss = function(chunkId, promises) {\n\tvar cssChunks = {\"302\":1,\"697\":1,\"847\":1};\n\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n\t\tpromises.push(installedCssChunks[chunkId] = loadStylesheet(chunkId).then(function() {\n\t\t\tinstalledCssChunks[chunkId] = 0;\n\t\t}, function(e) {\n\t\t\tdelete installedCssChunks[chunkId];\n\t\t\tthrow e;\n\t\t}));\n\t}\n};\n\n// no hmr","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t274: 0\n};\n\n__webpack_require__.f.j = function(chunkId, promises) {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise(function(resolve, reject) { installedChunkData = installedChunks[chunkId] = [resolve, reject]; });\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = function(event) {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n// no on chunks loaded\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\n}\n\nvar chunkLoadingGlobal = (typeof self !== 'undefined' ? self : this)[\"webpackChunkxwiki_livedata_vue\"] = (typeof self !== 'undefined' ? self : this)[\"webpackChunkxwiki_livedata_vue\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","/* eslint-disable no-var */\n// This file is imported into lib/wc client bundles.\n\nif (typeof window !== 'undefined') {\n var currentScript = window.document.currentScript\n if (process.env.NEED_CURRENTSCRIPT_POLYFILL) {\n var getCurrentScript = require('@soda/get-current-script')\n currentScript = getCurrentScript()\n\n // for backward compatibility, because previously we directly included the polyfill\n if (!('currentScript' in document)) {\n Object.defineProperty(document, 'currentScript', { get: getCurrentScript })\n }\n }\n\n var src = currentScript && currentScript.src.match(/(.+\\/)[^/]+\\.js(\\?.*)?$/)\n if (src) {\n __webpack_public_path__ = src[1] // eslint-disable-line\n }\n}\n\n// Indicate to webpack that this file can be concatenated\nexport default null\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"xwiki-livedata\"},[_c('LivedataAdvancedPanels'),(_vm.translationsLoaded)?_c('LivedataLayout',{attrs:{\"layout-id\":_vm.layoutId}}):_vm._e(),(_vm.layoutLoaded)?_c('LivedataFootnotes'):_vm._e(),(_vm.data.id)?_c('LivedataPersistentConfiguration'):_vm._e(),(!_vm.layoutLoaded)?_c('div',{staticClass:\"loading\"}):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"livedata-advanced-panels\"},_vm._l((_vm.logic.panels),function(panel){return _c(panel.component,{key:panel.id,tag:\"component\",attrs:{\"panel\":panel}})}),1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('LivedataBaseAdvancedPanel',{staticClass:\"livedata-advanced-panel-properties\",attrs:{\"panel-id\":_vm.panel.id},scopedSlots:_vm._u([{key:\"header\",fn:function(){return [_c('XWikiIcon',{attrs:{\"icon-descriptor\":{name: _vm.panel.icon}}}),_vm._v(\" \"+_vm._s(_vm.panel.title)+\" \")]},proxy:true},{key:\"body\",fn:function(){return [_c('XWikiDraggable',{attrs:{\"value\":_vm.data.query.properties},on:{\"change\":_vm.reorderProperty}},_vm._l((_vm.logic.getPropertyDescriptors()),function(property){return _c('XWikiDraggableItem',{key:property.id,staticClass:\"property\"},[_c('div',{staticClass:\"visibility\",on:{\"click\":function($event){if($event.target !== $event.currentTarget)return null;$event.currentTarget.querySelector('input').click()}}},[_c('input',{attrs:{\"type\":\"checkbox\"},domProps:{\"checked\":_vm.logic.isPropertyVisible(property.id)},on:{\"change\":function($event){return _vm.logic.setPropertyVisible(property.id, $event.target.checked)}}})]),_c('span',{staticClass:\"property-name\"},[_vm._v(_vm._s(property.name))])])}),1)]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.panelOpened),expression:\"panelOpened\"}],staticClass:\"livedata-advanced-panel panel panel-default\"},[_c('div',{staticClass:\"panel-heading\"},[_c('span',{staticClass:\"title\"},[_vm._t(\"header\")],2),_c('div',{staticClass:\"actions\"},[_c('span',{staticClass:\"action collapse-button\",on:{\"click\":function($event){_vm.collapsed = !_vm.collapsed}}},[(!_vm.collapsed)?_c('XWikiIcon',{attrs:{\"icon-descriptor\":{name: 'arrow_in'}}}):_c('XWikiIcon',{attrs:{\"icon-descriptor\":{name: 'arrow_out'}}})],1),_c('span',{staticClass:\"action close-button\",on:{\"click\":function($event){return _vm.logic.uniqueArrayRemove(_vm.logic.openedPanels, _vm.panelId)}}},[_c('XWikiIcon',{attrs:{\"icon-descriptor\":{name: 'cross'}}})],1)])]),(!_vm.collapsed)?_c('div',{staticClass:\"panel-body\"},[_vm._t(\"body\")],2):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n * See the NOTICE file distributed with this work for additional\n * information regarding copyright ownership.\n *\n * This is free software; you can redistribute it and/or modify it\n * under the terms of the GNU Lesser General Public License as\n * published by the Free Software Foundation; either version 2.1 of\n * the License, or (at your option) any later version.\n *\n * This software is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n * Lesser General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public\n * License along with this software; if not, write to the Free\n * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA\n * 02110-1301 USA, or see the FSF site: http://www.fsf.org.\n-->\n\n<!--\n LivedataBaseAdvancedPanel is a component that provide for advanced panels\n an interface that already handles the panel's base behavior:\n open from dropdown menu, close, and also the panel display style.\n It is not meant to be used directly, but instead to be used inside a\n specific advanced panel that pass to it a `title` and `body` slot.\n In that way, Advanced panels only care about implementing\n the content of the panel, rather the reimplemting the whole panel logic\n each time.\n-->\n<template>\n <!--\n The Livedata Advanced panel base\n Uses the Bootstrap 3 panel syntax.\n -->\n <div\n class=\"livedata-advanced-panel panel panel-default\"\n v-show=\"panelOpened\"\n >\n <!--\n Panel Header\n Contains the panel title on the left\n and buttons to close panel on the right\n -->\n <div class=\"panel-heading\">\n <!--\n The slot containing the panel header\n The header should contains an icon and a title\n -->\n <span class=\"title\">\n <slot name=\"header\"></slot>\n </span>\n\n <!-- Panel header buttons -->\n <div class=\"actions\">\n <!-- Collapse panel button -->\n <span\n class=\"action collapse-button\"\n @click=\"collapsed = !collapsed\"\n >\n <XWikiIcon v-if=\"!collapsed\" :icon-descriptor=\"{name: 'arrow_in'}\"/>\n <XWikiIcon v-else :icon-descriptor=\"{name: 'arrow_out'}\"/>\n </span>\n <!-- Close panel button -->\n <span\n class=\"action close-button\"\n @click=\"logic.uniqueArrayRemove(logic.openedPanels, panelId)\"\n >\n <XWikiIcon :icon-descriptor=\"{name: 'cross'}\" />\n </span>\n\n </div>\n </div>\n\n <!--\n Panel Body\n -->\n <div\n class=\"panel-body\"\n v-if=\"!collapsed\"\n >\n <!-- The slot containing the panel body content -->\n <slot name=\"body\"></slot>\n </div>\n\n </div>\n</template>\n\n\n<script>\nimport XWikiIcon from \"../utilities/XWikiIcon\";\nexport default {\n\n name: \"LivedataBaseAdvancedPanel\",\n\n components: {XWikiIcon},\n\n inject: [\"logic\"],\n\n props: {\n // The panel id is used to open the panel in the dropdown menu\n // and is used as item in the `Logic.openedPanels` array\n panelId: String,\n },\n\n data () {\n return {\n // whether the panel is collapsed (panel body is hidden) or not\n // A panel will always be expanded when opened.\n collapsed: false,\n };\n },\n\n computed: {\n data () { return this.logic.data; },\n\n // returns whether the panel is opened based on the `Logic.openedPanels` array\n panelOpened () {\n return this.logic.uniqueArrayHas(this.logic.openedPanels, this.panelId);\n },\n },\n\n watch: {\n // whenever panel is opened, ensure it is not collapsed\n panelOpened () {\n if (this.panelOpened) {\n this.collapsed = false;\n }\n },\n },\n\n};\n</script>\n\n\n<style>\n\n.livedata-advanced-panel .panel-heading {\n position: relative;\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n align-items: stretch;\n padding: 0;\n}\n.livedata-advanced-panel .panel-heading .title {\n padding: 10px 15px;\n}\n\n.livedata-advanced-panel .actions {\n display: flex;\n flex-direction: row;\n justify-content: flex-end;\n align-items: stretch;\n}\n.livedata-advanced-panel .actions .action {\n display: flex;\n justify-content: center;\n align-items: center;\n padding: 0 15px;\n cursor: pointer;\n}\n\n</style>\n","import mod from \"-!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./LivedataBaseAdvancedPanel.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./LivedataBaseAdvancedPanel.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./LivedataBaseAdvancedPanel.vue?vue&type=template&id=284ebfca\"\nimport script from \"./LivedataBaseAdvancedPanel.vue?vue&type=script&lang=js\"\nexport * from \"./LivedataBaseAdvancedPanel.vue?vue&type=script&lang=js\"\nimport style0 from \"./LivedataBaseAdvancedPanel.vue?vue&type=style&index=0&id=284ebfca&prod&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","<!--\n * See the NOTICE file distributed with this work for additional\n * information regarding copyright ownership.\n *\n * This is free software; you can redistribute it and/or modify it\n * under the terms of the GNU Lesser General Public License as\n * published by the Free Software Foundation; either version 2.1 of\n * the License, or (at your option) any later version.\n *\n * This software is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n * Lesser General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public\n * License along with this software; if not, write to the Free\n * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA\n * 02110-1301 USA, or see the FSF site: http://www.fsf.org.\n-->\n\n<!--\n The LivedataAdvancedPanelProperties component is used to provide\n advance property options edition, whatever layout is being used.\n It allows:\n - Toggling property visibility\n - Changing property order\n-->\n<template>\n <!--\n Uses the LivedataBaseAdvancedPanel as root element, as it handles for us\n all the Advanced Panels default behavior\n -->\n <LivedataBaseAdvancedPanel\n class=\"livedata-advanced-panel-properties\"\n :panel-id=\"panel.id\"\n >\n <!-- Provide the panel name and icon to the `header` slot -->\n <template #header>\n <XWikiIcon :icon-descriptor=\"{name: panel.icon}\"/>\n {{ panel.title }}\n </template>\n\n <!-- Define panel content inside the `body` slot -->\n <template #body>\n <!--\n The properties are wrapped inside a XWikiDraggable component\n in order to allow the user to reorder them easily\n -->\n <XWikiDraggable\n :value=\"data.query.properties\"\n @change=\"reorderProperty\"\n >\n <!--\n Properties\n Uses the XWikiDraggableItem component that goes along the\n XWikiDraggable one\n -->\n <XWikiDraggableItem\n class=\"property\"\n v-for=\"property in logic.getPropertyDescriptors()\"\n :key=\"property.id\"\n >\n <!--\n Property visibility checkbox\n Checkbox is surrounded by a div with padding to facilitate the user click\n -->\n <div\n class=\"visibility\"\n @click.self=\"$event.currentTarget.querySelector('input').click()\"\n >\n <input\n type=\"checkbox\"\n :checked=\"logic.isPropertyVisible(property.id)\"\n @change=\"logic.setPropertyVisible(property.id, $event.target.checked)\"\n />\n </div>\n\n <!-- Property name -->\n <span class=\"property-name\">{{ property.name }}</span>\n </XWikiDraggableItem>\n </XWikiDraggable>\n\n </template>\n\n </LivedataBaseAdvancedPanel>\n\n</template>\n\n\n<script>\nimport LivedataBaseAdvancedPanel from \"./LivedataBaseAdvancedPanel.vue\";\nimport XWikiDraggable from \"../utilities/XWikiDraggable.vue\";\nimport XWikiDraggableItem from \"../utilities/XWikiDraggableItem.vue\";\nimport XWikiIcon from \"../utilities/XWikiIcon\";\n\nexport default {\n\n name: \"LivedataAdvancedPanelProperties\",\n\n components: {\n XWikiIcon,\n LivedataBaseAdvancedPanel,\n XWikiDraggable,\n XWikiDraggableItem,\n },\n\n inject: [\"logic\"],\n\n props: {'panel': Object},\n\n computed: {\n data () { return this.logic.data; },\n\n dragOptions () {\n return {\n animation: 200,\n handle: \".handle\",\n };\n },\n\n },\n\n methods: {\n // event handler called when properties are dragged and dropped\n reorderProperty (e) {\n this.logic.reorderProperty(e.moved.element, e.moved.newIndex);\n },\n },\n\n\n};\n</script>\n\n\n<style>\n\n\n.livedata-advanced-panel-properties .property {\n display: flex;\n flex-direction: row;\n justify-content: flex-start;\n align-items: center;\n}\n\n.livedata-advanced-panel-properties .handle {\n padding: 6px;\n cursor: pointer; /* IE */\n cursor: grab;\n opacity: 0;\n}\n.livedata-advanced-panel-properties .property:hover .handle {\n opacity: 1;\n transition: opacity 0.2s;\n}\n\n.livedata-advanced-panel-properties .visibility {\n padding: 6px 1rem;\n}\n.livedata-advanced-panel-properties .visibility input {\n margin: 0px;\n}\n\n.livedata-advanced-panel-properties .property-name {\n padding: 6px 0px;\n}\n\n/* Responsive mode */\n@media screen and (max-width: @screen-xs-max) {\n .livedata-advanced-panel-properties .handle {\n /* Always show the drag handler on small screens because we cannot rely on hover. */\n opacity: 1;\n }\n}\n\n</style>\n","import mod from \"-!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./LivedataAdvancedPanelProperties.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./LivedataAdvancedPanelProperties.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./LivedataAdvancedPanelProperties.vue?vue&type=template&id=415c3846\"\nimport script from \"./LivedataAdvancedPanelProperties.vue?vue&type=script&lang=js\"\nexport * from \"./LivedataAdvancedPanelProperties.vue?vue&type=script&lang=js\"\nimport style0 from \"./LivedataAdvancedPanelProperties.vue?vue&type=style&index=0&id=415c3846&prod&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('LivedataBaseAdvancedPanel',{staticClass:\"livedata-advanced-panel-sort\",attrs:{\"panel-id\":_vm.panel.id},scopedSlots:_vm._u([{key:\"header\",fn:function(){return [_c('XWikiIcon',{attrs:{\"icon-descriptor\":{name: _vm.panel.icon}}}),_vm._v(\" \"+_vm._s(_vm.panel.title)+\" \")]},proxy:true},{key:\"body\",fn:function(){return [_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.logic.getSortableProperties().length),expression:\"!logic.getSortableProperties().length\"}],staticClass:\"text-muted\"},[_vm._v(\" \"+_vm._s(_vm.$t('livedata.panel.sort.noneSortable'))+\" \")]),_c('XWikiDraggable',{attrs:{\"value\":_vm.data.query.sort},on:{\"change\":_vm.reorderSorts}},_vm._l((_vm.data.query.sort),function(sortEntry,level){return _c('XWikiDraggableItem',{key:level,staticClass:\"sort-entry\"},[_c('span',[_vm._v(_vm._s(_vm.logic.getPropertyDescriptor(sortEntry.property).name))]),_c('span',{staticStyle:{\"margin\":\"0 1rem\"}},[_vm._v(\" - \")]),_c('select',{on:{\"change\":function($event){return _vm.logic.sort(sortEntry.property, level, $event.target.value === 'true')}}},[_c('option',{attrs:{\"value\":\"false\"},domProps:{\"selected\":!sortEntry.descending}},[_vm._v(_vm._s(_vm.$t('livedata.panel.sort.direction.ascending')))]),_c('option',{attrs:{\"value\":\"true\"},domProps:{\"selected\":sortEntry.descending}},[_vm._v(_vm._s(_vm.$t('livedata.panel.sort.direction.descending')))])]),_c('a',{staticClass:\"delete-sort\",attrs:{\"href\":\"#\",\"title\":_vm.$t('livedata.panel.sort.delete')},on:{\"click\":function($event){$event.preventDefault();return _vm.logic.removeSort(sortEntry.property)}}},[_c('XWikiIcon',{attrs:{\"icon-descriptor\":{name: 'trash'}}})],1)])}),1),_c('select',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.unsortedProperties.length > 0),expression:\"unsortedProperties.length > 0\"}],staticClass:\"add-sort-select\",on:{\"change\":function($event){return _vm.addSortLevel($event.target.value)}}},[_c('option',{ref:\"selectPropertiesNone\",attrs:{\"value\":\"none\",\"selected\":\"\",\"disabled\":\"\"}},[_vm._v(_vm._s(_vm.$t('livedata.panel.sort.add')))]),_vm._l((_vm.unsortedProperties),function(property){return _c('option',{key:property.id,domProps:{\"value\":property.id,\"textContent\":_vm._s(property.name)}})})],2)]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n * See the NOTICE file distributed with this work for additional\n * information regarding copyright ownership.\n *\n * This is free software; you can redistribute it and/or modify it\n * under the terms of the GNU Lesser General Public License as\n * published by the Free Software Foundation; either version 2.1 of\n * the License, or (at your option) any later version.\n *\n * This software is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n * Lesser General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public\n * License along with this software; if not, write to the Free\n * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA\n * 02110-1301 USA, or see the FSF site: http://www.fsf.org.\n-->\n\n<!--\n The LivedataAdvancedPanelSort component is used to provide\n advance sorting, whatever layout is being used.\n It allows:\n - Adding / removing sort levels\n - Reorderin sorts levels\n - Changing sort direction\n-->\n<template>\n <!--\n Uses the LivedataBaseAdvancedPanel as root element, as it handles for us\n all the Advanced Panels default behavior\n -->\n <LivedataBaseAdvancedPanel\n class=\"livedata-advanced-panel-sort\"\n :panel-id=\"panel.id\"\n >\n <!-- Provide the panel name and icon to the `header` slot -->\n <template #header>\n <XWikiIcon :icon-descriptor=\"{name: panel.icon}\"/>\n {{ panel.title }}\n </template>\n\n <!-- Define panel content inside the `body` slot -->\n <template #body>\n\n <!-- Explain why the panel might be empty. -->\n <div v-show=\"!logic.getSortableProperties().length\" class=\"text-muted\">\n {{ $t('livedata.panel.sort.noneSortable') }}\n </div>\n\n <!--\n The sort entries are wrapped inside a XWikiDraggable component\n in order to allow the user to reorder them easily\n -->\n <XWikiDraggable\n :value=\"data.query.sort\"\n @change=\"reorderSorts\"\n >\n <!--\n Sort entries\n Uses the XWikiDraggableItem component that goes along the\n XWikiDraggable one\n -->\n <XWikiDraggableItem\n class=\"sort-entry\"\n v-for=\"(sortEntry, level) in data.query.sort\"\n :key=\"level\"\n >\n <!-- Property name -->\n <span>{{ logic.getPropertyDescriptor(sortEntry.property).name }}</span>\n <span style=\"margin: 0 1rem\"> - </span>\n\n <!--\n Direction select\n Allow to select either Ascending or Descending\n -->\n <select\n @change=\"logic.sort(sortEntry.property, level, $event.target.value === 'true')\"\n >\n <option\n value=\"false\"\n :selected=\"!sortEntry.descending\"\n >{{ $t('livedata.panel.sort.direction.ascending') }}</option>\n <option\n value=\"true\"\n :selected=\"sortEntry.descending\"\n >{{ $t('livedata.panel.sort.direction.descending') }}</option>\n </select>\n\n <!-- Delete sort entry button -->\n <a\n class=\"delete-sort\"\n href=\"#\"\n @click.prevent=\"logic.removeSort(sortEntry.property)\"\n :title=\"$t('livedata.panel.sort.delete')\"\n >\n <XWikiIcon :icon-descriptor=\"{name: 'trash'}\" />\n </a>\n </XWikiDraggableItem>\n </XWikiDraggable>\n\n\n <!--\n Add Sort\n When a user select an property from this select,\n it directly adds an sort entry in the sort array of the Livedata config.\n If all property are sorting, it is hidden.\n -->\n <select\n class=\"add-sort-select\"\n v-show=\"unsortedProperties.length > 0\"\n @change=\"addSortLevel($event.target.value)\"\n >\n <!--\n This is the default option that is always selected\n When the user change the value of the select,\n it adds the sort corresponging to the option\n then falls back to this default option\n -->\n <option\n value=\"none\"\n ref=\"selectPropertiesNone\"\n selected disabled\n >{{ $t('livedata.panel.sort.add') }}</option>\n <!--\n Unsorted properties\n Only display in the select properties that are not already sorting\n -->\n <option\n v-for=\"property in unsortedProperties\"\n :key=\"property.id\"\n :value=\"property.id\"\n v-text=\"property.name\"\n ></option>\n </select>\n\n </template>\n\n </LivedataBaseAdvancedPanel>\n</template>\n\n\n<script>\nimport LivedataBaseAdvancedPanel from \"./LivedataBaseAdvancedPanel.vue\";\nimport XWikiDraggable from \"../utilities/XWikiDraggable.vue\";\nimport XWikiDraggableItem from \"../utilities/XWikiDraggableItem.vue\";\nimport XWikiIcon from \"../utilities/XWikiIcon\";\n\nexport default {\n\n name: \"LivedataAdvancedPanelSort\",\n\n components: {\n XWikiIcon,\n LivedataBaseAdvancedPanel,\n XWikiDraggable,\n XWikiDraggableItem,\n },\n\n inject: [\"logic\"],\n\n props: {'panel': Object},\n\n computed: {\n data () { return this.logic.data; },\n\n // The sortable properties that don't have a sort entry in the live data query.\n unsortedProperties () {\n // Disable no-side-effects-in-computed-properties because it fails just because the method name contains \"sort\".\n /* eslint vue/no-side-effects-in-computed-properties: \"off\" -- false positive */\n return this.logic.getUnsortedProperties().map(property => this.logic.getPropertyDescriptor(property));\n },\n },\n\n methods: {\n // Change event handler called by the add-sort select\n addSortLevel (value) {\n if (value === \"none\") { return; }\n this.logic.addSort(value);\n this.$refs.selectPropertiesNone.selected = true;\n },\n // Event handler called when sort entries are dragged and dropped\n reorderSorts (e) {\n this.logic.reorderSort(e.moved.element.property, e.moved.newIndex)\n .catch(err => void console.warn(err));\n },\n },\n\n};\n</script>\n\n\n<style>\n\n.livedata-advanced-panel-sort .sort-entry {\n display: flex;\n flex-direction: row;\n justify-content: flex-start;\n align-items: center;\n margin-bottom: .5em;\n}\n\n.livedata-advanced-panel-sort .draggable-item .handle {\n width: 3rem;\n}\n\n.livedata-advanced-panel-sort .delete-sort {\n display: inline-block;\n visibility: hidden;\n margin-left: 5px;\n padding: 6px 10px;\n border-radius: @border-radius-small;\n color: currentColor;\n}\n.livedata-advanced-panel-sort .sort-entry:hover .delete-sort {\n visibility: visible;\n}\n.livedata-advanced-panel-sort .delete-sort:hover {\n background-color: @panel-default-heading-bg;\n}\n.livedata-advanced-panel-sort .delete-sort:active {\n background-color: unset;\n}\n\n.livedata-advanced-panel-sort .add-sort-select {\n margin-top: 1rem;\n}\n\n/* Responsive mode */\n@media screen and (max-width: @screen-xs-max) {\n .livedata-advanced-panel-sort .delete-sort {\n /* Always show the delete icon on small screens because we cannot rely on hover. */\n visibility: visible;\n }\n}\n\n</style>\n","import mod from \"-!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./LivedataAdvancedPanelSort.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./LivedataAdvancedPanelSort.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./LivedataAdvancedPanelSort.vue?vue&type=template&id=81ff6c56\"\nimport script from \"./LivedataAdvancedPanelSort.vue?vue&type=script&lang=js\"\nexport * from \"./LivedataAdvancedPanelSort.vue?vue&type=script&lang=js\"\nimport style0 from \"./LivedataAdvancedPanelSort.vue?vue&type=style&index=0&id=81ff6c56&prod&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('LivedataBaseAdvancedPanel',{staticClass:\"livedata-advanced-panel-filter\",attrs:{\"panel-id\":_vm.panel.id},scopedSlots:_vm._u([{key:\"header\",fn:function(){return [_c('XWikiIcon',{attrs:{\"icon-descriptor\":{name: _vm.panel.icon}}}),_vm._v(\" \"+_vm._s(_vm.panel.title)+\" \")]},proxy:true},{key:\"body\",fn:function(){return [_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.logic.getFilterableProperties().length),expression:\"!logic.getFilterableProperties().length\"}],staticClass:\"text-muted\"},[_vm._v(\" \"+_vm._s(_vm.$t('livedata.panel.filter.noneFilterable'))+\" \")]),_vm._l((_vm.data.query.filters),function(filterGroup){return _c('div',{key:filterGroup.property,staticClass:\"livedata-filter-group\"},[_c('div',{staticClass:\"filter-group-title\"},[_c('span',{staticClass:\"property-name\"},[_vm._v(\" \"+_vm._s(_vm.logic.getPropertyDescriptor(filterGroup.property).name)+\" \")]),_c('a',{staticClass:\"delete-filter-group\",attrs:{\"href\":\"#\",\"title\":_vm.$t('livedata.panel.filter.deleteAll')},on:{\"click\":function($event){$event.preventDefault();return _vm.logic.removeAllFilters(filterGroup.property)}}},[_c('XWikiIcon',{attrs:{\"icon-descriptor\":{name: 'trash'}}})],1)]),_c('div',{staticClass:\"filters\"},[_c('XWikiDraggable',{staticClass:\"filter-entries\",attrs:{\"value\":_vm.logic.getQueryFilterGroup(filterGroup.property).constraints,\"group\":'filter-panel' + _vm.logic.getFilterDescriptor(filterGroup.property).id},on:{\"change\":function($event){return _vm.reorderFilter($event, filterGroup)}}},_vm._l((_vm.logic.getQueryFilterGroup(filterGroup.property).constraints),function(filter,filterIdx){return _c('XWikiDraggableItem',{key:filterIdx},[_c('LivedataAdvancedPanelFilterEntry',{attrs:{\"filter-index\":filterIdx,\"property-id\":filterGroup.property}})],1)}),1),_c('a',{staticClass:\"add-filter\",attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();return _vm.logic.addFilter(filterGroup.property)}}},[_vm._v(\" + \"+_vm._s(_vm.$t('livedata.panel.filter.addConstraint'))+\" \")])],1)])}),_vm._v(\" \"),_c('select',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.unfilteredProperties.length > 0),expression:\"unfilteredProperties.length > 0\"}],staticClass:\"add-filters-select\",on:{\"change\":function($event){return _vm.addFilterGroup($event.target.value)}}},[_c('option',{ref:\"selectFilterPropertiesNone\",attrs:{\"value\":\"none\",\"selected\":\"\",\"disabled\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.$t('livedata.panel.filter.addProperty'))+\" \")]),_vm._l((_vm.unfilteredProperties),function(property){return _c('option',{key:property.id,domProps:{\"value\":property.id,\"textContent\":_vm._s(property.name)}})})],2)]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"livedata-filter-container\"},[_c('select',{staticClass:\"operator-select\",on:{\"change\":function($event){return _vm.logic.filter(_vm.propertyId, _vm.filterIndex, { operator: $event.target.value })}}},_vm._l((_vm.logic.getFilterDescriptor(_vm.propertyId).operators),function(operator){return _c('option',{key:operator.id,domProps:{\"value\":operator.id,\"selected\":operator.id === _vm.filterEntry.operator,\"textContent\":_vm._s(operator.name)}})}),0),_c('LivedataFilter',{attrs:{\"property-id\":_vm.propertyId,\"index\":_vm.filterIndex,\"is-advanced\":true}}),_c('a',{staticClass:\"delete-filter\",attrs:{\"href\":\"#\",\"title\":_vm.$t('livedata.panel.filter.delete')},on:{\"click\":function($event){$event.preventDefault();return _vm.logic.removeFilter(_vm.propertyId, _vm.filterIndex)}}},[_c('XWikiIcon',{attrs:{\"icon-descriptor\":{name: 'trash'}}})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n * See the NOTICE file distributed with this work for additional\n * information regarding copyright ownership.\n *\n * This is free software; you can redistribute it and/or modify it\n * under the terms of the GNU Lesser General Public License as\n * published by the Free Software Foundation; either version 2.1 of\n * the License, or (at your option) any later version.\n *\n * This software is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n * Lesser General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public\n * License along with this software; if not, write to the Free\n * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA\n * 02110-1301 USA, or see the FSF site: http://www.fsf.org.\n-->\n\n<!--\n The LivedataAdvancedPanelFilterEntry component is used by the\n LivedataAdvancedPanelFilterc omponent.\n It displays the filter entry corresponding to the passed props:\n - propertyId, corresponding to the Filter Group containing the filter\n - filterIndex indeicating the filter index inside the Filter Group\n-->\n<template>\n <div class=\"livedata-filter-container\">\n <!--\n Operator select\n Allow to select operator corresponding to the filter id\n -->\n <select\n class=\"operator-select\"\n @change=\"logic.filter(propertyId, filterIndex, { operator: $event.target.value })\"\n >\n <option\n v-for=\"operator in logic.getFilterDescriptor(propertyId).operators\"\n :key=\"operator.id\"\n :value=\"operator.id\"\n v-text=\"operator.name\"\n :selected=\"operator.id === filterEntry.operator\"\n ></option>\n </select>\n\n <!--\n Livedata Filter component\n Uses the LivedataFilter component to let the user modify the filter value\n -->\n <LivedataFilter\n :property-id=\"propertyId\"\n :index=\"filterIndex\"\n :is-advanced=\"true\"\n />\n\n <!-- Delete filter entry button -->\n <a\n class=\"delete-filter\"\n href=\"#\"\n @click.prevent=\"logic.removeFilter(propertyId, filterIndex)\"\n :title=\"$t('livedata.panel.filter.delete')\"\n >\n <XWikiIcon :icon-descriptor=\"{name: 'trash'}\"/>\n </a>\n\n </div>\n</template>\n\n\n<script>\nimport LivedataFilter from \"../filters/LivedataFilter.vue\";\nimport XWikiIcon from \"../utilities/XWikiIcon\";\n\nexport default {\n\n name: \"LivedataAdvancedPanelFilterEntry\",\n\n components: {\n LivedataFilter,\n XWikiIcon\n },\n\n inject: [\"logic\"],\n\n props: {\n filterIndex: Number,\n propertyId: String,\n },\n\n computed: {\n // The filter entry corresponding to the props\n filterEntry () {\n return this.logic.getQueryFilterGroup(this.propertyId).constraints[this.filterIndex];\n },\n },\n\n};\n</script>\n\n\n<style>\n\n.livedata-filter-container {\n display: flex;\n flex-direction: row;\n justify-content: flex-start;\n align-items: center;\n width: 100%;\n}\n\n.livedata-filter-container .delete-filter {\n display: inline-block;\n visibility: hidden;\n margin-left: 5px;\n padding: 6px 10px;\n border-radius: @border-radius-small;\n color: currentColor;\n}\n.livedata-filter-container:hover .delete-filter {\n visibility: visible;\n}\n.livedata-filter-container .delete-filter:hover {\n background-color: @panel-default-heading-bg;\n}\n.livedata-filter-container .delete-filter:active {\n background-color: unset;\n}\n\n/* Responsive mode */\n@media screen and (max-width: @screen-xs-max) {\n .livedata-filter-container .delete-filter {\n /* Always show the delete icon on small screens because we can't rely on hover. */\n visibility: visible;\n }\n}\n\n</style>\n","import mod from \"-!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./LivedataAdvancedPanelFilterEntry.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./LivedataAdvancedPanelFilterEntry.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./LivedataAdvancedPanelFilterEntry.vue?vue&type=template&id=ce372996\"\nimport script from \"./LivedataAdvancedPanelFilterEntry.vue?vue&type=script&lang=js\"\nexport * from \"./LivedataAdvancedPanelFilterEntry.vue?vue&type=script&lang=js\"\nimport style0 from \"./LivedataAdvancedPanelFilterEntry.vue?vue&type=style&index=0&id=ce372996&prod&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","<!--\n * See the NOTICE file distributed with this work for additional\n * information regarding copyright ownership.\n *\n * This is free software; you can redistribute it and/or modify it\n * under the terms of the GNU Lesser General Public License as\n * published by the Free Software Foundation; either version 2.1 of\n * the License, or (at your option) any later version.\n *\n * This software is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n * Lesser General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public\n * License along with this software; if not, write to the Free\n * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA\n * 02110-1301 USA, or see the FSF site: http://www.fsf.org.\n-->\n\n<!--\n The LivedataAdvancedPanelFilter component is used to provide\n advance filtering, whatever layout is being used.\n It allows:\n - Adding / removing multiple filters to a property\n - Changing filter operator\n - Reordering filters\n - Moving filters between properties of same type\n - TODO: switch between \"AND\" and \"OR\" filter combining mode\n-->\n<template>\n <!--\n Uses the LivedataBaseAdvancedPanel as root element, as it handles for us\n all the Advanced Panels default behavior\n -->\n <LivedataBaseAdvancedPanel\n class=\"livedata-advanced-panel-filter\"\n :panel-id=\"panel.id\"\n >\n <!-- Provide the panel name and icon to the `header` slot -->\n <template #header>\n <XWikiIcon :icon-descriptor=\"{name: panel.icon}\"/>\n {{ panel.title }}\n </template>\n\n <!-- Define panel content inside the `body` slot -->\n <template #body>\n\n <!-- Explain why the panel might be empty. -->\n <div v-show=\"!logic.getFilterableProperties().length\" class=\"text-muted\">\n {{ $t('livedata.panel.filter.noneFilterable') }}\n </div>\n\n <!--\n Filter Groups\n i.e. Items of the filter array in the Livedata configuration\n (one item per property, each item contains all the property filters)\n -->\n <div\n class=\"livedata-filter-group\"\n v-for=\"filterGroup in data.query.filters\"\n :key=\"filterGroup.property\"\n >\n <!-- Filter Group title (property name) -->\n <div class=\"filter-group-title\">\n <!-- Property name -->\n <span class=\"property-name\">\n {{ logic.getPropertyDescriptor(filterGroup.property).name }}\n </span>\n <!--\n Filter Group delete button\n Delete the whole filter group (= all the filters of the property)\n -->\n <a\n class=\"delete-filter-group\"\n href=\"#\"\n @click.prevent=\"logic.removeAllFilters(filterGroup.property)\"\n :title=\"$t('livedata.panel.filter.deleteAll')\"\n >\n <XWikiIcon :icon-descriptor=\"{name: 'trash'}\"/>\n </a>\n </div>\n\n <!--\n Filter Group filters\n Contains the property filters (aka filter entries)\n It uses the dedicated LivedataAdvancedPanelFilterEntry component\n for cleaner and more efficient implementation\n -->\n <div class=\"filters\">\n <!--\n The filter entries are wrapped inside a XWikiDraggable component\n in order to allow the user to reorder them easily\n It also has a group prop set to the property filterId,\n in order to allow to move filter entries between properties\n of same filterId\n -->\n <XWikiDraggable\n class=\"filter-entries\"\n :value=\"logic.getQueryFilterGroup(filterGroup.property).constraints\"\n @change=\"reorderFilter($event, filterGroup)\"\n :group=\"'filter-panel' + logic.getFilterDescriptor(filterGroup.property).id\"\n >\n <!--\n Draggable wrapper for the filter entry\n Uses the XWikiDraggableItem component that goes along the\n XWikiDraggable one\n -->\n <XWikiDraggableItem\n v-for=\"(filter, filterIdx) in logic.getQueryFilterGroup(filterGroup.property).constraints\"\n :key=\"filterIdx\"\n >\n <!-- Filter entries -->\n <LivedataAdvancedPanelFilterEntry\n :filter-index=\"filterIdx\"\n :property-id=\"filterGroup.property\"\n />\n </XWikiDraggableItem>\n </XWikiDraggable>\n\n <!-- Button to add new filter for the current Filter Group -->\n <a\n class=\"add-filter\"\n href=\"#\"\n @click.prevent=\"logic.addFilter(filterGroup.property)\"\n >\n + {{ $t('livedata.panel.filter.addConstraint') }}\n </a>\n </div>\n\n </div> <!-- end of Filter Group -->\n\n\n <!--\n Add Filter\n When a user select an property from this select,\n it directly adds a filter group in the filter array of the Livedata config.\n If all property are sorting, it is hidden.\n -->\n <select\n class=\"add-filters-select\"\n v-show=\"unfilteredProperties.length > 0\"\n @change=\"addFilterGroup($event.target.value)\"\n >\n <!--\n This is the default option that is always selected\n When the user change the value of the select,\n it adds the filter group corresponging to the option\n then falls back to this default option\n -->\n <option\n value=\"none\"\n ref=\"selectFilterPropertiesNone\"\n selected disabled\n >\n {{ $t('livedata.panel.filter.addProperty') }}\n </option>\n <!--\n Unfiltered properties\n Only display in the select properties that are not already filtering\n -->\n <option\n v-for=\"property in unfilteredProperties\"\n :key=\"property.id\"\n :value=\"property.id\"\n v-text=\"property.name\"\n ></option>\n </select>\n\n </template>\n\n </LivedataBaseAdvancedPanel>\n</template>\n\n\n<script>\nimport LivedataBaseAdvancedPanel from \"./LivedataBaseAdvancedPanel.vue\";\nimport LivedataAdvancedPanelFilterEntry from \"./LivedataAdvancedPanelFilterEntry.vue\";\nimport XWikiDraggable from \"../utilities/XWikiDraggable.vue\";\nimport XWikiDraggableItem from \"../utilities/XWikiDraggableItem.vue\";\nimport XWikiIcon from \"../utilities/XWikiIcon\";\n\nexport default {\n\n name: \"LivedataAdvancedPanelFilter\",\n\n components: {\n XWikiIcon,\n LivedataBaseAdvancedPanel,\n LivedataAdvancedPanelFilterEntry,\n XWikiDraggable,\n XWikiDraggableItem,\n },\n\n inject: [\"logic\"],\n\n props: {'panel': Object},\n\n computed: {\n\n data () { return this.logic.data; },\n\n // The filterable properties that don't have a filter group in the live data query.\n unfilteredProperties () {\n return this.logic.getUnfilteredProperties().map(property => this.logic.getPropertyDescriptor(property));\n },\n\n },\n\n\n methods: {\n // Change event handler called by the add-filters select\n addFilterGroup (value) {\n if (value === \"none\") { return; }\n this.logic.addFilter(value);\n this.$refs.selectFilterPropertiesNone.selected = true;\n },\n // Event handler called when filter entries are dragged and dropped\n // When a property is simply reodered, it dispatches only one \"move\" event\n // When a property is move between two different properties\n // it dispatches two event:\n // - a \"remove\" event for the property that had the moved property\n // - a \"added\" evnet for the property that receive the moved property\n reorderFilter (e, filterGroup) {\n // Filter entry reordered in the same property\n if (e.moved) {\n this.logic.filter(filterGroup.property, e.moved.oldIndex, {\n index: e.moved.newIndex,\n })\n .catch(err => void console.warn(err));\n }\n // Filter entry moved to another property (add handler)\n else if (e.added) {\n this.logic.addFilter(filterGroup.property, e.added.element.operator, e.added.element.value, e.added.newIndex)\n .catch(err => void console.warn(err));\n }\n // Filter entry moved to another property (remove handler)\n else if (e.removed) {\n this.logic.removeFilter(filterGroup.property, e.removed.oldIndex)\n .catch(err => void console.warn(err));\n }\n },\n },\n\n};\n</script>\n\n\n<style>\n\n\n.livedata-advanced-panel-filter .property-name {\n display: inline-block;\n margin-right: 0.5rem;\n padding: 5px;\n font-weight: bold;\n}\n.livedata-advanced-panel-filter .delete-filter-group {\n display: none;\n padding: 5px;\n color: currentColor;\n}\n.livedata-advanced-panel-filter .filter-group-title:hover .delete-filter-group {\n display: inline-block;\n}\n\n.livedata-advanced-panel-filter .draggable-item {\n margin-bottom: .5em;\n}\n\n.livedata-advanced-panel-filter .draggable-item .handle {\n width: 3rem;\n}\n\n.livedata-advanced-panel-filter .add-filter {\n margin-left: 3rem;\n display: inline-block;\n margin-top: 3px;\n font-style: italic;\n}\n.livedata-advanced-panel-filter .add-filter:hover {\n text-decoration: none;\n}\n\n.livedata-advanced-panel-filter .livedata-filter-group {\n margin-bottom: 1rem;\n}\n\n.livedata-advanced-panel-filter .add-filters-select {\n margin-top: 1rem;\n}\n\n/* Responsive mode */\n@media screen and (max-width: @screen-xs-max) {\n .livedata-advanced-panel-filter .delete-filter-group {\n /* Always show the delete icon on small screens because we can't rely on hover. */\n display: inline-block;\n }\n}\n\n</style>\n","import mod from \"-!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./LivedataAdvancedPanelFilter.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./LivedataAdvancedPanelFilter.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./LivedataAdvancedPanelFilter.vue?vue&type=template&id=188e3eb7\"\nimport script from \"./LivedataAdvancedPanelFilter.vue?vue&type=script&lang=js\"\nexport * from \"./LivedataAdvancedPanelFilter.vue?vue&type=script&lang=js\"\nimport style0 from \"./LivedataAdvancedPanelFilter.vue?vue&type=style&index=0&id=188e3eb7&prod&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('LivedataBaseAdvancedPanel',{ref:\"basePanel\",class:['livedata-advanced-panel-extension', `livedata-advanced-panel-${_vm.panel.id}`],attrs:{\"panel-id\":_vm.panel.id},scopedSlots:_vm._u([{key:\"header\",fn:function(){return [_c('XWikiIcon',{attrs:{\"icon-descriptor\":{name: _vm.panel.icon}}}),_vm._v(\" \"+_vm._s(_vm.panel.title)+\" \")]},proxy:true},{key:\"body\",fn:function(){return [_c('div',{ref:\"bodyContainer\",staticClass:\"extension-body\"})]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n * See the NOTICE file distributed with this work for additional\n * information regarding copyright ownership.\n *\n * This is free software; you can redistribute it and/or modify it\n * under the terms of the GNU Lesser General Public License as\n * published by the Free Software Foundation; either version 2.1 of\n * the License, or (at your option) any later version.\n *\n * This software is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n * Lesser General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public\n * License along with this software; if not, write to the Free\n * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA\n * 02110-1301 USA, or see the FSF site: http://www.fsf.org.\n-->\n\n<!--\n The LiveDataAdvancedPanelExtension component is used to provide\n extensions a way to inject a custom panel.\n-->\n<template>\n <!--\n Uses the LivedataBaseAdvancedPanel as root element, as it handles for us\n all the Advanced Panels default behavior\n -->\n <LivedataBaseAdvancedPanel\n :class=\"['livedata-advanced-panel-extension', `livedata-advanced-panel-${panel.id}`]\"\n :panel-id=\"panel.id\"\n ref=\"basePanel\"\n >\n\n <!-- Provide the panel title and icon to the `header` slot -->\n <template #header>\n <XWikiIcon :icon-descriptor=\"{name: panel.icon}\"/>\n {{ panel.title }}\n </template>\n\n <!-- Define panel content inside the `body` slot -->\n <template #body>\n <div ref=\"bodyContainer\" class=\"extension-body\"></div>\n </template>\n </LivedataBaseAdvancedPanel>\n\n</template>\n\n<script>\nimport LivedataBaseAdvancedPanel from \"./LivedataBaseAdvancedPanel.vue\";\nimport XWikiIcon from \"../utilities/XWikiIcon\";\n\nexport default {\n name: \"LiveDataAdvancedPanelExtension\",\n\n components: {\n XWikiIcon,\n LivedataBaseAdvancedPanel,\n },\n\n inject: [\"logic\"],\n\n props: {'panel': Object},\n\n methods: {\n attachContainer() {\n // Make sure nothing happens if this method is called several times or at the wrong time.\n if ('bodyContainer' in this.$refs) {\n const bodyContainer = this.$refs.bodyContainer;\n if (!bodyContainer.hasChildNodes()) {\n bodyContainer.appendChild(this.panel.container);\n } else if (bodyContainer.firstChild !== this.panel.container) {\n bodyContainer.firstChild.replaceWith(this.panel.container);\n }\n }\n }\n },\n\n watch: {\n 'panel.container': function () {\n this.attachContainer();\n }\n },\n\n mounted() {\n this.attachContainer();\n // Watch the child's collapsed property to re-attach the body element when the body is rendered again.\n this.$watch(\"$refs.basePanel.collapsed\", function (newValue) {\n if (!newValue) {\n // Wait for the next tick such that the change has been applied in the DOM.\n this.$nextTick(this.attachContainer);\n }\n });\n }\n}\n</script>\n","import mod from \"-!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./LiveDataAdvancedPanelExtension.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./LiveDataAdvancedPanelExtension.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./LiveDataAdvancedPanelExtension.vue?vue&type=template&id=a42e3dcc\"\nimport script from \"./LiveDataAdvancedPanelExtension.vue?vue&type=script&lang=js\"\nexport * from \"./LiveDataAdvancedPanelExtension.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","<!--\n * See the NOTICE file distributed with this work for additional\n * information regarding copyright ownership.\n *\n * This is free software; you can redistribute it and/or modify it\n * under the terms of the GNU Lesser General Public License as\n * published by the Free Software Foundation; either version 2.1 of\n * the License, or (at your option) any later version.\n *\n * This software is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n * Lesser General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public\n * License along with this software; if not, write to the Free\n * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA\n * 02110-1301 USA, or see the FSF site: http://www.fsf.org.\n-->\n\n<!--\n The LivedataAdvancedPanels component contains all the Livedata\n advanced panels, so that they can be included at once.\n It provides advance panels for configuration (sort, filter, ...)\n whatever layout is being used.\n It is included inside the livedata root component.\n\n Advanced panels can be opened from the DropdownMenu component.\n-->\n<template>\n <div class=\"livedata-advanced-panels\">\n\n <component v-for=\"panel in logic.panels\" :is=\"panel.component\" :key=\"panel.id\" :panel=\"panel\"/>\n\n </div>\n</template>\n\n\n<script>\nimport LivedataAdvancedPanelProperties from \"./LivedataAdvancedPanelProperties.vue\";\nimport LivedataAdvancedPanelSort from \"./LivedataAdvancedPanelSort.vue\";\nimport LivedataAdvancedPanelFilter from \"./LivedataAdvancedPanelFilter.vue\";\nimport LiveDataAdvancedPanelExtension from \"./LiveDataAdvancedPanelExtension\";\n\nexport default {\n\n name: \"LivedataAdvancedPanels\",\n\n components: {\n LivedataAdvancedPanelProperties,\n LivedataAdvancedPanelSort,\n LivedataAdvancedPanelFilter,\n LiveDataAdvancedPanelExtension,\n },\n\n inject: [\"logic\"],\n\n};\n</script>\n\n\n<style>\n.livedata-advanced-panels {\n display: flex;\n flex-direction: column;\n}\n</style>\n","import mod from \"-!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./LivedataAdvancedPanels.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./LivedataAdvancedPanels.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./LivedataAdvancedPanels.vue?vue&type=template&id=6ffe76c1\"\nimport script from \"./LivedataAdvancedPanels.vue?vue&type=script&lang=js\"\nexport * from \"./LivedataAdvancedPanels.vue?vue&type=script&lang=js\"\nimport style0 from \"./LivedataAdvancedPanels.vue?vue&type=style&index=0&id=6ffe76c1&prod&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.data.id)?_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(false),expression:\"false\"}]}):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./LivedataPersistentConfiguration.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./LivedataPersistentConfiguration.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./LivedataPersistentConfiguration.vue?vue&type=template&id=e3dd8090\"\nimport script from \"./LivedataPersistentConfiguration.vue?vue&type=script&lang=js\"\nexport * from \"./LivedataPersistentConfiguration.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!./node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"footnotes\"},_vm._l((_vm.footnotes.list()),function(footnote){return _c('div',{key:`footnote-${footnote.prefix}-${footnote.translationKey}`,staticClass:\"box infomessage footnote\"},[_vm._v(\" (\"),_c('small',[_vm._v(_vm._s(footnote.symbol))]),_vm._v(\") \"+_vm._s(_vm.$t(footnote.translationKey))+\" \")])}),0)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n * See the NOTICE file distributed with this work for additional\n * information regarding copyright ownership.\n *\n * This is free software; you can redistribute it and/or modify it\n * under the terms of the GNU Lesser General Public License as\n * published by the Free Software Foundation; either version 2.1 of\n * the License, or (at your option) any later version.\n *\n * This software is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n * Lesser General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public\n * License along with this software; if not, write to the Free\n * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA\n * 02110-1301 USA, or see the FSF site: http://www.fsf.org.\n-->\n\n<template>\n <div class=\"footnotes\">\n <div v-for=\"footnote in footnotes.list()\"\n :key=\"`footnote-${footnote.prefix}-${footnote.translationKey}`\"\n class=\"box infomessage footnote\">\n (<small>{{ footnote.symbol }}</small>) {{ $t(footnote.translationKey) }}\n </div>\n </div>\n</template>\n\n<script>\nexport default {\n name: \"LivedataFootnotes\",\n inject: [\"logic\"],\n data() {\n return {\n footnotes: this.logic.footnotes\n }\n }\n}\n</script>\n\n<style scoped>\n.footnotes .footnote {\n padding: 0.1em 1em;\n}\n</style>","import mod from \"-!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./LivedataFootnotes.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./LivedataFootnotes.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./LivedataFootnotes.vue?vue&type=template&id=19edcf7a&scoped=true\"\nimport script from \"./LivedataFootnotes.vue?vue&type=script&lang=js\"\nexport * from \"./LivedataFootnotes.vue?vue&type=script&lang=js\"\nimport style0 from \"./LivedataFootnotes.vue?vue&type=style&index=0&id=19edcf7a&prod&scoped=true&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"19edcf7a\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./XWikiLivedata.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./XWikiLivedata.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./XWikiLivedata.vue?vue&type=template&id=4f6cdb15\"\nimport script from \"./XWikiLivedata.vue?vue&type=script&lang=js\"\nexport * from \"./XWikiLivedata.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!./node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import './setPublicPath'\nimport mod from '~entry'\nexport default mod\nexport * from '~entry'\n"],"names":["root","factory","exports","module","require","define","amd","self","this","__WEBPACK_EXTERNAL_MODULE__4857__","__WEBPACK_EXTERNAL_MODULE__8794__","__WEBPACK_EXTERNAL_MODULE__3192__","__WEBPACK_EXTERNAL_MODULE__8070__","__WEBPACK_EXTERNAL_MODULE__748__","__WEBPACK_EXTERNAL_MODULE__390__","__WEBPACK_EXTERNAL_MODULE__590__","map","webpackAsyncContext","req","Promise","resolve","then","__webpack_require__","o","e","Error","code","id","keys","Object","ids","all","slice","render","_vm","_c","_self","staticClass","_t","staticRenderFns","name","component","attrs","$t","_v","_s","on","$event","preventDefault","logic","updateEntries","_l","data","meta","layouts","layout","key","class","isCurrentLayout","changeLayout","icon","panels","panel","uniqueArrayToggle","openedPanels","components","XWikiIcon","inject","computed","methods","layoutId","currentLayoutId","target","currentTarget","$refs","checkbox","click","ref","domProps","selected","toggleSelectEntries","entry","props","isEntrySelected","stopPropagation","checked","toggle","setEntrySelectGlobal","entrySelection","selectablePageEntries","entries","filter","isSelectionEnabled","allPageEntriesSeleted","every","includes","getEntryId","allEntriesSelected","isGlobal","deselected","length","indeterminate","someDeselected","someSelected","watch","deselectEntries","selectEntries","selectedCount","_e","count","showEntryRange","getFirstIndexOfPage","getLastIndexOfPage","pagination","showPageSizeDropdown","changePageSize","pageSizes","pageSize","query","limit","showFirstLast","isFirstPage","changePageIndex","showNextPrevious","getPageIndex","paginationIndexesAndDots","pageIndex","i","isLastPage","getPageCount","paginationIndexes","pageCount","maxShownPages","currentPageIndex","pageIndexes","addPage","push","bound","Math","max","abs","sort","a","b","indexesAndDots","forEach","index","indexes","pageSizesSet","Set","it","add","setPageSize","value","condition","setPageIndex","capitalize","displayerId","tag","propertyId","scopedSlots","_u","fn","actions","action","description","sanitizeUrl","urlProperty","proxy","directives","onInserted","inserted","el","binding","handler","Function","console","warn","autofocus","focus","String","safeValue","sanitizeHtml","propertyDescriptor","getPropertyDescriptor","config","getDisplayerDescriptor","baseValue","get","editedValue","set","isEditable","editable","noOtherEditing","getEditBus","genericSave","savedValue","save","isContentTrusted","DOMPurify","url","subtitute","undefined","isView","newIsView","duringEditing","rawName","touchHandler","expression","arg","view","edit","showPopover","type","indexOf","_k","keyCode","setEdit","apply","arguments","isLoading","isViewable","applyEdit","cancelEdit","composing","closePopover","href","titleTranslationKey","trigger","iconDescriptor","labelTranslationKey","required","default","event","BaseAction","displayer","mixins","displayerMixin","ActionEdit","ActionFollowLink","TippyComponent","XWikiLoader","viewOnly","Boolean","isEmpty","interceptTouch","empty","isActionAllowed","footnotes","put","$emit","start","cancel","tippy","tip","hide","targetsLink","tagName","toLowerCase","getAttribute","show","mounted","listener","evt","displayerElement","contains","editBlock","setTimeout","document","addEventListener","onAnyEvent","BaseDisplayer","getActionDescriptor","trueLabelKey","falseLabelKey","Array","isArray","_i","$$a","$$el","$$c","$$v","$$i","concat","displayerStatesMixin","valueFormatted","upgradeDatePicker","format","moment","editorConfig","drops","opens","autoUpdateInput","autoApply","singleDatePicker","showDropdowns","timePicker","timePicker24Hour","alwaysShowCalendars","locale","baseDisplayer","$nextTick","editorDate","$","daterangepicker","applyDate","getValue","startDate","valueTimestamps","_b","$props","$attrs","html","linkContent","hasViewRight","htmlValue","container","createElement","interactiveContent","querySelectorAll","node","parentNode","removeChild","innerHTML","trim","displayerLinkMixin","optional","values","propertyHref","find","DisplayerLink","editField","documentName","fields","xObjectPropertyEdit","serializeArray","className","source","field","newName","startsWith","substring","replace","XWiki","widgets","Notification","update","updateMethod","property","updateEdit","xObjectPropertyHelper","catch","DisplayerActions","DisplayerBoolean","DisplayerDate","DisplayerDocTitle","DisplayerHtml","DisplayerNumber","DisplayerText","DisplayerXObjectProperty","string","toUpperCase","filterValue","trueValue","falseValue","filterMixin","prototype","hasOwnProperty","call","newValue","oldValue","input","val","applyFilter","translationsLoaded","xwikiSelectize","onChange","beforeDestroyed","selectize","destroy","showDateInput","filterEntry","applyFilterFromText","rules","from","to","date","split","isValid","range","dateString","join","operator","javaDateFormat","dateFormat","toMomentFormatString","ranges","startOf","endOf","subtract","defaultFilterConfig","test","showCustomRangeLabel","cancelLabel","filterConfig","assign","getDateValue","filterDate","endDate","applyFilterFromDate","containsInput","applyFilterWithDelay","$watch","immediate","isReady","isVisible","isAdvanced","selectizeSettings","options","hasEmptyOperator","some","getDefaultEmptyOption","settings","create","maxItems","items","removeFilter","searchURL","load","getLoader","loadSelected","operators","searchParams","text","callback","encodeURIComponent","results","getResultsAdapter","adaptedResults","propertyValues","getSuggestion","unshift","propertyValue","metaData","label","hint","filterComponent","isFiltering","FilterBoolean","FilterDate","FilterList","FilterNumber","FilterText","Number","filterId","getFilterDescriptor","loadFilter","reject","loadFilterSuccess","loadFilterFailure","err","defaultFilter","error","waiting","loading","visible","loadingData","loadingLayout","delay","firstEntriesLoading","watchLoading","propertyName","eventBefore","eventAfter","timeoutId","onEvent","clearTimeout","layoutComponent","LayoutTable","previousLayoutId","loadLayout","triggerEvent","defaultLayout","loadLayoutSuccess","loadLayoutFailure","idx","canAddEntry","entriesFetched","LivedataBottombar","LivedataTopbar","LivedataDropdownMenu","LivedataPagination","LivedataEntrySelectorInfoBar","LayoutTableHeaderNames","LayoutTableHeaderFilters","LayoutTableRow","LayoutTableNewRow","LayoutLoader","isFilteringEnabled","properties","isPropertyVisible","isPropertyFilterable","LivedataFilter","getPropertyDescriptors","getFilterableProperties","reorderProperty","isPropertySortable","isFirstSortLevel","firstSortLevel","descending","resizeColumnInit","resizeColumn","resetColumnSize","mousedownmove","bindings","dispatchMouseDownMoveEvent","mouseClickEvent","mouseMoveEvent","mouseDownMoveEvent","MouseEvent","dispatchEvent","clickEvent","mousemoveHandler","removeMousemoveHandler","window","removeEventListener","modifiers","LivedataEntrySelectorAll","XWikiDraggable","moved","oldIndex","newIndex","getNextVisibleProperty","th","nextElementSibling","style","display","closest","leftColumn","querySelector","leftColumnBaseWidth","getBoundingClientRect","width","rightColumn","rightColumnBaseWidth","widths","columns","column","offsetX","clientX","leftColumnWidth","rightColumnWidth","removeProperty","colspan","addEntry","entryIdx","isEntrySelectable","LivedataEntrySelector","LivedataDisplayer","_g","$listeners","vuedraggable","isImage","isFont","cssClass","iconCache","remoteIconDescriptor","descriptor","iconSetType","fetchRemoteIconDescriptor","iconName","parameters","iconURL","contextPath","currentWiki","response","fetch","headers","jsonResponse","json","icons","normalizeComponent","scriptExports","functionalTemplate","injectStyles","scopeId","moduleIdentifier","shadowMode","hook","_compiled","functional","_scopeId","context","$vnode","ssrContext","parent","__VUE_SSR_CONTEXT__","_registeredComponents","_ssrRegister","$root","$options","shadowRoot","_injectStyles","originalRender","h","existing","beforeCreate","_applyFilterTimeoutId","filterGroup","getQueryFilterGroup","constraints","getFilterDefaultOperator","filterOperator","finally","timeoutDelay","_operatorChangeHandler","oldOperator","newOperator","reverse","rule","created","onEventWhere","oldEntry","detail","newEntry","stopImmediatePropagation","global","setPrototypeOf","isFrozen","getPrototypeOf","getOwnPropertyDescriptor","freeze","seal","construct","Reflect","x","fun","thisValue","args","Func","arrayForEach","unapply","arrayPop","pop","arrayPush","stringToLowerCase","stringToString","toString","stringMatch","match","stringReplace","stringIndexOf","stringTrim","objectHasOwnProperty","regExpTest","RegExp","typeErrorCreate","unconstruct","TypeError","func","thisArg","_len","_key","_len2","_key2","addToSet","array","transformCaseFunc","l","element","lcElement","cleanArray","isPropertyExist","clone","object","newObject","constructor","lookupGetter","prop","desc","fallbackValue","html$1","svg$1","svgFilters","svgDisallowed","mathMl$1","mathMlDisallowed","svg","mathMl","xml","MUSTACHE_EXPR","ERB_EXPR","TMPLIT_EXPR","DATA_ATTR","ARIA_ATTR","IS_ALLOWED_URI","IS_SCRIPT_OR_DATA","ATTR_WHITESPACE","DOCTYPE_NAME","CUSTOM_ELEMENT","EXPRESSIONS","__proto__","getGlobal","_createTrustedTypesPolicy","trustedTypes","purifyHostElement","createPolicy","suffix","ATTR_NAME","hasAttribute","policyName","createHTML","createScriptURL","scriptUrl","_","createDOMPurify","version","removed","nodeType","isSupported","originalDocument","currentScript","DocumentFragment","HTMLTemplateElement","Node","Element","NodeFilter","NamedNodeMap","MozNamedAttrMap","HTMLFormElement","DOMParser","ElementPrototype","cloneNode","getNextSibling","getChildNodes","getParentNode","template","content","ownerDocument","trustedTypesPolicy","emptyHTML","implementation","createNodeIterator","createDocumentFragment","getElementsByTagName","importNode","hooks","createHTMLDocument","IS_ALLOWED_URI$1","ALLOWED_TAGS","DEFAULT_ALLOWED_TAGS","ALLOWED_ATTR","DEFAULT_ALLOWED_ATTR","CUSTOM_ELEMENT_HANDLING","tagNameCheck","writable","configurable","enumerable","attributeNameCheck","allowCustomizedBuiltInElements","FORBID_TAGS","FORBID_ATTR","ALLOW_ARIA_ATTR","ALLOW_DATA_ATTR","ALLOW_UNKNOWN_PROTOCOLS","ALLOW_SELF_CLOSE_IN_ATTR","SAFE_FOR_TEMPLATES","SAFE_FOR_XML","WHOLE_DOCUMENT","SET_CONFIG","FORCE_BODY","RETURN_DOM","RETURN_DOM_FRAGMENT","RETURN_TRUSTED_TYPE","SANITIZE_DOM","SANITIZE_NAMED_PROPS","SANITIZE_NAMED_PROPS_PREFIX","KEEP_CONTENT","IN_PLACE","USE_PROFILES","FORBID_CONTENTS","DEFAULT_FORBID_CONTENTS","DATA_URI_TAGS","DEFAULT_DATA_URI_TAGS","URI_SAFE_ATTRIBUTES","DEFAULT_URI_SAFE_ATTRIBUTES","MATHML_NAMESPACE","SVG_NAMESPACE","HTML_NAMESPACE","NAMESPACE","IS_EMPTY_INPUT","ALLOWED_NAMESPACES","DEFAULT_ALLOWED_NAMESPACES","PARSER_MEDIA_TYPE","SUPPORTED_PARSER_MEDIA_TYPES","DEFAULT_PARSER_MEDIA_TYPE","CONFIG","MAX_NESTING_DEPTH","formElement","isRegexOrFunction","testValue","_parseConfig","cfg","ADD_URI_SAFE_ATTR","ADD_DATA_URI_TAGS","ALLOWED_URI_REGEXP","ADD_TAGS","ADD_ATTR","table","tbody","TRUSTED_TYPES_POLICY","MATHML_TEXT_INTEGRATION_POINTS","HTML_INTEGRATION_POINTS","COMMON_SVG_AND_HTML_ELEMENTS","ALL_SVG_TAGS","ALL_MATHML_TAGS","_checkValidNamespace","namespaceURI","parentTagName","_forceRemove","remove","_removeAttribute","attribute","getAttributeNode","removeAttribute","setAttribute","_initDocument","dirty","doc","leadingWhitespace","matches","dirtyPayload","parseFromString","documentElement","createDocument","body","insertBefore","createTextNode","childNodes","_createNodeIterator","SHOW_ELEMENT","SHOW_COMMENT","SHOW_TEXT","SHOW_PROCESSING_INSTRUCTION","SHOW_CDATA_SECTION","_isClobbered","elm","__depth","__removalCount","nodeName","textContent","attributes","hasChildNodes","_isNode","_executeHook","entryPoint","currentNode","_sanitizeElements","allowedTags","firstElementChild","_isBasicCustomElement","childCount","childClone","expr","_isValidAttribute","lcTag","lcName","_sanitizeAttributes","hookEvent","attrName","attrValue","keepAttr","allowedAttributes","attr","forceKeepAttr","getAttributeType","setAttributeNS","_sanitizeShadowDOM","fragment","shadowNode","shadowIterator","nextNode","sanitize","importedNode","returnNode","appendChild","firstChild","nodeIterator","shadowroot","shadowrootmode","serializedHTML","outerHTML","doctype","setConfig","clearConfig","isValidAttribute","addHook","hookFunction","removeHook","removeHooks","removeAllHooks","purify","LZString","f","fromCharCode","keyStrBase64","keyStrUriSafe","baseReverseDic","getBaseValue","alphabet","character","charAt","compressToBase64","res","_compress","decompressFromBase64","_decompress","compressToUTF16","decompressFromUTF16","compressed","charCodeAt","compressToUint8Array","uncompressed","compress","buf","Uint8Array","TotalLen","current_value","decompressFromUint8Array","decompress","result","c","compressToEncodedURIComponent","decompressFromEncodedURIComponent","bitsPerChar","getCharFromInt","ii","context_dictionary","context_dictionaryToCreate","context_c","context_wc","context_w","context_enlargeIn","context_dictSize","context_numBits","context_data","context_data_val","context_data_position","pow","resetValue","getNextValue","w","bits","resb","maxpower","power","dictionary","enlargeIn","dictSize","numBits","position","_typeof","obj","Symbol","iterator","_defineProperty","defineProperty","_extends","_objectSpread","ownKeys","getOwnPropertySymbols","sym","_objectWithoutPropertiesLoose","excluded","sourceKeys","_objectWithoutProperties","sourceSymbolKeys","propertyIsEnumerable","_toConsumableArray","arr","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","arr2","iter","userAgent","pattern","navigator","IE11OrLess","Edge","FireFox","Safari","IOS","ChromeForAndroid","captureMode","capture","passive","off","selector","msMatchesSelector","webkitMatchesSelector","getParentOrHost","host","ctx","includeCTX","_throttleTimeout","R_SPACE","toggleClass","state","classList","css","defaultView","getComputedStyle","currentStyle","matrix","selfOnly","appliedTransforms","transform","matrixFn","DOMMatrix","WebKitCSSMatrix","CSSMatrix","MSCSSMatrix","list","n","getWindowScrollingElement","scrollingElement","getRect","relativeToContainingBlock","relativeToNonStaticParent","undoScale","elRect","top","left","bottom","right","height","innerHeight","innerWidth","containerRect","parseInt","elMatrix","scaleX","scaleY","d","isScrolledPast","elSide","parentSide","getParentAutoScrollElement","elSideVal","parentSideVal","getChild","childNum","currentChild","children","Sortable","ghost","dragged","draggable","lastChild","last","lastElementChild","previousElementSibling","getRelativeScrollOffset","offsetLeft","offsetTop","winScroller","scrollLeft","scrollTop","indexOfObject","includeSelf","elem","gotSelf","clientWidth","scrollWidth","clientHeight","scrollHeight","elemCSS","overflowX","overflowY","extend","dst","src","isRectEqual","rect1","rect2","round","throttle","ms","_this","cancelThrottle","scrollBy","y","Polymer","jQuery","Zepto","dom","setRect","rect","unsetRect","expando","Date","getTime","AnimationStateManager","animationCallbackId","animationStates","captureAnimationState","animation","child","fromRect","thisAnimationDuration","childMatrix","addAnimationState","removeAnimationState","splice","animateAll","animating","animationTime","time","toRect","prevFromRect","prevToRect","animatingRect","targetMatrix","calculateRealTime","animate","animationResetTimer","currentRect","duration","translateX","translateY","animatingX","animatingY","repaint","easing","animated","offsetWidth","sqrt","plugins","defaults","initializeByDefault","PluginManager","mount","plugin","option","pluginEvent","eventName","sortable","eventCanceled","eventNameGlobal","pluginName","initializePlugins","initialized","modified","modifyOption","getEventProperties","eventProperties","modifiedValue","optionListeners","_ref","rootEl","targetEl","cloneEl","toEl","fromEl","oldDraggableIndex","newDraggableIndex","originalEvent","putSortable","extraEventProperties","onName","substr","CustomEvent","createEvent","initEvent","bubbles","cancelable","item","pullMode","lastPutMode","allEventProperties","bind","dragEl","parentEl","ghostEl","nextEl","lastDownEl","cloneHidden","dragStarted","activeSortable","active","hideGhostForTarget","_hideGhostForTarget","unhideGhostForTarget","_unhideGhostForTarget","cloneNowHidden","cloneNowShown","dispatchSortableEvent","_dispatchEvent","info","activeGroup","tapEvt","touchEvt","lastDx","lastDy","tapDistanceLeft","tapDistanceTop","lastTarget","lastDirection","targetMoveDistance","ghostRelativeParent","awaitingDragStarted","ignoreNextClick","sortables","pastFirstInvertThresh","isCircumstantialInvert","ghostRelativeParentInitialScroll","_silent","savedInputChecked","documentExists","PositionGhostAbsolutely","CSSFloatProperty","supportDraggable","supportCssPointerEvents","cssText","pointerEvents","_detectDirection","elCSS","elWidth","paddingLeft","paddingRight","borderLeftWidth","borderRightWidth","child1","child2","firstChildCSS","secondChildCSS","firstChildWidth","marginLeft","marginRight","secondChildWidth","flexDirection","gridTemplateColumns","touchingSideChild2","clear","_dragElInRowColumn","dragRect","targetRect","vertical","dragElS1Opp","dragElS2Opp","dragElOppLength","targetS1Opp","targetS2Opp","targetOppLength","_detectNearestEmptySortable","ret","threshold","emptyInsertThreshold","insideHorizontally","insideVertically","_prepareGroup","toFn","pull","sameGroup","group","otherGroup","originalGroup","checkPull","checkPut","revertClone","nearestEmptyInsertDetectEvent","touches","nearest","clientY","_onDragOver","_checkOutsideTargetEl","_isOutsideThisEl","disabled","store","handle","swapThreshold","invertSwap","invertedSwapThreshold","removeCloneOnHide","direction","ghostClass","chosenClass","dragClass","ignore","preventOnFilter","setData","dataTransfer","dropBubble","dragoverBubble","dataIdAttr","delayOnTouchOnly","touchStartThreshold","devicePixelRatio","forceFallback","fallbackClass","fallbackOnBody","fallbackTolerance","fallbackOffset","supportPointer","nativeDraggable","_onTapStart","_globalDragOver","dropEffect","_onMove","willInsertAfter","retVal","onMoveFn","onMove","draggedRect","related","relatedRect","_disableDraggable","_unsilent","_ghostIsLast","spacer","_getSwapDirection","isLastTarget","mouseOnAxis","targetLength","targetS1","targetS2","invert","_getInsertDirection","_generateId","str","sum","_saveInputCheckedState","inputs","_nextTick","_cancelNextTick","_getDirection","touch","pointerType","originalTarget","path","composedPath","button","isContentEditable","criteria","_prepareDragStart","dragStartFn","nextSibling","_lastX","_lastY","_onDrop","_disableDelayedDragEvents","_triggerDragStart","_disableDelayedDrag","_delayedDragTouchMoveHandler","_dragStartTimer","floor","_onTouchMove","_onDragStart","selection","getSelection","removeAllRanges","_dragStarted","fallback","_appendGhost","_nulling","_emulateDragOver","elementFromPoint","ghostMatrix","relativeScrollOffset","dx","dy","cssMatrix","_hideClone","cloneId","_loopId","setInterval","effectAllowed","_dragStartId","revert","isOwner","canSort","fromSortable","completedFired","dragOverEvent","_ignoreWhileAnimating","completed","elLastChild","changed","targetBeforeFirstSwap","sibling","differentLevel","differentRowCol","side1","scrolledPastTop","scrollBefore","dragIndex","after","moveVector","extra","axis","insertion","_showClone","_offMoveEvents","_offUpEvents","clearInterval","handleEvent","toArray","order","utils","is","nextTick","cancelNextTick","detectDirection","scrollEl","scrollRootEl","lastAutoScrollX","lastAutoScrollY","touchEvt$1","pointerElemChangedInterval","autoScrolls","scrolling","AutoScrollPlugin","AutoScroll","scroll","scrollSensitivity","scrollSpeed","bubbleScroll","_handleAutoScroll","_handleFallbackAutoScroll","dragOverCompleted","_ref2","dragOverBubble","drop","clearPointerElemChangedInterval","clearAutoScrolls","nulling","autoScroll","ogElemScroller","newElem","pid","lastSwapEl","isFallback","scrollCustomFn","sens","speed","scrollThisInstance","scrollFn","layersOut","currentParent","canScrollX","canScrollY","scrollPosX","scrollPosY","vx","vy","layer","scrollOffsetY","scrollOffsetX","toSortable","changedTouches","onSpill","Revert","Remove","SwapPlugin","Swap","swapClass","dragStart","dragOverValid","swap","prevSwapEl","_ref3","swapNodes","swapItem","n1","n2","i1","i2","p1","p2","isEqualNode","startIndex","_ref4","parentSortable","lastMultiDragSelect","multiDragSortable","dragEl$1","clonesFromRect","clonesHidden","multiDragElements","multiDragClones","initialFolding","folding","MultiDragPlugin","MultiDrag","_deselectMultiDrag","_checkKeyDown","_checkKeyUp","selectedClass","multiDragKey","multiDragElement","multiDragKeyDown","isMultiDrag","delayStartGlobal","delayEnded","setupClone","sortableIndex","insertMultiDragClones","showClone","hideClone","_ref5","dragStartGlobal","_ref6","multiDrag","_ref7","_this2","removeMultiDragElements","dragOver","_ref8","_ref9","insertMultiDragElements","_ref10","dragRectAbsolute","clonesHiddenBefore","dragOverAnimationCapture","_ref11","dragMatrix","dragOverAnimationComplete","_ref12","originalEvt","shiftKey","lastIndex","currentIndex","multiDragIndex","nullingGlobal","destroyGlobal","shift","select","deselect","_this3","oldIndicies","newIndicies","clones","clonesInserted","elementsInserted","_map","_map2","_interopRequireDefault","_slicedToArray","sliceIterator","_arr","_n","_d","next","done","_core","_coder","__esModule","encode","blob","toVarN","decode","size","_fromVarN","fromVarN","_fromVarN2","rest","register","boolean","_oneOf","_oneOf2","_fromPairs","_fromPairs2","_keys","_keys2","_isObject","_isObject2","_tail","_tail2","_isArray","_isArray2","_reduce","_reduce2","_filter","_filter2","_sortBy","_sortBy2","_find","_find2","fromJson","availableTypes","coder","_coder$spec$encode","spec","encodedVersion","bitsToN","coders","bitSize","_fromVarN3","_fromVarN4","bitCharSize","ceil","nToBits","pendingMigrations","migrate","jsonSpec","loop","method","tuple","_repeat","_repeat2","bitsRequired","maxValue","log","LN2","paddedBinary","binary","none","notNone","isNone","toN","fromN","paddedN","encoded","acc","availableCharacters","base","hasMore","byte","charsRequired","part","charSize","r","char","chars","fixedChar","integer","int","sign","_each","_each2","_has","_has2","_flatten","_flatten2","oneOf","choices","choice","varchar","nativeCreate","objectProto","Hash","getNative","Map","mapClear","mapDelete","mapGet","mapHas","mapSet","MapCache","has","stackClear","stackDelete","stackGet","stackHas","stackSet","Stack","arrayEach","iteratee","arrayFilter","predicate","resIndex","arrayMap","offset","arrayReduce","accumulator","initAccum","arraySome","assocIndexOf","arrayProto","assocDelete","assocGet","assocHas","eq","assocSet","baseForOwn","createBaseEach","baseEach","baseFilter","collection","baseFind","eachFunc","retKey","baseFindIndex","fromRight","isArguments","isArrayLikeObject","baseFlatten","isDeep","isStrict","createBaseFor","baseFor","baseToPath","isKey","baseGet","baseHas","baseHasIn","baseIsEqualDeep","isObject","isObjectLike","baseIsEqual","other","customizer","bitmask","stack","equalArrays","equalByTag","equalObjects","getTag","isHostObject","isTypedArray","PARTIAL_COMPARE_FLAG","argsTag","arrayTag","objectTag","equalFunc","objIsArr","othIsArr","objTag","othTag","objIsObj","othIsObj","isSameTag","isPartial","objIsWrapped","othIsWrapped","UNORDERED_COMPARE_FLAG","baseIsMatch","matchData","noCustomizer","objValue","srcValue","baseMatches","baseMatchesProperty","identity","baseIteratee","nativeKeys","baseKeys","isArrayLike","baseMap","getMatchData","hasIn","baseSortBy","compareMultiple","baseOrderBy","iteratees","orders","toIteratee","baseProperty","basePropertyDeep","baseReduce","baseSlice","end","comparer","baseTimes","baseToPairs","stringToPath","checkGlobal","compareAscending","valIsNull","valIsUndef","valIsReflexive","othIsNull","othIsUndef","othIsReflexive","objCriteria","othCriteria","ordersLength","iterable","keysFunc","isUnordered","arrLength","othLength","stacked","arrValue","othValue","compared","mapToArray","setToArray","boolTag","dateTag","errorTag","mapTag","numberTag","regexpTag","setTag","stringTag","symbolTag","arrayBufferTag","symbolProto","symbolValueOf","valueOf","byteLength","message","convert","objProps","objLength","othProps","skipCtor","objCtor","othCtor","getLength","isStrictComparable","toPairs","isNative","funcToString","objectToString","mapCtorString","setCtorString","Ctor","ctorString","isIndex","isLength","isString","hasPath","hasFunc","hashHas","hashDelete","hash","HASH_UNDEFINED","hashGet","hashSet","indexKeys","MAX_SAFE_INTEGER","reIsUint","isIterateeCall","reIsDeepProp","reIsPlainProp","isKeyable","isPrototype","proto","__data__","objectTypes","freeExports","freeModule","freeGlobal","g","freeSelf","freeWindow","thisGlobal","LARGE_ARRAY_SIZE","rePropName","reEscapeChar","number","quote","toFunction","toInteger","guard","flatten","fromPairs","pairs","pair","defaultValue","isFunction","funcTag","genTag","reRegExpChar","reIsHostCtor","reIsNative","isSymbol","weakMapTag","float32Tag","float64Tag","int8Tag","int16Tag","int32Tag","uint8Tag","uint8ClampedTag","uint16Tag","uint32Tag","typedArrayTags","isProto","skipIndexes","reduce","nativeFloor","repeat","FUNC_ERROR_TEXT","nativeMax","otherArgs","sortBy","tail","toNumber","INFINITY","MAX_INTEGER","remainder","NAN","reTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","isBinary","symbolToString","isBrowser","timeoutDuration","longerTimeoutBrowsers","microtaskDebounce","called","taskDebounce","scheduled","supportsMicroTasks","debounce","functionToCheck","getType","getStyleComputedProperty","getScrollParent","_getStyleComputedProp","overflow","getReferenceNode","reference","referenceNode","isIE11","MSInputMethodContext","documentMode","isIE10","isIE","getOffsetParent","noOffsetParent","offsetParent","isOffsetContainer","getRoot","findCommonOffsetParent","element1","element2","compareDocumentPosition","DOCUMENT_POSITION_FOLLOWING","createRange","setStart","setEnd","commonAncestorContainer","element1root","getScroll","side","upperSide","includeScroll","modifier","getBordersSize","styles","sideA","sideB","parseFloat","getSize","computedStyle","getWindowSizes","classCallCheck","instance","Constructor","createClass","defineProperties","protoProps","staticProps","getClientRect","offsets","sizes","horizScrollbar","vertScrollbar","offsetHeight","getOffsetRectRelativeToArbitraryNode","fixedPosition","isHTML","childrenRect","parentRect","scrollParent","borderTopWidth","marginTop","getViewportOffsetRectRelativeToArtbitraryNode","excludeScroll","relativeOffset","isFixed","getFixedPositionOffsetParent","parentElement","getBoundaries","popper","padding","boundariesElement","boundaries","boundariesNode","_getWindowSizes","isPaddingNumber","getArea","computeAutoPlacement","placement","refRect","rects","sortedAreas","area","filteredAreas","computedPlacement","variation","getReferenceOffsets","commonOffsetParent","getOuterSizes","marginBottom","getOppositePlacement","matched","getPopperOffsets","referenceOffsets","popperRect","popperOffsets","isHoriz","mainSide","secondarySide","measurement","secondaryMeasurement","check","findIndex","cur","runModifiers","ends","modifiersToRun","enabled","isDestroyed","arrowStyles","flipped","positionFixed","flip","originalPlacement","isCreated","onUpdate","onCreate","isModifierEnabled","modifierName","getSupportedPropertyName","prefixes","upperProp","prefix","toCheck","willChange","disableEventListeners","removeOnDestroy","getWindow","attachToScrollParents","scrollParents","isBody","setupEventListeners","updateBound","scrollElement","eventsEnabled","enableEventListeners","scheduleUpdate","removeEventListeners","cancelAnimationFrame","isNumeric","isNaN","isFinite","setStyles","unit","setAttributes","applyStyle","arrowElement","applyStyleOnLoad","modifierOptions","getRoundedOffsets","shouldRound","_data$offsets","noRound","v","referenceWidth","popperWidth","isVertical","isVariation","sameWidthParity","bothOddWidth","horizontalToInteger","verticalToInteger","isFirefox","computeStyle","legacyGpuAccelerationOption","gpuAcceleration","offsetParentRect","prefixedProperty","invertTop","invertLeft","arrow","isModifierRequired","requestingName","requestedName","requesting","isRequired","_requesting","requested","_data$offsets$arrow","len","sideCapitalized","altSide","opSide","arrowElementSize","center","popperMarginSide","popperBorderSide","sideValue","min","getOppositeVariation","placements","validPlacements","clockwise","counter","BEHAVIORS","FLIP","CLOCKWISE","COUNTERCLOCKWISE","placementOpposite","flipOrder","behavior","step","refOffsets","overlapsRef","overflowsLeft","overflowsRight","overflowsTop","overflowsBottom","overflowsBoundaries","flippedVariationByRef","flipVariations","flippedVariationByContent","flipVariationsByContent","flippedVariation","keepTogether","toValue","parseOffset","basePlacement","useHeight","fragments","frag","divider","search","splitRegex","ops","op","mergeWithPrevious","index2","preventOverflow","transformProp","popperStyles","priority","primary","escapeWithReference","secondary","shiftvariation","shiftOffsets","inner","subtractLength","onLoad","Defaults","Popper","requestAnimationFrame","jquery","Utils","PopperUtils","_extends$1","isBrowser$1","ua","isIE$1","isUCBrowser","isIOS","platform","MSStream","defaultProps","a11y","allowHTML","animateFill","appendTo","aria","arrowType","boundary","distance","flipBehavior","flipOnUpdate","followCursor","hideOnClick","ignoreAttributes","inertia","interactive","interactiveBorder","interactiveDebounce","lazy","maxWidth","multiple","onHidden","onHide","onMount","onShow","onShown","onTrigger","popperOptions","role","showOnInit","sticky","theme","touchHold","triggerTarget","updateDuration","wait","zIndex","POPPER_INSTANCE_DEPENDENCIES","elementProto","matchesSelector","mozMatchesSelector","arrayFrom","closestCallback","PASSIVE","PADDING","PLACEMENT_ATTRIBUTE","OUT_OF_BOUNDARIES_ATTRIBUTE","IOS_CLASS","ACTIVE_CLASS","POPPER_CLASS","TOOLTIP_CLASS","CONTENT_CLASS","BACKDROP_CLASS","ARROW_CLASS","ROUND_ARROW_CLASS","POPPER_SELECTOR","TOOLTIP_SELECTOR","CONTENT_SELECTOR","BACKDROP_SELECTOR","ARROW_SELECTOR","ROUND_ARROW_SELECTOR","isUsingTouch","onDocumentTouch","performance","onDocumentMouseMove","lastMouseMoveTime","now","onWindowBlur","_document","activeElement","blur","_tippy","bindGlobalEventListeners","getDataAttributeOptions","valueAsString","JSON","parse","polyfillElementPrototypeProperties","virtualReference","polyfills","isVirtual","classNames","isBareVirtualElement","isReferenceElement","getArrayOfElements","isSingular","NodeList","debounce$1","timeout","getModifier","isRealElement","invokeWithArgsOrReturn","setFlipModifierEnabled","m","canReceiveFocus","div","setTransitionDuration","els","transitionDuration","setVisibilityState","evaluateProps","out","validateOptions","setInnerHTML","setContent","contentEl","getChildren","tooltip","backdrop","addInertia","removeInertia","createArrowElement","createBackdropElement","addInteractive","removeInteractive","updateTransitionEndListener","webkitTransition","getBasicPlacement","fullPlacement","reflow","updateTheme","themeName","createPopperElement","updatePopperElement","prevProps","nextProps","_getChildren","replaceChild","hideAll","excludedReferenceOrInstance","exclude","isExcluded","isCursorOutsideInteractiveBorder","popperPlacement","exceedsTop","exceedsBottom","exceedsLeft","exceedsRight","getOffsetDistanceInPx","idCounter","mouseMoveListeners","createTippy","collectionProps","lastTriggerEventType","lastMouseMoveEvent","showTimeoutId","hideTimeoutId","scheduleHideAnimationFrameId","previousPlacement","currentMountCallback","currentTransitionEndListener","currentComputedPadding","isScheduledToShow","isBeingDestroyed","wasVisibleDuringPreviousUpdate","hasMountCallbackRun","listeners","debouncedOnMouseMove","onMouseMove","popperChildren","popperInstance","isEnabled","isMounted","isShown","clearDelayTimeouts","enable","disable","addTriggersToReference","createPopperInstance","scheduleShow","getEventListenersTarget","removeFollowCursorListener","positionVirtualReferenceNearCursor","cleanupInteractiveMouseListeners","scheduleHide","addDocumentClickListener","onDocumentClick","removeDocumentClickListener","getTransitionableElements","getIsInLooseFollowCursorMode","makeSticky","prevRefRect","updatePosition","currentRefRect","onTransitionedOut","onTransitionEnd","onTransitionedIn","eventType","onMouseLeave","onDelegateShow","onDelegateHide","onBlur","removeTriggersFromReference","_lastMouseMoveEvent","isCursorOverReference","isHorizontal","isVerticalPlacement","halfSize","verticalIncrease","horizontalIncrease","createDelegateChildTippy","isEventListenerStopped","isCursorOverPopper","relatedTarget","supportsTouch","isTouchEvent","runMountCallback","_instance$popperChild","preventOverflowModifier","applyMutations","transition","basicPlacement","computedPadding","isInLooseFollowCursorMode","shouldAvoidCallingOnTrigger","visibility","transitionableElements","transitionDelay","destroyTargetInstances","instances","_ref$delay","_ref$duration","isAnyTippyOpen","setIsAnyTippyOpen","updateInstances","_originalProps","globalEventListenersBound","targets","autoInit","injectCSS","head","firstStyleOrLinkTag","setDefaults","partialDefaults","commonjsGlobal","globalThis","createCommonjsModule","humps","_processKeys","_isDate","_isRegExp","_isBoolean","_isFunction","output","separateWords","separator","camelize","_isNumerical","chr","pascalize","camelized","decamelize","_processor","process","depascalize","camelizeKeys","decamelizeKeys","pascalizeKeys","depascalizeKeys","enumerableOnly","symbols","_objectSpread2","getOwnPropertyDescriptors","booleanProps","defaultProps$1","script","toSelector","toElement","triggerTag","contentTag","init","getOptions","updated","beforeDestroy","isManualTrigger","childElementCount","$el","filterOptions","_Object$keys","_this$$listeners$show","fns","_this$$listeners$show2","_this$$listeners$hidd","_this$$listeners$hide","_this$$listeners$moun","isFunctionalTemplate","createInjector","createInjectorSSR","createInjectorShadow","normalizeComponent_1","__vue_script__","__vue_render__","_h","$createElement","__vue_staticRenderFns__","_withStripped","__vue_inject_styles__","__vue_scope_id__","__vue_module_identifier__","__vue_is_functional_template__","tippyDirective","install","Vue","vnode","handlers","componentOptions","opts","deriveOpts","withArrow","_handlers$show","_handlers$shown","_handlers$hidden","_handlers$hide","_handlers$mount","showOnLoad","directive","unbind","componentUpdated","use","touchX","touchY","isPassiveSupported","supportsPassive","globalLastTouchTime","vueTouchEvents","constructorOptions","globalOptions","disableClick","tapTolerance","swipeTolerance","touchHoldTolerance","longTapTimeInterval","touchClass","namespace","touchStartEvent","$this","$$touchObj","isMouseEvent","timeStamp","touchStarted","addTouchClass","touchMoved","swipeOutBounded","startX","startY","currentX","currentY","touchStartTime","touchHoldTimer","touchMoveEvent","cancelTouchHoldTimer","touchCancelEvent","removeTouchClass","touchEndEvent","touchholdEnd","distanceY","distanceX","callbacks","longtap","touchhold","mouseEnterEvent","mouseLeaveEvent","param","stop","prevent","buildTouchObj","extraOptions","touchObj","hasBindTouchEvents","passiveOpt","_m","swipe","disablePassive","__WEBPACK_EXTERNAL_MODULE_a352__","modules","installedModules","moduleId","getter","toStringTag","t","mode","ns","p","s","LIBRARY","$export","redefine","Iterators","$iterCreate","setToStringTag","ITERATOR","BUGGY","FF_ITERATOR","KEYS","VALUES","returnThis","Base","NAME","DEFAULT","IS_SET","FORCED","IteratorPrototype","getMethod","kind","TAG","DEF_VALUES","VALUES_BUG","$native","$default","$entries","$anyNative","P","F","defined","TO_STRING","that","pos","at","S","unicode","anObject","ignoreCase","multiline","$keys","enumBugKeys","O","dP","getKeys","Properties","fails","wks","regexpExec","SPECIES","REPLACE_SUPPORTS_NAMED_GROUPS","re","exec","groups","SPLIT_WORKS_WITH_OVERWRITTEN_EXEC","originalExec","KEY","SYMBOL","DELEGATES_TO_SYMBOL","DELEGATES_TO_EXEC","execCalled","nativeRegExpMethod","nativeMethod","regexp","arg2","forceStringMethod","strfn","rxfn","cof","ARG","tryGet","T","B","callee","SRC","$toString","TPL","inspectSource","safe","dPs","IE_PROTO","Empty","PROTOTYPE","createDict","iframeDocument","iframe","lt","gt","contentWindow","open","write","close","uid","USE_SYMBOL","$exports","INCLUDES","searchString","createDesc","toObject","ObjectProto","bitmap","MATCH","regexpFlags","nativeExec","nativeReplace","patchedExec","LAST_INDEX","UPDATES_LAST_INDEX_WRONG","re1","re2","NPCG_INCLUDED","PATCH","reCopy","core","SHARED","copyright","own","exp","IS_FORCED","IS_GLOBAL","G","IS_STATIC","IS_PROTO","IS_BIND","expProto","U","W","R","classof","builtinExec","shared","$includes","IObject","gOPS","pIE","$assign","A","K","k","aLen","getSymbols","isEnum","j","__g","def","stat","__e","IE8_DOM_DEFINE","toPrimitive","Attributes","aFunction","UNSCOPABLES","ArrayProto","toLength","advanceStringIndex","regExpExec","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","maybeToString","REPLACE","$replace","maybeCallNative","searchValue","replaceValue","rx","functionalReplace","fullUnicode","matchStr","accumulatedResult","nextSourcePosition","captures","namedCaptures","replacerArgs","replacement","getSubstitution","tailPos","ch","isRegExp","$iterators","TO_STRING_TAG","ArrayValues","DOMIterables","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLSelectElement","MediaList","MimeTypeArray","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","collections","explicit","Collection","forced","toIObject","toAbsoluteIndex","IS_INCLUDES","fromIndex","insertNodeAt","removeNode","getConsole","cached","cache","hit","regex","fatherNode","refNode","px","random","addToUnscopables","iterated","Arguments","arrayIndexOf","names","STARTS_WITH","$startsWith","scripts","readyState","setPublicPath_i","_arrayWithHoles","_iterableToArrayLimit","_arrayLikeToArray","_unsupportedIterableToArray","minLen","_nonIterableRest","external_commonjs_sortablejs_commonjs2_sortablejs_amd_sortablejs_root_Sortable_","external_commonjs_sortablejs_commonjs2_sortablejs_amd_sortablejs_root_Sortable_default","helper","buildAttribute","propName","computeVmIndex","vnodes","elt","_computeIndexes","slots","isTransition","footerOffset","elmFromNodes","footerIndex","rawIndexes","ind","emit","evtName","evtData","delegateAndEmit","realList","isTransitionName","vuedraggable_isTransition","_slots","getSlot","slot","scopedSlot","computeChildrenAndOffsets","headerOffset","header","footer","getComponentAttributes","componentData","componentDataAttrs","eventsListened","eventsToEmit","readonlyProperties","draggingElement","noTransitionOnDrag","original","move","draggableComponent","inheritAttrs","transitionMode","noneFunctionalComponentMode","$slots","_computeChildrenAndOf","$scopedSlots","getIsFunctional","optionsAdded","onDragMove","_sortable","rootContainer","computeIndexes","newOptionValue","updateOptions","deep","fnOptions","_vnode","getChildrenNodes","$children","rawNodes","_this4","visibleIndexes","getUnderlyingVm","htmlElt","getUnderlyingPotencialDraggableComponent","vue","__vue__","_componentTag","$parent","emitChanges","_this5","alterList","onList","newList","spliceList","_arguments","getRelatedContextFromMoveEvent","destination","getVmIndex","domIndex","numberIndexes","getComponent","componentInstance","resetTransitionData","nodes","transitionContainer","kept","onDragStart","_underlying_vm_","onDragAdd","added","onDragRemove","onDragUpdate","updateProperty","computeFutureIndex","relatedContext","domChildren","currentDOMIndex","draggedInList","draggedContext","futureIndex","sendEvt","onDragEnd","isCallable","tryToString","$TypeError","argument","$String","toIndexedObject","lengthOfArrayLike","createMethod","DESCRIPTORS","SILENT_ON_NON_WRITABLE_LENGTH_SET","uncurryThis","stringSlice","TO_STRING_TAG_SUPPORT","classofRaw","wellKnownSymbol","$Object","CORRECT_ARGUMENTS","hasOwn","getOwnPropertyDescriptorModule","definePropertyModule","exceptions","createPropertyDescriptor","makeBuiltIn","setter","defineGlobalProperty","simple","unsafe","nonConfigurable","nonWritable","documentAll","IS_HTMLDDA","EXISTS","Deno","versions","v8","createNonEnumerableProperty","defineBuiltIn","copyConstructorProperties","isForced","targetProperty","sourceProperty","TARGET","GLOBAL","STATIC","dontCallGetSet","sham","NATIVE_BIND","FunctionPrototype","getDescriptor","PROPER","CONFIGURABLE","uncurryThisWithBind","aCallable","isNullOrUndefined","V","functionToString","NATIVE_WEAK_MAP","sharedKey","hiddenKeys","OBJECT_ALREADY_INITIALIZED","WeakMap","enforce","getterFor","TYPE","metadata","facade","STATE","$documentAll","feature","detection","normalize","POLYFILL","NATIVE","getBuiltIn","isPrototypeOf","USE_SYMBOL_AS_UID","$Symbol","CONFIGURABLE_FUNCTION_NAME","InternalStateModule","enforceInternalState","getInternalState","CONFIGURABLE_LENGTH","TEMPLATE","arity","trunc","V8_PROTOTYPE_DEFINE_BUG","toPropertyKey","$defineProperty","$getOwnPropertyDescriptor","ENUMERABLE","WRITABLE","current","propertyIsEnumerableModule","internalObjectKeys","getOwnPropertyNames","$propertyIsEnumerable","NASHORN_BUG","pref","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","IS_PURE","license","V8_VERSION","symbol","toIntegerOrInfinity","IndexedObject","requireObjectCoercible","ordinaryToPrimitive","TO_PRIMITIVE","exoticToPrim","postfix","NATIVE_SYMBOL","passed","WellKnownSymbolsStore","createWellKnownSymbol","withoutSetter","setArrayLength","doesNotExceedSafeInteger","INCORRECT_TO_LENGTH","properErrorOnNonWritableLength","argCount","deletePropertyOrThrow","INCORRECT_RESULT","validateArgumentsLength","$URLSearchParams","URLSearchParams","URLSearchParamsPrototype","append","$delete","params","$value","dindex","found","entriesLength","getAll","$has","defineBuiltInAccessor","__webpack_module_cache__","cachedModule","loaded","__webpack_modules__","definition","chunkId","promises","u","miniCssF","inProgress","dataWebpackPrefix","needAttach","charset","nc","onScriptComplete","prev","onerror","onload","doneFns","nmd","paths","createStylesheet","fullhref","oldTag","linkTag","rel","onLinkComplete","errorType","realHref","request","findStylesheet","existingLinkTags","dataHref","existingStyleTags","loadStylesheet","installedCssChunks","miniCss","cssChunks","installedChunks","installedChunkData","promise","loadingEnded","realSrc","webpackJsonpCallback","parentChunkLoadingFunction","chunkIds","moreModules","runtime","chunkLoadingGlobal","layoutLoaded","title","setPropertyVisible","panelOpened","collapsed","uniqueArrayRemove","panelId","uniqueArrayHas","LivedataBaseAdvancedPanel","XWikiDraggableItem","dragOptions","getSortableProperties","reorderSorts","sortEntry","level","staticStyle","removeSort","unsortedProperties","addSortLevel","getUnsortedProperties","addSort","selectPropertiesNone","reorderSort","filters","removeAllFilters","reorderFilter","filterIdx","addFilter","unfilteredProperties","addFilterGroup","filterIndex","LivedataAdvancedPanelFilterEntry","getUnfilteredProperties","selectFilterPropertiesNone","attachContainer","bodyContainer","replaceWith","LivedataAdvancedPanelProperties","LivedataAdvancedPanelSort","LivedataAdvancedPanelFilter","LiveDataAdvancedPanelExtension","urlSearchParam","localStorage","$_filters","$_sort","$_offset","$_limit","$_currentLayoutId","$_propertyOrder","$_propertyVisibility","hiddenProperties","encodingSpecsProperties","propertyIds","encodingSpecsFilterOperators","operatorIds","filterDescriptor","encodingSpecsCurrentLayoutId","getLayoutIds","encodingSpecsV1","matchAll","dataToSave","encodedConfig","encodeConfig","saveKey","saveConfig","deleteConfig","decodeConfig","URL","location","history","replaceState","setItem","getConfig","getItem","hasConfig","getItm","loadConfig","delete","removeItem","footnote","translationKey","__webpack_public_path__","liveDataBaseURL","VueTippy","Vue2TouchEvents","LivedataAdvancedPanels","LivedataLayout","LivedataPersistentConfiguration","LivedataFootnotes","provide"],"sourceRoot":""}