{"version":3,"file":"app-7afdd618ad51be5f8519.js","mappings":"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","sources":["webpack://builder-gatsby-upsell-petlab/./node_modules/@babel/runtime/helpers/arrayLikeToArray.js","webpack://builder-gatsby-upsell-petlab/./node_modules/@babel/runtime/helpers/arrayWithHoles.js","webpack://builder-gatsby-upsell-petlab/./node_modules/@babel/runtime/helpers/assertThisInitialized.js","webpack://builder-gatsby-upsell-petlab/./node_modules/@babel/runtime/helpers/extends.js","webpack://builder-gatsby-upsell-petlab/./node_modules/@babel/runtime/helpers/inheritsLoose.js","webpack://builder-gatsby-upsell-petlab/./node_modules/@babel/runtime/helpers/interopRequireDefault.js","webpack://builder-gatsby-upsell-petlab/./node_modules/@babel/runtime/helpers/iterableToArrayLimit.js","webpack://builder-gatsby-upsell-petlab/./node_modules/@babel/runtime/helpers/nonIterableRest.js","webpack://builder-gatsby-upsell-petlab/./node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js","webpack://builder-gatsby-upsell-petlab/./node_modules/@babel/runtime/helpers/setPrototypeOf.js","webpack://builder-gatsby-upsell-petlab/./node_modules/@babel/runtime/helpers/slicedToArray.js","webpack://builder-gatsby-upsell-petlab/./node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js","webpack://builder-gatsby-upsell-petlab/./node_modules/gatsby-link/index.js","webpack://builder-gatsby-upsell-petlab/./node_modules/gatsby-link/is-local-link.js","webpack://builder-gatsby-upsell-petlab/./node_modules/gatsby-link/parse-path.js","webpack://builder-gatsby-upsell-petlab/./node_modules/gatsby-link/rewrite-link-path.js","webpack://builder-gatsby-upsell-petlab/./node_modules/gatsby-react-router-scroll/index.js","webpack://builder-gatsby-upsell-petlab/./node_modules/gatsby-react-router-scroll/scroll-handler.js","webpack://builder-gatsby-upsell-petlab/./node_modules/gatsby-react-router-scroll/session-storage.js","webpack://builder-gatsby-upsell-petlab/./node_modules/gatsby-react-router-scroll/use-scroll-restoration.js","webpack://builder-gatsby-upsell-petlab/./node_modules/gatsby-script/dist/partytown-context.js","webpack://builder-gatsby-upsell-petlab/./node_modules/gatsby-script/dist/request-idle-callback-shim.js","webpack://builder-gatsby-upsell-petlab/./node_modules/gatsby-script/dist/gatsby-script.js","webpack://builder-gatsby-upsell-petlab/./.cache/_this_is_virtual_fs_path_/$virtual/async-requires.js","webpack://builder-gatsby-upsell-petlab/./.cache/api-runner-browser-plugins.js","webpack://builder-gatsby-upsell-petlab/./.cache/api-runner-browser.js","webpack://builder-gatsby-upsell-petlab/./node_modules/mitt/dist/mitt.es.js","webpack://builder-gatsby-upsell-petlab/./.cache/emitter.js","webpack://builder-gatsby-upsell-petlab/./.cache/normalize-page-path.js","webpack://builder-gatsby-upsell-petlab/./.cache/find-path.js","webpack://builder-gatsby-upsell-petlab/./.cache/prefetch.js","webpack://builder-gatsby-upsell-petlab/./.cache/loader.js","webpack://builder-gatsby-upsell-petlab/./.cache/page-renderer.js","webpack://builder-gatsby-upsell-petlab/./.cache/gatsby-browser-entry.js","webpack://builder-gatsby-upsell-petlab/./.cache/route-announcer-props.js","webpack://builder-gatsby-upsell-petlab/./.cache/navigation.js","webpack://builder-gatsby-upsell-petlab/./node_modules/shallow-compare/es/index.js","webpack://builder-gatsby-upsell-petlab/./.cache/production-app.js","webpack://builder-gatsby-upsell-petlab/./.cache/ensure-resources.js","webpack://builder-gatsby-upsell-petlab/./.cache/public-page-renderer-prod.js","webpack://builder-gatsby-upsell-petlab/./.cache/public-page-renderer.js","webpack://builder-gatsby-upsell-petlab/./.cache/react-lifecycles-compat.js","webpack://builder-gatsby-upsell-petlab/./.cache/redirect-utils.js","webpack://builder-gatsby-upsell-petlab/./.cache/register-service-worker.js","webpack://builder-gatsby-upsell-petlab/./.cache/strip-prefix.js","webpack://builder-gatsby-upsell-petlab/./src/layouts/PageLayout.jsx","webpack://builder-gatsby-upsell-petlab/./gatsby-browser.js","webpack://builder-gatsby-upsell-petlab/./node_modules/gatsby-plugin-google-tagmanager/gatsby-browser.js","webpack://builder-gatsby-upsell-petlab/./node_modules/gatsby-plugin-loadable-components-ssr/gatsby-browser.js","webpack://builder-gatsby-upsell-petlab/./node_modules/gatsby-plugin-styled-components/gatsby-browser.js","webpack://builder-gatsby-upsell-petlab/./node_modules/@builder.io/widgets/node_modules/tslib/tslib.es6.js","webpack://builder-gatsby-upsell-petlab/./node_modules/@builder.io/widgets/dist/builder-widgets.es5.js","webpack://builder-gatsby-upsell-petlab/./src/components/LazyLoadContainer/LazyLoadContainer.js","webpack://builder-gatsby-upsell-petlab/./src/components/LazyLoadContainer/LazyLoadContainer.builder.js","webpack://builder-gatsby-upsell-petlab/./src/utils/color.js","webpack://builder-gatsby-upsell-petlab/./src/components/ImageCarousel/ImageCarousel.styles.js","webpack://builder-gatsby-upsell-petlab/./src/components/ImageCarousel/ImageCarousel.jsx","webpack://builder-gatsby-upsell-petlab/./src/components/ImageCarousel/ImageCarousel.builder.js","webpack://builder-gatsby-upsell-petlab/./src/components/ToggleContainer/ToggleContainer.builder.js","webpack://builder-gatsby-upsell-petlab/./src/components/OkendoReviewsWidget/OkendoReviewsWidget.styles.js","webpack://builder-gatsby-upsell-petlab/./src/components/OkendoReviewsWidget/OkendoReviewsWidget.js","webpack://builder-gatsby-upsell-petlab/./src/components/OkendoReviewsWidget/OkendoReviewsWidget.builder.js","webpack://builder-gatsby-upsell-petlab/./src/components/CarouselContainer/CarouselContainer.styles.js","webpack://builder-gatsby-upsell-petlab/./src/components/CarouselContainer/CarouselContainer.jsx","webpack://builder-gatsby-upsell-petlab/./src/components/CarouselContainer/CarouselContainer.builder.js","webpack://builder-gatsby-upsell-petlab/./src/builder-settings.js","webpack://builder-gatsby-upsell-petlab/./src/components/AcceptButton/AcceptButton.builder.js","webpack://builder-gatsby-upsell-petlab/./src/components/Accordion/Accordion.builder.js","webpack://builder-gatsby-upsell-petlab/./src/components/AddToCartButton/AddToCartButton.builder.js","webpack://builder-gatsby-upsell-petlab/./src/components/DeclineButton/DeclineButton.builder.js","webpack://builder-gatsby-upsell-petlab/./src/components/OfferContainer/OfferContainer.builder.js","webpack://builder-gatsby-upsell-petlab/./src/components/OrderContains/OrderContains.builder.js","webpack://builder-gatsby-upsell-petlab/./src/components/OrderSummary/OrderSummary.builder.js","webpack://builder-gatsby-upsell-petlab/./src/components/StampedPlugin/StampedPlugin.builder.js","webpack://builder-gatsby-upsell-petlab/./src/components/Timer/Timer.builder.js","webpack://builder-gatsby-upsell-petlab/./src/components/ToggleContainer/ToggleContainer.jsx","webpack://builder-gatsby-upsell-petlab/./src/components/TrustpilotPlugin/TrustpilotPlugin.builder.js","webpack://builder-gatsby-upsell-petlab/./src/components/UpsellImage/UpsellImage.builder.js","webpack://builder-gatsby-upsell-petlab/./src/components/UpsellText/UpsellText.builder.js","webpack://builder-gatsby-upsell-petlab/./src/layouts/RootLayout.jsx","webpack://builder-gatsby-upsell-petlab/./node_modules/@gatsbyjs/reach-router/es/lib/utils.js","webpack://builder-gatsby-upsell-petlab/./node_modules/@gatsbyjs/reach-router/es/lib/history.js","webpack://builder-gatsby-upsell-petlab/./node_modules/@gatsbyjs/reach-router/es/index.js","webpack://builder-gatsby-upsell-petlab/./node_modules/@builder.io/react/dist/builder-react.es5.js","webpack://builder-gatsby-upsell-petlab/./node_modules/@emotion/sheet/dist/sheet.browser.esm.js","webpack://builder-gatsby-upsell-petlab/./node_modules/@emotion/cache/dist/cache.browser.esm.js","webpack://builder-gatsby-upsell-petlab/./node_modules/@emotion/utils/dist/utils.browser.esm.js","webpack://builder-gatsby-upsell-petlab/./node_modules/@emotion/hash/dist/hash.browser.esm.js","webpack://builder-gatsby-upsell-petlab/./node_modules/@emotion/serialize/dist/serialize.browser.esm.js","webpack://builder-gatsby-upsell-petlab/./node_modules/@builder.io/react/node_modules/@emotion/core/dist/emotion-element-04d85134.browser.esm.js","webpack://builder-gatsby-upsell-petlab/./node_modules/@emotion/css/dist/css.browser.esm.js","webpack://builder-gatsby-upsell-petlab/./node_modules/@builder.io/react/node_modules/@emotion/core/dist/core.browser.esm.js","webpack://builder-gatsby-upsell-petlab/./node_modules/@builder.io/sdk/dist/index.esm.js","webpack://builder-gatsby-upsell-petlab/./node_modules/@builder.io/sdk/node_modules/tslib/tslib.es6.js","webpack://builder-gatsby-upsell-petlab/./node_modules/@emotion/memoize/dist/memoize.browser.esm.js","webpack://builder-gatsby-upsell-petlab/./node_modules/@emotion/stylis/dist/stylis.browser.esm.js","webpack://builder-gatsby-upsell-petlab/./node_modules/@emotion/unitless/dist/unitless.browser.esm.js","webpack://builder-gatsby-upsell-petlab/./node_modules/@gatsbyjs/reach-router/lib/history.js","webpack://builder-gatsby-upsell-petlab/./node_modules/@gatsbyjs/reach-router/lib/utils.js","webpack://builder-gatsby-upsell-petlab/./node_modules/@babel/runtime/helpers/esm/extends.js","webpack://builder-gatsby-upsell-petlab/./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack://builder-gatsby-upsell-petlab/./node_modules/@loadable/component/dist/loadable.esm.js","webpack://builder-gatsby-upsell-petlab/./node_modules/batch-processor/src/batch-processor.js","webpack://builder-gatsby-upsell-petlab/./node_modules/batch-processor/src/utils.js","webpack://builder-gatsby-upsell-petlab/./node_modules/classnames/index.js","webpack://builder-gatsby-upsell-petlab/./node_modules/create-react-class/factory.js","webpack://builder-gatsby-upsell-petlab/./node_modules/create-react-class/index.js","webpack://builder-gatsby-upsell-petlab/./node_modules/desandro-matches-selector/matches-selector.js","webpack://builder-gatsby-upsell-petlab/./node_modules/element-resize-detector/src/browser-detector.js","webpack://builder-gatsby-upsell-petlab/./node_modules/element-resize-detector/src/collection-utils.js","webpack://builder-gatsby-upsell-petlab/./node_modules/element-resize-detector/src/detection-strategy/object.js","webpack://builder-gatsby-upsell-petlab/./node_modules/element-resize-detector/src/detection-strategy/scroll.js","webpack://builder-gatsby-upsell-petlab/./node_modules/element-resize-detector/src/element-resize-detector.js","webpack://builder-gatsby-upsell-petlab/./node_modules/element-resize-detector/src/element-utils.js","webpack://builder-gatsby-upsell-petlab/./node_modules/element-resize-detector/src/id-generator.js","webpack://builder-gatsby-upsell-petlab/./node_modules/element-resize-detector/src/id-handler.js","webpack://builder-gatsby-upsell-petlab/./node_modules/element-resize-detector/src/listener-handler.js","webpack://builder-gatsby-upsell-petlab/./node_modules/element-resize-detector/src/reporter.js","webpack://builder-gatsby-upsell-petlab/./node_modules/element-resize-detector/src/state-handler.js","webpack://builder-gatsby-upsell-petlab/./node_modules/enquire.js/src/MediaQuery.js","webpack://builder-gatsby-upsell-petlab/./node_modules/enquire.js/src/MediaQueryDispatch.js","webpack://builder-gatsby-upsell-petlab/./node_modules/enquire.js/src/QueryHandler.js","webpack://builder-gatsby-upsell-petlab/./node_modules/enquire.js/src/Util.js","webpack://builder-gatsby-upsell-petlab/./node_modules/enquire.js/src/index.js","webpack://builder-gatsby-upsell-petlab/./node_modules/ev-emitter/ev-emitter.js","webpack://builder-gatsby-upsell-petlab/./node_modules/fizzy-ui-utils/utils.js","webpack://builder-gatsby-upsell-petlab/./node_modules/gatsby-page-utils/dist/apply-trailing-slash-option.js","webpack://builder-gatsby-upsell-petlab/./node_modules/gatsby/dist/internal-plugins/bundle-optimisations/polyfills/object-assign.js","webpack://builder-gatsby-upsell-petlab/./node_modules/gatsby/dist/internal-plugins/partytown/gatsby-browser.js","webpack://builder-gatsby-upsell-petlab/./node_modules/get-size/get-size.js","webpack://builder-gatsby-upsell-petlab/./node_modules/hash-sum/hash-sum.js","webpack://builder-gatsby-upsell-petlab/./node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","webpack://builder-gatsby-upsell-petlab/./node_modules/imagesloaded/imagesloaded.js","webpack://builder-gatsby-upsell-petlab/./node_modules/json2mq/index.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash.debounce/index.js","webpack://builder-gatsby-upsell-petlab/./node_modules/masonry-layout/masonry.js","webpack://builder-gatsby-upsell-petlab/./node_modules/node-fetch/browser.js","webpack://builder-gatsby-upsell-petlab/./node_modules/outlayer/item.js","webpack://builder-gatsby-upsell-petlab/./node_modules/outlayer/outlayer.js","webpack://builder-gatsby-upsell-petlab/./node_modules/react-easy-swipe/lib/index.js","webpack://builder-gatsby-upsell-petlab/./node_modules/react-easy-swipe/lib/react-swipe.js","webpack://builder-gatsby-upsell-petlab/./node_modules/react-is/cjs/react-is.production.min.js","webpack://builder-gatsby-upsell-petlab/./node_modules/react-is/index.js","webpack://builder-gatsby-upsell-petlab/./node_modules/react-masonry-component/lib/index.js","webpack://builder-gatsby-upsell-petlab/./node_modules/react-responsive-carousel/lib/js/CSSTranslate.js","webpack://builder-gatsby-upsell-petlab/./node_modules/react-responsive-carousel/lib/js/components/Carousel/animations.js","webpack://builder-gatsby-upsell-petlab/./node_modules/react-responsive-carousel/lib/js/components/Carousel/index.js","webpack://builder-gatsby-upsell-petlab/./node_modules/react-responsive-carousel/lib/js/components/Carousel/utils.js","webpack://builder-gatsby-upsell-petlab/./node_modules/react-responsive-carousel/lib/js/components/Thumbs.js","webpack://builder-gatsby-upsell-petlab/./node_modules/react-responsive-carousel/lib/js/cssClasses.js","webpack://builder-gatsby-upsell-petlab/./node_modules/react-responsive-carousel/lib/js/dimensions.js","webpack://builder-gatsby-upsell-petlab/./node_modules/react-responsive-carousel/lib/js/index.js","webpack://builder-gatsby-upsell-petlab/./node_modules/react-responsive-carousel/lib/js/shims/document.js","webpack://builder-gatsby-upsell-petlab/./node_modules/react-responsive-carousel/lib/js/shims/window.js","webpack://builder-gatsby-upsell-petlab/./node_modules/react-slick/lib/arrows.js","webpack://builder-gatsby-upsell-petlab/./node_modules/react-slick/lib/default-props.js","webpack://builder-gatsby-upsell-petlab/./node_modules/react-slick/lib/dots.js","webpack://builder-gatsby-upsell-petlab/./node_modules/react-slick/lib/index.js","webpack://builder-gatsby-upsell-petlab/./node_modules/react-slick/lib/initial-state.js","webpack://builder-gatsby-upsell-petlab/./node_modules/react-slick/lib/inner-slider.js","webpack://builder-gatsby-upsell-petlab/./node_modules/react-slick/lib/slider.js","webpack://builder-gatsby-upsell-petlab/./node_modules/react-slick/lib/track.js","webpack://builder-gatsby-upsell-petlab/./node_modules/react-slick/lib/utils/innerSliderUtils.js","webpack://builder-gatsby-upsell-petlab/./node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js","webpack://builder-gatsby-upsell-petlab/./node_modules/shallowequal/index.js","webpack://builder-gatsby-upsell-petlab/./node_modules/string-convert/camel2hyphen.js","webpack://builder-gatsby-upsell-petlab/./node_modules/@emotion/is-prop-valid/dist/is-prop-valid.browser.esm.js","webpack://builder-gatsby-upsell-petlab/./node_modules/styled-components/dist/styled-components.browser.esm.js","webpack://builder-gatsby-upsell-petlab/./node_modules/invariant/browser.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/_DataView.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/_Hash.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/_ListCache.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/_Map.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/_MapCache.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/_Promise.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/_Set.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/_Stack.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/_Symbol.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/_Uint8Array.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/_WeakMap.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/_apply.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/_arrayEach.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/_arrayFilter.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/_arrayLikeKeys.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/_arrayMap.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/_arrayPush.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/_assignValue.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/_assocIndexOf.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/_baseAssign.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/_baseAssignIn.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/_baseAssignValue.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/_baseClone.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/_baseCreate.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/_baseFlatten.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/_baseGet.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/_baseGetAllKeys.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/_baseGetTag.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/_baseIsArguments.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/_baseIsMap.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/_baseIsNative.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/_baseIsSet.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/_baseIsTypedArray.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/_baseKeys.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/_baseKeysIn.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/_baseRest.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/_baseSetToString.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/_baseSlice.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/_baseTimes.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/_baseToString.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/_baseTrim.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/_baseUnary.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/_baseUnset.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/_castPath.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/_cloneArrayBuffer.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/_cloneBuffer.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/_cloneDataView.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/_cloneRegExp.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/_cloneSymbol.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/_cloneTypedArray.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/_copyArray.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/_copyObject.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/_copySymbols.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/_copySymbolsIn.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/_coreJsData.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/_createAssigner.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/_customOmitClone.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/_defineProperty.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/_flatRest.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/_freeGlobal.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/_getAllKeys.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/_getAllKeysIn.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/_getMapData.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/_getNative.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/_getPrototype.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/_getRawTag.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/_getSymbols.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/_getSymbolsIn.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/_getTag.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/_getValue.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/_hashClear.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/_hashDelete.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/_hashGet.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/_hashHas.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/_hashSet.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/_initCloneArray.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/_initCloneByTag.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/_initCloneObject.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/_isFlattenable.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/_isIndex.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/_isIterateeCall.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/_isKey.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/_isKeyable.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/_isMasked.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/_isPrototype.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/_listCacheClear.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/_listCacheDelete.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/_listCacheGet.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/_listCacheHas.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/_listCacheSet.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/_mapCacheClear.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/_mapCacheDelete.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/_mapCacheGet.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/_mapCacheHas.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/_mapCacheSet.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/_memoizeCapped.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/_nativeCreate.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/_nativeKeys.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/_nativeKeysIn.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/_nodeUtil.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/_objectToString.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/_overArg.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/_overRest.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/_parent.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/_root.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/_setToString.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/_shortOut.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/_stackClear.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/_stackDelete.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/_stackGet.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/_stackHas.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/_stackSet.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/_stringToPath.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/_toKey.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/_toSource.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/_trimmedEndIndex.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/assign.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/constant.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/debounce.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/eq.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/flatten.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/identity.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/isArguments.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/isArray.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/isArrayLike.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/isBuffer.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/isFunction.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/isLength.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/isMap.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/isObject.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/isObjectLike.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/isPlainObject.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/isSet.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/isSymbol.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/isTypedArray.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/keys.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/keysIn.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/last.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/memoize.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/now.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/omit.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/stubArray.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/stubFalse.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/toNumber.js","webpack://builder-gatsby-upsell-petlab/./node_modules/lodash/toString.js","webpack://builder-gatsby-upsell-petlab/./node_modules/@builder.io/partytown/integration/index.cjs","webpack://builder-gatsby-upsell-petlab/./node_modules/@builder.io/partytown/react/index.cjs","webpack://builder-gatsby-upsell-petlab/./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://builder-gatsby-upsell-petlab/./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","webpack://builder-gatsby-upsell-petlab/./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack://builder-gatsby-upsell-petlab/./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack://builder-gatsby-upsell-petlab/./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack://builder-gatsby-upsell-petlab/./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack://builder-gatsby-upsell-petlab/./node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack://builder-gatsby-upsell-petlab/./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack://builder-gatsby-upsell-petlab/./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js"],"sourcesContent":["function _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\nmodule.exports = _arrayLikeToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nmodule.exports = _arrayWithHoles, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nmodule.exports = _assertThisInitialized, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _extends() {\n module.exports = _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 }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _extends.apply(this, arguments);\n}\n\nmodule.exports = _extends, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var setPrototypeOf = require(\"./setPrototypeOf.js\");\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}\n\nmodule.exports = _inheritsLoose, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nmodule.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_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\nmodule.exports = _iterableToArrayLimit, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _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\nmodule.exports = _nonIterableRest, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _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\nmodule.exports = _objectWithoutPropertiesLoose, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _setPrototypeOf(o, p);\n}\n\nmodule.exports = _setPrototypeOf, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayWithHoles = require(\"./arrayWithHoles.js\");\n\nvar iterableToArrayLimit = require(\"./iterableToArrayLimit.js\");\n\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\n\nvar nonIterableRest = require(\"./nonIterableRest.js\");\n\nfunction _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}\n\nmodule.exports = _slicedToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayLikeToArray = require(\"./arrayLikeToArray.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\nmodule.exports = _unsupportedIterableToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.navigate = exports.default = void 0;\nexports.withAssetPrefix = withAssetPrefix;\nexports.withPrefix = withPrefix;\n\nvar _objectWithoutPropertiesLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutPropertiesLoose\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inheritsLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inheritsLoose\"));\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _reachRouter = require(\"@gatsbyjs/reach-router\");\n\nvar _parsePath = require(\"./parse-path\");\n\nexports.parsePath = _parsePath.parsePath;\n\nvar _isLocalLink = require(\"./is-local-link\");\n\nvar _rewriteLinkPath = require(\"./rewrite-link-path\");\n\nvar _excluded = [\"to\", \"getProps\", \"onClick\", \"onMouseEnter\", \"activeClassName\", \"activeStyle\", \"innerRef\", \"partiallyActive\", \"state\", \"replace\", \"_location\"];\n\nfunction withPrefix(path, prefix) {\n var _ref, _prefix;\n\n if (prefix === void 0) {\n prefix = getGlobalBasePrefix();\n }\n\n if (!(0, _isLocalLink.isLocalLink)(path)) {\n return path;\n }\n\n if (path.startsWith(\"./\") || path.startsWith(\"../\")) {\n return path;\n }\n\n var base = (_ref = (_prefix = prefix) !== null && _prefix !== void 0 ? _prefix : getGlobalPathPrefix()) !== null && _ref !== void 0 ? _ref : \"/\";\n return \"\" + (base !== null && base !== void 0 && base.endsWith(\"/\") ? base.slice(0, -1) : base) + (path.startsWith(\"/\") ? path : \"/\" + path);\n} // These global values are wrapped in typeof clauses to ensure the values exist.\n// This is especially problematic in unit testing of this component.\n\n\nvar getGlobalPathPrefix = function getGlobalPathPrefix() {\n return process.env.NODE_ENV !== \"production\" ? typeof __PATH_PREFIX__ !== \"undefined\" ? __PATH_PREFIX__ : undefined : __PATH_PREFIX__;\n};\n\nvar getGlobalBasePrefix = function getGlobalBasePrefix() {\n return process.env.NODE_ENV !== \"production\" ? typeof __BASE_PATH__ !== \"undefined\" ? __BASE_PATH__ : undefined : __BASE_PATH__;\n};\n\nfunction withAssetPrefix(path) {\n return withPrefix(path, getGlobalPathPrefix());\n}\n\nvar NavLinkPropTypes = {\n activeClassName: _propTypes.default.string,\n activeStyle: _propTypes.default.object,\n partiallyActive: _propTypes.default.bool\n}; // Set up IntersectionObserver\n\nvar createIntersectionObserver = function createIntersectionObserver(el, cb) {\n var io = new window.IntersectionObserver(function (entries) {\n entries.forEach(function (entry) {\n if (el === entry.target) {\n // Check if element is within viewport, remove listener, destroy observer, and run link callback.\n // MSEdge doesn't currently support isIntersecting, so also test for an intersectionRatio > 0\n cb(entry.isIntersecting || entry.intersectionRatio > 0);\n }\n });\n }); // Add element to the observer\n\n io.observe(el);\n return {\n instance: io,\n el: el\n };\n};\n\nfunction GatsbyLinkLocationWrapper(props) {\n return /*#__PURE__*/_react.default.createElement(_reachRouter.Location, null, function (_ref2) {\n var location = _ref2.location;\n return /*#__PURE__*/_react.default.createElement(GatsbyLink, (0, _extends2.default)({}, props, {\n _location: location\n }));\n });\n}\n\nvar GatsbyLink = /*#__PURE__*/function (_React$Component) {\n (0, _inheritsLoose2.default)(GatsbyLink, _React$Component);\n\n function GatsbyLink(props) {\n var _this;\n\n _this = _React$Component.call(this, props) || this; // Default to no support for IntersectionObserver\n\n _this.defaultGetProps = function (_ref3) {\n var isPartiallyCurrent = _ref3.isPartiallyCurrent,\n isCurrent = _ref3.isCurrent;\n\n if (_this.props.partiallyActive ? isPartiallyCurrent : isCurrent) {\n return {\n className: [_this.props.className, _this.props.activeClassName].filter(Boolean).join(\" \"),\n style: (0, _extends2.default)({}, _this.props.style, _this.props.activeStyle)\n };\n }\n\n return null;\n };\n\n var IOSupported = false;\n\n if (typeof window !== \"undefined\" && window.IntersectionObserver) {\n IOSupported = true;\n }\n\n _this.state = {\n IOSupported: IOSupported\n };\n _this.abortPrefetch = null;\n _this.handleRef = _this.handleRef.bind((0, _assertThisInitialized2.default)(_this));\n return _this;\n }\n\n var _proto = GatsbyLink.prototype;\n\n _proto._prefetch = function _prefetch() {\n var currentPath = window.location.pathname + window.location.search; // reach router should have the correct state\n\n if (this.props._location && this.props._location.pathname) {\n currentPath = this.props._location.pathname + this.props._location.search;\n }\n\n var rewrittenPath = (0, _rewriteLinkPath.rewriteLinkPath)(this.props.to, currentPath);\n var parsed = (0, _parsePath.parsePath)(rewrittenPath);\n var newPathName = parsed.pathname + parsed.search; // Prefetch is used to speed up next navigations. When you use it on the current navigation,\n // there could be a race-condition where Chrome uses the stale data instead of waiting for the network to complete\n\n if (currentPath !== newPathName) {\n return ___loader.enqueue(newPathName);\n }\n\n return undefined;\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n if (!this.io) {\n return;\n }\n\n var _this$io = this.io,\n instance = _this$io.instance,\n el = _this$io.el;\n\n if (this.abortPrefetch) {\n this.abortPrefetch.abort();\n }\n\n instance.unobserve(el);\n instance.disconnect();\n };\n\n _proto.handleRef = function handleRef(ref) {\n var _this2 = this;\n\n if (this.props.innerRef && Object.prototype.hasOwnProperty.call(this.props.innerRef, \"current\")) {\n this.props.innerRef.current = ref;\n } else if (this.props.innerRef) {\n this.props.innerRef(ref);\n }\n\n if (this.state.IOSupported && ref) {\n // If IO supported and element reference found, setup Observer functionality\n this.io = createIntersectionObserver(ref, function (inViewPort) {\n if (inViewPort) {\n _this2.abortPrefetch = _this2._prefetch();\n } else {\n if (_this2.abortPrefetch) {\n _this2.abortPrefetch.abort();\n }\n }\n });\n }\n };\n\n _proto.render = function render() {\n var _this3 = this;\n\n var _this$props = this.props,\n to = _this$props.to,\n _this$props$getProps = _this$props.getProps,\n getProps = _this$props$getProps === void 0 ? this.defaultGetProps : _this$props$getProps,\n _onClick = _this$props.onClick,\n _onMouseEnter = _this$props.onMouseEnter,\n $activeClassName = _this$props.activeClassName,\n $activeStyle = _this$props.activeStyle,\n $innerRef = _this$props.innerRef,\n partiallyActive = _this$props.partiallyActive,\n state = _this$props.state,\n replace = _this$props.replace,\n _location = _this$props._location,\n rest = (0, _objectWithoutPropertiesLoose2.default)(_this$props, _excluded);\n\n if (process.env.NODE_ENV !== \"production\" && !(0, _isLocalLink.isLocalLink)(to)) {\n console.warn(\"External link \" + to + \" was detected in a Link component. Use the Link component only for internal links. See: https://gatsby.dev/internal-links\");\n }\n\n var prefixedTo = (0, _rewriteLinkPath.rewriteLinkPath)(to, _location.pathname);\n\n if (!(0, _isLocalLink.isLocalLink)(prefixedTo)) {\n return /*#__PURE__*/_react.default.createElement(\"a\", (0, _extends2.default)({\n href: prefixedTo\n }, rest));\n }\n\n return /*#__PURE__*/_react.default.createElement(_reachRouter.Link, (0, _extends2.default)({\n to: prefixedTo,\n state: state,\n getProps: getProps,\n innerRef: this.handleRef,\n onMouseEnter: function onMouseEnter(e) {\n if (_onMouseEnter) {\n _onMouseEnter(e);\n }\n\n var parsed = (0, _parsePath.parsePath)(prefixedTo);\n\n ___loader.hovering(parsed.pathname + parsed.search);\n },\n onClick: function onClick(e) {\n if (_onClick) {\n _onClick(e);\n }\n\n if (e.button === 0 && // ignore right clicks\n !_this3.props.target && // let browser handle \"target=_blank\"\n !e.defaultPrevented && // onClick prevented default\n !e.metaKey && // ignore clicks with modifier keys...\n !e.altKey && !e.ctrlKey && !e.shiftKey) {\n e.preventDefault();\n var shouldReplace = replace;\n\n var isCurrent = encodeURI(prefixedTo) === _location.pathname;\n\n if (typeof replace !== \"boolean\" && isCurrent) {\n shouldReplace = true;\n } // Make sure the necessary scripts and data are\n // loaded before continuing.\n\n\n window.___navigate(prefixedTo, {\n state: state,\n replace: shouldReplace\n });\n }\n\n return true;\n }\n }, rest));\n };\n\n return GatsbyLink;\n}(_react.default.Component);\n\nGatsbyLink.propTypes = (0, _extends2.default)({}, NavLinkPropTypes, {\n onClick: _propTypes.default.func,\n to: _propTypes.default.string.isRequired,\n replace: _propTypes.default.bool,\n state: _propTypes.default.object\n});\n\nvar _default = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {\n return /*#__PURE__*/_react.default.createElement(GatsbyLinkLocationWrapper, (0, _extends2.default)({\n innerRef: ref\n }, props));\n});\n\nexports.default = _default;\n\nvar navigate = function navigate(to, options) {\n window.___navigate((0, _rewriteLinkPath.rewriteLinkPath)(to, window.location.pathname), options);\n};\n\nexports.navigate = navigate;","\"use strict\";\n\nexports.__esModule = true;\nexports.isLocalLink = void 0;\n// Copied from https://github.com/sindresorhus/is-absolute-url/blob/3ab19cc2e599a03ea691bcb8a4c09fa3ebb5da4f/index.js\nvar ABSOLUTE_URL_REGEX = /^[a-zA-Z][a-zA-Z\\d+\\-.]*?:/;\n\nvar isAbsolute = function isAbsolute(path) {\n return ABSOLUTE_URL_REGEX.test(path);\n};\n\nvar isLocalLink = function isLocalLink(path) {\n if (typeof path !== \"string\") {\n return undefined; // TODO(v5): Re-Add TypeError\n // throw new TypeError(`Expected a \\`string\\`, got \\`${typeof path}\\``)\n }\n\n return !isAbsolute(path);\n};\n\nexports.isLocalLink = isLocalLink;","\"use strict\";\n\nexports.__esModule = true;\nexports.parsePath = parsePath;\n\nfunction parsePath(path) {\n var pathname = path || \"/\";\n var search = \"\";\n var hash = \"\";\n var hashIndex = pathname.indexOf(\"#\");\n\n if (hashIndex !== -1) {\n hash = pathname.slice(hashIndex);\n pathname = pathname.slice(0, hashIndex);\n }\n\n var searchIndex = pathname.indexOf(\"?\");\n\n if (searchIndex !== -1) {\n search = pathname.slice(searchIndex);\n pathname = pathname.slice(0, searchIndex);\n }\n\n return {\n pathname: pathname,\n search: search === \"?\" ? \"\" : search,\n hash: hash === \"#\" ? \"\" : hash\n };\n}","\"use strict\";\n\nexports.__esModule = true;\nexports.rewriteLinkPath = void 0;\n\nvar _utils = require(\"@gatsbyjs/reach-router/lib/utils\");\n\nvar _applyTrailingSlashOption = require(\"gatsby-page-utils/apply-trailing-slash-option\");\n\nvar _parsePath2 = require(\"./parse-path\");\n\nvar _isLocalLink = require(\"./is-local-link\");\n\nvar _ = require(\".\");\n\n// Specific import to treeshake Node.js stuff\nvar isAbsolutePath = function isAbsolutePath(path) {\n return path === null || path === void 0 ? void 0 : path.startsWith(\"/\");\n};\n\nvar getGlobalTrailingSlash = function getGlobalTrailingSlash() {\n return typeof __TRAILING_SLASH__ !== \"undefined\" ? __TRAILING_SLASH__ : undefined;\n};\n\nfunction absolutify(path, current) {\n // If it's already absolute, return as-is\n if (isAbsolutePath(path)) {\n return path;\n }\n\n var option = getGlobalTrailingSlash();\n var absolutePath = (0, _utils.resolve)(path, current);\n\n if (option === \"always\" || option === \"never\") {\n return (0, _applyTrailingSlashOption.applyTrailingSlashOption)(absolutePath, option);\n }\n\n return absolutePath;\n}\n\nvar rewriteLinkPath = function rewriteLinkPath(path, relativeTo) {\n if (typeof path === \"number\") {\n return path;\n }\n\n if (!(0, _isLocalLink.isLocalLink)(path)) {\n return path;\n }\n\n var _parsePath = (0, _parsePath2.parsePath)(path),\n pathname = _parsePath.pathname,\n search = _parsePath.search,\n hash = _parsePath.hash;\n\n var option = getGlobalTrailingSlash();\n var adjustedPath = path;\n\n if (option === \"always\" || option === \"never\") {\n var output = (0, _applyTrailingSlashOption.applyTrailingSlashOption)(pathname, option);\n adjustedPath = \"\" + output + search + hash;\n }\n\n return isAbsolutePath(adjustedPath) ? (0, _.withPrefix)(adjustedPath) : absolutify(adjustedPath, relativeTo);\n};\n\nexports.rewriteLinkPath = rewriteLinkPath;","\"use strict\";\n\nexports.__esModule = true;\nexports.useScrollRestoration = exports.ScrollContext = void 0;\n\nvar _scrollHandler = require(\"./scroll-handler\");\n\nexports.ScrollContext = _scrollHandler.ScrollHandler;\n\nvar _useScrollRestoration = require(\"./use-scroll-restoration\");\n\nexports.useScrollRestoration = _useScrollRestoration.useScrollRestoration;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.ScrollHandler = exports.ScrollContext = void 0;\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inheritsLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inheritsLoose\"));\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _sessionStorage = require(\"./session-storage\");\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nvar ScrollContext = /*#__PURE__*/React.createContext(new _sessionStorage.SessionStorage());\nexports.ScrollContext = ScrollContext;\nScrollContext.displayName = \"GatsbyScrollContext\";\n\nvar ScrollHandler = /*#__PURE__*/function (_React$Component) {\n (0, _inheritsLoose2.default)(ScrollHandler, _React$Component);\n\n function ScrollHandler() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this._stateStorage = new _sessionStorage.SessionStorage();\n _this._isTicking = false;\n _this._latestKnownScrollY = 0;\n\n _this.scrollListener = function () {\n _this._latestKnownScrollY = window.scrollY;\n\n if (!_this._isTicking) {\n _this._isTicking = true;\n requestAnimationFrame(_this._saveScroll.bind((0, _assertThisInitialized2.default)(_this)));\n }\n };\n\n _this.windowScroll = function (position, prevProps) {\n if (_this.shouldUpdateScroll(prevProps, _this.props)) {\n window.scrollTo(0, position);\n }\n };\n\n _this.scrollToHash = function (hash, prevProps) {\n var node = document.getElementById(hash.substring(1));\n\n if (node && _this.shouldUpdateScroll(prevProps, _this.props)) {\n node.scrollIntoView();\n }\n };\n\n _this.shouldUpdateScroll = function (prevRouterProps, routerProps) {\n var shouldUpdateScroll = _this.props.shouldUpdateScroll;\n\n if (!shouldUpdateScroll) {\n return true;\n } // Hack to allow accessing this._stateStorage.\n\n\n return shouldUpdateScroll.call((0, _assertThisInitialized2.default)(_this), prevRouterProps, routerProps);\n };\n\n return _this;\n }\n\n var _proto = ScrollHandler.prototype;\n\n _proto._saveScroll = function _saveScroll() {\n var key = this.props.location.key || null;\n\n if (key) {\n this._stateStorage.save(this.props.location, key, this._latestKnownScrollY);\n }\n\n this._isTicking = false;\n };\n\n _proto.componentDidMount = function componentDidMount() {\n window.addEventListener(\"scroll\", this.scrollListener);\n var scrollPosition;\n var _this$props$location = this.props.location,\n key = _this$props$location.key,\n hash = _this$props$location.hash;\n\n if (key) {\n scrollPosition = this._stateStorage.read(this.props.location, key);\n }\n\n if (scrollPosition) {\n this.windowScroll(scrollPosition, undefined);\n } else if (hash) {\n this.scrollToHash(decodeURI(hash), undefined);\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n window.removeEventListener(\"scroll\", this.scrollListener);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var _this$props$location2 = this.props.location,\n hash = _this$props$location2.hash,\n key = _this$props$location2.key;\n var scrollPosition;\n\n if (key) {\n scrollPosition = this._stateStorage.read(this.props.location, key);\n }\n /** There are two pieces of state: the browser url and\n * history state which keeps track of scroll position\n * Native behaviour prescribes that we ought to restore scroll position\n * when a user navigates back in their browser (this is the `POP` action)\n * Currently, reach router has a bug that prevents this at https://github.com/reach/router/issues/228\n * So we _always_ stick to the url as a source of truth — if the url\n * contains a hash, we scroll to it\n */\n\n\n if (hash) {\n this.scrollToHash(decodeURI(hash), prevProps);\n } else {\n this.windowScroll(scrollPosition, prevProps);\n }\n };\n\n _proto.render = function render() {\n return /*#__PURE__*/React.createElement(ScrollContext.Provider, {\n value: this._stateStorage\n }, this.props.children);\n };\n\n return ScrollHandler;\n}(React.Component);\n\nexports.ScrollHandler = ScrollHandler;\nScrollHandler.propTypes = {\n shouldUpdateScroll: _propTypes.default.func,\n children: _propTypes.default.element.isRequired,\n location: _propTypes.default.object.isRequired\n};","\"use strict\";\n\nexports.__esModule = true;\nexports.SessionStorage = void 0;\nvar STATE_KEY_PREFIX = \"@@scroll|\";\nvar GATSBY_ROUTER_SCROLL_STATE = \"___GATSBY_REACT_ROUTER_SCROLL\";\n\nvar SessionStorage = /*#__PURE__*/function () {\n function SessionStorage() {}\n\n var _proto = SessionStorage.prototype;\n\n _proto.read = function read(location, key) {\n var stateKey = this.getStateKey(location, key);\n\n try {\n var value = window.sessionStorage.getItem(stateKey);\n return value ? JSON.parse(value) : 0;\n } catch (e) {\n if (process.env.NODE_ENV !== \"production\") {\n console.warn(\"[gatsby-react-router-scroll] Unable to access sessionStorage; sessionStorage is not available.\");\n }\n\n if (window && window[GATSBY_ROUTER_SCROLL_STATE] && window[GATSBY_ROUTER_SCROLL_STATE][stateKey]) {\n return window[GATSBY_ROUTER_SCROLL_STATE][stateKey];\n }\n\n return 0;\n }\n };\n\n _proto.save = function save(location, key, value) {\n var stateKey = this.getStateKey(location, key);\n var storedValue = JSON.stringify(value);\n\n try {\n window.sessionStorage.setItem(stateKey, storedValue);\n } catch (e) {\n if (window && window[GATSBY_ROUTER_SCROLL_STATE]) {\n window[GATSBY_ROUTER_SCROLL_STATE][stateKey] = JSON.parse(storedValue);\n } else {\n window[GATSBY_ROUTER_SCROLL_STATE] = {};\n window[GATSBY_ROUTER_SCROLL_STATE][stateKey] = JSON.parse(storedValue);\n }\n\n if (process.env.NODE_ENV !== \"production\") {\n console.warn(\"[gatsby-react-router-scroll] Unable to save state in sessionStorage; sessionStorage is not available.\");\n }\n }\n };\n\n _proto.getStateKey = function getStateKey(location, key) {\n var stateKeyBase = \"\" + STATE_KEY_PREFIX + location.pathname;\n return key === null || typeof key === \"undefined\" ? stateKeyBase : stateKeyBase + \"|\" + key;\n };\n\n return SessionStorage;\n}();\n\nexports.SessionStorage = SessionStorage;","\"use strict\";\n\nexports.__esModule = true;\nexports.useScrollRestoration = useScrollRestoration;\n\nvar _scrollHandler = require(\"./scroll-handler\");\n\nvar _react = require(\"react\");\n\nvar _reachRouter = require(\"@gatsbyjs/reach-router\");\n\nfunction useScrollRestoration(identifier) {\n var location = (0, _reachRouter.useLocation)();\n var state = (0, _react.useContext)(_scrollHandler.ScrollContext);\n var ref = (0, _react.useRef)(null);\n (0, _react.useLayoutEffect)(function () {\n if (ref.current) {\n var position = state.read(location, identifier);\n ref.current.scrollTo(0, position || 0);\n }\n }, [location.key]);\n return {\n ref: ref,\n onScroll: function onScroll() {\n if (ref.current) {\n state.save(location, identifier, ref.current.scrollTop);\n }\n }\n };\n}","import { createContext } from \"react\";\nconst PartytownContext = /*#__PURE__*/createContext({});\nexport { PartytownContext };","// https://developer.chrome.com/blog/using-requestidlecallback/#checking-for-requestidlecallback\n// https://github.com/vercel/next.js/blob/canary/packages/next/client/request-idle-callback.ts\nexport const requestIdleCallback = typeof self !== `undefined` && self.requestIdleCallback && self.requestIdleCallback.bind(window) || function (cb) {\n const start = Date.now();\n return setTimeout(function () {\n cb({\n didTimeout: false,\n timeRemaining: function () {\n return Math.max(0, 50 - (Date.now() - start));\n }\n });\n }, 1);\n};","import _extends from \"@babel/runtime/helpers/extends\";\nimport React, { useEffect, useContext } from \"react\";\nimport { PartytownContext } from \"./partytown-context\";\nimport { requestIdleCallback } from \"./request-idle-callback-shim\";\nexport let ScriptStrategy; // eslint-disable-next-line @typescript-eslint/naming-convention\n\n(function (ScriptStrategy) {\n ScriptStrategy[\"postHydrate\"] = \"post-hydrate\";\n ScriptStrategy[\"idle\"] = \"idle\";\n ScriptStrategy[\"offMainThread\"] = \"off-main-thread\";\n})(ScriptStrategy || (ScriptStrategy = {}));\n\nconst handledProps = new Set([`src`, `strategy`, `dangerouslySetInnerHTML`, `children`, `onLoad`, `onError`]);\nexport const scriptCache = new Set();\nexport const scriptCallbackCache = new Map();\nexport function Script(props) {\n const {\n id,\n src,\n strategy = ScriptStrategy.postHydrate\n } = props || {};\n const {\n collectScript\n } = useContext(PartytownContext);\n useEffect(() => {\n let details;\n\n switch (strategy) {\n case ScriptStrategy.postHydrate:\n details = injectScript(props);\n break;\n\n case ScriptStrategy.idle:\n requestIdleCallback(() => {\n details = injectScript(props);\n });\n break;\n\n case ScriptStrategy.offMainThread:\n if (collectScript) {\n const attributes = resolveAttributes(props);\n collectScript(attributes);\n }\n\n break;\n }\n\n return () => {\n const {\n script,\n loadCallback,\n errorCallback\n } = details || {};\n\n if (loadCallback) {\n script === null || script === void 0 ? void 0 : script.removeEventListener(`load`, loadCallback);\n }\n\n if (errorCallback) {\n script === null || script === void 0 ? void 0 : script.removeEventListener(`error`, errorCallback);\n }\n\n script === null || script === void 0 ? void 0 : script.remove();\n };\n }, []);\n\n if (strategy === ScriptStrategy.offMainThread) {\n const inlineScript = resolveInlineScript(props);\n const attributes = resolveAttributes(props);\n\n if (typeof window === `undefined`) {\n if (collectScript) {\n collectScript(attributes);\n } else {\n console.warn(`Unable to collect off-main-thread script '${id || src || `no-id-or-src`}' for configuration with Partytown.\\nGatsby script components must be used either as a child of your page, in wrapPageElement, or wrapRootElement.\\nSee https://gatsby.dev/gatsby-script for more information.`);\n }\n }\n\n if (inlineScript) {\n return /*#__PURE__*/React.createElement(\"script\", _extends({\n type: \"text/partytown\",\n \"data-strategy\": strategy,\n crossOrigin: \"anonymous\"\n }, attributes, {\n dangerouslySetInnerHTML: {\n __html: resolveInlineScript(props)\n }\n }));\n }\n\n return /*#__PURE__*/React.createElement(\"script\", _extends({\n type: \"text/partytown\",\n src: proxyPartytownUrl(src),\n \"data-strategy\": strategy,\n crossOrigin: \"anonymous\"\n }, attributes));\n }\n\n return null;\n}\n\nfunction injectScript(props) {\n const {\n id,\n src,\n strategy = ScriptStrategy.postHydrate,\n onLoad,\n onError\n } = props || {};\n const scriptKey = id || src;\n const callbackNames = [`load`, `error`];\n const currentCallbacks = {\n load: onLoad,\n error: onError\n };\n\n if (scriptKey) {\n /**\n * If a duplicate script is already loaded/errored, we replay load/error callbacks with the original event.\n * If it's not yet loaded/errored, keep track of callbacks so we can call load/error callbacks for each when the event occurs.\n */\n for (const name of callbackNames) {\n if (currentCallbacks !== null && currentCallbacks !== void 0 && currentCallbacks[name]) {\n var _cachedCallbacks$name;\n\n const cachedCallbacks = scriptCallbackCache.get(scriptKey) || {};\n const {\n callbacks = []\n } = (cachedCallbacks === null || cachedCallbacks === void 0 ? void 0 : cachedCallbacks[name]) || {};\n callbacks.push(currentCallbacks === null || currentCallbacks === void 0 ? void 0 : currentCallbacks[name]);\n\n if (cachedCallbacks !== null && cachedCallbacks !== void 0 && (_cachedCallbacks$name = cachedCallbacks[name]) !== null && _cachedCallbacks$name !== void 0 && _cachedCallbacks$name.event) {\n var _currentCallbacks$nam, _cachedCallbacks$name2;\n\n currentCallbacks === null || currentCallbacks === void 0 ? void 0 : (_currentCallbacks$nam = currentCallbacks[name]) === null || _currentCallbacks$nam === void 0 ? void 0 : _currentCallbacks$nam.call(currentCallbacks, cachedCallbacks === null || cachedCallbacks === void 0 ? void 0 : (_cachedCallbacks$name2 = cachedCallbacks[name]) === null || _cachedCallbacks$name2 === void 0 ? void 0 : _cachedCallbacks$name2.event);\n } else {\n scriptCallbackCache.set(scriptKey, _extends({}, cachedCallbacks, {\n [name]: {\n callbacks\n }\n }));\n }\n }\n } // Avoid injecting duplicate scripts into the DOM\n\n\n if (scriptCache.has(scriptKey)) {\n return null;\n }\n }\n\n const inlineScript = resolveInlineScript(props);\n const attributes = resolveAttributes(props);\n const script = document.createElement(`script`);\n\n if (id) {\n script.id = id;\n }\n\n script.dataset.strategy = strategy;\n\n for (const [key, value] of Object.entries(attributes)) {\n script.setAttribute(key, value);\n }\n\n if (inlineScript) {\n script.textContent = inlineScript;\n }\n\n if (src) {\n script.src = src;\n }\n\n const wrappedCallbacks = {};\n\n if (scriptKey) {\n // Add listeners on injected scripts so events are cached for use in de-duplicated script callbacks\n for (const name of callbackNames) {\n const wrappedEventCallback = event => onEventCallback(event, scriptKey, name);\n\n script.addEventListener(name, wrappedEventCallback);\n wrappedCallbacks[`${name}Callback`] = wrappedEventCallback;\n }\n\n scriptCache.add(scriptKey);\n }\n\n document.body.appendChild(script);\n return {\n script,\n loadCallback: wrappedCallbacks.loadCallback,\n errorCallback: wrappedCallbacks.errorCallback\n };\n}\n\nfunction resolveInlineScript(props) {\n const {\n dangerouslySetInnerHTML,\n children = ``\n } = props || {};\n const {\n __html: dangerousHTML = ``\n } = dangerouslySetInnerHTML || {};\n return dangerousHTML || children;\n}\n\nfunction resolveAttributes(props) {\n const attributes = {};\n\n for (const [key, value] of Object.entries(props)) {\n if (handledProps.has(key)) {\n continue;\n }\n\n attributes[key] = value;\n }\n\n return attributes;\n}\n\nfunction proxyPartytownUrl(url) {\n if (!url) {\n return undefined;\n }\n\n return `/__third-party-proxy?url=${encodeURIComponent(url)}`;\n}\n\nfunction onEventCallback(event, scriptKey, eventName) {\n const cachedCallbacks = scriptCallbackCache.get(scriptKey) || {};\n\n for (const callback of (cachedCallbacks === null || cachedCallbacks === void 0 ? void 0 : (_cachedCallbacks$even = cachedCallbacks[eventName]) === null || _cachedCallbacks$even === void 0 ? void 0 : _cachedCallbacks$even.callbacks) || []) {\n var _cachedCallbacks$even;\n\n callback(event);\n }\n\n scriptCallbackCache.set(scriptKey, {\n [eventName]: {\n event\n }\n });\n}","exports.components = {\n \"component---plugins-petlab-upsell-devtools-templates-list-js\": () => import(\"./../../../plugins/petlab-upsell-devtools/templates/list.js\" /* webpackChunkName: \"component---plugins-petlab-upsell-devtools-templates-list-js\" */),\n \"component---src-pages-404-js\": () => import(\"./../../../src/pages/404.js\" /* webpackChunkName: \"component---src-pages-404-js\" */),\n \"component---src-pages-banners-editing-js\": () => import(\"./../../../src/pages/banners-editing.js\" /* webpackChunkName: \"component---src-pages-banners-editing-js\" */),\n \"component---src-pages-index-js\": () => import(\"./../../../src/pages/index.js\" /* webpackChunkName: \"component---src-pages-index-js\" */),\n \"component---src-pages-symbol-editing-js\": () => import(\"./../../../src/pages/symbol-editing.js\" /* webpackChunkName: \"component---src-pages-symbol-editing-js\" */),\n \"component---src-pages-upsell-editing-js\": () => import(\"./../../../src/pages/upsell-editing.js\" /* webpackChunkName: \"component---src-pages-upsell-editing-js\" */),\n \"component---src-pages-upsell-preview-js\": () => import(\"./../../../src/pages/upsell-preview.js\" /* webpackChunkName: \"component---src-pages-upsell-preview-js\" */),\n \"component---src-pages-upsell-symbol-editing-js\": () => import(\"./../../../src/pages/upsell-symbol-editing.js\" /* webpackChunkName: \"component---src-pages-upsell-symbol-editing-js\" */),\n \"component---src-templates-upsell-jsx\": () => import(\"./../../../src/templates/Upsell.jsx\" /* webpackChunkName: \"component---src-templates-upsell-jsx\" */)\n}\n\n","module.exports = [{\n plugin: require('../node_modules/@petlabco/builder-checkout-upsell-integration/gatsby-browser.js'),\n options: {\"plugins\":[],\"builderApiKey\":\"5220c7b51d674fc2bcfcb2c618883447\",\"upsellApiUrl\":\"https://cdn.builder.io/api/v2/content/upsell\",\"upsellSelectorApiUrl\":\"https://cdn.builder.io/api/v2/content/upsell-selector\",\"checkoutStoreName\":\"ukamplify.myshopify.com\",\"checkoutApiUrlV2\":\"https://checkout-api.petlabco.co.uk\",\"checkoutApiKeyV2\":\"QBVLhipCwp8D36HrYHEVK2XeVcNytLCBaBofHAbr\",\"forceCheckoutV2\":true},\n },{\n plugin: require('../node_modules/gatsby-plugin-styled-components/gatsby-browser.js'),\n options: {\"plugins\":[],\"displayName\":true,\"fileName\":true,\"minify\":true,\"namespace\":\"\",\"transpileTemplateLiterals\":true,\"topLevelImportPaths\":[],\"pure\":false,\"disableVendorPrefixes\":false},\n },{\n plugin: require('../node_modules/gatsby-plugin-google-tagmanager/gatsby-browser.js'),\n options: {\"plugins\":[],\"id\":\"GTM-5XDGQT2\",\"includeInDevelopment\":false,\"defaultDataLayer\":{\"type\":\"object\",\"value\":{\"platform\":\"gatsby\"}},\"routeChangeEventName\":\"gatsby-route-change\",\"enableWebVitalsTracking\":false,\"selfHostedOrigin\":\"https://www.googletagmanager.com\"},\n },{\n plugin: require('../node_modules/gatsby-plugin-google-tagmanager/gatsby-browser.js'),\n options: {\"plugins\":[],\"id\":\"GTM-MMRJ7684\",\"includeInDevelopment\":false,\"defaultDataLayer\":{\"type\":\"object\",\"value\":{\"platform\":\"gatsby\"}},\"routeChangeEventName\":\"gatsby-route-change\",\"enableWebVitalsTracking\":false,\"selfHostedOrigin\":\"https://www.googletagmanager.com\"},\n },{\n plugin: require('../node_modules/gatsby-plugin-loadable-components-ssr/gatsby-browser.js'),\n options: {\"plugins\":[]},\n },{\n plugin: require('../gatsby-browser.js'),\n options: {\"plugins\":[]},\n },{\n plugin: require('../node_modules/gatsby/dist/internal-plugins/partytown/gatsby-browser.js'),\n options: {\"plugins\":[]},\n }]\n","const plugins = require(`./api-runner-browser-plugins`)\nconst { getResourceURLsForPathname, loadPage, loadPageSync } =\n require(`./loader`).publicLoader\n\nexports.apiRunner = (api, args = {}, defaultReturn, argTransform) => {\n // Hooks for gatsby-cypress's API handler\n if (process.env.CYPRESS_SUPPORT) {\n if (window.___apiHandler) {\n window.___apiHandler(api)\n } else if (window.___resolvedAPIs) {\n window.___resolvedAPIs.push(api)\n } else {\n window.___resolvedAPIs = [api]\n }\n }\n\n let results = plugins.map(plugin => {\n if (!plugin.plugin[api]) {\n return undefined\n }\n\n args.getResourceURLsForPathname = getResourceURLsForPathname\n args.loadPage = loadPage\n args.loadPageSync = loadPageSync\n\n const result = plugin.plugin[api](args, plugin.options)\n if (result && argTransform) {\n args = argTransform({ args, result, plugin })\n }\n return result\n })\n\n // Filter out undefined results.\n results = results.filter(result => typeof result !== `undefined`)\n\n if (results.length > 0) {\n return results\n } else if (defaultReturn) {\n return [defaultReturn]\n } else {\n return []\n }\n}\n\nexports.apiRunnerAsync = (api, args, defaultReturn) =>\n plugins.reduce(\n (previous, next) =>\n next.plugin[api]\n ? previous.then(() => next.plugin[api](args, next.options))\n : previous,\n Promise.resolve()\n )\n","// \n// An event handler can take an optional event argument\n// and should not return a value\n \n \n\n// An array of all currently registered event handlers for a type\n \n \n// A map of event types and their corresponding event handlers.\n \n \n \n \n\n/** Mitt: Tiny (~200b) functional event emitter / pubsub.\n * @name mitt\n * @returns {Mitt}\n */\nfunction mitt(all ) {\n\tall = all || Object.create(null);\n\n\treturn {\n\t\t/**\n\t\t * Register an event handler for the given type.\n\t\t *\n\t\t * @param {String} type\tType of event to listen for, or `\"*\"` for all events\n\t\t * @param {Function} handler Function to call in response to given event\n\t\t * @memberOf mitt\n\t\t */\n\t\ton: function on(type , handler ) {\n\t\t\t(all[type] || (all[type] = [])).push(handler);\n\t\t},\n\n\t\t/**\n\t\t * Remove an event handler for the given type.\n\t\t *\n\t\t * @param {String} type\tType of event to unregister `handler` from, or `\"*\"`\n\t\t * @param {Function} handler Handler function to remove\n\t\t * @memberOf mitt\n\t\t */\n\t\toff: function off(type , handler ) {\n\t\t\tif (all[type]) {\n\t\t\t\tall[type].splice(all[type].indexOf(handler) >>> 0, 1);\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Invoke all handlers for the given type.\n\t\t * If present, `\"*\"` handlers are invoked after type-matched handlers.\n\t\t *\n\t\t * @param {String} type The event type to invoke\n\t\t * @param {Any} [evt] Any value (object is recommended and powerful), passed to each handler\n\t\t * @memberOf mitt\n\t\t */\n\t\temit: function emit(type , evt ) {\n\t\t\t(all[type] || []).slice().map(function (handler) { handler(evt); });\n\t\t\t(all['*'] || []).slice().map(function (handler) { handler(type, evt); });\n\t\t}\n\t};\n}\n\nexport default mitt;\n//# sourceMappingURL=mitt.es.js.map\n","import mitt from \"mitt\"\n\nconst emitter = mitt()\nexport default emitter\n","export default pathAndSearch => {\n if (pathAndSearch === undefined) {\n return pathAndSearch\n }\n let [path, search = ``] = pathAndSearch.split(`?`)\n if (search) {\n search = `?` + search\n }\n\n if (path === `/`) {\n return `/` + search\n }\n if (path.charAt(path.length - 1) === `/`) {\n return path.slice(0, -1) + search\n }\n return path + search\n}\n","import { pick } from \"@gatsbyjs/reach-router/lib/utils\"\nimport stripPrefix from \"./strip-prefix\"\nimport normalizePagePath from \"./normalize-page-path\"\nimport { maybeGetBrowserRedirect } from \"./redirect-utils.js\"\n\nconst pathCache = new Map()\nlet matchPaths = []\n\nconst trimPathname = rawPathname => {\n let newRawPathname = rawPathname\n const queryIndex = rawPathname.indexOf(`?`)\n\n if (queryIndex !== -1) {\n const [path, qs] = rawPathname.split(`?`)\n newRawPathname = `${path}?${encodeURIComponent(qs)}`\n }\n\n const pathname = decodeURIComponent(newRawPathname)\n\n // Remove the pathPrefix from the pathname.\n const trimmedPathname = stripPrefix(\n pathname,\n decodeURIComponent(__BASE_PATH__)\n )\n // Remove any hashfragment\n .split(`#`)[0]\n\n return trimmedPathname\n}\n\nfunction absolutify(path) {\n // If it's already absolute, return as-is\n if (\n path.startsWith(`/`) ||\n path.startsWith(`https://`) ||\n path.startsWith(`http://`)\n ) {\n return path\n }\n // Calculate path relative to current location, adding a trailing slash to\n // match behavior of @reach/router\n return new URL(\n path,\n window.location.href + (window.location.href.endsWith(`/`) ? `` : `/`)\n ).pathname\n}\n\n/**\n * Set list of matchPaths\n *\n * @param {Array<{path: string, matchPath: string}>} value collection of matchPaths\n */\nexport const setMatchPaths = value => {\n matchPaths = value\n}\n\n/**\n * Return a matchpath url\n * if `match-paths.json` contains `{ \"/foo*\": \"/page1\", ...}`, then\n * `/foo?bar=far` => `/page1`\n *\n * @param {string} rawPathname A raw pathname\n * @return {string|null}\n */\nexport const findMatchPath = rawPathname => {\n const trimmedPathname = cleanPath(rawPathname)\n\n const pickPaths = matchPaths.map(({ path, matchPath }) => {\n return {\n path: matchPath,\n originalPath: path,\n }\n })\n\n const path = pick(pickPaths, trimmedPathname)\n\n if (path) {\n return normalizePagePath(path.route.originalPath)\n }\n\n return null\n}\n\n/**\n * Return a matchpath params from reach/router rules\n * if `match-paths.json` contains `{ \":bar/*foo\" }`, and the path is /baz/zaz/zoo\n * then it returns\n * { bar: baz, foo: zaz/zoo }\n *\n * @param {string} rawPathname A raw pathname\n * @return {object}\n */\nexport const grabMatchParams = rawPathname => {\n const trimmedPathname = cleanPath(rawPathname)\n\n const pickPaths = matchPaths.map(({ path, matchPath }) => {\n return {\n path: matchPath,\n originalPath: path,\n }\n })\n\n const path = pick(pickPaths, trimmedPathname)\n\n if (path) {\n return path.params\n }\n\n return {}\n}\n\n// Given a raw URL path, returns the cleaned version of it (trim off\n// `#` and query params), or if it matches an entry in\n// `match-paths.json`, its matched path is returned\n//\n// E.g. `/foo?bar=far` => `/foo`\n//\n// Or if `match-paths.json` contains `{ \"/foo*\": \"/page1\", ...}`, then\n// `/foo?bar=far` => `/page1`\nexport const findPath = rawPathname => {\n const trimmedPathname = trimPathname(absolutify(rawPathname))\n if (pathCache.has(trimmedPathname)) {\n return pathCache.get(trimmedPathname)\n }\n\n const redirect = maybeGetBrowserRedirect(rawPathname)\n if (redirect) {\n return findPath(redirect.toPath)\n }\n\n let foundPath = findMatchPath(trimmedPathname)\n\n if (!foundPath) {\n foundPath = cleanPath(rawPathname)\n }\n\n pathCache.set(trimmedPathname, foundPath)\n\n return foundPath\n}\n\n/**\n * Clean a url and converts /index.html => /\n * E.g. `/foo?bar=far` => `/foo`\n *\n * @param {string} rawPathname A raw pathname\n * @return {string}\n */\nexport const cleanPath = rawPathname => {\n const trimmedPathname = trimPathname(absolutify(rawPathname))\n\n let foundPath = trimmedPathname\n if (foundPath === `/index.html`) {\n foundPath = `/`\n }\n\n foundPath = normalizePagePath(foundPath)\n\n return foundPath\n}\n","const support = function (feature) {\n if (typeof document === `undefined`) {\n return false\n }\n const fakeLink = document.createElement(`link`)\n try {\n if (fakeLink.relList && typeof fakeLink.relList.supports === `function`) {\n return fakeLink.relList.supports(feature)\n }\n } catch (err) {\n return false\n }\n return false\n}\n\nconst linkPrefetchStrategy = function (url, options) {\n return new Promise((resolve, reject) => {\n if (typeof document === `undefined`) {\n reject()\n return\n }\n\n const link = document.createElement(`link`)\n link.setAttribute(`rel`, `prefetch`)\n link.setAttribute(`href`, url)\n\n Object.keys(options).forEach(key => {\n link.setAttribute(key, options[key])\n })\n\n link.onload = resolve\n link.onerror = reject\n\n const parentElement =\n document.getElementsByTagName(`head`)[0] ||\n document.getElementsByName(`script`)[0].parentNode\n parentElement.appendChild(link)\n })\n}\n\nconst xhrPrefetchStrategy = function (url) {\n return new Promise((resolve, reject) => {\n const req = new XMLHttpRequest()\n req.open(`GET`, url, true)\n\n req.onload = () => {\n if (req.status === 200) {\n resolve()\n } else {\n reject()\n }\n }\n\n req.send(null)\n })\n}\n\nconst supportedPrefetchStrategy = support(`prefetch`)\n ? linkPrefetchStrategy\n : xhrPrefetchStrategy\n\nconst preFetched = {}\n\nconst prefetch = function (url, options) {\n return new Promise(resolve => {\n if (preFetched[url]) {\n resolve()\n return\n }\n\n supportedPrefetchStrategy(url, options)\n .then(() => {\n resolve()\n preFetched[url] = true\n })\n .catch(() => {}) // 404s are logged to the console anyway\n })\n}\n\nexport default prefetch\n","import prefetchHelper from \"./prefetch\"\nimport emitter from \"./emitter\"\nimport { setMatchPaths, findPath, findMatchPath } from \"./find-path\"\n\n/**\n * Available resource loading statuses\n */\nexport const PageResourceStatus = {\n /**\n * At least one of critical resources failed to load\n */\n Error: `error`,\n /**\n * Resources loaded successfully\n */\n Success: `success`,\n}\n\nconst preferDefault = m => (m && m.default) || m\n\nconst stripSurroundingSlashes = s => {\n s = s[0] === `/` ? s.slice(1) : s\n s = s.endsWith(`/`) ? s.slice(0, -1) : s\n return s\n}\n\nconst createPageDataUrl = rawPath => {\n const [path, maybeSearch] = rawPath.split(`?`)\n const fixedPath = path === `/` ? `index` : stripSurroundingSlashes(path)\n return `${__PATH_PREFIX__}/page-data/${fixedPath}/page-data.json${\n maybeSearch ? `?${maybeSearch}` : ``\n }`\n}\n\nfunction doFetch(url, method = `GET`) {\n return new Promise(resolve => {\n const req = new XMLHttpRequest()\n req.open(method, url, true)\n req.onreadystatechange = () => {\n if (req.readyState == 4) {\n resolve(req)\n }\n }\n req.send(null)\n })\n}\n\nconst doesConnectionSupportPrefetch = () => {\n if (\n `connection` in navigator &&\n typeof navigator.connection !== `undefined`\n ) {\n if ((navigator.connection.effectiveType || ``).includes(`2g`)) {\n return false\n }\n if (navigator.connection.saveData) {\n return false\n }\n }\n return true\n}\n\n// Regex that matches common search crawlers\nconst BOT_REGEX = /bot|crawler|spider|crawling/i\n\nconst toPageResources = (pageData, component = null) => {\n const page = {\n componentChunkName: pageData.componentChunkName,\n path: pageData.path,\n webpackCompilationHash: pageData.webpackCompilationHash,\n matchPath: pageData.matchPath,\n staticQueryHashes: pageData.staticQueryHashes,\n getServerDataError: pageData.getServerDataError,\n }\n\n return {\n component,\n json: pageData.result,\n page,\n }\n}\n\nexport class BaseLoader {\n constructor(loadComponent, matchPaths) {\n // Map of pagePath -> Page. Where Page is an object with: {\n // status: PageResourceStatus.Success || PageResourceStatus.Error,\n // payload: PageResources, // undefined if PageResourceStatus.Error\n // }\n // PageResources is {\n // component,\n // json: pageData.result,\n // page: {\n // componentChunkName,\n // path,\n // webpackCompilationHash,\n // staticQueryHashes\n // },\n // staticQueryResults\n // }\n this.pageDb = new Map()\n this.inFlightDb = new Map()\n this.staticQueryDb = {}\n this.pageDataDb = new Map()\n this.isPrefetchQueueRunning = false\n this.prefetchQueued = []\n this.prefetchTriggered = new Set()\n this.prefetchCompleted = new Set()\n this.loadComponent = loadComponent\n setMatchPaths(matchPaths)\n }\n\n inFlightNetworkRequests = new Map()\n\n memoizedGet(url) {\n let inFlightPromise = this.inFlightNetworkRequests.get(url)\n\n if (!inFlightPromise) {\n inFlightPromise = doFetch(url, `GET`)\n this.inFlightNetworkRequests.set(url, inFlightPromise)\n }\n\n // Prefer duplication with then + catch over .finally to prevent problems in ie11 + firefox\n return inFlightPromise\n .then(response => {\n this.inFlightNetworkRequests.delete(url)\n return response\n })\n .catch(err => {\n this.inFlightNetworkRequests.delete(url)\n throw err\n })\n }\n\n setApiRunner(apiRunner) {\n this.apiRunner = apiRunner\n this.prefetchDisabled = apiRunner(`disableCorePrefetching`).some(a => a)\n }\n\n fetchPageDataJson(loadObj) {\n const { pagePath, retries = 0 } = loadObj\n const url = createPageDataUrl(pagePath)\n return this.memoizedGet(url).then(req => {\n const { status, responseText } = req\n\n // Handle 200\n if (status === 200) {\n try {\n const jsonPayload = JSON.parse(responseText)\n if (jsonPayload.path === undefined) {\n throw new Error(`not a valid pageData response`)\n }\n\n const maybeSearch = pagePath.split(`?`)[1]\n if (maybeSearch && !jsonPayload.path.includes(maybeSearch)) {\n jsonPayload.path += `?${maybeSearch}`\n }\n\n return Object.assign(loadObj, {\n status: PageResourceStatus.Success,\n payload: jsonPayload,\n })\n } catch (err) {\n // continue regardless of error\n }\n }\n\n // Handle 404\n if (status === 404 || status === 200) {\n // If the request was for a 404/500 page and it doesn't exist, we're done\n if (pagePath === `/404.html` || pagePath === `/500.html`) {\n return Object.assign(loadObj, {\n status: PageResourceStatus.Error,\n })\n }\n\n // Need some code here to cache the 404 request. In case\n // multiple loadPageDataJsons result in 404s\n return this.fetchPageDataJson(\n Object.assign(loadObj, { pagePath: `/404.html`, notFound: true })\n )\n }\n\n // handle 500 response (Unrecoverable)\n if (status === 500) {\n return this.fetchPageDataJson(\n Object.assign(loadObj, {\n pagePath: `/500.html`,\n internalServerError: true,\n })\n )\n }\n\n // Handle everything else, including status === 0, and 503s. Should retry\n if (retries < 3) {\n return this.fetchPageDataJson(\n Object.assign(loadObj, { retries: retries + 1 })\n )\n }\n\n // Retried 3 times already, result is an error.\n return Object.assign(loadObj, {\n status: PageResourceStatus.Error,\n })\n })\n }\n\n loadPageDataJson(rawPath) {\n const pagePath = findPath(rawPath)\n if (this.pageDataDb.has(pagePath)) {\n const pageData = this.pageDataDb.get(pagePath)\n if (process.env.BUILD_STAGE !== `develop` || !pageData.stale) {\n return Promise.resolve(pageData)\n }\n }\n\n return this.fetchPageDataJson({ pagePath }).then(pageData => {\n this.pageDataDb.set(pagePath, pageData)\n\n return pageData\n })\n }\n\n findMatchPath(rawPath) {\n return findMatchPath(rawPath)\n }\n\n // TODO check all uses of this and whether they use undefined for page resources not exist\n loadPage(rawPath) {\n const pagePath = findPath(rawPath)\n if (this.pageDb.has(pagePath)) {\n const page = this.pageDb.get(pagePath)\n if (process.env.BUILD_STAGE !== `develop` || !page.payload.stale) {\n if (page.error) {\n return {\n error: page.error,\n status: page.status,\n }\n }\n\n return Promise.resolve(page.payload)\n }\n }\n\n if (this.inFlightDb.has(pagePath)) {\n return this.inFlightDb.get(pagePath)\n }\n\n const inFlightPromise = Promise.all([\n this.loadAppData(),\n this.loadPageDataJson(pagePath),\n ]).then(allData => {\n const result = allData[1]\n if (result.status === PageResourceStatus.Error) {\n return {\n status: PageResourceStatus.Error,\n }\n }\n\n let pageData = result.payload\n const { componentChunkName, staticQueryHashes = [] } = pageData\n\n const finalResult = {}\n\n const componentChunkPromise = this.loadComponent(componentChunkName).then(\n component => {\n finalResult.createdAt = new Date()\n let pageResources\n if (!component || component instanceof Error) {\n finalResult.status = PageResourceStatus.Error\n finalResult.error = component\n } else {\n finalResult.status = PageResourceStatus.Success\n if (result.notFound === true) {\n finalResult.notFound = true\n }\n pageData = Object.assign(pageData, {\n webpackCompilationHash: allData[0]\n ? allData[0].webpackCompilationHash\n : ``,\n })\n pageResources = toPageResources(pageData, component)\n }\n // undefined if final result is an error\n return pageResources\n }\n )\n\n const staticQueryBatchPromise = Promise.all(\n staticQueryHashes.map(staticQueryHash => {\n // Check for cache in case this static query result has already been loaded\n if (this.staticQueryDb[staticQueryHash]) {\n const jsonPayload = this.staticQueryDb[staticQueryHash]\n return { staticQueryHash, jsonPayload }\n }\n\n return this.memoizedGet(\n `${__PATH_PREFIX__}/page-data/sq/d/${staticQueryHash}.json`\n )\n .then(req => {\n const jsonPayload = JSON.parse(req.responseText)\n return { staticQueryHash, jsonPayload }\n })\n .catch(() => {\n throw new Error(\n `We couldn't load \"${__PATH_PREFIX__}/page-data/sq/d/${staticQueryHash}.json\"`\n )\n })\n })\n ).then(staticQueryResults => {\n const staticQueryResultsMap = {}\n\n staticQueryResults.forEach(({ staticQueryHash, jsonPayload }) => {\n staticQueryResultsMap[staticQueryHash] = jsonPayload\n this.staticQueryDb[staticQueryHash] = jsonPayload\n })\n\n return staticQueryResultsMap\n })\n\n return (\n Promise.all([componentChunkPromise, staticQueryBatchPromise])\n .then(([pageResources, staticQueryResults]) => {\n let payload\n if (pageResources) {\n payload = { ...pageResources, staticQueryResults }\n finalResult.payload = payload\n emitter.emit(`onPostLoadPageResources`, {\n page: payload,\n pageResources: payload,\n })\n }\n\n this.pageDb.set(pagePath, finalResult)\n\n if (finalResult.error) {\n return {\n error: finalResult.error,\n status: finalResult.status,\n }\n }\n\n return payload\n })\n // when static-query fail to load we throw a better error\n .catch(err => {\n return {\n error: err,\n status: PageResourceStatus.Error,\n }\n })\n )\n })\n\n inFlightPromise\n .then(() => {\n this.inFlightDb.delete(pagePath)\n })\n .catch(error => {\n this.inFlightDb.delete(pagePath)\n throw error\n })\n\n this.inFlightDb.set(pagePath, inFlightPromise)\n\n return inFlightPromise\n }\n\n // returns undefined if the page does not exists in cache\n loadPageSync(rawPath, options = {}) {\n const pagePath = findPath(rawPath)\n if (this.pageDb.has(pagePath)) {\n const pageData = this.pageDb.get(pagePath)\n\n if (pageData.payload) {\n return pageData.payload\n }\n\n if (options?.withErrorDetails) {\n return {\n error: pageData.error,\n status: pageData.status,\n }\n }\n }\n return undefined\n }\n\n shouldPrefetch(pagePath) {\n // Skip prefetching if we know user is on slow or constrained connection\n if (!doesConnectionSupportPrefetch()) {\n return false\n }\n\n // Don't prefetch if this is a crawler bot\n if (navigator.userAgent && BOT_REGEX.test(navigator.userAgent)) {\n return false\n }\n\n // Check if the page exists.\n if (this.pageDb.has(pagePath)) {\n return false\n }\n\n return true\n }\n\n prefetch(pagePath) {\n if (!this.shouldPrefetch(pagePath)) {\n return {\n then: resolve => resolve(false),\n abort: () => {},\n }\n }\n if (this.prefetchTriggered.has(pagePath)) {\n return {\n then: resolve => resolve(true),\n abort: () => {},\n }\n }\n\n const defer = {\n resolve: null,\n reject: null,\n promise: null,\n }\n defer.promise = new Promise((resolve, reject) => {\n defer.resolve = resolve\n defer.reject = reject\n })\n this.prefetchQueued.push([pagePath, defer])\n const abortC = new AbortController()\n abortC.signal.addEventListener(`abort`, () => {\n const index = this.prefetchQueued.findIndex(([p]) => p === pagePath)\n // remove from the queue\n if (index !== -1) {\n this.prefetchQueued.splice(index, 1)\n }\n })\n\n if (!this.isPrefetchQueueRunning) {\n this.isPrefetchQueueRunning = true\n setTimeout(() => {\n this._processNextPrefetchBatch()\n }, 3000)\n }\n\n return {\n then: (resolve, reject) => defer.promise.then(resolve, reject),\n abort: abortC.abort.bind(abortC),\n }\n }\n\n _processNextPrefetchBatch() {\n const idleCallback = window.requestIdleCallback || (cb => setTimeout(cb, 0))\n\n idleCallback(() => {\n const toPrefetch = this.prefetchQueued.splice(0, 4)\n const prefetches = Promise.all(\n toPrefetch.map(([pagePath, dPromise]) => {\n // Tell plugins with custom prefetching logic that they should start\n // prefetching this path.\n if (!this.prefetchTriggered.has(pagePath)) {\n this.apiRunner(`onPrefetchPathname`, { pathname: pagePath })\n this.prefetchTriggered.add(pagePath)\n }\n\n // If a plugin has disabled core prefetching, stop now.\n if (this.prefetchDisabled) {\n return dPromise.resolve(false)\n }\n\n return this.doPrefetch(findPath(pagePath)).then(() => {\n if (!this.prefetchCompleted.has(pagePath)) {\n this.apiRunner(`onPostPrefetchPathname`, { pathname: pagePath })\n this.prefetchCompleted.add(pagePath)\n }\n\n dPromise.resolve(true)\n })\n })\n )\n\n if (this.prefetchQueued.length) {\n prefetches.then(() => {\n setTimeout(() => {\n this._processNextPrefetchBatch()\n }, 3000)\n })\n } else {\n this.isPrefetchQueueRunning = false\n }\n })\n }\n\n doPrefetch(pagePath) {\n const pageDataUrl = createPageDataUrl(pagePath)\n return prefetchHelper(pageDataUrl, {\n crossOrigin: `anonymous`,\n as: `fetch`,\n }).then(() =>\n // This was just prefetched, so will return a response from\n // the cache instead of making another request to the server\n this.loadPageDataJson(pagePath)\n )\n }\n\n hovering(rawPath) {\n this.loadPage(rawPath)\n }\n\n getResourceURLsForPathname(rawPath) {\n const pagePath = findPath(rawPath)\n const page = this.pageDataDb.get(pagePath)\n if (page) {\n const pageResources = toPageResources(page.payload)\n\n return [\n ...createComponentUrls(pageResources.page.componentChunkName),\n createPageDataUrl(pagePath),\n ]\n } else {\n return null\n }\n }\n\n isPageNotFound(rawPath) {\n const pagePath = findPath(rawPath)\n const page = this.pageDb.get(pagePath)\n return !page || page.notFound\n }\n\n loadAppData(retries = 0) {\n return this.memoizedGet(`${__PATH_PREFIX__}/page-data/app-data.json`).then(\n req => {\n const { status, responseText } = req\n\n let appData\n\n if (status !== 200 && retries < 3) {\n // Retry 3 times incase of non-200 responses\n return this.loadAppData(retries + 1)\n }\n\n // Handle 200\n if (status === 200) {\n try {\n const jsonPayload = JSON.parse(responseText)\n if (jsonPayload.webpackCompilationHash === undefined) {\n throw new Error(`not a valid app-data response`)\n }\n\n appData = jsonPayload\n } catch (err) {\n // continue regardless of error\n }\n }\n\n return appData\n }\n )\n }\n}\n\nconst createComponentUrls = componentChunkName =>\n (window.___chunkMapping[componentChunkName] || []).map(\n chunk => __PATH_PREFIX__ + chunk\n )\n\nexport class ProdLoader extends BaseLoader {\n constructor(asyncRequires, matchPaths, pageData) {\n const loadComponent = chunkName => {\n if (!asyncRequires.components[chunkName]) {\n throw new Error(\n `We couldn't find the correct component chunk with the name ${chunkName}`\n )\n }\n\n return (\n asyncRequires.components[chunkName]()\n .then(preferDefault)\n // loader will handle the case when component is error\n .catch(err => err)\n )\n }\n\n super(loadComponent, matchPaths)\n\n if (pageData) {\n this.pageDataDb.set(findPath(pageData.path), {\n pagePath: pageData.path,\n payload: pageData,\n status: `success`,\n })\n }\n }\n\n doPrefetch(pagePath) {\n return super.doPrefetch(pagePath).then(result => {\n if (result.status !== PageResourceStatus.Success) {\n return Promise.resolve()\n }\n const pageData = result.payload\n const chunkName = pageData.componentChunkName\n const componentUrls = createComponentUrls(chunkName)\n return Promise.all(componentUrls.map(prefetchHelper)).then(() => pageData)\n })\n }\n\n loadPageDataJson(rawPath) {\n return super.loadPageDataJson(rawPath).then(data => {\n if (data.notFound) {\n // check if html file exist using HEAD request:\n // if it does we should navigate to it instead of showing 404\n return doFetch(rawPath, `HEAD`).then(req => {\n if (req.status === 200) {\n // page (.html file) actually exist (or we asked for 404 )\n // returning page resources status as errored to trigger\n // regular browser navigation to given page\n return {\n status: PageResourceStatus.Error,\n }\n }\n\n // if HEAD request wasn't 200, return notFound result\n // and show 404 page\n return data\n })\n }\n return data\n })\n }\n}\n\nlet instance\n\nexport const setLoader = _loader => {\n instance = _loader\n}\n\nexport const publicLoader = {\n enqueue: rawPath => instance.prefetch(rawPath),\n\n // Real methods\n getResourceURLsForPathname: rawPath =>\n instance.getResourceURLsForPathname(rawPath),\n loadPage: rawPath => instance.loadPage(rawPath),\n // TODO add deprecation to v4 so people use withErrorDetails and then we can remove in v5 and change default behaviour\n loadPageSync: (rawPath, options = {}) =>\n instance.loadPageSync(rawPath, options),\n prefetch: rawPath => instance.prefetch(rawPath),\n isPageNotFound: rawPath => instance.isPageNotFound(rawPath),\n hovering: rawPath => instance.hovering(rawPath),\n loadAppData: () => instance.loadAppData(),\n}\n\nexport default publicLoader\n\nexport function getStaticQueryResults() {\n if (instance) {\n return instance.staticQueryDb\n } else {\n return {}\n }\n}\n","import React, { createElement } from \"react\"\nimport PropTypes from \"prop-types\"\nimport { apiRunner } from \"./api-runner-browser\"\nimport { grabMatchParams } from \"./find-path\"\n\n// Renders page\nclass PageRenderer extends React.Component {\n render() {\n const props = {\n ...this.props,\n params: {\n ...grabMatchParams(this.props.location.pathname),\n ...this.props.pageResources.json.pageContext.__params,\n },\n }\n\n const pageElement = createElement(this.props.pageResources.component, {\n ...props,\n key: this.props.path || this.props.pageResources.page.path,\n })\n\n const wrappedPage = apiRunner(\n `wrapPageElement`,\n { element: pageElement, props },\n pageElement,\n ({ result }) => {\n return { element: result, props }\n }\n ).pop()\n\n return wrappedPage\n }\n}\n\nPageRenderer.propTypes = {\n location: PropTypes.object.isRequired,\n pageResources: PropTypes.object.isRequired,\n data: PropTypes.object,\n pageContext: PropTypes.object.isRequired,\n}\n\nexport default PageRenderer\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\nimport Link, {\n withPrefix,\n withAssetPrefix,\n navigate,\n push,\n replace,\n navigateTo,\n parsePath,\n} from \"gatsby-link\"\nimport { useScrollRestoration } from \"gatsby-react-router-scroll\"\nimport PageRenderer from \"./public-page-renderer\"\nimport loader from \"./loader\"\n\nconst prefetchPathname = loader.enqueue\n\nconst StaticQueryContext = React.createContext({})\n\nfunction StaticQueryDataRenderer({ staticQueryData, data, query, render }) {\n const finalData = data\n ? data.data\n : staticQueryData[query] && staticQueryData[query].data\n\n return (\n \n {finalData && render(finalData)}\n {!finalData &&
Loading (StaticQuery)
}\n
\n )\n}\n\nconst StaticQuery = props => {\n const { data, query, render, children } = props\n\n return (\n \n {staticQueryData => (\n \n )}\n \n )\n}\n\nconst useStaticQuery = query => {\n if (\n typeof React.useContext !== `function` &&\n process.env.NODE_ENV === `development`\n ) {\n throw new Error(\n `You're likely using a version of React that doesn't support Hooks\\n` +\n `Please update React and ReactDOM to 16.8.0 or later to use the useStaticQuery hook.`\n )\n }\n const context = React.useContext(StaticQueryContext)\n\n // query is a stringified number like `3303882` when wrapped with graphql, If a user forgets\n // to wrap the query in a grqphql, then casting it to a Number results in `NaN` allowing us to\n // catch the misuse of the API and give proper direction\n if (isNaN(Number(query))) {\n throw new Error(`useStaticQuery was called with a string but expects to be called using \\`graphql\\`. Try this:\n\nimport { useStaticQuery, graphql } from 'gatsby';\n\nuseStaticQuery(graphql\\`${query}\\`);\n`)\n }\n\n if (context[query]?.data) {\n return context[query].data\n } else {\n throw new Error(\n `The result of this StaticQuery could not be fetched.\\n\\n` +\n `This is likely a bug in Gatsby and if refreshing the page does not fix it, ` +\n `please open an issue in https://github.com/gatsbyjs/gatsby/issues`\n )\n }\n}\n\nStaticQuery.propTypes = {\n data: PropTypes.object,\n query: PropTypes.string.isRequired,\n render: PropTypes.func,\n children: PropTypes.func,\n}\n\nfunction graphql() {\n throw new Error(\n `It appears like Gatsby is misconfigured. Gatsby related \\`graphql\\` calls ` +\n `are supposed to only be evaluated at compile time, and then compiled away. ` +\n `Unfortunately, something went wrong and the query was left in the compiled code.\\n\\n` +\n `Unless your site has a complex or custom babel/Gatsby configuration this is likely a bug in Gatsby.`\n )\n}\n\nexport {\n Link,\n withAssetPrefix,\n withPrefix,\n graphql,\n parsePath,\n navigate,\n useScrollRestoration,\n StaticQueryContext,\n StaticQuery,\n PageRenderer,\n useStaticQuery,\n prefetchPathname,\n}\n\nexport * from \"gatsby-script\"\n","// This is extracted to separate module because it's shared\n// between browser and SSR code\nexport const RouteAnnouncerProps = {\n id: `gatsby-announcer`,\n style: {\n position: `absolute`,\n top: 0,\n width: 1,\n height: 1,\n padding: 0,\n overflow: `hidden`,\n clip: `rect(0, 0, 0, 0)`,\n whiteSpace: `nowrap`,\n border: 0,\n },\n \"aria-live\": `assertive`,\n \"aria-atomic\": `true`,\n}\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\nimport loader, { PageResourceStatus } from \"./loader\"\nimport { maybeGetBrowserRedirect } from \"./redirect-utils.js\"\nimport { apiRunner } from \"./api-runner-browser\"\nimport emitter from \"./emitter\"\nimport { RouteAnnouncerProps } from \"./route-announcer-props\"\nimport { navigate as reachNavigate } from \"@gatsbyjs/reach-router\"\nimport { globalHistory } from \"@gatsbyjs/reach-router/lib/history\"\nimport { parsePath } from \"gatsby-link\"\n\nfunction maybeRedirect(pathname) {\n const redirect = maybeGetBrowserRedirect(pathname)\n const { hash, search } = window.location\n\n if (redirect != null) {\n window.___replace(redirect.toPath + search + hash)\n return true\n } else {\n return false\n }\n}\n\n// Catch unhandled chunk loading errors and force a restart of the app.\nlet nextRoute = ``\n\nwindow.addEventListener(`unhandledrejection`, event => {\n if (/loading chunk \\d* failed./i.test(event.reason)) {\n if (nextRoute) {\n window.location.pathname = nextRoute\n }\n }\n})\n\nconst onPreRouteUpdate = (location, prevLocation) => {\n if (!maybeRedirect(location.pathname)) {\n nextRoute = location.pathname\n apiRunner(`onPreRouteUpdate`, { location, prevLocation })\n }\n}\n\nconst onRouteUpdate = (location, prevLocation) => {\n if (!maybeRedirect(location.pathname)) {\n apiRunner(`onRouteUpdate`, { location, prevLocation })\n if (\n process.env.GATSBY_EXPERIMENTAL_QUERY_ON_DEMAND &&\n process.env.GATSBY_QUERY_ON_DEMAND_LOADING_INDICATOR === `true`\n ) {\n emitter.emit(`onRouteUpdate`, { location, prevLocation })\n }\n }\n}\n\nconst navigate = (to, options = {}) => {\n // Support forward/backward navigation with numbers\n // navigate(-2) (jumps back 2 history steps)\n // navigate(2) (jumps forward 2 history steps)\n if (typeof to === `number`) {\n globalHistory.navigate(to)\n return\n }\n\n const { pathname, search, hash } = parsePath(to)\n const redirect = maybeGetBrowserRedirect(pathname)\n\n // If we're redirecting, just replace the passed in pathname\n // to the one we want to redirect to.\n if (redirect) {\n to = redirect.toPath + search + hash\n }\n\n // If we had a service worker update, no matter the path, reload window and\n // reset the pathname whitelist\n if (window.___swUpdated) {\n window.location = pathname + search + hash\n return\n }\n\n // Start a timer to wait for a second before transitioning and showing a\n // loader in case resources aren't around yet.\n const timeoutId = setTimeout(() => {\n emitter.emit(`onDelayedLoadPageResources`, { pathname })\n apiRunner(`onRouteUpdateDelayed`, {\n location: window.location,\n })\n }, 1000)\n\n loader.loadPage(pathname + search).then(pageResources => {\n // If no page resources, then refresh the page\n // Do this, rather than simply `window.location.reload()`, so that\n // pressing the back/forward buttons work - otherwise when pressing\n // back, the browser will just change the URL and expect JS to handle\n // the change, which won't always work since it might not be a Gatsby\n // page.\n if (!pageResources || pageResources.status === PageResourceStatus.Error) {\n window.history.replaceState({}, ``, location.href)\n window.location = pathname\n clearTimeout(timeoutId)\n return\n }\n\n // If the loaded page has a different compilation hash to the\n // window, then a rebuild has occurred on the server. Reload.\n if (process.env.NODE_ENV === `production` && pageResources) {\n if (\n pageResources.page.webpackCompilationHash !==\n window.___webpackCompilationHash\n ) {\n // Purge plugin-offline cache\n if (\n `serviceWorker` in navigator &&\n navigator.serviceWorker.controller !== null &&\n navigator.serviceWorker.controller.state === `activated`\n ) {\n navigator.serviceWorker.controller.postMessage({\n gatsbyApi: `clearPathResources`,\n })\n }\n\n window.location = pathname + search + hash\n }\n }\n reachNavigate(to, options)\n clearTimeout(timeoutId)\n })\n}\n\nfunction shouldUpdateScroll(prevRouterProps, { location }) {\n const { pathname, hash } = location\n const results = apiRunner(`shouldUpdateScroll`, {\n prevRouterProps,\n // `pathname` for backwards compatibility\n pathname,\n routerProps: { location },\n getSavedScrollPosition: args => [\n 0,\n // FIXME this is actually a big code smell, we should fix this\n // eslint-disable-next-line @babel/no-invalid-this\n this._stateStorage.read(args, args.key),\n ],\n })\n if (results.length > 0) {\n // Use the latest registered shouldUpdateScroll result, this allows users to override plugin's configuration\n // @see https://github.com/gatsbyjs/gatsby/issues/12038\n return results[results.length - 1]\n }\n\n if (prevRouterProps) {\n const {\n location: { pathname: oldPathname },\n } = prevRouterProps\n if (oldPathname === pathname) {\n // Scroll to element if it exists, if it doesn't, or no hash is provided,\n // scroll to top.\n return hash ? decodeURI(hash.slice(1)) : [0, 0]\n }\n }\n return true\n}\n\nfunction init() {\n // The \"scroll-behavior\" package expects the \"action\" to be on the location\n // object so let's copy it over.\n globalHistory.listen(args => {\n args.location.action = args.action\n })\n\n window.___push = to => navigate(to, { replace: false })\n window.___replace = to => navigate(to, { replace: true })\n window.___navigate = (to, options) => navigate(to, options)\n}\n\nclass RouteAnnouncer extends React.Component {\n constructor(props) {\n super(props)\n this.announcementRef = React.createRef()\n }\n\n componentDidUpdate(prevProps, nextProps) {\n requestAnimationFrame(() => {\n let pageName = `new page at ${this.props.location.pathname}`\n if (document.title) {\n pageName = document.title\n }\n const pageHeadings = document.querySelectorAll(`#gatsby-focus-wrapper h1`)\n if (pageHeadings && pageHeadings.length) {\n pageName = pageHeadings[0].textContent\n }\n const newAnnouncement = `Navigated to ${pageName}`\n if (this.announcementRef.current) {\n const oldAnnouncement = this.announcementRef.current.innerText\n if (oldAnnouncement !== newAnnouncement) {\n this.announcementRef.current.innerText = newAnnouncement\n }\n }\n })\n }\n\n render() {\n return
\n }\n}\n\nconst compareLocationProps = (prevLocation, nextLocation) => {\n if (prevLocation.href !== nextLocation.href) {\n return true\n }\n\n if (prevLocation?.state?.key !== nextLocation?.state?.key) {\n return true\n }\n\n return false\n}\n\n// Fire on(Pre)RouteUpdate APIs\nclass RouteUpdates extends React.Component {\n constructor(props) {\n super(props)\n onPreRouteUpdate(props.location, null)\n }\n\n componentDidMount() {\n onRouteUpdate(this.props.location, null)\n }\n\n shouldComponentUpdate(prevProps) {\n if (compareLocationProps(prevProps.location, this.props.location)) {\n onPreRouteUpdate(this.props.location, prevProps.location)\n return true\n }\n return false\n }\n\n componentDidUpdate(prevProps) {\n if (compareLocationProps(prevProps.location, this.props.location)) {\n onRouteUpdate(this.props.location, prevProps.location)\n }\n }\n\n render() {\n return (\n \n {this.props.children}\n \n \n )\n }\n}\n\nRouteUpdates.propTypes = {\n location: PropTypes.object.isRequired,\n}\n\nexport { init, shouldUpdateScroll, RouteUpdates, maybeGetBrowserRedirect }\n","// Pulled from react-compat\n// https://github.com/developit/preact-compat/blob/7c5de00e7c85e2ffd011bf3af02899b63f699d3a/src/index.js#L349\nfunction shallowDiffers(a, b) {\n for (var i in a) {\n if (!(i in b)) return true;\n }for (var _i in b) {\n if (a[_i] !== b[_i]) return true;\n }return false;\n}\n\nexport default (function (instance, nextProps, nextState) {\n return shallowDiffers(instance.props, nextProps) || shallowDiffers(instance.state, nextState);\n});","/* global HAS_REACT_18 */\nimport { apiRunner, apiRunnerAsync } from \"./api-runner-browser\"\nimport React from \"react\"\nimport { Router, navigate, Location, BaseContext } from \"@gatsbyjs/reach-router\"\nimport { ScrollContext } from \"gatsby-react-router-scroll\"\nimport { StaticQueryContext } from \"gatsby\"\nimport {\n shouldUpdateScroll,\n init as navigationInit,\n RouteUpdates,\n} from \"./navigation\"\nimport emitter from \"./emitter\"\nimport PageRenderer from \"./page-renderer\"\nimport asyncRequires from \"$virtual/async-requires\"\nimport {\n setLoader,\n ProdLoader,\n publicLoader,\n PageResourceStatus,\n getStaticQueryResults,\n} from \"./loader\"\nimport EnsureResources from \"./ensure-resources\"\nimport stripPrefix from \"./strip-prefix\"\n\n// Generated during bootstrap\nimport matchPaths from \"$virtual/match-paths.json\"\n\nconst loader = new ProdLoader(asyncRequires, matchPaths, window.pageData)\nsetLoader(loader)\nloader.setApiRunner(apiRunner)\n\nlet reactHydrate\nlet reactRender\nif (HAS_REACT_18) {\n const reactDomClient = require(`react-dom/client`)\n reactRender = (Component, el) =>\n reactDomClient.createRoot(el).render(Component)\n reactHydrate = (Component, el) => reactDomClient.hydrateRoot(el, Component)\n} else {\n const reactDomClient = require(`react-dom`)\n reactRender = reactDomClient.render\n reactHydrate = reactDomClient.hydrate\n}\n\nwindow.asyncRequires = asyncRequires\nwindow.___emitter = emitter\nwindow.___loader = publicLoader\n\nnavigationInit()\n\nconst reloadStorageKey = `gatsby-reload-compilation-hash-match`\n\napiRunnerAsync(`onClientEntry`).then(() => {\n // Let plugins register a service worker. The plugin just needs\n // to return true.\n if (apiRunner(`registerServiceWorker`).filter(Boolean).length > 0) {\n require(`./register-service-worker`)\n }\n\n // In gatsby v2 if Router is used in page using matchPaths\n // paths need to contain full path.\n // For example:\n // - page have `/app/*` matchPath\n // - inside template user needs to use `/app/xyz` as path\n // Resetting `basepath`/`baseuri` keeps current behaviour\n // to not introduce breaking change.\n // Remove this in v3\n const RouteHandler = props => (\n \n \n \n )\n\n const DataContext = React.createContext({})\n\n class GatsbyRoot extends React.Component {\n render() {\n const { children } = this.props\n return (\n \n {({ location }) => (\n \n {({ pageResources, location }) => {\n const staticQueryResults = getStaticQueryResults()\n return (\n \n \n {children}\n \n \n )\n }}\n \n )}\n \n )\n }\n }\n\n class LocationHandler extends React.Component {\n render() {\n return (\n \n {({ pageResources, location }) => (\n \n \n \n \n \n \n \n )}\n \n )\n }\n }\n\n const { pagePath, location: browserLoc } = window\n\n // Explicitly call navigate if the canonical path (window.pagePath)\n // is different to the browser path (window.location.pathname). SSR\n // page paths might include search params, while SSG and DSG won't.\n // If page path include search params we also compare query params.\n // But only if NONE of the following conditions hold:\n //\n // - The url matches a client side route (page.matchPath)\n // - it's a 404 page\n // - it's the offline plugin shell (/offline-plugin-app-shell-fallback/)\n if (\n pagePath &&\n __BASE_PATH__ + pagePath !==\n browserLoc.pathname + (pagePath.includes(`?`) ? browserLoc.search : ``) &&\n !(\n loader.findMatchPath(stripPrefix(browserLoc.pathname, __BASE_PATH__)) ||\n pagePath.match(/^\\/(404|500)(\\/?|.html)$/) ||\n pagePath.match(/^\\/offline-plugin-app-shell-fallback\\/?$/)\n )\n ) {\n navigate(\n __BASE_PATH__ +\n pagePath +\n (!pagePath.includes(`?`) ? browserLoc.search : ``) +\n browserLoc.hash,\n {\n replace: true,\n }\n )\n }\n\n // It's possible that sessionStorage can throw an exception if access is not granted, see https://github.com/gatsbyjs/gatsby/issues/34512\n const getSessionStorage = () => {\n try {\n return sessionStorage\n } catch {\n return null\n }\n }\n\n publicLoader.loadPage(browserLoc.pathname + browserLoc.search).then(page => {\n const sessionStorage = getSessionStorage()\n\n if (\n page?.page?.webpackCompilationHash &&\n page.page.webpackCompilationHash !== window.___webpackCompilationHash\n ) {\n // Purge plugin-offline cache\n if (\n `serviceWorker` in navigator &&\n navigator.serviceWorker.controller !== null &&\n navigator.serviceWorker.controller.state === `activated`\n ) {\n navigator.serviceWorker.controller.postMessage({\n gatsbyApi: `clearPathResources`,\n })\n }\n\n // We have not matching html + js (inlined `window.___webpackCompilationHash`)\n // with our data (coming from `app-data.json` file). This can cause issues such as\n // errors trying to load static queries (as list of static queries is inside `page-data`\n // which might not match to currently loaded `.js` scripts).\n // We are making attempt to reload if hashes don't match, but we also have to handle case\n // when reload doesn't fix it (possibly broken deploy) so we don't end up in infinite reload loop\n if (sessionStorage) {\n const isReloaded = sessionStorage.getItem(reloadStorageKey) === `1`\n\n if (!isReloaded) {\n sessionStorage.setItem(reloadStorageKey, `1`)\n window.location.reload(true)\n return\n }\n }\n }\n\n if (sessionStorage) {\n sessionStorage.removeItem(reloadStorageKey)\n }\n\n if (!page || page.status === PageResourceStatus.Error) {\n const message = `page resources for ${browserLoc.pathname} not found. Not rendering React`\n\n // if the chunk throws an error we want to capture the real error\n // This should help with https://github.com/gatsbyjs/gatsby/issues/19618\n if (page && page.error) {\n console.error(message)\n throw page.error\n }\n\n throw new Error(message)\n }\n\n const SiteRoot = apiRunner(\n `wrapRootElement`,\n { element: },\n ,\n ({ result }) => {\n return { element: result }\n }\n ).pop()\n\n const App = function App() {\n const onClientEntryRanRef = React.useRef(false)\n\n React.useEffect(() => {\n if (!onClientEntryRanRef.current) {\n onClientEntryRanRef.current = true\n if (performance.mark) {\n performance.mark(`onInitialClientRender`)\n }\n\n apiRunner(`onInitialClientRender`)\n }\n }, [])\n\n return {SiteRoot}\n }\n\n const focusEl = document.getElementById(`gatsby-focus-wrapper`)\n\n // Client only pages have any empty body so we just do a normal\n // render to avoid React complaining about hydration mis-matches.\n let defaultRenderer = reactRender\n if (focusEl && focusEl.children.length) {\n defaultRenderer = reactHydrate\n }\n\n const renderer = apiRunner(\n `replaceHydrateFunction`,\n undefined,\n defaultRenderer\n )[0]\n\n function runRender() {\n const rootElement =\n typeof window !== `undefined`\n ? document.getElementById(`___gatsby`)\n : null\n\n renderer(, rootElement)\n }\n\n // https://github.com/madrobby/zepto/blob/b5ed8d607f67724788ec9ff492be297f64d47dfc/src/zepto.js#L439-L450\n // TODO remove IE 10 support\n const doc = document\n if (\n doc.readyState === `complete` ||\n (doc.readyState !== `loading` && !doc.documentElement.doScroll)\n ) {\n setTimeout(function () {\n runRender()\n }, 0)\n } else {\n const handler = function () {\n doc.removeEventListener(`DOMContentLoaded`, handler, false)\n window.removeEventListener(`load`, handler, false)\n\n runRender()\n }\n\n doc.addEventListener(`DOMContentLoaded`, handler, false)\n window.addEventListener(`load`, handler, false)\n }\n })\n})\n","import React from \"react\"\nimport loader, { PageResourceStatus } from \"./loader\"\nimport shallowCompare from \"shallow-compare\"\n\nclass EnsureResources extends React.Component {\n constructor(props) {\n super()\n const { location, pageResources } = props\n this.state = {\n location: { ...location },\n pageResources:\n pageResources ||\n loader.loadPageSync(location.pathname + location.search, {\n withErrorDetails: true,\n }),\n }\n }\n\n static getDerivedStateFromProps({ location }, prevState) {\n if (prevState.location.href !== location.href) {\n const pageResources = loader.loadPageSync(\n location.pathname + location.search,\n {\n withErrorDetails: true,\n }\n )\n\n return {\n pageResources,\n location: { ...location },\n }\n }\n\n return {\n location: { ...location },\n }\n }\n\n loadResources(rawPath) {\n loader.loadPage(rawPath).then(pageResources => {\n if (pageResources && pageResources.status !== PageResourceStatus.Error) {\n this.setState({\n location: { ...window.location },\n pageResources,\n })\n } else {\n window.history.replaceState({}, ``, location.href)\n window.location = rawPath\n }\n })\n }\n\n shouldComponentUpdate(nextProps, nextState) {\n // Always return false if we're missing resources.\n if (!nextState.pageResources) {\n this.loadResources(\n nextProps.location.pathname + nextProps.location.search\n )\n return false\n }\n\n if (\n process.env.BUILD_STAGE === `develop` &&\n nextState.pageResources.stale\n ) {\n this.loadResources(\n nextProps.location.pathname + nextProps.location.search\n )\n return false\n }\n\n // Check if the component or json have changed.\n if (this.state.pageResources !== nextState.pageResources) {\n return true\n }\n if (\n this.state.pageResources.component !== nextState.pageResources.component\n ) {\n return true\n }\n\n if (this.state.pageResources.json !== nextState.pageResources.json) {\n return true\n }\n // Check if location has changed on a page using internal routing\n // via matchPath configuration.\n if (\n this.state.location.key !== nextState.location.key &&\n nextState.pageResources.page &&\n (nextState.pageResources.page.matchPath ||\n nextState.pageResources.page.path)\n ) {\n return true\n }\n return shallowCompare(this, nextProps, nextState)\n }\n\n render() {\n if (\n process.env.NODE_ENV !== `production` &&\n (!this.state.pageResources ||\n this.state.pageResources.status === PageResourceStatus.Error)\n ) {\n const message = `EnsureResources was not able to find resources for path: \"${this.props.location.pathname}\"\nThis typically means that an issue occurred building components for that path.\nRun \\`gatsby clean\\` to remove any cached elements.`\n if (this.state.pageResources?.error) {\n console.error(message)\n throw this.state.pageResources.error\n }\n\n throw new Error(message)\n }\n\n return this.props.children(this.state)\n }\n}\n\nexport default EnsureResources\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\n\nimport loader from \"./loader\"\nimport InternalPageRenderer from \"./page-renderer\"\n\nconst ProdPageRenderer = ({ location }) => {\n const pageResources = loader.loadPageSync(location.pathname)\n if (!pageResources) {\n return null\n }\n return React.createElement(InternalPageRenderer, {\n location,\n pageResources,\n ...pageResources.json,\n })\n}\n\nProdPageRenderer.propTypes = {\n location: PropTypes.shape({\n pathname: PropTypes.string.isRequired,\n }).isRequired,\n}\n\nexport default ProdPageRenderer\n","const preferDefault = m => (m && m.default) || m\n\nif (process.env.BUILD_STAGE === `develop`) {\n module.exports = preferDefault(require(`./public-page-renderer-dev`))\n} else if (process.env.BUILD_STAGE === `build-javascript`) {\n module.exports = preferDefault(require(`./public-page-renderer-prod`))\n} else {\n module.exports = () => null\n}\n","exports.polyfill = Component => Component\n","import redirects from \"./redirects.json\"\n\n// Convert to a map for faster lookup in maybeRedirect()\n\nconst redirectMap = new Map()\nconst redirectIgnoreCaseMap = new Map()\n\nredirects.forEach(redirect => {\n if (redirect.ignoreCase) {\n redirectIgnoreCaseMap.set(redirect.fromPath, redirect)\n } else {\n redirectMap.set(redirect.fromPath, redirect)\n }\n})\n\nexport function maybeGetBrowserRedirect(pathname) {\n let redirect = redirectMap.get(pathname)\n if (!redirect) {\n redirect = redirectIgnoreCaseMap.get(pathname.toLowerCase())\n }\n return redirect\n}\n","import { apiRunner } from \"./api-runner-browser\"\n\nif (\n window.location.protocol !== `https:` &&\n window.location.hostname !== `localhost`\n) {\n console.error(\n `Service workers can only be used over HTTPS, or on localhost for development`\n )\n} else if (`serviceWorker` in navigator) {\n navigator.serviceWorker\n .register(`${__BASE_PATH__}/sw.js`)\n .then(function (reg) {\n reg.addEventListener(`updatefound`, () => {\n apiRunner(`onServiceWorkerUpdateFound`, { serviceWorker: reg })\n // The updatefound event implies that reg.installing is set; see\n // https://w3c.github.io/ServiceWorker/#service-worker-registration-updatefound-event\n const installingWorker = reg.installing\n console.log(`installingWorker`, installingWorker)\n installingWorker.addEventListener(`statechange`, () => {\n switch (installingWorker.state) {\n case `installed`:\n if (navigator.serviceWorker.controller) {\n // At this point, the old content will have been purged and the fresh content will\n // have been added to the cache.\n\n // We set a flag so Gatsby Link knows to refresh the page on next navigation attempt\n window.___swUpdated = true\n // We call the onServiceWorkerUpdateReady API so users can show update prompts.\n apiRunner(`onServiceWorkerUpdateReady`, { serviceWorker: reg })\n\n // If resources failed for the current page, reload.\n if (window.___failedResources) {\n console.log(`resources failed, SW updated - reloading`)\n window.location.reload()\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a \"Content is cached for offline use.\" message.\n console.log(`Content is now available offline!`)\n\n // Post to service worker that install is complete.\n // Delay to allow time for the event listener to be added --\n // otherwise fetch is called too soon and resources aren't cached.\n apiRunner(`onServiceWorkerInstalled`, { serviceWorker: reg })\n }\n break\n\n case `redundant`:\n console.error(`The installing service worker became redundant.`)\n apiRunner(`onServiceWorkerRedundant`, { serviceWorker: reg })\n break\n\n case `activated`:\n apiRunner(`onServiceWorkerActive`, { serviceWorker: reg })\n break\n }\n })\n })\n })\n .catch(function (e) {\n console.error(`Error during service worker registration:`, e)\n })\n}\n","/**\n * Remove a prefix from a string. Return the input string if the given prefix\n * isn't found.\n */\n\nexport default function stripPrefix(str, prefix = ``) {\n if (!prefix) {\n return str\n }\n\n if (str === prefix) {\n return `/`\n }\n\n if (str.startsWith(`${prefix}/`)) {\n return str.slice(prefix.length)\n }\n\n return str\n}\n","import React from \"react\";\nimport \"../builder-settings\";\n\nconst PageLayout = ({ children }) => {\n return
{children}
;\n};\n\nconst Component = props => {\n return ;\n};\n\nexport default Component;\n","import React from \"react\";\nimport RootLayout from \"./src/layouts/RootLayout\";\nimport PageLayout from \"./src/layouts/PageLayout\";\n\nexport const wrapRootElement = ({ element, props }) => {\n return {element};\n};\n\nexport const wrapPageElement = ({ element, props }) => {\n return {element};\n};\n\nconst addTPScript = () => {\n const script = document.createElement(\"script\");\n script.src =\n \"https://widget.trustpilot.com/bootstrap/v5/tp.widget.bootstrap.min.js\";\n script.async = true;\n document.body.appendChild(script);\n};\n\nexport const onClientEntry = () => {\n window.onload = () => {\n setTimeout(() => {\n addTPScript();\n }, 1000);\n };\n};\n","const listOfMetricsSend = new Set();\n\nfunction debounce(fn, timeout) {\n let timer = null;\n return function (...args) {\n if (timer) {\n clearTimeout(timer);\n }\n\n timer = setTimeout(fn, timeout, ...args);\n };\n}\n\nfunction sendWebVitals(dataLayerName = `dataLayer`) {\n const win = window;\n\n function sendData(data) {\n if (listOfMetricsSend.has(data.name)) {\n return;\n }\n\n listOfMetricsSend.add(data.name);\n sendToGTM(data, win[dataLayerName]);\n }\n\n return import(`web-vitals/base`).then(({\n getLCP,\n getFID,\n getCLS\n }) => {\n const debouncedCLS = debounce(sendData, 3000); // we don't need to debounce FID - we send it when it happens\n\n const debouncedFID = sendData; // LCP can occur multiple times so we debounce it\n\n const debouncedLCP = debounce(sendData, 3000); // With the true flag, we measure all previous occurences too, in case we start listening to late.\n\n getCLS(debouncedCLS, true);\n getFID(debouncedFID, true);\n getLCP(debouncedLCP, true);\n });\n}\n\nfunction sendToGTM({\n name,\n value,\n id\n}, dataLayer) {\n dataLayer.push({\n event: `core-web-vitals`,\n webVitalsMeasurement: {\n name: name,\n // The `id` value will be unique to the current page load. When sending\n // multiple values from the same page (e.g. for CLS), Google Analytics can\n // compute a total by grouping on this ID (note: requires `eventLabel` to\n // be a dimension in your report).\n id,\n // Google Analytics metrics must be integers, so the value is rounded.\n // For CLS the value is first multiplied by 1000 for greater precision\n // (note: increase the multiplier for greater precision if needed).\n value: Math.round(name === `CLS` ? value * 1000 : value)\n }\n });\n}\n\nexport function onRouteUpdate(_, pluginOptions) {\n if (process.env.NODE_ENV === `production` || pluginOptions.includeInDevelopment) {\n // wrap inside a timeout to ensure the title has properly been changed\n setTimeout(() => {\n const data = pluginOptions.dataLayerName ? window[pluginOptions.dataLayerName] : window.dataLayer;\n const eventName = pluginOptions.routeChangeEventName ? pluginOptions.routeChangeEventName : `gatsby-route-change`;\n data.push({\n event: eventName\n });\n }, 50);\n }\n}\nexport function onInitialClientRender(_, pluginOptions) {\n // we only load the polyfill in production so we can't enable it in development\n if (process.env.NODE_ENV === `production` && pluginOptions.enableWebVitalsTracking) {\n sendWebVitals(pluginOptions.dataLayerName);\n }\n}","\"use strict\";\n\nexports.__esModule = true;\nexports.replaceHydrateFunction = void 0;\n\nvar _reactDom = require(\"react-dom\");\n\nvar _component = require(\"@loadable/component\");\n\nconst replaceHydrateFunction = (_, options) => (element, container, callback) => {\n (0, _component.loadableReady)(() => {\n const renderFn = typeof options.useHydrate === \"undefined\" ? // Using ReactDOM.hydrate on develop will throw an error in console\n process.env.BUILD_STAGE.includes(\"develop\") ? _reactDom.render : _reactDom.hydrate : !!options.useHydrate ? _reactDom.hydrate : _reactDom.render;\n renderFn(element, container, callback);\n });\n};\n\nexports.replaceHydrateFunction = replaceHydrateFunction;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _styledComponents = require(\"styled-components\");\n\n// eslint-disable-next-line react/prop-types,react/display-name\nexports.wrapRootElement = function (_ref, pluginOptions) {\n var element = _ref.element;\n return /*#__PURE__*/_react.default.createElement(_styledComponents.StyleSheetManager, {\n disableVendorPrefixes: (pluginOptions === null || pluginOptions === void 0 ? void 0 : pluginOptions.disableVendorPrefixes) === true\n }, element);\n};","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\n\n/* global Reflect, Promise */\nvar _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n\n return _extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n _extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nvar _assign = function __assign() {\n _assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return _assign.apply(this, arguments);\n};\n\nexport { _assign as __assign };\nexport function __rest(s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n}\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length,\n r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,\n d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);else for (var i = decorators.length - 1; i >= 0; i--) {\n if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n }\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\nexport function __param(paramIndex, decorator) {\n return function (target, key) {\n decorator(target, key, paramIndex);\n };\n}\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\nexport function __generator(thisArg, body) {\n var _ = {\n label: 0,\n sent: function sent() {\n if (t[0] & 1) throw t[1];\n return t[1];\n },\n trys: [],\n ops: []\n },\n f,\n y,\n t,\n g;\n return g = {\n next: verb(0),\n \"throw\": verb(1),\n \"return\": verb(2)\n }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function () {\n return this;\n }), g;\n\n function verb(n) {\n return function (v) {\n return step([n, v]);\n };\n }\n\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n\n while (_) {\n try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n\n switch (op[0]) {\n case 0:\n case 1:\n t = op;\n break;\n\n case 4:\n _.label++;\n return {\n value: op[1],\n done: false\n };\n\n case 5:\n _.label++;\n y = op[1];\n op = [0];\n continue;\n\n case 7:\n op = _.ops.pop();\n\n _.trys.pop();\n\n continue;\n\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];\n break;\n }\n\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n\n if (t && _.label < t[2]) {\n _.label = t[2];\n\n _.ops.push(op);\n\n break;\n }\n\n if (t[2]) _.ops.pop();\n\n _.trys.pop();\n\n continue;\n }\n\n op = body.call(thisArg, _);\n } catch (e) {\n op = [6, e];\n y = 0;\n } finally {\n f = t = 0;\n }\n }\n\n if (op[0] & 5) throw op[1];\n return {\n value: op[0] ? op[1] : void 0,\n done: true\n };\n }\n}\nexport function __createBinding(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}\nexport function __exportStar(m, exports) {\n for (var p in m) {\n if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\n }\n}\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator,\n m = s && o[s],\n i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function next() {\n if (o && i >= o.length) o = void 0;\n return {\n value: o && o[i++],\n done: !o\n };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o),\n r,\n ar = [],\n e;\n\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\n ar.push(r.value);\n }\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n\n return ar;\n}\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++) {\n ar = ar.concat(__read(arguments[i]));\n }\n\n return ar;\n}\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) {\n s += arguments[i].length;\n }\n\n for (var r = Array(s), k = 0, i = 0; i < il; i++) {\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) {\n r[k] = a[j];\n }\n }\n\n return r;\n}\n;\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []),\n i,\n q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () {\n return this;\n }, i;\n\n function verb(n) {\n if (g[n]) i[n] = function (v) {\n return new Promise(function (a, b) {\n q.push([n, v, a, b]) > 1 || resume(n, v);\n });\n };\n }\n\n function resume(n, v) {\n try {\n step(g[n](v));\n } catch (e) {\n settle(q[0][3], e);\n }\n }\n\n function step(r) {\n r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r);\n }\n\n function fulfill(value) {\n resume(\"next\", value);\n }\n\n function reject(value) {\n resume(\"throw\", value);\n }\n\n function settle(f, v) {\n if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]);\n }\n}\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) {\n throw e;\n }), verb(\"return\"), i[Symbol.iterator] = function () {\n return this;\n }, i;\n\n function verb(n, f) {\n i[n] = o[n] ? function (v) {\n return (p = !p) ? {\n value: __await(o[n](v)),\n done: n === \"return\"\n } : f ? f(v) : v;\n } : f;\n }\n}\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator],\n i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () {\n return this;\n }, i);\n\n function verb(n) {\n i[n] = o[n] && function (v) {\n return new Promise(function (resolve, reject) {\n v = o[n](v), settle(resolve, reject, v.done, v.value);\n });\n };\n }\n\n function settle(resolve, reject, d, v) {\n Promise.resolve(v).then(function (v) {\n resolve({\n value: v,\n done: d\n });\n }, reject);\n }\n}\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) {\n Object.defineProperty(cooked, \"raw\", {\n value: raw\n });\n } else {\n cooked.raw = raw;\n }\n\n return cooked;\n}\n;\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) {\n if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\n }\n result.default = mod;\n return result;\n}\nexport function __importDefault(mod) {\n return mod && mod.__esModule ? mod : {\n default: mod\n };\n}\nexport function __classPrivateFieldGet(receiver, privateMap) {\n if (!privateMap.has(receiver)) {\n throw new TypeError(\"attempted to get private field on non-instance\");\n }\n\n return privateMap.get(receiver);\n}\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\n if (!privateMap.has(receiver)) {\n throw new TypeError(\"attempted to set private field on non-instance\");\n }\n\n privateMap.set(receiver, value);\n return value;\n}","import { Builder, BuilderAsyncRequestsContext, BuilderStoreContext, BuilderBlocks, stringToFunction, BuilderBlockComponent } from '@builder.io/react';\nimport { __extends, __assign } from 'tslib';\nimport { createRef, createElement, Component, Fragment } from 'react';\nimport Slider from 'react-slick';\nimport Masonry from 'react-masonry-component'; // TODO: change to slick grid\n\nvar CarouselComponent =\n/** @class */\nfunction (_super) {\n __extends(CarouselComponent, _super);\n\n function CarouselComponent() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.divRef = createRef();\n _this.sliderRef = createRef();\n return _this;\n }\n\n CarouselComponent.prototype.componentDidMount = function () {\n var _this = this;\n\n setTimeout(function () {\n var _a;\n\n (_a = _this.divRef.current) === null || _a === void 0 ? void 0 : _a.dispatchEvent(new CustomEvent('builder:carousel:load', {\n bubbles: true,\n cancelable: false,\n detail: {\n block: _this.props.builderBlock,\n carousel: _this.sliderRef.current\n }\n }));\n });\n };\n\n CarouselComponent.prototype.render = function () {\n var _this = this;\n\n var slides = this.props.slides;\n\n if (slides && !Builder.isBrowser) {\n slides = slides.slice(0, 1);\n }\n\n return createElement(BuilderAsyncRequestsContext.Consumer, null, function (value) {\n _this._errors = value && value.errors;\n _this._logs = value && value.logs;\n return createElement(BuilderStoreContext.Consumer, null, function (state) {\n return createElement(\"div\", {\n ref: _this.divRef,\n className: \"builder-carousel\"\n }, Builder.isServer ? createElement(\"style\", {\n type: \"text/css\",\n dangerouslySetInnerHTML: {\n __html: slickStyles\n }\n }) : createElement(\"style\", {\n type: \"text/css\"\n }, slickStyles), createElement(Slider, __assign({\n responsive: _this.props.responsive,\n ref: _this.sliderRef,\n afterChange: function afterChange(slide) {\n var _a; // TODO; callbacks\n\n\n if (_this.divRef) {\n (_a = _this.divRef.current) === null || _a === void 0 ? void 0 : _a.dispatchEvent(new CustomEvent('builder:carousel:change', {\n bubbles: true,\n cancelable: false,\n detail: {\n slide: slide,\n block: _this.props.builderBlock,\n carousel: _this.sliderRef.current\n }\n }));\n }\n },\n autoplay: _this.props.autoplay,\n autoplaySpeed: _this.props.autoplaySpeed ? _this.props.autoplaySpeed * 1000 : undefined,\n dots: !_this.props.hideDots,\n // TODO: on change emit event on element?\n // renderBottomCenterControls={this.props.hideDots ? () => null : undefined}\n // OOF!!\n nextArrow: createElement(\"div\", null, createElement(BuilderBlocks, {\n parentElementId: _this.props.builderBlock.id,\n dataPath: \"component.options.prevButton\",\n blocks: _this.props.prevButton\n })),\n // OOF!!\n prevArrow: createElement(\"div\", null, createElement(BuilderBlocks, {\n parentElementId: _this.props.builderBlock.id,\n dataPath: \"component.options.nextButton\",\n blocks: _this.props.nextButton\n }))\n }, _this.props.slickProps), _this.props.useChildrenForSlides ? _this.props.builderBlock && _this.props.builderBlock.children && _this.props.builderBlock.children.map(function (block, index) {\n if (block.repeat && block.repeat.collection) {\n var collectionPath = block.repeat.collection;\n var collectionName = (collectionPath || '').split(/\\.\\w+\\(/)[0].trim().split('.').pop();\n var itemName_1 = block.repeat.itemName || (collectionName ? collectionName + 'Item' : 'item');\n var array = stringToFunction(collectionPath, true, _this._errors, _this._logs)(state.state);\n\n if (Array.isArray(array)) {\n if (!Builder.isBrowser) {\n array = array.slice(0, 1);\n }\n\n return array.map(function (data, index) {\n var _a; // TODO: Builder state produce the data\n\n\n var childState = __assign(__assign({}, state.state), (_a = {}, _a[itemName_1] = data, _a.$index = index, _a.$item = data, _a));\n\n return createElement(BuilderStoreContext.Provider, {\n key: block.id,\n value: __assign(__assign({}, state), {\n state: childState\n })\n }, createElement(BuilderBlockComponent, {\n block: __assign(__assign({}, block), {\n repeat: null\n }),\n index: index,\n child\n /* TODO: fieldname? */\n : true\n }));\n });\n }\n }\n\n return createElement(BuilderBlockComponent, {\n key: block.id,\n block: block,\n index: index,\n child\n /* TODO: fieldname? */\n : true\n });\n }) : _this.props.slides && _this.props.slides.map(function (slide, index) {\n return (// TODO: how make react compatible with plain react components\n // slides: <- builder blocks if passed react nodes as blocks just forward them\n createElement(BuilderBlocks, {\n key: index,\n parentElementId: _this.props.builderBlock && _this.props.builderBlock.id,\n dataPath: \"component.options.slides.\" + index + \".content\",\n child: true,\n blocks: slide.content || slide\n })\n );\n })));\n });\n });\n };\n\n return CarouselComponent;\n}(Component);\n\nvar slickStyles = \"@charset 'UTF-8';\\n .slick-list,.slick-slider,.slick-track{position:relative;display:block}.slick-loading .slick-slide,.slick-loading .slick-track{visibility:hidden}.slick-slider{box-sizing:border-box;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-touch-callout:none;-khtml-user-select:none;-ms-touch-action:pan-y;touch-action:pan-y;-webkit-tap-highlight-color:transparent}.slick-list{overflow:hidden;margin:0;padding:0}.slick-list:focus{outline:0}.slick-list.dragging{cursor:pointer;cursor:hand}.slick-slider .slick-list,.slick-slider .slick-track{-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);-ms-transform:translate3d(0,0,0);-o-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.slick-track{top:0;left:0}.slick-track:after,.slick-track:before{display:table;content:''}.slick-track:after{clear:both}.slick-slide{display:none;float:left;height:auto;min-height:1px}[dir=rtl] .slick-slide{float:right}.slick-slide img{display:block}.slick-slide.slick-loading img{display:none}.slick-slide.dragging img{pointer-events:none}.slick-initialized .slick-slide{display:block}.slick-vertical .slick-slide{display:block;height:auto;border:1px solid transparent}.slick-arrow.slick-hidden{display:none}\\n .slick-dots,.slick-next,.slick-prev{position:absolute;display:block;padding:0}.slick-dots li button:before,.slick-next:before,.slick-prev:before{font-family:slick;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.slick-loading .slick-list{background:url(ajax-loader.gif) center center no-repeat #fff}@font-face{font-display:swap;font-family:slick;font-weight:400;font-style:normal;src:url(https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.6.0/fonts/slick.eot);src:local(\\\"slick\\\"),url(https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.6.0/fonts/slick.eot?#iefix) format('embedded-opentype'),url(https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.6.0/fonts/slick.woff) format('woff'),url(https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.6.0/fonts/slick.ttf) format('truetype'),url(https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.6.0/fonts/slick.svg#slick) format('svg')}.slick-next,.slick-prev{font-size:0;line-height:0;top:50%;width:20px;height:20px;-webkit-transform:translate(0,-50%);-ms-transform:translate(0,-50%);transform:translate(0,-50%);cursor:pointer;color:transparent;border:none;outline:0;background:0 0}.slick-next:focus,.slick-next:hover,.slick-prev:focus,.slick-prev:hover{color:transparent;outline:0;background:0 0}.slick-next:focus:before,.slick-next:hover:before,.slick-prev:focus:before,.slick-prev:hover:before{opacity:1}.slick-next.slick-disabled:before,.slick-prev.slick-disabled:before{opacity:.25}.slick-next:before,.slick-prev:before{font-size:20px;line-height:1;opacity:.75;color:#fff}.slick-prev{left:-25px}[dir=rtl] .slick-prev{right:-25px;left:auto}.slick-prev:before{content:''}.slick-next:before,[dir=rtl] .slick-prev:before{content:''}.slick-next{right:-25px}[dir=rtl] .slick-next{right:auto;left:-25px}[dir=rtl] .slick-next:before{content:'\\u2022\\x90'}.slick-dotted.slick-slider{margin-bottom:30px}.slick-dots{bottom:-25px;width:100%;margin:0;list-style:none;text-align:center}.slick-dots li{position:relative;display:inline-block;width:20px;height:20px;margin:0 5px;padding:0;cursor:pointer}.slick-dots li button{font-size:0;line-height:0;display:block;width:20px;height:20px;padding:5px;cursor:pointer;color:transparent;border:0;outline:0;background:0 0}.slick-dots li button:focus,.slick-dots li button:hover{outline:0}.slick-dots li button:focus:before,.slick-dots li button:hover:before{opacity:1}.slick-dots li button:before{font-size:6px;line-height:20px;position:absolute;top:0;left:0;width:20px;height:20px;content:'\\u2022';text-align:center;opacity:.25;color:#000}.slick-dots li.slick-active button:before{opacity:.75;color:#000}\\n .builder-carousel img { pointer-events: none }\\n\";\n\nvar TabsComponent =\n/** @class */\nfunction (_super) {\n __extends(TabsComponent, _super);\n\n function TabsComponent() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.state = {\n activeTab: 0\n };\n return _this;\n }\n\n Object.defineProperty(TabsComponent.prototype, \"activeTabSpec\", {\n get: function get() {\n return this.props.tabs && this.props.tabs[this.state.activeTab];\n },\n enumerable: true,\n configurable: true\n });\n\n TabsComponent.prototype.componentWillMount = function () {\n if (this.props.defaultActiveTab) {\n this.activeTab = this.props.defaultActiveTab - 1;\n }\n };\n\n Object.defineProperty(TabsComponent.prototype, \"activeTab\", {\n get: function get() {\n return this.state.activeTab;\n },\n set: function set(tab) {\n this.setState(__assign(__assign({}, this.state), {\n activeTab: tab\n }));\n },\n enumerable: true,\n configurable: true\n });\n\n TabsComponent.prototype.render = function () {\n var _this = this;\n\n return createElement(Fragment, null, createElement(\"span\", {\n style: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: this.props.tabHeaderLayout,\n overflow: 'auto',\n WebkitOverflowScrolling: 'touch'\n },\n className: \"builder-tabs-wrap\"\n }, this.props.tabs && this.props.tabs.map(function (item, index) {\n return createElement(\"span\", {\n key: index,\n className: 'builder-tab-wrap ' + (_this.activeTabSpec === item ? 'builder-tab-active' : ''),\n style: __assign({}, _this.activeTabSpec === item && _this.props.activeTabStyle || undefined),\n onClick: function onClick() {\n if (index === _this.activeTab && _this.props.collapsible) {\n _this.activeTab = -1;\n } else {\n _this.activeTab = index;\n }\n }\n }, createElement(BuilderBlocks // TODO: parent={this.props.builderBlock}\n , {\n // TODO: parent={this.props.builderBlock}\n parentElementId: _this.props.builderBlock.id,\n // TODO: start with just \"tabs.\" when bump react version\n dataPath: \"component.options.tabs.\" + _this.state.activeTab + \".label\",\n blocks: item.label\n }));\n })), this.activeTabSpec && createElement(BuilderBlocks, {\n parentElementId: this.props.builderBlock.id,\n dataPath: \"component.options.tabs.\" + this.state.activeTab + \".content\",\n blocks: this.activeTabSpec.content\n }));\n };\n\n return TabsComponent;\n}(Component); // TODO: change to slick grid\n\n\nvar AccordionComponent =\n/** @class */\nfunction (_super) {\n __extends(AccordionComponent, _super);\n\n function AccordionComponent() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.divRef = null;\n _this.state = {\n open: []\n };\n return _this;\n }\n\n AccordionComponent.prototype.componentDidMount = function () {\n var _this = this;\n\n setTimeout(function () {\n if (_this.divRef) {\n _this.divRef.dispatchEvent(new CustomEvent('builder:accordion:load', {\n bubbles: true,\n cancelable: false,\n detail: {\n ref: _this\n }\n }));\n }\n });\n };\n\n AccordionComponent.prototype.getAccordionItem = function (titleBlocks, detailBlocks, index, openGridItemOrder, onlyOneAtATime, fromChildren) {\n var _this = this;\n\n if (fromChildren === void 0) {\n fromChildren = false;\n }\n\n var open = this.state.open.indexOf(index) !== -1;\n var grid = this.props.grid;\n return (// This will not work as expected with react 15\n // Did preact get the span replacmenet too?\n createElement(Fragment, {\n key: index\n }, createElement(\"div\", {\n className: \"builder-accordion-title builder-accordion-title-\" + (open ? 'open' : 'closed'),\n style: __assign({\n cursor: 'pointer',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'stretch'\n }, grid && __assign({\n width: this.props.gridRowWidth\n }, typeof openGridItemOrder === 'number' && {\n order: index < openGridItemOrder ? index : index + 1\n })),\n \"data-index\": index,\n onClick: function onClick() {\n if (open) {\n _this.setState(__assign(__assign({}, _this.state), {\n open: onlyOneAtATime ? [] : _this.state.open.filter(function (item) {\n return item !== index;\n })\n }));\n } else {\n _this.setState(__assign(__assign({}, _this.state), {\n open: onlyOneAtATime ? [index] : _this.state.open.concat(index)\n }));\n }\n }\n }, fromChildren ? titleBlocks.map(function (block, index) {\n return createElement(BuilderBlockComponent, {\n key: index,\n block: __assign(__assign({}, block), {\n repeat: null\n }),\n index: index,\n child: true\n });\n }) : createElement(BuilderBlocks, {\n blocks: titleBlocks,\n dataPath: \"items.\" + index + \".title\"\n })), open && createElement(\"div\", {\n className: \"builder-accordion-detail builder-accordion-detail-\" + (open ? 'open' : 'closed'),\n style: __assign({\n order: typeof openGridItemOrder === 'number' ? openGridItemOrder : undefined,\n maxHeight: this.props.animate ? open ? '100vh' : 0 : undefined,\n transition: this.props.animate ? 'max-height 0.5s' : undefined\n }, grid && {\n width: '100%'\n })\n }, open && (fromChildren ? detailBlocks.map(function (block, index) {\n return createElement(BuilderBlockComponent, {\n key: index,\n block: __assign(__assign({}, block), {\n repeat: null\n }),\n index: index,\n child: true\n });\n }) : createElement(BuilderBlocks, {\n blocks: detailBlocks,\n dataPath: \"items.\" + index + \".detail\"\n }))))\n );\n };\n\n AccordionComponent.prototype.render = function () {\n var _this = this;\n\n var _a = this.props,\n grid = _a.grid,\n oneAtATime = _a.oneAtATime;\n var onlyOneAtATime = Boolean(grid || oneAtATime);\n var getOpenGridItemPosition = grid && this.state.open.length;\n var openGridItemOrder = null;\n\n if (getOpenGridItemPosition && this.divRef) {\n var openItemIndex = this.state.open[0];\n var openItem = this.divRef.querySelector(\".builder-accordion-title[data-index=\\\"\" + openItemIndex + \"\\\"]\");\n var subjectItem = openItem;\n openGridItemOrder = openItemIndex;\n\n if (subjectItem) {\n var prevItemRect = subjectItem.getBoundingClientRect();\n\n while (subjectItem = subjectItem && subjectItem.nextElementSibling) {\n if (subjectItem) {\n if (subjectItem.classList.contains('builder-accordion-detail')) {\n continue;\n }\n\n var subjectItemRect = subjectItem.getBoundingClientRect();\n\n if (subjectItemRect.left > prevItemRect.left) {\n var index = parseInt(subjectItem.getAttribute('data-index') || '', 10);\n\n if (!isNaN(index)) {\n prevItemRect = subjectItemRect;\n openGridItemOrder = index;\n }\n } else {\n break;\n }\n }\n }\n }\n }\n\n if (typeof openGridItemOrder === 'number') {\n openGridItemOrder = openGridItemOrder + 1;\n }\n\n return createElement(BuilderAsyncRequestsContext.Consumer, null, function (value) {\n _this._errors = value && value.errors;\n _this._logs = value && value.logs;\n return createElement(BuilderStoreContext.Consumer, null, function (state) {\n return createElement(\"div\", {\n ref: function ref(_ref) {\n return _this.divRef = _ref;\n },\n className: \"builder-accordion\",\n style: __assign({\n display: 'flex',\n alignItems: 'stretch',\n flexDirection: 'column'\n }, grid && {\n flexDirection: 'row',\n alignItems: 'flex-start',\n flexWrap: 'wrap'\n })\n }, _this.props.useChildrenForItems ? _this.props.builderBlock && _this.props.builderBlock.children && _this.props.builderBlock.children.map(function (block, index) {\n if (block.repeat && block.repeat.collection) {\n var collectionPath = block.repeat.collection;\n var collectionName = (collectionPath || '').split(/\\.\\w+\\(/)[0].trim().split('.').pop();\n var itemName_1 = block.repeat.itemName || (collectionName ? collectionName + 'Item' : 'item');\n var array = stringToFunction(collectionPath, true, _this._errors, _this._logs)(state.state);\n\n if (Array.isArray(array)) {\n return array.map(function (data, index) {\n var _a; // TODO: Builder state produce the data\n\n\n var childState = __assign(__assign({}, state.state), (_a = {\n $index: index,\n $item: data\n }, _a[itemName_1] = data, _a));\n\n return createElement(BuilderStoreContext.Provider, {\n key: block.id,\n value: __assign(__assign({}, state), {\n state: childState\n })\n }, _this.getAccordionItem(block.children ? [block.children[0]] : [], block.children ? [block.children[1]] : [], index, openGridItemOrder, onlyOneAtATime, true));\n });\n }\n }\n\n return _this.getAccordionItem(block.children ? [block.children[0]] : [], block.children ? [block.children[1]] : [], index, openGridItemOrder, onlyOneAtATime, true);\n }) : _this.props.items && _this.props.items.map(function (item, index) {\n return _this.getAccordionItem(item.title, item.detail, index, openGridItemOrder, onlyOneAtATime);\n }));\n });\n });\n };\n\n return AccordionComponent;\n}(Component); // TODO: column with, gutter, etc options\n\n\nvar MasonryComponent =\n/** @class */\nfunction (_super) {\n __extends(MasonryComponent, _super);\n\n function MasonryComponent() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.divRef = null;\n _this.masonryRef = null;\n _this.state = {\n layoutComplete: false\n };\n return _this;\n }\n\n MasonryComponent.prototype.componentDidMount = function () {\n var _this = this;\n\n setTimeout(function () {\n if (_this.divRef) {\n _this.divRef.dispatchEvent(new CustomEvent('builder:masonry:load', {\n bubbles: true,\n cancelable: false,\n detail: {\n block: _this.props.builderBlock,\n ref: _this.divRef,\n masonry: _this.masonryRef\n }\n }));\n }\n\n if (Builder.isEditing) ;\n });\n };\n\n MasonryComponent.prototype.render = function () {\n var _this = this;\n\n var slides = this.props.tiles; // if (slides && !Builder.isBrowser) {\n // slides = slides.slice(0, 1)\n // }\n\n var itemStyle = {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'stretch',\n width: this.props.columnWidth\n };\n return createElement(\"div\", {\n style: {\n opacity: Builder.isBrowser && this.state.layoutComplete ? 1 : 0,\n transition: 'opacity 0.2s'\n }\n }, createElement(BuilderAsyncRequestsContext.Consumer, null, function (value) {\n _this._errors = value && value.errors;\n _this._logs = value && value.logs;\n return createElement(BuilderStoreContext.Consumer, null, function (state) {\n return createElement(\"div\", {\n ref: function ref(_ref2) {\n return _this.divRef = _ref2;\n },\n className: \"builder-masonry\"\n }, createElement(Masonry, {\n onLayoutComplete: function onLayoutComplete() {\n if (!_this.state.layoutComplete) {\n _this.setState(__assign(__assign({}, _this.state), {\n layoutComplete: true\n }));\n }\n },\n options: {\n gutter: _this.props.gutterSize,\n // Maybe us this\n fitWidth: _this.props.columnWidth && _this.props.columnWidth.endsWith('%') ? false : true,\n percentPosition: // TODO: option to override this too\n _this.props.columnWidth && (_this.props.columnWidth.endsWith('%') || _this.props.columnWidth.startsWith('.')) || false\n },\n ref: function ref(_ref3) {\n return _this.masonryRef = _ref3;\n }\n }, _this.props.useChildrenForTiles ? _this.props.builderBlock && _this.props.builderBlock.children && _this.props.builderBlock.children.map(function (block, index) {\n if (block.repeat && block.repeat.collection) {\n var collectionPath = block.repeat.collection;\n var collectionName = (collectionPath || '').split(/\\.\\w+\\(/)[0].trim().split('.').pop();\n var itemName_1 = block.repeat.itemName || (collectionName ? collectionName + 'Item' : 'item');\n var array = stringToFunction(collectionPath, true, _this._errors, _this._logs)(state.state);\n\n if (Array.isArray(array)) {\n if (!Builder.isBrowser) {\n array = array.slice(0, 1);\n }\n\n return array.map(function (data, index) {\n var _a; // TODO: Builder state produce the data\n\n\n var childState = __assign(__assign({}, state.state), (_a = {\n $index: index,\n $item: data\n }, _a[itemName_1] = data, _a));\n\n return createElement(\"div\", {\n className: \"masonry-item\",\n style: itemStyle\n }, createElement(BuilderStoreContext.Provider, {\n key: block.id,\n value: __assign(__assign({}, state), {\n state: childState\n })\n }, createElement(BuilderBlockComponent, {\n block: __assign(__assign({}, block), {\n repeat: null\n }),\n index: index,\n child: true\n })));\n });\n }\n }\n\n return createElement(\"div\", {\n style: itemStyle,\n className: \"masonry-item\"\n }, createElement(BuilderBlockComponent, {\n key: block.id,\n block: block,\n index: index,\n child: true\n }));\n }) : _this.props.tiles && _this.props.tiles.map(function (tile, index) {\n return (// TODO: how make react compatible with plain react components\n // tiles: <- builder blocks if passed react nodes as blocks just forward them\n createElement(\"div\", {\n style: itemStyle,\n className: \"masonry-item\"\n }, createElement(BuilderBlocks, {\n key: index,\n parentElementId: _this.props.builderBlock && _this.props.builderBlock.id,\n dataPath: \"component.options.tiles.\" + index + \".content\",\n child: true,\n blocks: tile.content || tile\n }))\n );\n })));\n });\n }));\n };\n\n return MasonryComponent;\n}(Component);\n\nvar defaultElement = {\n '@type': '@builder.io/sdk:Element',\n responsiveStyles: {\n large: {\n // TODO: always apply these if not given\n position: 'relative',\n display: 'flex',\n alignItems: 'stretch',\n flexDirection: 'column',\n height: '400px'\n }\n },\n children: [{\n '@type': '@builder.io/sdk:Element',\n responsiveStyles: {\n large: {\n marginTop: '50px',\n textAlign: 'center',\n display: 'flex',\n flexDirection: 'column'\n }\n },\n component: {\n name: 'Text',\n options: {\n text: 'I am a slide'\n }\n }\n }]\n};\nvar defaultButton = {\n '@type': '@builder.io/sdk:Element',\n responsiveStyles: {\n large: {\n position: 'relative',\n display: 'flex',\n alignItems: 'stretch',\n flexDirection: 'column',\n height: '30px'\n }\n }\n};\nvar carouselConfig = {\n name: 'Builder:Carousel',\n // TODO: default children\n canHaveChildren: true,\n defaultStyles: {\n paddingLeft: '30px',\n paddingRight: '30px',\n paddingBottom: '30px'\n },\n inputs: [{\n name: 'slides',\n type: 'list',\n broadcast: true,\n subFields: [{\n name: 'content',\n type: 'uiBlocks',\n hideFromUI: true,\n defaultValue: [defaultElement]\n }],\n defaultValue: [{\n content: [defaultElement]\n }, {\n content: [defaultElement]\n }],\n showIf: function showIf(options) {\n return !options.get('useChildrenForSlides');\n }\n }, {\n name: 'hideDots',\n helperText: 'Show pagination dots',\n type: 'boolean',\n defaultValue: false\n }, {\n name: 'autoplay',\n helperText: 'Automatically rotate to the next slide every few seconds',\n type: 'boolean',\n defaultValue: false\n }, {\n name: 'autoplaySpeed',\n type: 'number',\n defaultValue: 5,\n helperText: 'If auto play is on, how many seconds to wait before automatically changing each slide',\n showIf: function showIf(options) {\n return options.get('autoplay');\n }\n }, {\n name: 'prevButton',\n type: 'uiBlocks',\n hideFromUI: true,\n defaultValue: [__assign(__assign({}, defaultButton), {\n component: {\n name: 'Image',\n options: {\n image: 'https://cdn.builder.io/api/v1/image/assets%2FagZ9n5CUKRfbL9t6CaJOyVSK4Es2%2Fd909a5b91650499c9e0524cc904eeb77'\n }\n }\n })]\n }, {\n name: 'nextButton',\n type: 'uiBlocks',\n hideFromUI: true,\n defaultValue: [__assign(__assign({}, defaultButton), {\n component: {\n name: 'Image',\n options: {\n image: 'https://cdn.builder.io/api/v1/image/assets%2FagZ9n5CUKRfbL9t6CaJOyVSK4Es2%2Fdb2a9827561249aea3817b539aacdcdc'\n }\n }\n })]\n }, {\n name: 'useChildrenForSlides',\n type: 'boolean',\n helperText: 'Use child elements for each slide, instead of the array. Useful for dynamically repeating slides',\n advanced: true,\n defaultValue: false,\n onChange: function onChange(options) {\n if (options.get('useChildrenForSlides') === true) {\n options.set('slides', []);\n }\n }\n }, {\n name: 'responsive',\n type: 'array',\n helperText: 'Responsive settings - e.g. see https://kenwheeler.github.io/slick/',\n advanced: true,\n defaultValue: [{\n width: 3000,\n slidesToShow: 2,\n slidesToScroll: 2\n }, {\n width: 400,\n slidesToShow: 1,\n slidesToScroll: 1\n }],\n subFields: [{\n name: 'breakpoint',\n type: 'number',\n defaultValue: 400,\n required: true\n }, {\n name: 'settings',\n type: 'object',\n defaultValue: {\n slidesToShow: 2,\n slidesToScroll: 2\n },\n subFields: [{\n name: 'slidesToShow',\n type: 'number',\n defaultValue: 2\n }, {\n name: 'slidesToScroll',\n type: 'number',\n defaultValue: 2\n }, {\n name: 'infinite',\n type: 'boolean',\n defaultValue: true\n }, {\n name: 'dots',\n type: 'boolean',\n defaultValue: true\n }]\n }]\n }]\n};\nvar defaultTab = {\n '@type': '@builder.io/sdk:Element',\n responsiveStyles: {\n large: {\n paddingLeft: '20px',\n paddingRight: '20px',\n paddingTop: '10px',\n paddingBottom: '10px',\n minWidth: '100px',\n textAlign: 'center',\n // TODO: add to all\n display: 'flex',\n flexDirection: 'column',\n cursor: 'pointer',\n userSelect: 'none'\n }\n },\n component: {\n // Builder:text\n name: 'Text',\n options: {\n text: 'New tab'\n }\n }\n};\nvar defaultElement$1 = {\n '@type': '@builder.io/sdk:Element',\n responsiveStyles: {\n large: {\n height: '200px',\n display: 'flex',\n marginTop: '20px',\n flexDirection: 'column'\n }\n },\n component: {\n name: 'Text',\n options: {\n text: 'New tab content '\n }\n }\n};\nvar tabsConfig = {\n name: 'Builder: Tabs',\n inputs: [{\n name: 'tabs',\n type: 'list',\n broadcast: true,\n subFields: [{\n name: 'label',\n type: 'uiBlocks',\n hideFromUI: true,\n defaultValue: [defaultTab]\n }, {\n name: 'content',\n type: 'uiBlocks',\n hideFromUI: true,\n defaultValue: [defaultElement$1]\n }],\n defaultValue: [{\n label: [__assign(__assign({}, defaultTab), {\n component: {\n name: 'Text',\n options: {\n text: 'Tab 1'\n }\n }\n })],\n content: [__assign(__assign({}, defaultElement$1), {\n component: {\n name: 'Text',\n options: {\n text: 'Tab 1 content'\n }\n }\n })]\n }, {\n label: [__assign(__assign({}, defaultTab), {\n component: {\n name: 'Text',\n options: {\n text: 'Tab 2'\n }\n }\n })],\n content: [__assign(__assign({}, defaultElement$1), {\n component: {\n name: 'Text',\n options: {\n text: 'Tab 2 content'\n }\n }\n })]\n }]\n }, {\n name: 'activeTabStyle',\n type: 'uiStyle',\n helperText: 'CSS styles for the active tab',\n defaultValue: {\n backgroundColor: 'rgba(0, 0, 0, 0.1)'\n }\n }, {\n name: 'defaultActiveTab',\n type: 'number',\n helperText: 'Deafult tab to open to. Set to \"1\" for the first tab, \"2\" for the second, or choose \"0\" for none',\n defaultValue: 1,\n advanced: true\n }, {\n name: 'collapsible',\n type: 'boolean',\n helperText: 'If on, clicking an open tab closes it so no tabs are active',\n defaultValue: false,\n advanced: true\n }, {\n name: 'tabHeaderLayout',\n type: 'enum',\n helperText: 'Change the layout of the tab headers (uses justify-content)',\n defaultValue: 'flex-start',\n enum: [{\n label: 'Center',\n value: 'center'\n }, {\n label: 'Space between',\n value: 'space-between'\n }, {\n label: 'Space around',\n value: 'space-around'\n }, {\n label: 'Left',\n value: 'flex-start'\n }, {\n label: 'Right',\n value: 'flex-end'\n }]\n }]\n};\nvar defaultTitle = {\n '@type': '@builder.io/sdk:Element',\n layerName: 'Accordion item title',\n responsiveStyles: {\n large: {\n marginTop: '10px',\n position: 'relative',\n display: 'flex',\n alignItems: 'stretch',\n flexDirection: 'column',\n paddingBottom: '10px'\n }\n },\n children: [{\n '@type': '@builder.io/sdk:Element',\n responsiveStyles: {\n large: {\n textAlign: 'left',\n display: 'flex',\n flexDirection: 'column'\n }\n },\n component: {\n name: 'Text',\n options: {\n text: 'I am an accordion title. Click me!'\n }\n }\n }]\n};\nvar defaultDetail = {\n '@type': '@builder.io/sdk:Element',\n layerName: 'Accordion item detail',\n responsiveStyles: {\n large: {\n position: 'relative',\n display: 'flex',\n alignItems: 'stretch',\n flexDirection: 'column',\n marginTop: '10px',\n paddingBottom: '10px'\n }\n },\n children: [{\n '@type': '@builder.io/sdk:Element',\n responsiveStyles: {\n large: {\n paddingTop: '50px',\n textAlign: 'left',\n display: 'flex',\n flexDirection: 'column',\n paddingBottom: '50px'\n }\n },\n component: {\n name: 'Text',\n options: {\n text: 'I am an accordion detail, hello!'\n }\n }\n }]\n};\nvar accordionConfig = {\n name: 'Builder:Accordion',\n canHaveChildren: true,\n image: 'https://cdn.builder.io/api/v1/image/assets%2FagZ9n5CUKRfbL9t6CaJOyVSK4Es2%2Ffab6c1fd3fe542408cbdec078bca7f35',\n defaultStyles: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'stretch'\n },\n inputs: [{\n name: 'items',\n type: 'list',\n broadcast: true,\n subFields: [{\n name: 'title',\n type: 'uiBlocks',\n hideFromUI: true,\n defaultValue: [defaultTitle]\n }, {\n name: 'detail',\n type: 'uiBlocks',\n hideFromUI: true,\n defaultValue: [defaultDetail]\n }],\n defaultValue: [{\n title: [defaultTitle],\n detail: [defaultDetail]\n }, {\n title: [defaultTitle],\n detail: [defaultDetail]\n }],\n showIf: function showIf(options) {\n return !options.get('useChildrenForItems');\n }\n }, {\n name: 'oneAtATime',\n helperText: 'Only allow opening one at a time (collapse all others when new item openned)',\n type: 'boolean',\n defaultValue: false\n }, {\n name: 'animate',\n helperText: 'Animate openning and closing',\n type: 'boolean',\n defaultValue: true\n }, {\n name: 'grid',\n helperText: 'Display as a grid',\n type: 'boolean',\n defaultValue: false\n }, {\n name: 'gridRowWidth',\n helperText: 'Display as a grid',\n type: 'string',\n showIf: function showIf(options) {\n return options.get('grid');\n },\n defaultValue: '25%'\n }, {\n name: 'useChildrenForItems',\n type: 'boolean',\n helperText: 'Use child elements for each slide, instead of the array. Useful for dynamically repeating items',\n advanced: true,\n defaultValue: false,\n onChange: function onChange(options) {\n if (options.get('useChildrenForItems') === true) {\n options.set('items', []);\n }\n }\n }]\n};\n\nvar getRandomAspectTile = function getRandomAspectTile() {\n return __assign(__assign({}, defaultTile), {\n component: __assign(__assign({}, defaultTile.component), {\n options: __assign(__assign({}, defaultTile.component.options), {\n // range from 0.5 to 2, rounded to 2 decimal points\n aspectRatio: Math.round((Math.random() * 1.5 + 0.5) * 100) / 100\n })\n })\n });\n};\n\nvar defaultTile = {\n '@type': '@builder.io/sdk:Element',\n responsiveStyles: {\n large: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'stretch',\n position: 'relative',\n flexShrink: '0',\n boxSizing: 'border-box',\n marginTop: '20px',\n minHeight: '20px',\n minWidth: '20px',\n overflow: 'hidden',\n marginLeft: '20px'\n }\n },\n component: {\n name: 'Image',\n options: {\n image: 'https://builder.io/api/v1/image/assets%2Fpwgjf0RoYWbdnJSbpBAjXNRMe9F2%2Ffb27a7c790324294af8be1c35fe30f4d?width=2000&height=1200',\n backgroundSize: 'cover',\n backgroundPosition: 'center',\n aspectRatio: 0.7041\n }\n }\n};\nvar masonryConfig = {\n name: 'Builder:Masonry',\n // TODO: default children\n image: 'https://cdn.builder.io/api/v1/image/assets%2FBvYIl5jKN9QpChUB3PVzsTe2ZSI2%2F7ed6bd8129d148608ecec09300786d71?width=2000&height=1200',\n canHaveChildren: true,\n defaultStyles: {\n paddingLeft: '20px',\n paddingRight: '20px',\n paddingBottom: '20px'\n },\n defaultChildren: [getRandomAspectTile(), getRandomAspectTile(), getRandomAspectTile(), getRandomAspectTile(), getRandomAspectTile(), getRandomAspectTile(), getRandomAspectTile(), getRandomAspectTile(), getRandomAspectTile()],\n inputs: [{\n name: 'columnWidth',\n // TODO: type: 'styleNumber'\n type: 'string',\n helperText: 'Width of each tile, as a CSS value. E.g. \"200px\" or \"50%\"',\n defaultValue: '200px'\n }, {\n name: 'gutterSize',\n type: 'number',\n helperText: 'Horizontal space between tiles in pixels, e.g. \"20\" for 20 pixels wide',\n defaultValue: 0,\n advanced: true\n }, {\n name: 'tiles',\n type: 'list',\n subFields: [{\n name: 'content',\n type: 'uiBlocks',\n hideFromUI: true,\n defaultValue: [defaultTile]\n }],\n defaultValue: [],\n showIf: function showIf(options) {\n return !options.get('useChildrenForTiles');\n }\n }, {\n name: 'useChildrenForTiles',\n type: 'boolean',\n helperText: 'Use child elements for each slide, instead of the array. Useful for dynamically repeating tiles',\n advanced: true,\n defaultValue: true,\n onChange: function onChange(options) {\n if (options.get('useChildrenForTiles') === true) {\n options.set('tiles', []);\n }\n }\n }]\n};\nBuilder.registerComponent(CarouselComponent, carouselConfig);\nBuilder.registerComponent(TabsComponent, tabsConfig);\nBuilder.registerComponent(AccordionComponent, accordionConfig);\nBuilder.registerComponent(MasonryComponent, masonryConfig);","import React, { useState, useEffect } from \"react\";\n\nfunction getScrollPositionY() {\n return window.pageYOffset !== undefined\n ? window.pageYOffset\n : window.scrollTop;\n}\n\nfunction LazyLoadContainer({ showPositionY, children, builderBlock }) {\n const [load, setLoad] = useState(false);\n\n useEffect(() => {\n window.addEventListener(\"scroll\", () => {\n if (getScrollPositionY() > (showPositionY ?? 0)) {\n setLoad(true);\n }\n });\n }, [setLoad, builderBlock, showPositionY]);\n\n return load ? children :
;\n}\n\nexport default LazyLoadContainer;\n","import { Builder, withChildren } from \"@builder.io/react\";\nimport LazyLoadContainer from \"./LazyLoadContainer\";\n\nBuilder.registerComponent(withChildren(LazyLoadContainer), {\n name: \"Lazy Load Container\",\n image:\n \"https://cdn.builder.io/api/v1/image/assets%2FYJIGb4i01jvw0SRdL5Bt%2F62750e75f4b643bdbc747c882e46e77f?width=24\",\n inputs: [\n {\n name: \"showPositionY\",\n type: \"number\",\n defaultValue: 500\n }\n ]\n});\n","export const rgbaToHex = color => {\n if (/^rgb/.test(color)) {\n const rgba = color.replace(/^rgba?\\(|\\s+|\\)$/g, \"\").split(\",\");\n\n // rgb to hex\n // eslint-disable-next-line no-bitwise\n let hex = `#${(\n (1 << 24) +\n (parseInt(rgba[0], 10) << 16) +\n (parseInt(rgba[1], 10) << 8) +\n parseInt(rgba[2], 10)\n )\n .toString(16)\n .slice(1)}`;\n\n // added alpha param if exists\n if (rgba[4]) {\n const alpha = Math.round(0o1 * 255);\n const hexAlpha = (alpha + 0x10000)\n .toString(16)\n .substr(-2)\n .toUpperCase();\n hex += hexAlpha;\n }\n\n return hex;\n }\n return color;\n};\n","import styled from \"styled-components\";\nimport { rgbaToHex } from \"../../utils/color\";\n\nexport const Container = styled.div`\n & .carousel .slide img {\n max-width: 390px;\n }\n & .carousel .thumbs {\n padding: 0;\n text-align: center;\n }\n & .carousel .thumb {\n margin-right: 0;\n margin-right: auto;\n margin-left: auto;\n padding: 0;\n cursor: pointer;\n }\n & .carousel .thumb:hover {\n border: 3px solid #d26546;\n }\n & .carousel .thumb.selected {\n border: 3px solid #d26546;\n opacity: 1;\n }\n & .carousel .thumbs-wrapper {\n margin: 0;\n }\n\n & .carousel .control-arrow {\n height: 40px;\n margin: auto 0;\n }\n\n & .carousel .control-dots {\n margin: 0;\n }\n\n ${({ dotSettings }) => `\n .carousel .control-dots .dot {\n background: ${dotSettings?.dotColorInactive ?? `#fff`};\n box-shadow: ${\n dotSettings?.dotShadow ? `rgba(0, 0, 0, 0.9) 1px 1px 2px` : `none`\n };\n }\n\n & .carousel .control-dots .dot.selected, \n & .carousel .control-dots .dot:hover {\n background: ${dotSettings?.dotColor ?? `#fff`};\n }\n `}\n ${({ dotSettings }) => {\n switch (dotSettings?.dotStyle) {\n case \"pdp2024\":\n return `\n .carousel .control-dots .dot {\n margin: 0 3px;\n width: 6px;\n height: 6px;\n transition: all 0.5s ease-in-out 0s;\n }\n & .carousel .control-dots .dot.selected {\n width: 24px;\n height: 6px;\n border-radius: 8px;\n }\n `;\n case \"default\":\n default:\n return ``;\n }\n }}\n\n ${({ arrowSettings }) => {\n if (arrowSettings) {\n const {\n arrowBgColor,\n arrowColor,\n arrowHoverBgColor,\n arrowHoverOpacity,\n arrowOpacity\n } = arrowSettings;\n\n return `\n & .carousel .control-prev.control-arrow:before {\n border-right: 8px solid ${arrowColor ?? \"#FFF\"};\n }\n & .carousel .control-next.control-arrow:before {\n border-left: 8px solid ${arrowColor ?? \"#FFF\"};\n }\n & .carousel.carousel-slider .control-arrow:hover {\n background-color: ${arrowHoverBgColor ?? \"rgba(0, 0, 0, 0.2)\"};\n opacity: ${(arrowHoverOpacity ?? 40) / 100}\n }\n & .carousel.carousel-slider .control-arrow {\n background-color: ${arrowBgColor ?? \"rgba(0, 0, 0, 0.2)\"};\n }\n & .carousel .control-arrow, \n & .carousel.carousel-slider .control-arrow {\n opacity: ${(arrowOpacity ?? 40) / 100}\n }\n `;\n }\n }}\n\n ${({ arrowSettings }) => {\n if (!arrowSettings) return ``;\n const { arrowStyle, arrowColor = \"#001C72\" } = arrowSettings;\n const arrowColorHex = rgbaToHex(arrowColor);\n const svgArrowPrev = ``;\n const svgArrowNext = ``;\n switch (arrowStyle) {\n case \"arrow3\":\n return `\n & .carousel .control-arrow {\n padding: 0;\n opacity: 1!important;\n background-color: transparent!important;\n }\n & .carousel .control-arrow.control-prev:before {\n border: none!important;\n width: 50px;\n height: 50px;\n background: url(\"/images/arrow-3.png\") transparent no-repeat;\n rotate: 180deg!important;\n background-position: center center;\n }\n & .carousel .control-arrow.control-next:before {\n border: none!important;\n width: 50px;\n height: 50px;\n background: url(\"/images/arrow-3.png\") transparent no-repeat;\n background-position: center center;\n }\n `;\n case \"\":\n return `\n & .carousel .control-arrow {\n padding: 0;\n }\n & .carousel .control-arrow.control-prev:before {\n border: none!important;\n width: 12px;\n height: 20px;\n background: url(data:image/svg+xml,${encodeURIComponent(\n svgArrowPrev\n )}) transparent no-repeat;\n }\n & .carousel .control-arrow.control-next:before {\n border: none!important;\n width: 12px;\n height: 20px;\n background: url(data:image/svg+xml,${encodeURIComponent(\n svgArrowNext\n )}) transparent no-repeat;\n }\n `;\n case \"default\":\n default:\n break;\n }\n }}\n\n @media (max-width: 500px) {\n .carousel.carousel-slider .control-arrow {\n opacity: 1;\n }\n }\n`;\n","import React from \"react\";\nimport * as S from \"./ImageCarousel.styles\";\nimport { Carousel } from \"react-responsive-carousel\";\n\nimport \"react-responsive-carousel/lib/styles/carousel.css\";\n\nconst ImageCarousel = props => {\n const { images, settings, children, attributes } = props;\n\n const thumbsPosition = settings?.thumbsPosition || \"bottom\";\n const thumbWidth = parseInt(settings?.thumbWidth ?? 80);\n\n const renderThumbs = () => {\n return images.map((image, index) => {\n const imageAlt = image.alt ? image.alt : `Carousel Thumb ${index}`;\n const videoClass = image?.video ? `is-video thumbnail` : ``;\n\n return (\n
\n \n
\n );\n });\n };\n\n return (\n \n \n {settings?.showImgArray\n ? images.map((image, index) => {\n const imageAlt = image.alt ? image.alt : `Carousel ${index}`;\n\n return (\n \n
\n \n
\n
\n );\n })\n : children}\n \n \n );\n};\n\nexport default ImageCarousel;\n","import { Builder, withChildren } from \"@builder.io/react\";\nimport ImageCarousel from \"./ImageCarousel\";\n\nBuilder.registerComponent(withChildren(ImageCarousel), {\n name: \"Image Carousel\",\n // Optionally give a custom icon (image url - ideally a black on transparent bg svg or png)\n image:\n \"https://cdn.builder.io/api/v1/image/assets%2FYJIGb4i01jvw0SRdL5Bt%2F62750e75f4b643bdbc747c882e46e77f?width=24\",\n inputs: [\n {\n name: \"images\",\n type: \"list\",\n defaultValue: [],\n subFields: [\n {\n name: \"image\",\n type: \"file\",\n allowedFileTypes: [\"jpeg\", \"jpg\", \"png\", \"svg\"],\n required: true,\n defaultValue:\n \"https://cdn.builder.io/api/v1/image/assets%2Fpwgjf0RoYWbdnJSbpBAjXNRMe9F2%2Ffb27a7c790324294af8be1c35fe30f4d\"\n },\n {\n name: \"alt\",\n type: \"string\",\n defaultValue: \"Image Item\"\n }\n ]\n },\n {\n name: \"settings\",\n type: \"object\",\n advanced: true,\n defaultValue: {\n showStatus: false,\n showImgArray: false,\n thumbWidth: 80,\n swipeScrollTolerance: 5,\n autoPlay: false,\n centerMode: false,\n emulateTouch: false,\n infiniteLoop: false,\n interval: 3000,\n preventMovementUntilSwipeScrollTolerance: false,\n stopOnHover: false,\n swipeable: true,\n useKeyboardArrows: false,\n selectedItem: 0,\n showArrows: true,\n showIndicators: true,\n thumbsPosition: \"bottom\",\n showThumbs: true,\n ariaLabel: \"\",\n axis: \"horizontal\",\n dynamicHeight: false,\n transitionTime: 500\n },\n subFields: [\n {\n name: \"ariaLabel\",\n type: \"string\",\n defaultValue: \"\"\n },\n {\n name: \"axis\",\n type: \"string\",\n defaultValue: \"horizontal\",\n enum: [\"horizontal\", \"vertical\"]\n },\n {\n name: \"thumbsPosition\",\n type: \"string\",\n enum: [\"top\", \"bottom\", \"left\", \"right\"],\n defaultValue: \"bottom\"\n },\n {\n name: \"autoPlay\",\n type: \"boolean\",\n defaultValue: false\n },\n {\n name: \"centerMode\",\n type: \"boolean\",\n defaultValue: false\n },\n {\n name: \"dynamicHeight\",\n type: \"boolean\",\n defaultValue: false\n },\n {\n name: \"emulateTouch\",\n type: \"boolean\",\n defaultValue: true\n },\n {\n name: \"infiniteLoop\",\n type: \"boolean\",\n defaultValue: false\n },\n {\n name: \"interval\",\n type: \"number\",\n defaultValue: 3000\n },\n {\n name: \"preventMovementUntilSwipeScrollTolerance\",\n type: \"boolean\",\n defaultValue: false\n },\n\n {\n name: \"selectedItem\",\n type: \"number\",\n defaultValue: 0\n },\n {\n name: \"showArrows\",\n type: \"boolean\",\n defaultValue: true\n },\n {\n name: \"showStatus\",\n type: \"boolean\",\n defaultValue: true\n },\n {\n name: \"showImgArray\",\n type: \"boolean\",\n defaultValue: false\n },\n {\n name: \"showIndicators\",\n type: \"boolean\",\n defaultValue: true\n },\n {\n name: \"showThumbs\",\n type: \"boolean\",\n defaultValue: true\n },\n {\n name: \"stopOnHover\",\n type: \"boolean\",\n defaultValue: true\n },\n {\n name: \"swipeable\",\n type: \"boolean\",\n defaultValue: true\n },\n {\n name: \"swipeScrollTolerance\",\n type: \"number\",\n defaultValue: 5\n },\n {\n name: \"thumbWidth\",\n type: \"number\",\n defaultValue: 80\n },\n {\n name: \"transitionTime\",\n type: \"number\",\n defaultValue: 500\n },\n {\n name: \"useKeyboardArrows\",\n type: \"boolean\",\n defaultValue: false\n },\n {\n name: \"arrowSettings\",\n type: \"object\",\n subFields: [\n {\n name: \"arrowColor\",\n type: \"color\"\n },\n\n {\n name: \"arrowOpacity\",\n type: \"string\",\n enum: [10, 20, 30, 40, 50, 60, 70, 80, 90, 100],\n defaultValue: 100\n },\n {\n name: \"arrowHoverOpacity\",\n type: \"string\",\n enum: [10, 20, 30, 40, 50, 60, 70, 80, 90, 100],\n defaultValue: 100\n },\n {\n name: \"arrowBgColor\",\n type: \"color\"\n },\n {\n name: \"arrowHoverBgColor\",\n type: \"color\"\n },\n {\n name: \"arrowStyle\",\n type: \"string\",\n enum: [\"default\", \"\", \"arrow3\"],\n defaultValue: \"default\"\n }\n ]\n },\n {\n name: \"dotSettings\",\n type: \"object\",\n subFields: [\n {\n name: \"dotStyle\",\n type: \"string\",\n enum: [\"default\", \"pdp2024\"],\n defaultValue: \"default\"\n },\n {\n name: \"dotColor\",\n type: \"color\"\n },\n {\n name: \"dotColorInactive\",\n type: \"color\"\n },\n {\n name: \"dotShadow\",\n type: \"boolean\"\n }\n ]\n }\n ]\n }\n ]\n});\n","import { Builder, withChildren } from \"@builder.io/react\";\nimport ToggleContainer from \"./ToggleContainer\";\n\nBuilder.registerComponent(withChildren(ToggleContainer), {\n name: \"Slides:ToggleContainer\",\n image:\n \"https://cdn.builder.io/api/v1/image/assets%2FYJIGb4i01jvw0SRdL5Bt%2F62750e75f4b643bdbc747c882e46e77f?width=24\",\n inputs: [\n {\n name: \"version\",\n type: \"string\",\n enum: [\"version1\", \"version2\"],\n defaultValue: \"version1\"\n },\n {\n name: \"designVersion\",\n type: \"string\",\n enum: [\"single\", \"multiple\"],\n defaultValue: \"single\"\n },\n {\n name: \"offerIndex\",\n type: \"number\",\n defaultValue: 0,\n showIf: o => !o.get(\"submitCart\")\n },\n {\n name: \"heading\",\n type: \"string\",\n defaultValue: \"\"\n },\n {\n name: \"headingColor\",\n type: \"color\",\n defaultValue: \"#001C72\"\n },\n {\n name: \"headingActiveColor\",\n type: \"color\",\n defaultValue: \"#289901\"\n },\n {\n name: \"bgColor\",\n type: \"color\",\n defaultValue: \"#BC2E3E\"\n },\n {\n name: \"addedColor\",\n type: \"color\",\n defaultValue: \"#e26447\"\n },\n {\n name: \"hoverColor\",\n type: \"color\",\n defaultValue: \"#e26447\"\n },\n {\n name: \"showTickBox\",\n type: \"boolean\",\n defaultValue: false,\n showIf: o => o.get(\"version\") === \"version1\"\n },\n {\n name: \"tickBoxColor\",\n type: \"color\",\n defaultValue: \"#e26447\",\n showIf: o => o.get(\"showTickBox\")\n },\n {\n name: \"tickBoxColorActive\",\n type: \"color\",\n defaultValue: \"#e26447\",\n showIf: o => o.get(\"showTickBox\")\n },\n {\n name: \"tickBoxPositionTop\",\n type: \"number\",\n defaultValue: \"10\",\n showIf: o => o.get(\"showTickBox\")\n },\n {\n name: \"tickBoxPositionLeft\",\n type: \"number\",\n defaultValue: \"10\",\n showIf: o => o.get(\"showTickBox\")\n },\n {\n name: \"tickBoxRadius\",\n type: \"string\",\n defaultValue: \"100%\"\n },\n {\n name: \"buttonText\",\n type: \"string\",\n defaultValue: \"ADD ITEM\"\n },\n {\n name: \"buttonTextSelected\",\n type: \"string\",\n defaultValue: \"REMOVE ITEM\"\n },\n {\n name: \"showNotification\",\n type: \"boolean\",\n defaultValue: false\n },\n {\n name: \"notificationTitle\",\n type: \"string\",\n defaultValue: false,\n showIf: o => o.get(\"showNotification\")\n },\n {\n name: \"notificationType\",\n type: \"string\",\n enum: [\"success\", \"default\", \"warning\", \"info\", \"danger\", \"custom\"],\n defaultValue: false,\n showIf: o => o.get(\"showNotification\")\n }\n ]\n});\n","import styled from \"styled-components\";\n\nexport const Container = styled.div`\n margin: 0 auto;\n width: 100%;\n overflow: hidden;\n ${({ maxWidth }) => `\n max-width: ${maxWidth || 1150}px;\n & .okeReviews[data-oke-container].oke-w, div.okeReviews.oke-w {\n max-width: ${maxWidth || 1150}px;\n }\n `}\n`;\n","import React, { useState, useEffect, useRef } from \"react\";\nimport { Container } from \"./OkendoReviewsWidget.styles\";\n\nconst OkendoReviewsWidget = props => {\n const {\n productId = \"6645452079159\",\n subscriberId = \"a6ff1c99-dd8a-4420-be09-f24d9bd7dee3\",\n maxWidth = 1150\n } = props;\n\n const widgetContainer = useRef(null);\n const [loaded, setLoaded] = useState(false);\n\n useEffect(() => {\n if (!loaded) {\n const okendoMetatag = document.querySelector(\n 'meta[name=\"oke:subscriber_id\"]'\n );\n if (!okendoMetatag) {\n const meta = document.createElement(\"meta\");\n meta.name = \"oke:subscriber_id\";\n meta.content = subscriberId;\n document.head.appendChild(meta);\n }\n\n const okendoScriptTag = document.querySelector(\n 'script[id=\"okendo-reviews\"]'\n );\n if (!window.okeWidgetApi && !okendoScriptTag) {\n const script = document.createElement(\"script\");\n script.id = \"okendo-reviews\";\n script.src =\n \"https://d3hw6dc1ow8pp2.cloudfront.net/reviews-widget-plus/js/okendo-reviews.js\";\n script.async = true;\n script.onload = () => {\n window.okeWidgetApi.initWidget(widgetContainer.current);\n };\n document.body.appendChild(script);\n } else {\n const interval = setInterval(() => {\n if (window.okeWidgetApi) {\n window.okeWidgetApi.initWidget(widgetContainer.current);\n clearInterval(interval);\n }\n }, 1000);\n }\n\n setLoaded(true);\n }\n }, [loaded, subscriberId, widgetContainer]);\n\n return (\n \n );\n};\n\nexport default OkendoReviewsWidget;\n","import { Builder } from \"@builder.io/react\";\nimport OkendoReviewsWidget from \"./OkendoReviewsWidget\";\n\nBuilder.registerComponent(OkendoReviewsWidget, {\n name: \"Okendo Reviews Widget\",\n image:\n \"https://cdn.builder.io/api/v1/image/assets%2FYJIGb4i01jvw0SRdL5Bt%2F62750e75f4b643bdbc747c882e46e77f?width=24\",\n inputs: [\n {\n name: \"subscriberId\",\n type: \"string\",\n defaultValue: \"a6ff1c99-dd8a-4420-be09-f24d9bd7dee3\"\n },\n {\n name: \"productId\",\n type: \"string\",\n defaultValue: \"6645452079159\"\n },\n {\n name: \"maxWidth\",\n type: \"number\",\n defaultValue: 1150\n }\n ]\n});\n","import styled from \"styled-components\";\nimport { rgbaToHex } from \"../../utils/color\";\n\nexport const Container = styled.div`\n & .carousel .slide img {\n max-width: 390px;\n }\n & .carousel .thumbs {\n padding: 0;\n text-align: center;\n }\n & .carousel .thumb {\n margin-right: 0;\n margin-right: auto;\n margin-left: auto;\n padding: 0;\n cursor: pointer;\n }\n & .carousel .thumb:hover {\n border: 3px solid #d26546;\n }\n & .carousel .thumb.selected {\n border: 3px solid #d26546;\n opacity: 1;\n }\n & .carousel .thumbs-wrapper {\n margin: 0;\n }\n\n & .carousel .control-arrow {\n height: 40px;\n margin: auto 0;\n }\n\n & .carousel .control-dots {\n margin: 0;\n }\n\n ${({ dotSettings }) => `\n .carousel .control-dots .dot {\n background: ${dotSettings?.dotColorInactive ?? `#fff`};\n box-shadow: ${\n dotSettings?.dotShadow ? `rgba(0, 0, 0, 0.9) 1px 1px 2px` : `none`\n };\n }\n\n & .carousel .control-dots .dot.selected, \n & .carousel .control-dots .dot:hover {\n background: ${dotSettings?.dotColor ?? `#fff`};\n }\n `}\n\n ${({ arrowSettings }) => {\n if (arrowSettings) {\n const {\n arrowBgColor,\n arrowColor,\n arrowHoverBgColor,\n arrowHoverOpacity,\n arrowOpacity\n } = arrowSettings;\n\n return `\n & .carousel .control-prev.control-arrow:before {\n border-right: 8px solid ${arrowColor ?? \"#FFF\"};\n }\n & .carousel .control-next.control-arrow:before {\n border-left: 8px solid ${arrowColor ?? \"#FFF\"};\n }\n & .carousel.carousel-slider .control-arrow:hover {\n background-color: ${arrowHoverBgColor ?? \"rgba(0, 0, 0, 0.2)\"};\n opacity: ${(arrowHoverOpacity ?? 40) / 100}\n }\n & .carousel.carousel-slider .control-arrow {\n background-color: ${arrowBgColor ?? \"rgba(0, 0, 0, 0.2)\"};\n }\n & .carousel .control-arrow, \n & .carousel.carousel-slider .control-arrow {\n opacity: ${(arrowOpacity ?? 40) / 100}\n }\n `;\n }\n }}\n\n ${({ arrowSettings }) => {\n if (!arrowSettings) return ``;\n const { arrowStyle, arrowColor = \"#001C72\" } = arrowSettings;\n const arrowColorHex = rgbaToHex(arrowColor);\n const svgArrowPrev = ``;\n const svgArrowNext = ``;\n switch (arrowStyle) {\n case \"\":\n return `\n & .carousel .control-arrow {\n padding: 0;\n }\n & .carousel .control-arrow.control-prev:before {\n border: none!important;\n width: 12px;\n height: 20px;\n background: url(data:image/svg+xml,${encodeURIComponent(\n svgArrowPrev\n )}) transparent no-repeat;\n }\n & .carousel .control-arrow.control-next:before {\n border: none!important;\n width: 12px;\n height: 20px;\n background: url(data:image/svg+xml,${encodeURIComponent(\n svgArrowNext\n )}) transparent no-repeat;\n }\n `;\n case \"default\":\n default:\n break;\n }\n }}\n\n ${({ addItemGap = false, itemGapSize = 16 }) =>\n addItemGap\n ? `\n & .slider-wrapper .slide {\n padding-right: ${itemGapSize}px;\n }\n \n `\n : ``}\n\n @media (max-width: 500px) {\n .carousel.carousel-slider .control-arrow {\n opacity: 1;\n }\n }\n`;\n","import React from \"react\";\nimport * as S from \"./CarouselContainer.styles\";\nimport { Carousel } from \"react-responsive-carousel\";\n\nimport \"react-responsive-carousel/lib/styles/carousel.css\";\n\nconst CarouselContainer = props => {\n const { settings, children } = props;\n\n const thumbsPosition = settings?.thumbsPosition || \"bottom\";\n const thumbWidth = parseInt(settings?.thumbWidth ?? 80);\n\n return (\n \n \n {children}\n \n \n );\n};\n\nexport default CarouselContainer;\n","import { Builder, withChildren } from \"@builder.io/react\";\nimport CarouselContainer from \"./CarouselContainer\";\n\nBuilder.registerComponent(withChildren(CarouselContainer), {\n name: \"Carousel Container\",\n // Optionally give a custom icon (image url - ideally a black on transparent bg svg or png)\n image:\n \"https://cdn.builder.io/api/v1/image/assets%2FYJIGb4i01jvw0SRdL5Bt%2F62750e75f4b643bdbc747c882e46e77f?width=24\",\n inputs: [\n {\n name: \"settings\",\n type: \"object\",\n advanced: true,\n defaultValue: {\n showStatus: false,\n showImgArray: false,\n thumbWidth: 80,\n swipeScrollTolerance: 5,\n autoPlay: false,\n centerMode: false,\n emulateTouch: false,\n infiniteLoop: false,\n interval: 3000,\n preventMovementUntilSwipeScrollTolerance: false,\n stopOnHover: false,\n swipeable: true,\n useKeyboardArrows: false,\n selectedItem: 0,\n showArrows: true,\n showIndicators: true,\n thumbsPosition: \"bottom\",\n showThumbs: true,\n ariaLabel: \"\",\n axis: \"horizontal\",\n dynamicHeight: false,\n transitionTime: 500\n },\n subFields: [\n {\n name: \"ariaLabel\",\n type: \"string\",\n defaultValue: \"\"\n },\n {\n name: \"axis\",\n type: \"string\",\n defaultValue: \"horizontal\",\n enum: [\"horizontal\", \"vertical\"]\n },\n {\n name: \"thumbsPosition\",\n type: \"string\",\n enum: [\"top\", \"bottom\", \"left\", \"right\"],\n defaultValue: \"bottom\"\n },\n {\n name: \"autoPlay\",\n type: \"boolean\",\n defaultValue: false\n },\n {\n name: \"centerMode\",\n type: \"boolean\",\n defaultValue: false\n },\n {\n name: \"centerSlidePercentage\",\n type: \"number\",\n defaultValue: 80\n },\n {\n name: \"dynamicHeight\",\n type: \"boolean\",\n defaultValue: false\n },\n {\n name: \"emulateTouch\",\n type: \"boolean\",\n defaultValue: true\n },\n {\n name: \"infiniteLoop\",\n type: \"boolean\",\n defaultValue: false\n },\n {\n name: \"interval\",\n type: \"number\",\n defaultValue: 3000\n },\n {\n name: \"preventMovementUntilSwipeScrollTolerance\",\n type: \"boolean\",\n defaultValue: false\n },\n\n {\n name: \"selectedItem\",\n type: \"number\",\n defaultValue: 0\n },\n {\n name: \"showArrows\",\n type: \"boolean\",\n defaultValue: true\n },\n {\n name: \"showStatus\",\n type: \"boolean\",\n defaultValue: true\n },\n {\n name: \"showIndicators\",\n type: \"boolean\",\n defaultValue: true\n },\n {\n name: \"showThumbs\",\n type: \"boolean\",\n defaultValue: true\n },\n {\n name: \"stopOnHover\",\n type: \"boolean\",\n defaultValue: true\n },\n {\n name: \"swipeable\",\n type: \"boolean\",\n defaultValue: true\n },\n {\n name: \"swipeScrollTolerance\",\n type: \"number\",\n defaultValue: 5\n },\n {\n name: \"thumbWidth\",\n type: \"number\",\n defaultValue: 80\n },\n {\n name: \"transitionTime\",\n type: \"number\",\n defaultValue: 500\n },\n {\n name: \"useKeyboardArrows\",\n type: \"boolean\",\n defaultValue: false\n },\n {\n name: \"addItemGap\",\n type: \"boolean\",\n defaultValue: false\n },\n {\n name: \"itemGapSize\",\n type: \"number\",\n defaultValue: 16\n },\n {\n name: \"arrowSettings\",\n type: \"object\",\n subFields: [\n {\n name: \"arrowColor\",\n type: \"color\"\n },\n\n {\n name: \"arrowOpacity\",\n type: \"string\",\n enum: [10, 20, 30, 40, 50, 60, 70, 80, 90, 100],\n defaultValue: 100\n },\n {\n name: \"arrowHoverOpacity\",\n type: \"string\",\n enum: [10, 20, 30, 40, 50, 60, 70, 80, 90, 100],\n defaultValue: 100\n },\n {\n name: \"arrowBgColor\",\n type: \"color\"\n },\n {\n name: \"arrowHoverBgColor\",\n type: \"color\"\n },\n {\n name: \"arrowStyle\",\n type: \"string\",\n enum: [\"default\", \"\", \"arrow3\"],\n defaultValue: \"default\"\n }\n ]\n },\n {\n name: \"dotSettings\",\n type: \"object\",\n subFields: [\n {\n name: \"dotColor\",\n type: \"color\"\n },\n {\n name: \"dotColorInactive\",\n type: \"color\"\n },\n {\n name: \"dotShadow\",\n type: \"boolean\"\n }\n ]\n }\n ]\n }\n ]\n});\n","import { builder } from \"@builder.io/react\";\n\n// a set of widgets you can use in the editor, optional.\nimport \"@builder.io/widgets\";\n\n/**\n * Import all custom components so you can use in the builder.io editor\n * https://www.builder.io/c/docs/custom-react-components\n */\n// components\nimport \"./components/AcceptButton/AcceptButton.builder\";\nimport \"./components/DeclineButton/DeclineButton.builder\";\nimport \"./components/Timer/Timer.builder\";\nimport \"./components/TrustpilotPlugin/TrustpilotPlugin.builder\";\nimport \"./components/UpsellImage/UpsellImage.builder\";\nimport \"./components/UpsellText/UpsellText.builder\";\nimport \"./components/LazyLoadContainer/LazyLoadContainer.builder\";\nimport \"./components/StampedPlugin/StampedPlugin.builder\";\nimport \"./components/ImageCarousel/ImageCarousel.builder\";\nimport \"./components/AddToCartButton/AddToCartButton.builder\";\nimport \"./components/OrderContains/OrderContains.builder\";\nimport \"./components/ToggleContainer/ToggleContainer.builder\";\nimport \"./components/OfferContainer/OfferContainer.builder\";\nimport \"./components/OkendoReviewsWidget/OkendoReviewsWidget.builder\";\nimport \"./components/CarouselContainer/CarouselContainer.builder\";\nimport \"./components/OrderSummary/OrderSummary.builder\";\nimport \"./components/Accordion/Accordion.builder\";\n\nbuilder.init(process.env.GATSBY_BUILDER_API_KEY);\n","import { Builder, withChildren } from \"@builder.io/react\";\nimport loadable from \"@loadable/component\";\n\nconst AcceptButton = loadable(() => import(\"./AcceptButton\"));\n\nconst AcceptButtonConfig = {\n name: \"AcceptButton\",\n image:\n \"https://cdn.builder.io/api/v1/image/assets%2FYJIGb4i01jvw0SRdL5Bt%2F62750e75f4b643bdbc747c882e46e77f?width=24\",\n canHaveChildren: true,\n // static: true,\n // noWrap: true,\n // hideFromInsertMenu: true,\n inputs: [\n {\n name: \"version\",\n type: \"string\",\n enum: [\"no-design\", \"version1\", \"add-sub\"],\n defaultValue: \"version1\"\n },\n {\n name: \"backgroundDesign\",\n type: \"string\",\n enum: [\"design1\", \"design2\"],\n defaultValue: \"design1\"\n },\n {\n name: \"loadingBgColor\",\n type: \"color\",\n defaultValue: \"#FFF\",\n showIf: o => o.get(\"version\") === \"no-design\"\n },\n {\n name: \"showConfirmation\",\n type: \"boolean\",\n defaultValue: false\n },\n {\n name: \"confirmationVersion\",\n type: \"string\",\n enum: [\"version1\", \"version2\"],\n defaultValue: \"version1\",\n showIf: o => o.get(\"version\") !== \"add-sub\"\n },\n {\n name: \"noTaxComputation\",\n type: \"boolean\",\n defaultValue: false,\n showIf: o => o.get(\"showConfirmation\")\n },\n {\n name: \"subProduct\",\n type: \"object\",\n subFields: [\n {\n name: \"variantId\",\n type: \"string\"\n },\n {\n name: \"discountCode\",\n type: \"string\"\n },\n {\n name: \"quantity\",\n type: \"number\",\n defaultValue: 1\n },\n {\n name: \"discountPrice\",\n type: \"number\"\n }\n ],\n showIf: o => o.get(\"version\") === \"add-sub\"\n },\n {\n name: \"popupTopImage\",\n type: \"file\",\n allowedFileTypes: [\"jpeg\", \"jpg\", \"png\", \"svg\"],\n required: false,\n showIf: o => o.get(\"version\") === \"add-sub\"\n },\n {\n name: \"borderRadius\",\n type: \"number\",\n advanced: true\n },\n {\n name: \"minHeight\",\n type: \"number\",\n advanced: true\n },\n {\n name: \"isPreviewLoading\",\n type: \"boolean\",\n defaultValue: false,\n advanced: true\n }\n ]\n};\n\nBuilder.registerComponent(withChildren(AcceptButton), AcceptButtonConfig);\n","import { Builder, withChildren } from \"@builder.io/react\";\nimport loadable from \"@loadable/component\";\n\nconst Accordion = loadable(() => import(\"./Accordion\"));\n\nBuilder.registerComponent(withChildren(Accordion), {\n name: \"Accordion\",\n image:\n \"https://cdn.builder.io/api/v1/image/assets%2FYJIGb4i01jvw0SRdL5Bt%2F62750e75f4b643bdbc747c882e46e77f?width=24\",\n inputs: [\n {\n name: \"designVersion\",\n type: \"string\",\n enum: [\"version1\"],\n defaultValue: \"version1\"\n }\n ]\n});\n","import { Builder, withChildren } from \"@builder.io/react\";\nimport loadable from \"@loadable/component\";\n\nconst AddToCartButton = loadable(() => import(\"./AddToCartButton\"));\n\nconst AddToCartButtonConfig = {\n name: \"AddToCartButton\",\n image:\n \"https://cdn.builder.io/api/v1/image/assets%2FYJIGb4i01jvw0SRdL5Bt%2F62750e75f4b643bdbc747c882e46e77f?width=24\",\n canHaveChildren: true,\n inputs: [\n {\n name: \"offerIndex\",\n type: \"number\",\n defaultValue: 0,\n showIf: o => !o.get(\"submitCart\")\n },\n {\n name: \"submitCart\",\n type: \"boolean\",\n defaultValue: false\n },\n {\n name: \"loadingBgColor\",\n type: \"color\",\n defaultValue: \"#FFF\",\n showIf: o => o.get(\"submitCart\")\n },\n {\n name: \"showConfirmation\",\n type: \"boolean\",\n defaultValue: false\n },\n {\n name: \"showNotification\",\n type: \"boolean\",\n defaultValue: false\n },\n {\n name: \"notificationTitle\",\n type: \"string\",\n defaultValue: false,\n showIf: o => o.get(\"showNotification\")\n },\n {\n name: \"notificationType\",\n type: \"string\",\n enum: [\"success\", \"default\", \"warning\", \"info\", \"danger\", \"custom\"],\n defaultValue: false,\n showIf: o => o.get(\"showNotification\")\n },\n {\n name: \"isDisabled\",\n type: \"boolean\",\n defaultValue: false\n }\n ]\n};\n\nBuilder.registerComponent(withChildren(AddToCartButton), AddToCartButtonConfig);\n","import { Builder, withChildren } from \"@builder.io/react\";\nimport loadable from \"@loadable/component\";\n\nconst DeclineButton = loadable(() => import(\"./DeclineButton\"));\n\nconst DeclineButtonConfig = {\n name: \"DeclineButton\",\n image:\n \"https://cdn.builder.io/api/v1/image/assets%2FYJIGb4i01jvw0SRdL5Bt%2F62750e75f4b643bdbc747c882e46e77f?width=24\",\n canHaveChildren: true,\n inputs: [\n {\n name: \"backgroundDesign\",\n type: \"string\",\n enum: [\"no-design\", \"design1\"],\n defaultValue: \"design1\"\n },\n {\n name: \"loadingBgColor\",\n type: \"color\",\n defaultValue: \"#FFF\",\n showIf: o => o.get(\"backgroundDesign\") === \"no-design\"\n },\n {\n name: \"directToCheckout\",\n type: \"boolean\",\n defaultValue: false,\n showIf: o => o.get(\"backgroundDesign\") === \"no-design\"\n },\n {\n name: \"triggerOnTimeout\",\n type: \"boolean\",\n defaultValue: false,\n advanced: true\n },\n {\n name: \"borderRadius\",\n type: \"number\",\n advanced: true\n },\n {\n name: \"minHeight\",\n type: \"number\",\n advanced: true\n },\n {\n name: \"isPreviewLoading\",\n type: \"boolean\",\n defaultValue: false,\n advanced: true\n }\n ]\n};\n\nBuilder.registerComponent(withChildren(DeclineButton), DeclineButtonConfig);\n","import { Builder, withChildren } from \"@builder.io/react\";\nimport loadable from \"@loadable/component\";\n\nconst OfferContainer = loadable(() => import(\"./OfferContainer\"));\n\nconst OfferContainerConfig = {\n name: \"Offer Container\",\n canHaveChildren: true,\n image:\n \"https://cdn.builder.io/api/v1/image/assets%2FYJIGb4i01jvw0SRdL5Bt%2F62750e75f4b643bdbc747c882e46e77f?width=24\",\n inputs: [\n {\n name: \"designVersion\",\n type: \"string\",\n enum: [\"version1\"],\n defaultValue: \"version1\"\n },\n {\n name: \"offerIndex\",\n type: \"number\",\n defaultValue: 0\n }\n ]\n};\n\nBuilder.registerComponent(withChildren(OfferContainer), OfferContainerConfig);\n","import { Builder, withChildren } from \"@builder.io/react\";\nimport loadable from \"@loadable/component\";\n\nconst OrderContains = loadable(() => import(\"./OrderContains\"));\n\nconst OrderContainsConfig = {\n name: \"Order Contains\",\n canHaveChildren: true,\n image:\n \"https://cdn.builder.io/api/v1/image/assets%2FYJIGb4i01jvw0SRdL5Bt%2F62750e75f4b643bdbc747c882e46e77f?width=24\",\n inputs: [\n {\n name: \"designVersion\",\n type: \"string\",\n enum: [\"version1\", \"version2\", \"version3\", \"version4\"],\n defaultValue: \"version1\"\n },\n {\n name: \"noSummary\",\n type: \"boolean\",\n defaultValue: false\n },\n {\n name: \"showCurrentIndexOnly\",\n type: \"boolean\",\n defaultValue: false\n },\n {\n name: \"addUpgrades\",\n type: \"boolean\",\n defaultValue: false\n },\n {\n name: \"subTitleText\",\n type: \"string\",\n defaultValue: \"One-time\"\n },\n {\n name: \"language\",\n type: \"string\",\n enum: [\"default\", \"spanish\"],\n default: \"default\",\n advanced: true\n }\n ]\n};\n\nBuilder.registerComponent(withChildren(OrderContains), OrderContainsConfig);\n","import { Builder, withChildren } from \"@builder.io/react\";\nimport loadable from \"@loadable/component\";\n\nconst OrderSummary = loadable(() => import(\"./OrderSummary\"));\nconst OrderSummaryToggle = loadable(() => import(\"./OrderSummaryToggle\"));\n\nconst OrderSummaryConfig = {\n name: \"Order Summary\",\n canHaveChildren: true,\n image:\n \"https://cdn.builder.io/api/v1/image/assets%2FYJIGb4i01jvw0SRdL5Bt%2F62750e75f4b643bdbc747c882e46e77f?width=24\",\n inputs: [\n {\n name: \"language\",\n type: \"string\",\n enum: [\"default\", \"german\"],\n default: \"default\",\n advanced: true\n }\n ]\n};\n\nBuilder.registerComponent(OrderSummary, OrderSummaryConfig);\n\nconst OrderSummaryToggleConfig = {\n name: \"Order Summary Toggle\",\n canHaveChildren: true,\n image:\n \"https://cdn.builder.io/api/v1/image/assets%2FYJIGb4i01jvw0SRdL5Bt%2F62750e75f4b643bdbc747c882e46e77f?width=24\",\n inputs: []\n};\n\nBuilder.registerComponent(\n withChildren(OrderSummaryToggle),\n OrderSummaryToggleConfig\n);\n","import { Builder } from \"@builder.io/react\";\nimport loadable from \"@loadable/component\";\n\nconst StampedPlugin = loadable(() => import(\"./StampedPlugin\"));\n\nBuilder.registerComponent(StampedPlugin, {\n name: \"Stamped Plugin\",\n // Optionally give a custom icon (image url - ideally a black on transparent bg svg or png)\n image:\n \"https://cdn.builder.io/api/v1/image/assets%2FYJIGb4i01jvw0SRdL5Bt%2F62750e75f4b643bdbc747c882e46e77f?width=24\",\n inputs: [\n {\n name: \"publicAPIKey\",\n type: \"string\",\n defaultValue: \"\"\n },\n {\n name: \"storeUrl\",\n type: \"string\",\n defaultValue: \"\"\n },\n {\n name: \"productId\",\n type: \"string\",\n defaultValue: \"\"\n },\n {\n name: \"productName\",\n type: \"string\",\n defaultValue: \"\"\n },\n {\n name: \"productUrl\",\n type: \"string\",\n defaultValue: \"\"\n },\n {\n name: \"productImage\",\n type: \"string\",\n defaultValue: \"\"\n },\n {\n name: \"productDescription\",\n type: \"string\",\n defaultValue: \"\"\n },\n {\n name: \"productSku\",\n type: \"string\",\n defaultValue: \"\"\n }\n ]\n});\n","import { Builder, withChildren } from \"@builder.io/react\";\nimport loadable from \"@loadable/component\";\n\nconst Timer = loadable(() => import(\"./Timer\"));\n\nconst TimerConfig = {\n name: \"Timer\",\n image:\n \"https://cdn.builder.io/api/v1/image/assets%2FYJIGb4i01jvw0SRdL5Bt%2F62750e75f4b643bdbc747c882e46e77f?width=24\",\n canHaveChildren: true,\n // static: true,\n // noWrap: true,\n // hideFromInsertMenu: true,\n inputs: [\n {\n name: \"display\",\n type: \"string\",\n enum: [\n \"default\",\n \"minutes\",\n \"seconds\",\n \"default-with-hours\",\n \"default-with-days\"\n ],\n defaultValue: \"default\"\n },\n {\n name: \"initialDays\",\n type: \"number\",\n defaultValue: \"00\",\n advanced: true\n },\n {\n name: \"initialHours\",\n type: \"number\",\n defaultValue: \"00\",\n advanced: true\n },\n {\n name: \"initialMinutes\",\n type: \"number\",\n defaultValue: \"00\",\n advanced: true\n },\n {\n name: \"initialSeconds\",\n type: \"number\",\n defaultValue: \"00\",\n advanced: true\n }\n ]\n};\n\nBuilder.registerComponent(withChildren(Timer), TimerConfig);\n","import React from \"react\";\nimport loadable from \"@loadable/component\";\n\nconst ToggleContainerV1 = loadable(() => import(\"./ToggleContainerV1\"));\nconst ToggleContainerV2 = loadable(() => import(\"./ToggleContainerV2\"));\n\nconst ToggleContainer = props => {\n const { version } = props;\n switch (version) {\n case \"version2\":\n return ;\n default:\n case \"version1\":\n return ;\n }\n};\n\nexport default ToggleContainer;\n","import { Builder, withChildren } from \"@builder.io/react\";\nimport loadable from \"@loadable/component\";\n\nconst TrustpilotPlugin = loadable(() => import(\"./TrustpilotPlugin\"));\n\nconst TrustpilotPluginConfig = {\n name: \"Trustpilot Plugin\",\n image:\n \"https://cdn.builder.io/api/v1/image/assets%2FYJIGb4i01jvw0SRdL5Bt%2F62750e75f4b643bdbc747c882e46e77f?width=24\",\n canHaveChildren: true,\n // static: true,\n // noWrap: true,\n // hideFromInsertMenu: true,\n inputs: [\n {\n name: \"templateId\",\n type: \"string\",\n defaultValue: \"539ad60defb9600b94d7df2c\"\n },\n {\n name: \"businessUnitId\",\n type: \"string\",\n defaultValue: \"5c9df8263ff4c4000185ea05\"\n },\n {\n name: \"height\",\n type: \"string\",\n defaultValue: \"500px\"\n },\n {\n name: \"width\",\n type: \"string\",\n defaultValue: \"100%\"\n },\n {\n name: \"theme\",\n type: \"string\",\n enum: [\"light\", \"dark\"],\n defaultValue: \"light\"\n },\n {\n name: \"tags\",\n type: \"string\",\n defaultValue: \"PBC\"\n },\n {\n name: \"stars\",\n type: \"string\",\n defaultValue: \"4,5\"\n }\n ]\n};\n\nBuilder.registerComponent(\n withChildren(TrustpilotPlugin),\n TrustpilotPluginConfig\n);\n","import { Builder, withChildren } from \"@builder.io/react\";\nimport loadable from \"@loadable/component\";\n\nconst UpsellImage = loadable(() => import(\"./UpsellImage\"));\n\nconst UpsellImageConfig = {\n name: \"Upsell Image\",\n image:\n \"https://cdn.builder.io/api/v1/image/assets%2FYJIGb4i01jvw0SRdL5Bt%2F62750e75f4b643bdbc747c882e46e77f?width=24\",\n canHaveChildren: true,\n // static: true,\n // noWrap: true,\n // hideFromInsertMenu: true,\n inputs: [\n {\n name: \"orderImage\",\n type: \"boolean\",\n defaultValue: false\n }\n ]\n};\n\nBuilder.registerComponent(withChildren(UpsellImage), UpsellImageConfig);\n","import { Builder, withChildren } from \"@builder.io/react\";\nimport loadable from \"@loadable/component\";\n\nconst UpsellText = loadable(() => import(\"./UpsellText\"));\n\nconst defaultText = `Use this template tags: [title] [display-title] [discounted-price] \n[price] [savings] [discount-rate] [product-name] [currency-symbol] [tax-label] [tax-amount] \n[customer-firstname] [charge-amount] [discounted-price-whole] [discounted-price-decimal] \n[discounted-price-per-tub]`;\n\nconst UpsellTextConfig = {\n name: \"Upsell Text\",\n image:\n \"https://cdn.builder.io/api/v1/image/assets%2FYJIGb4i01jvw0SRdL5Bt%2F62750e75f4b643bdbc747c882e46e77f?width=24\",\n canHaveChildren: true,\n noWrap: true,\n // static: true,\n // hideFromInsertMenu: true,\n inputs: [\n {\n name: \"items\",\n type: \"list\",\n defaultValue: [{ text: defaultText }],\n subFields: [\n {\n name: \"text\",\n type: \"richText\",\n defaultValue: defaultText,\n helperText: defaultText\n }\n ]\n },\n {\n name: \"defaultIndex\",\n type: \"number\",\n defaultValue: 0,\n advanced: true\n },\n {\n name: \"forceDefaultIndex\",\n type: \"boolean\",\n defaultValue: false,\n advanced: true\n },\n {\n name: \"removeParagraphMargins\",\n type: \"boolean\",\n defaultValue: false,\n advanced: true\n }\n ]\n};\n\nBuilder.registerComponent(withChildren(UpsellText), UpsellTextConfig);\n","import React from \"react\";\nimport loadable from \"@loadable/component\";\n\nconst Helmet = loadable(() => import(\"react-helmet\"));\nconst GlobalStyle = loadable(() => import(\"../theme/globalStyle\"));\n\nexport default function RootLayout(props) {\n return (\n \n \n \n \n \n \n \n \n \n \n {props.children}\n \n );\n}\n","import invariant from \"invariant\"; ////////////////////////////////////////////////////////////////////////////////\n// startsWith(string, search) - Check if `string` starts with `search`\n\nvar startsWith = function startsWith(string, search) {\n return string.substr(0, search.length) === search;\n}; ////////////////////////////////////////////////////////////////////////////////\n// pick(routes, uri)\n//\n// Ranks and picks the best route to match. Each segment gets the highest\n// amount of points, then the type of segment gets an additional amount of\n// points where\n//\n// static > dynamic > splat > root\n//\n// This way we don't have to worry about the order of our routes, let the\n// computers do it.\n//\n// A route looks like this\n//\n// { path, default, value }\n//\n// And a returned match looks like:\n//\n// { route, params, uri }\n//\n// I know, I should use TypeScript not comments for these types.\n\n\nvar pick = function pick(routes, uri) {\n var match = void 0;\n var default_ = void 0;\n\n var _uri$split = uri.split(\"?\"),\n uriPathname = _uri$split[0];\n\n var uriSegments = segmentize(uriPathname);\n var isRootUri = uriSegments[0] === \"\";\n var ranked = rankRoutes(routes);\n\n for (var i = 0, l = ranked.length; i < l; i++) {\n var missed = false;\n var route = ranked[i].route;\n\n if (route.default) {\n default_ = {\n route: route,\n params: {},\n uri: uri\n };\n continue;\n }\n\n var routeSegments = segmentize(route.path);\n var params = {};\n var max = Math.max(uriSegments.length, routeSegments.length);\n var index = 0;\n\n for (; index < max; index++) {\n var routeSegment = routeSegments[index];\n var uriSegment = uriSegments[index];\n\n if (isSplat(routeSegment)) {\n // Hit a splat, just grab the rest, and return a match\n // uri: /files/documents/work\n // route: /files/*\n var param = routeSegment.slice(1) || \"*\";\n params[param] = uriSegments.slice(index).map(decodeURIComponent).join(\"/\");\n break;\n }\n\n if (uriSegment === undefined) {\n // URI is shorter than the route, no match\n // uri: /users\n // route: /users/:userId\n missed = true;\n break;\n }\n\n var dynamicMatch = paramRe.exec(routeSegment);\n\n if (dynamicMatch && !isRootUri) {\n var matchIsNotReserved = reservedNames.indexOf(dynamicMatch[1]) === -1;\n !matchIsNotReserved ? process.env.NODE_ENV !== \"production\" ? invariant(false, \" dynamic segment \\\"\" + dynamicMatch[1] + \"\\\" is a reserved name. Please use a different name in path \\\"\" + route.path + \"\\\".\") : invariant(false) : void 0;\n var value = decodeURIComponent(uriSegment);\n params[dynamicMatch[1]] = value;\n } else if (routeSegment !== uriSegment) {\n // Current segments don't match, not dynamic, not splat, so no match\n // uri: /users/123/settings\n // route: /users/:id/profile\n missed = true;\n break;\n }\n }\n\n if (!missed) {\n match = {\n route: route,\n params: params,\n uri: \"/\" + uriSegments.slice(0, index).join(\"/\")\n };\n break;\n }\n }\n\n return match || default_ || null;\n}; ////////////////////////////////////////////////////////////////////////////////\n// match(path, uri) - Matches just one path to a uri, also lol\n\n\nvar match = function match(path, uri) {\n return pick([{\n path: path\n }], uri);\n}; ////////////////////////////////////////////////////////////////////////////////\n// resolve(to, basepath)\n//\n// Resolves URIs as though every path is a directory, no files. Relative URIs\n// in the browser can feel awkward because not only can you be \"in a directory\"\n// you can be \"at a file\", too. For example\n//\n// browserSpecResolve('foo', '/bar/') => /bar/foo\n// browserSpecResolve('foo', '/bar') => /foo\n//\n// But on the command line of a file system, it's not as complicated, you can't\n// `cd` from a file, only directories. This way, links have to know less about\n// their current path. To go deeper you can do this:\n//\n// \n// // instead of\n// \n//\n// Just like `cd`, if you want to go deeper from the command line, you do this:\n//\n// cd deeper\n// # not\n// cd $(pwd)/deeper\n//\n// By treating every path as a directory, linking to relative paths should\n// require less contextual information and (fingers crossed) be more intuitive.\n\n\nvar resolve = function resolve(to, base) {\n // /foo/bar, /baz/qux => /foo/bar\n if (startsWith(to, \"/\")) {\n return to;\n }\n\n var _to$split = to.split(\"?\"),\n toPathname = _to$split[0],\n toQuery = _to$split[1];\n\n var _base$split = base.split(\"?\"),\n basePathname = _base$split[0];\n\n var toSegments = segmentize(toPathname);\n var baseSegments = segmentize(basePathname); // ?a=b, /users?b=c => /users?a=b\n\n if (toSegments[0] === \"\") {\n return addQuery(basePathname, toQuery);\n } // profile, /users/789 => /users/789/profile\n\n\n if (!startsWith(toSegments[0], \".\")) {\n var pathname = baseSegments.concat(toSegments).join(\"/\");\n return addQuery((basePathname === \"/\" ? \"\" : \"/\") + pathname, toQuery);\n } // ./ /users/123 => /users/123\n // ../ /users/123 => /users\n // ../.. /users/123 => /\n // ../../one /a/b/c/d => /a/b/one\n // .././one /a/b/c/d => /a/b/c/one\n\n\n var allSegments = baseSegments.concat(toSegments);\n var segments = [];\n\n for (var i = 0, l = allSegments.length; i < l; i++) {\n var segment = allSegments[i];\n if (segment === \"..\") segments.pop();else if (segment !== \".\") segments.push(segment);\n }\n\n return addQuery(\"/\" + segments.join(\"/\"), toQuery);\n}; ////////////////////////////////////////////////////////////////////////////////\n// insertParams(path, params)\n\n\nvar insertParams = function insertParams(path, params) {\n var _path$split = path.split(\"?\"),\n pathBase = _path$split[0],\n _path$split$ = _path$split[1],\n query = _path$split$ === undefined ? \"\" : _path$split$;\n\n var segments = segmentize(pathBase);\n var constructedPath = \"/\" + segments.map(function (segment) {\n var match = paramRe.exec(segment);\n return match ? params[match[1]] : segment;\n }).join(\"/\");\n var _params$location = params.location;\n _params$location = _params$location === undefined ? {} : _params$location;\n var _params$location$sear = _params$location.search,\n search = _params$location$sear === undefined ? \"\" : _params$location$sear;\n var searchSplit = search.split(\"?\")[1] || \"\";\n constructedPath = addQuery(constructedPath, query, searchSplit);\n return constructedPath;\n};\n\nvar validateRedirect = function validateRedirect(from, to) {\n var filter = function filter(segment) {\n return isDynamic(segment);\n };\n\n var fromString = segmentize(from).filter(filter).sort().join(\"/\");\n var toString = segmentize(to).filter(filter).sort().join(\"/\");\n return fromString === toString;\n}; ////////////////////////////////////////////////////////////////////////////////\n// Junk\n\n\nvar paramRe = /^:(.+)/;\nvar SEGMENT_POINTS = 4;\nvar STATIC_POINTS = 3;\nvar DYNAMIC_POINTS = 2;\nvar SPLAT_PENALTY = 1;\nvar ROOT_POINTS = 1;\n\nvar isRootSegment = function isRootSegment(segment) {\n return segment === \"\";\n};\n\nvar isDynamic = function isDynamic(segment) {\n return paramRe.test(segment);\n};\n\nvar isSplat = function isSplat(segment) {\n return segment && segment[0] === \"*\";\n};\n\nvar rankRoute = function rankRoute(route, index) {\n var score = route.default ? 0 : segmentize(route.path).reduce(function (score, segment) {\n score += SEGMENT_POINTS;\n if (isRootSegment(segment)) score += ROOT_POINTS;else if (isDynamic(segment)) score += DYNAMIC_POINTS;else if (isSplat(segment)) score -= SEGMENT_POINTS + SPLAT_PENALTY;else score += STATIC_POINTS;\n return score;\n }, 0);\n return {\n route: route,\n score: score,\n index: index\n };\n};\n\nvar rankRoutes = function rankRoutes(routes) {\n return routes.map(rankRoute).sort(function (a, b) {\n return a.score < b.score ? 1 : a.score > b.score ? -1 : a.index - b.index;\n });\n};\n\nvar segmentize = function segmentize(uri) {\n return uri // strip starting/ending slashes\n .replace(/(^\\/+|\\/+$)/g, \"\").split(\"/\");\n};\n\nvar addQuery = function addQuery(pathname) {\n for (var _len = arguments.length, query = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n query[_key - 1] = arguments[_key];\n }\n\n query = query.filter(function (q) {\n return q && q.length > 0;\n });\n return pathname + (query && query.length > 0 ? \"?\" + query.join(\"&\") : \"\");\n};\n\nvar reservedNames = [\"uri\", \"path\"];\n/**\n * Shallow compares two objects.\n * @param {Object} obj1 The first object to compare.\n * @param {Object} obj2 The second object to compare.\n */\n\nvar shallowCompare = function shallowCompare(obj1, obj2) {\n var obj1Keys = Object.keys(obj1);\n return obj1Keys.length === Object.keys(obj2).length && obj1Keys.every(function (key) {\n return obj2.hasOwnProperty(key) && obj1[key] === obj2[key];\n });\n}; ////////////////////////////////////////////////////////////////////////////////\n\n\nexport { startsWith, pick, match, resolve, insertParams, validateRedirect, shallowCompare };","var _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\nvar getLocation = function getLocation(source) {\n var _source$location = source.location,\n search = _source$location.search,\n hash = _source$location.hash,\n href = _source$location.href,\n origin = _source$location.origin,\n protocol = _source$location.protocol,\n host = _source$location.host,\n hostname = _source$location.hostname,\n port = _source$location.port;\n var pathname = source.location.pathname;\n\n if (!pathname && href && canUseDOM) {\n var url = new URL(href);\n pathname = url.pathname;\n }\n\n return {\n pathname: encodeURI(decodeURI(pathname)),\n search: search,\n hash: hash,\n href: href,\n origin: origin,\n protocol: protocol,\n host: host,\n hostname: hostname,\n port: port,\n state: source.history.state,\n key: source.history.state && source.history.state.key || \"initial\"\n };\n};\n\nvar createHistory = function createHistory(source, options) {\n var listeners = [];\n var location = getLocation(source);\n var transitioning = false;\n\n var resolveTransition = function resolveTransition() {};\n\n return {\n get location() {\n return location;\n },\n\n get transitioning() {\n return transitioning;\n },\n\n _onTransitionComplete: function _onTransitionComplete() {\n transitioning = false;\n resolveTransition();\n },\n listen: function listen(listener) {\n listeners.push(listener);\n\n var popstateListener = function popstateListener() {\n location = getLocation(source);\n listener({\n location: location,\n action: \"POP\"\n });\n };\n\n source.addEventListener(\"popstate\", popstateListener);\n return function () {\n source.removeEventListener(\"popstate\", popstateListener);\n listeners = listeners.filter(function (fn) {\n return fn !== listener;\n });\n };\n },\n navigate: function navigate(to) {\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n state = _ref.state,\n _ref$replace = _ref.replace,\n replace = _ref$replace === undefined ? false : _ref$replace;\n\n if (typeof to === \"number\") {\n source.history.go(to);\n } else {\n state = _extends({}, state, {\n key: Date.now() + \"\"\n }); // try...catch iOS Safari limits to 100 pushState calls\n\n try {\n if (transitioning || replace) {\n source.history.replaceState(state, null, to);\n } else {\n source.history.pushState(state, null, to);\n }\n } catch (e) {\n source.location[replace ? \"replace\" : \"assign\"](to);\n }\n }\n\n location = getLocation(source);\n transitioning = true;\n var transition = new Promise(function (res) {\n return resolveTransition = res;\n });\n listeners.forEach(function (listener) {\n return listener({\n location: location,\n action: \"PUSH\"\n });\n });\n return transition;\n }\n };\n}; ////////////////////////////////////////////////////////////////////////////////\n// Stores history entries in memory for testing or other platforms like Native\n\n\nvar createMemorySource = function createMemorySource() {\n var initialPath = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"/\";\n var searchIndex = initialPath.indexOf(\"?\");\n var initialLocation = {\n pathname: searchIndex > -1 ? initialPath.substr(0, searchIndex) : initialPath,\n search: searchIndex > -1 ? initialPath.substr(searchIndex) : \"\"\n };\n var index = 0;\n var stack = [initialLocation];\n var states = [null];\n return {\n get location() {\n return stack[index];\n },\n\n addEventListener: function addEventListener(name, fn) {},\n removeEventListener: function removeEventListener(name, fn) {},\n history: {\n get entries() {\n return stack;\n },\n\n get index() {\n return index;\n },\n\n get state() {\n return states[index];\n },\n\n pushState: function pushState(state, _, uri) {\n var _uri$split = uri.split(\"?\"),\n pathname = _uri$split[0],\n _uri$split$ = _uri$split[1],\n search = _uri$split$ === undefined ? \"\" : _uri$split$;\n\n index++;\n stack.push({\n pathname: pathname,\n search: search.length ? \"?\" + search : search\n });\n states.push(state);\n },\n replaceState: function replaceState(state, _, uri) {\n var _uri$split2 = uri.split(\"?\"),\n pathname = _uri$split2[0],\n _uri$split2$ = _uri$split2[1],\n search = _uri$split2$ === undefined ? \"\" : _uri$split2$;\n\n stack[index] = {\n pathname: pathname,\n search: search\n };\n states[index] = state;\n },\n go: function go(to) {\n var newIndex = index + to;\n\n if (newIndex < 0 || newIndex > states.length - 1) {\n return;\n }\n\n index = newIndex;\n }\n }\n };\n}; ////////////////////////////////////////////////////////////////////////////////\n// global history - uses window.history as the source if available, otherwise a\n// memory history\n\n\nvar canUseDOM = !!(typeof window !== \"undefined\" && window.document && window.document.createElement);\n\nvar getSource = function getSource() {\n return canUseDOM ? window : createMemorySource();\n};\n\nvar globalHistory = createHistory(getSource());\nvar navigate = globalHistory.navigate; ////////////////////////////////////////////////////////////////////////////////\n\nexport { globalHistory, navigate, createHistory, createMemorySource };","var _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\nfunction _objectWithoutProperties(obj, keys) {\n var target = {};\n\n for (var i in obj) {\n if (keys.indexOf(i) >= 0) continue;\n if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n target[i] = obj[i];\n }\n\n return target;\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n/* eslint-disable jsx-a11y/anchor-has-content */\n\n\nimport React, { useContext, createContext } from \"react\";\nimport invariant from \"invariant\";\nimport { polyfill } from \"react-lifecycles-compat\";\nimport { startsWith, pick, resolve, match, insertParams, validateRedirect, shallowCompare } from \"./lib/utils\";\nimport { globalHistory, navigate, createHistory, createMemorySource } from \"./lib/history\"; ////////////////////////////////////////////////////////////////////////////////\n\nvar createNamedContext = function createNamedContext(name, defaultValue) {\n var Ctx = createContext(defaultValue);\n Ctx.displayName = name;\n return Ctx;\n}; ////////////////////////////////////////////////////////////////////////////////\n// Location Context/Provider\n\n\nvar LocationContext = createNamedContext(\"Location\"); // sets up a listener if there isn't one already so apps don't need to be\n// wrapped in some top level provider\n\nvar Location = function Location(_ref) {\n var children = _ref.children;\n return React.createElement(LocationContext.Consumer, null, function (context) {\n return context ? children(context) : React.createElement(LocationProvider, null, children);\n });\n};\n\nvar LocationProvider = function (_React$Component) {\n _inherits(LocationProvider, _React$Component);\n\n function LocationProvider() {\n var _temp, _this, _ret;\n\n _classCallCheck(this, LocationProvider);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.state = {\n context: _this.getContext(),\n refs: {\n unlisten: null\n }\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n LocationProvider.prototype.getContext = function getContext() {\n var _props$history = this.props.history,\n navigate = _props$history.navigate,\n location = _props$history.location;\n return {\n navigate: navigate,\n location: location\n };\n };\n\n LocationProvider.prototype.componentDidCatch = function componentDidCatch(error, info) {\n if (isRedirect(error)) {\n var _navigate = this.props.history.navigate;\n\n _navigate(error.uri, {\n replace: true\n });\n } else {\n throw error;\n }\n };\n\n LocationProvider.prototype.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {\n if (prevState.context.location !== this.state.context.location) {\n this.props.history._onTransitionComplete();\n }\n };\n\n LocationProvider.prototype.componentDidMount = function componentDidMount() {\n var _this2 = this;\n\n var refs = this.state.refs,\n history = this.props.history;\n\n history._onTransitionComplete();\n\n refs.unlisten = history.listen(function () {\n Promise.resolve().then(function () {\n // TODO: replace rAF with react deferred update API when it's ready https://github.com/facebook/react/issues/13306\n requestAnimationFrame(function () {\n if (!_this2.unmounted) {\n _this2.setState(function () {\n return {\n context: _this2.getContext()\n };\n });\n }\n });\n });\n });\n };\n\n LocationProvider.prototype.componentWillUnmount = function componentWillUnmount() {\n var refs = this.state.refs;\n this.unmounted = true;\n refs.unlisten();\n };\n\n LocationProvider.prototype.render = function render() {\n var context = this.state.context,\n children = this.props.children;\n return React.createElement(LocationContext.Provider, {\n value: context\n }, typeof children === \"function\" ? children(context) : children || null);\n };\n\n return LocationProvider;\n}(React.Component); ////////////////////////////////////////////////////////////////////////////////\n\n\nLocationProvider.defaultProps = {\n history: globalHistory\n};\nprocess.env.NODE_ENV !== \"production\" ? void 0 : void 0;\n\nvar ServerLocation = function ServerLocation(_ref2) {\n var url = _ref2.url,\n children = _ref2.children;\n var searchIndex = url.indexOf(\"?\");\n var searchExists = searchIndex > -1;\n var pathname = void 0;\n var search = \"\";\n var hash = \"\";\n\n if (searchExists) {\n pathname = url.substring(0, searchIndex);\n search = url.substring(searchIndex);\n } else {\n pathname = url;\n }\n\n return React.createElement(LocationContext.Provider, {\n value: {\n location: {\n pathname: pathname,\n search: search,\n hash: hash\n },\n navigate: function navigate() {\n throw new Error(\"You can't call navigate on the server.\");\n }\n }\n }, children);\n}; ////////////////////////////////////////////////////////////////////////////////\n// Sets baseuri and basepath for nested routers and links\n\n\nvar BaseContext = createNamedContext(\"Base\", {\n baseuri: \"/\",\n basepath: \"/\",\n navigate: globalHistory.navigate\n}); ////////////////////////////////////////////////////////////////////////////////\n// The main event, welcome to the show everybody.\n\nvar Router = function Router(props) {\n return React.createElement(BaseContext.Consumer, null, function (baseContext) {\n return React.createElement(Location, null, function (locationContext) {\n return React.createElement(RouterImpl, _extends({}, baseContext, locationContext, props));\n });\n });\n};\n\nvar RouterImpl = function (_React$PureComponent) {\n _inherits(RouterImpl, _React$PureComponent);\n\n function RouterImpl() {\n _classCallCheck(this, RouterImpl);\n\n return _possibleConstructorReturn(this, _React$PureComponent.apply(this, arguments));\n }\n\n RouterImpl.prototype.render = function render() {\n var _props = this.props,\n location = _props.location,\n _navigate2 = _props.navigate,\n basepath = _props.basepath,\n primary = _props.primary,\n children = _props.children,\n baseuri = _props.baseuri,\n _props$component = _props.component,\n component = _props$component === undefined ? \"div\" : _props$component,\n domProps = _objectWithoutProperties(_props, [\"location\", \"navigate\", \"basepath\", \"primary\", \"children\", \"baseuri\", \"component\"]);\n\n var routes = React.Children.toArray(children).reduce(function (array, child) {\n var routes = createRoute(basepath)(child);\n return array.concat(routes);\n }, []);\n var pathname = location.pathname;\n var match = pick(routes, pathname);\n\n if (match) {\n var params = match.params,\n uri = match.uri,\n route = match.route,\n element = match.route.value; // remove the /* from the end for child routes relative paths\n\n basepath = route.default ? basepath : route.path.replace(/\\*$/, \"\");\n\n var props = _extends({}, params, {\n uri: uri,\n location: location,\n navigate: function navigate(to, options) {\n return _navigate2(resolve(to, uri), options);\n }\n });\n\n var clone = React.cloneElement(element, props, element.props.children ? React.createElement(Router, {\n location: location,\n primary: primary\n }, element.props.children) : undefined); // using 'div' for < 16.3 support\n\n var FocusWrapper = primary ? FocusHandler : component; // don't pass any props to 'div'\n\n var wrapperProps = primary ? _extends({\n uri: uri,\n location: location,\n component: component\n }, domProps) : domProps;\n return React.createElement(BaseContext.Provider, {\n value: {\n baseuri: uri,\n basepath: basepath,\n navigate: props.navigate\n }\n }, React.createElement(FocusWrapper, wrapperProps, clone));\n } else {\n // Not sure if we want this, would require index routes at every level\n // warning(\n // false,\n // `\\n\\nNothing matched:\\n\\t${\n // location.pathname\n // }\\n\\nPaths checked: \\n\\t${routes\n // .map(route => route.path)\n // .join(\n // \"\\n\\t\"\n // )}\\n\\nTo get rid of this warning, add a default NotFound component as child of Router:\n // \\n\\tlet NotFound = () =>
Not Found!
\n // \\n\\t\\n\\t \\n\\t {/* ... */}\\n\\t`\n // );\n return null;\n }\n };\n\n return RouterImpl;\n}(React.PureComponent);\n\nRouterImpl.defaultProps = {\n primary: true\n};\nvar FocusContext = createNamedContext(\"Focus\");\n\nvar FocusHandler = function FocusHandler(_ref3) {\n var uri = _ref3.uri,\n location = _ref3.location,\n component = _ref3.component,\n domProps = _objectWithoutProperties(_ref3, [\"uri\", \"location\", \"component\"]);\n\n return React.createElement(FocusContext.Consumer, null, function (requestFocus) {\n return React.createElement(FocusHandlerImpl, _extends({}, domProps, {\n component: component,\n requestFocus: requestFocus,\n uri: uri,\n location: location\n }));\n });\n}; // don't focus on initial render\n\n\nvar initialRender = true;\nvar focusHandlerCount = 0;\n\nvar FocusHandlerImpl = function (_React$Component2) {\n _inherits(FocusHandlerImpl, _React$Component2);\n\n function FocusHandlerImpl() {\n var _temp2, _this4, _ret2;\n\n _classCallCheck(this, FocusHandlerImpl);\n\n for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return _ret2 = (_temp2 = (_this4 = _possibleConstructorReturn(this, _React$Component2.call.apply(_React$Component2, [this].concat(args))), _this4), _this4.state = {}, _this4.requestFocus = function (node) {\n if (!_this4.state.shouldFocus && node) {\n node.focus();\n }\n }, _temp2), _possibleConstructorReturn(_this4, _ret2);\n }\n\n FocusHandlerImpl.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, prevState) {\n var initial = prevState.uri == null;\n\n if (initial) {\n return _extends({\n shouldFocus: true\n }, nextProps);\n } else {\n var myURIChanged = nextProps.uri !== prevState.uri;\n var navigatedUpToMe = prevState.location.pathname !== nextProps.location.pathname && nextProps.location.pathname === nextProps.uri;\n return _extends({\n shouldFocus: myURIChanged || navigatedUpToMe\n }, nextProps);\n }\n };\n\n FocusHandlerImpl.prototype.componentDidMount = function componentDidMount() {\n focusHandlerCount++;\n this.focus();\n };\n\n FocusHandlerImpl.prototype.componentWillUnmount = function componentWillUnmount() {\n focusHandlerCount--;\n\n if (focusHandlerCount === 0) {\n initialRender = true;\n }\n };\n\n FocusHandlerImpl.prototype.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {\n if (prevProps.location !== this.props.location && this.state.shouldFocus) {\n this.focus();\n }\n };\n\n FocusHandlerImpl.prototype.focus = function focus() {\n if (process.env.NODE_ENV === \"test\") {\n // getting cannot read property focus of null in the tests\n // and that bit of global `initialRender` state causes problems\n // should probably figure it out!\n return;\n }\n\n var requestFocus = this.props.requestFocus;\n\n if (requestFocus) {\n requestFocus(this.node);\n } else {\n if (initialRender) {\n initialRender = false;\n } else if (this.node) {\n // React polyfills [autofocus] and it fires earlier than cDM,\n // so we were stealing focus away, this line prevents that.\n if (!this.node.contains(document.activeElement)) {\n this.node.focus();\n }\n }\n }\n };\n\n FocusHandlerImpl.prototype.render = function render() {\n var _this5 = this;\n\n var _props2 = this.props,\n children = _props2.children,\n style = _props2.style,\n requestFocus = _props2.requestFocus,\n _props2$component = _props2.component,\n Comp = _props2$component === undefined ? \"div\" : _props2$component,\n uri = _props2.uri,\n location = _props2.location,\n domProps = _objectWithoutProperties(_props2, [\"children\", \"style\", \"requestFocus\", \"component\", \"uri\", \"location\"]);\n\n return React.createElement(Comp, _extends({\n style: _extends({\n outline: \"none\"\n }, style),\n tabIndex: \"-1\",\n ref: function ref(n) {\n return _this5.node = n;\n }\n }, domProps), React.createElement(FocusContext.Provider, {\n value: this.requestFocus\n }, this.props.children));\n };\n\n return FocusHandlerImpl;\n}(React.Component);\n\npolyfill(FocusHandlerImpl);\n\nvar k = function k() {}; ////////////////////////////////////////////////////////////////////////////////\n\n\nvar forwardRef = React.forwardRef;\n\nif (typeof forwardRef === \"undefined\") {\n forwardRef = function forwardRef(C) {\n return C;\n };\n}\n\nvar Link = forwardRef(function (_ref4, ref) {\n var innerRef = _ref4.innerRef,\n props = _objectWithoutProperties(_ref4, [\"innerRef\"]);\n\n return React.createElement(BaseContext.Consumer, null, function (_ref5) {\n var basepath = _ref5.basepath,\n baseuri = _ref5.baseuri;\n return React.createElement(Location, null, function (_ref6) {\n var location = _ref6.location,\n navigate = _ref6.navigate;\n\n var to = props.to,\n state = props.state,\n replace = props.replace,\n _props$getProps = props.getProps,\n getProps = _props$getProps === undefined ? k : _props$getProps,\n anchorProps = _objectWithoutProperties(props, [\"to\", \"state\", \"replace\", \"getProps\"]);\n\n var href = resolve(to, baseuri);\n var encodedHref = encodeURI(href);\n var isCurrent = location.pathname === encodedHref;\n var isPartiallyCurrent = startsWith(location.pathname, encodedHref);\n return React.createElement(\"a\", _extends({\n ref: ref || innerRef,\n \"aria-current\": isCurrent ? \"page\" : undefined\n }, anchorProps, getProps({\n isCurrent: isCurrent,\n isPartiallyCurrent: isPartiallyCurrent,\n href: href,\n location: location\n }), {\n href: href,\n onClick: function onClick(event) {\n if (anchorProps.onClick) anchorProps.onClick(event);\n\n if (shouldNavigate(event)) {\n event.preventDefault();\n var shouldReplace = replace;\n\n if (typeof replace !== \"boolean\" && isCurrent) {\n var _location$state = _extends({}, location.state),\n key = _location$state.key,\n restState = _objectWithoutProperties(_location$state, [\"key\"]);\n\n shouldReplace = shallowCompare(_extends({}, state), restState);\n }\n\n navigate(href, {\n state: state,\n replace: shouldReplace\n });\n }\n }\n }));\n });\n });\n});\nLink.displayName = \"Link\";\nprocess.env.NODE_ENV !== \"production\" ? void 0 : void 0; ////////////////////////////////////////////////////////////////////////////////\n\nfunction RedirectRequest(uri) {\n this.uri = uri;\n}\n\nvar isRedirect = function isRedirect(o) {\n return o instanceof RedirectRequest;\n};\n\nvar redirectTo = function redirectTo(to) {\n throw new RedirectRequest(to);\n};\n\nvar RedirectImpl = function (_React$Component3) {\n _inherits(RedirectImpl, _React$Component3);\n\n function RedirectImpl() {\n _classCallCheck(this, RedirectImpl);\n\n return _possibleConstructorReturn(this, _React$Component3.apply(this, arguments));\n } // Support React < 16 with this hook\n\n\n RedirectImpl.prototype.componentDidMount = function componentDidMount() {\n var _props3 = this.props,\n navigate = _props3.navigate,\n to = _props3.to,\n from = _props3.from,\n _props3$replace = _props3.replace,\n replace = _props3$replace === undefined ? true : _props3$replace,\n state = _props3.state,\n noThrow = _props3.noThrow,\n baseuri = _props3.baseuri,\n props = _objectWithoutProperties(_props3, [\"navigate\", \"to\", \"from\", \"replace\", \"state\", \"noThrow\", \"baseuri\"]);\n\n Promise.resolve().then(function () {\n var resolvedTo = resolve(to, baseuri);\n navigate(insertParams(resolvedTo, props), {\n replace: replace,\n state: state\n });\n });\n };\n\n RedirectImpl.prototype.render = function render() {\n var _props4 = this.props,\n navigate = _props4.navigate,\n to = _props4.to,\n from = _props4.from,\n replace = _props4.replace,\n state = _props4.state,\n noThrow = _props4.noThrow,\n baseuri = _props4.baseuri,\n props = _objectWithoutProperties(_props4, [\"navigate\", \"to\", \"from\", \"replace\", \"state\", \"noThrow\", \"baseuri\"]);\n\n var resolvedTo = resolve(to, baseuri);\n if (!noThrow) redirectTo(insertParams(resolvedTo, props));\n return null;\n };\n\n return RedirectImpl;\n}(React.Component);\n\nvar Redirect = function Redirect(props) {\n return React.createElement(BaseContext.Consumer, null, function (_ref7) {\n var baseuri = _ref7.baseuri;\n return React.createElement(Location, null, function (locationContext) {\n return React.createElement(RedirectImpl, _extends({}, locationContext, {\n baseuri: baseuri\n }, props));\n });\n });\n};\n\nprocess.env.NODE_ENV !== \"production\" ? void 0 : void 0; ////////////////////////////////////////////////////////////////////////////////\n\nvar Match = function Match(_ref8) {\n var path = _ref8.path,\n children = _ref8.children;\n return React.createElement(BaseContext.Consumer, null, function (_ref9) {\n var baseuri = _ref9.baseuri;\n return React.createElement(Location, null, function (_ref10) {\n var navigate = _ref10.navigate,\n location = _ref10.location;\n var resolvedPath = resolve(path, baseuri);\n var result = match(resolvedPath, location.pathname);\n return children({\n navigate: navigate,\n location: location,\n match: result ? _extends({}, result.params, {\n uri: result.uri,\n path: path\n }) : null\n });\n });\n });\n}; ////////////////////////////////////////////////////////////////////////////////\n// Hooks\n\n\nvar useLocation = function useLocation() {\n var context = useContext(LocationContext);\n\n if (!context) {\n throw new Error(\"useLocation hook was used but a LocationContext.Provider was not found in the parent tree. Make sure this is used in a component that is a child of Router\");\n }\n\n return context.location;\n};\n\nvar useNavigate = function useNavigate() {\n var context = useContext(BaseContext);\n\n if (!context) {\n throw new Error(\"useNavigate hook was used but a BaseContext.Provider was not found in the parent tree. Make sure this is used in a component that is a child of Router\");\n }\n\n return context.navigate;\n};\n\nvar useParams = function useParams() {\n var context = useContext(BaseContext);\n\n if (!context) {\n throw new Error(\"useParams hook was used but a LocationContext.Provider was not found in the parent tree. Make sure this is used in a component that is a child of Router\");\n }\n\n var location = useLocation();\n var results = match(context.basepath, location.pathname);\n return results ? results.params : null;\n};\n\nvar useMatch = function useMatch(path) {\n if (!path) {\n throw new Error(\"useMatch(path: string) requires an argument of a string to match against\");\n }\n\n var context = useContext(BaseContext);\n\n if (!context) {\n throw new Error(\"useMatch hook was used but a LocationContext.Provider was not found in the parent tree. Make sure this is used in a component that is a child of Router\");\n }\n\n var location = useLocation();\n var resolvedPath = resolve(path, context.baseuri);\n var result = match(resolvedPath, location.pathname);\n return result ? _extends({}, result.params, {\n uri: result.uri,\n path: path\n }) : null;\n}; ////////////////////////////////////////////////////////////////////////////////\n// Junk\n\n\nvar stripSlashes = function stripSlashes(str) {\n return str.replace(/(^\\/+|\\/+$)/g, \"\");\n};\n\nvar createRoute = function createRoute(basepath) {\n return function (element) {\n if (!element) {\n return null;\n }\n\n if (element.type === React.Fragment && element.props.children) {\n return React.Children.map(element.props.children, createRoute(basepath));\n }\n\n !(element.props.path || element.props.default || element.type === Redirect) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \": Children of must have a `path` or `default` prop, or be a ``. None found on element type `\" + element.type + \"`\") : invariant(false) : void 0;\n !!(element.type === Redirect && (!element.props.from || !element.props.to)) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \" requires both \\\"from\\\" and \\\"to\\\" props when inside a .\") : invariant(false) : void 0;\n !!(element.type === Redirect && !validateRedirect(element.props.from, element.props.to)) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \" has mismatched dynamic segments, ensure both paths have the exact same dynamic segments.\") : invariant(false) : void 0;\n\n if (element.props.default) {\n return {\n value: element,\n default: true\n };\n }\n\n var elementPath = element.type === Redirect ? element.props.from : element.props.path;\n var path = elementPath === \"/\" ? basepath : stripSlashes(basepath) + \"/\" + stripSlashes(elementPath);\n return {\n value: element,\n default: element.props.default,\n path: element.props.children ? stripSlashes(path) + \"/*\" : path\n };\n };\n};\n\nvar shouldNavigate = function shouldNavigate(event) {\n return !event.defaultPrevented && event.button === 0 && !(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}; ////////////////////////////////////////////////////////////////////////\n\n\nexport { Link, Location, LocationProvider, Match, Redirect, Router, ServerLocation, createHistory, createMemorySource, isRedirect, navigate, redirectTo, globalHistory, match as matchPath, useLocation, useNavigate, useParams, useMatch , BaseContext };","import { Builder, builder, Subscription, BehaviorSubject } from \"@builder.io/sdk\";\nexport { Builder, builder } from \"@builder.io/sdk\";\nimport { jsx, ClassNames, css } from \"@emotion/core\";\nimport React__default, { createElement, Fragment as Fragment$1, useContext } from \"react\";\nimport ReactDOM from \"react-dom\";\nimport hash from \"hash-sum\";\n\nvar version = \"1.1.47-9\",\n _a;\n\n\"undefined\" != typeof window && (null === (_a = window.parent) || void 0 === _a || _a.postMessage({\n type: \"builder.isReactSdk\",\n data: {\n value: !0,\n supportsPatchUpdates: \"v3\",\n priorVersion: version\n }\n}, \"*\"))\n/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n;\n\nvar _extendStatics = function extendStatics(e, t) {\n return (_extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (e, t) {\n e.__proto__ = t;\n } || function (e, t) {\n for (var n in t) {\n t.hasOwnProperty(n) && (e[n] = t[n]);\n }\n })(e, t);\n};\n\nfunction __extends(e, t) {\n function n() {\n this.constructor = e;\n }\n\n _extendStatics(e, t), e.prototype = null === t ? Object.create(t) : (n.prototype = t.prototype, new n());\n}\n\nvar _assign = function __assign() {\n return (_assign = Object.assign || function (e) {\n for (var t, n = 1, i = arguments.length; n < i; n++) {\n for (var r in t = arguments[n]) {\n Object.prototype.hasOwnProperty.call(t, r) && (e[r] = t[r]);\n }\n }\n\n return e;\n }).apply(this, arguments);\n};\n\nfunction __decorate(e, t, n, i) {\n var r,\n o = arguments.length,\n a = o < 3 ? t : null === i ? i = Object.getOwnPropertyDescriptor(t, n) : i;\n if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate) a = Reflect.decorate(e, t, n, i);else for (var s = e.length - 1; s >= 0; s--) {\n (r = e[s]) && (a = (o < 3 ? r(a) : o > 3 ? r(t, n, a) : r(t, n)) || a);\n }\n return o > 3 && a && Object.defineProperty(t, n, a), a;\n}\n\nfunction __metadata(e, t) {\n if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.metadata) return Reflect.metadata(e, t);\n}\n\nfunction __awaiter(e, t, n, i) {\n return new (n || (n = Promise))(function (r, o) {\n function a(e) {\n try {\n l(i.next(e));\n } catch (e) {\n o(e);\n }\n }\n\n function s(e) {\n try {\n l(i.throw(e));\n } catch (e) {\n o(e);\n }\n }\n\n function l(e) {\n e.done ? r(e.value) : new n(function (t) {\n t(e.value);\n }).then(a, s);\n }\n\n l((i = i.apply(e, t || [])).next());\n });\n}\n\nfunction __generator(e, t) {\n var n,\n i,\n r,\n o,\n a = {\n label: 0,\n sent: function sent() {\n if (1 & r[0]) throw r[1];\n return r[1];\n },\n trys: [],\n ops: []\n };\n return o = {\n next: s(0),\n throw: s(1),\n return: s(2)\n }, \"function\" == typeof Symbol && (o[Symbol.iterator] = function () {\n return this;\n }), o;\n\n function s(o) {\n return function (s) {\n return function (o) {\n if (n) throw new TypeError(\"Generator is already executing.\");\n\n for (; a;) {\n try {\n if (n = 1, i && (r = 2 & o[0] ? i.return : o[0] ? i.throw || ((r = i.return) && r.call(i), 0) : i.next) && !(r = r.call(i, o[1])).done) return r;\n\n switch (i = 0, r && (o = [2 & o[0], r.value]), o[0]) {\n case 0:\n case 1:\n r = o;\n break;\n\n case 4:\n return a.label++, {\n value: o[1],\n done: !1\n };\n\n case 5:\n a.label++, i = o[1], o = [0];\n continue;\n\n case 7:\n o = a.ops.pop(), a.trys.pop();\n continue;\n\n default:\n if (!(r = a.trys, (r = r.length > 0 && r[r.length - 1]) || 6 !== o[0] && 2 !== o[0])) {\n a = 0;\n continue;\n }\n\n if (3 === o[0] && (!r || o[1] > r[0] && o[1] < r[3])) {\n a.label = o[1];\n break;\n }\n\n if (6 === o[0] && a.label < r[1]) {\n a.label = r[1], r = o;\n break;\n }\n\n if (r && a.label < r[2]) {\n a.label = r[2], a.ops.push(o);\n break;\n }\n\n r[2] && a.ops.pop(), a.trys.pop();\n continue;\n }\n\n o = t.call(e, a);\n } catch (e) {\n o = [6, e], i = 0;\n } finally {\n n = r = 0;\n }\n }\n\n if (5 & o[0]) throw o[1];\n return {\n value: o[0] ? o[1] : void 0,\n done: !0\n };\n }([o, s]);\n };\n }\n}\n\nfunction __spreadArrays() {\n for (var e = 0, t = 0, n = arguments.length; t < n; t++) {\n e += arguments[t].length;\n }\n\n var i = Array(e),\n r = 0;\n\n for (t = 0; t < n; t++) {\n for (var o = arguments[t], a = 0, s = o.length; a < s; a++, r++) {\n i[r] = o[a];\n }\n }\n\n return i;\n}\n\nvar sizeNames = [\"xsmall\", \"small\", \"medium\", \"large\"],\n sizes = {\n xsmall: {\n min: 0,\n default: 0,\n max: 0\n },\n small: {\n min: 320,\n default: 321,\n max: 640\n },\n medium: {\n min: 641,\n default: 642,\n max: 991\n },\n large: {\n min: 990,\n default: 991,\n max: 1200\n },\n getWidthForSize: function getWidthForSize(e) {\n return this[e].default;\n },\n getSizeForWidth: function getSizeForWidth(e) {\n for (var t = 0, n = sizeNames; t < n.length; t++) {\n var i = n[t];\n if (e <= this[i].max) return i;\n }\n\n return \"large\";\n }\n},\n set = function set(e, t, n) {\n if (Object(e) !== e) return e;\n var i = Array.isArray(t) ? t : t.toString().match(/[^.[\\]]+/g);\n return i.slice(0, -1).reduce(function (e, t, n) {\n return Object(e[t]) === e[t] ? e[t] : e[t] = Math.abs(Number(i[n + 1])) >> 0 == +i[n + 1] ? [] : {};\n }, e)[i[i.length - 1]] = n, e;\n},\n safeDynamicRequire = Builder.isServer ? eval(\"require\") : function () {\n return null;\n},\n fnCache = {},\n api = function api(e) {\n return builder;\n};\n\nfunction stringToFunction(e, t, n, i) {\n if (void 0 === t && (t = !0), !e || !e.trim()) return function () {};\n var r = e + \":\" + t;\n if (fnCache[r]) return fnCache[r];\n\n var o = t && !(e.includes(\";\") || e.includes(\" return \") || e.trim().startsWith(\"return \")) || e.trim().startsWith(\"builder.run\"),\n a = function a() {};\n\n try {\n Builder.isBrowser && (a = new Function(\"state\", \"event\", \"block\", \"builder\", \"Device\", \"update\", \"Builder\", \"context\", \"\\n var names = [\\n 'state',\\n 'event',\\n 'block',\\n 'builder',\\n 'Device',\\n 'update',\\n 'Builder',\\n 'context'\\n ];\\n var rootState = state;\\n if (typeof Proxy !== 'undefined') {\\n rootState = new Proxy(rootState, {\\n set: function () {\\n return false;\\n },\\n get: function (target, key) {\\n if (names.includes(key)) {\\n return undefined;\\n }\\n return target[key];\\n }\\n });\\n }\\n /* Alias */\\n var ctx = context;\\n with (rootState) {\\n \" + (o ? \"return (\" + e + \");\" : e) + \";\\n }\\n \"));\n } catch (t) {\n n && n.push(t);\n var s = t && t.message;\n s && \"string\" == typeof s && i && -1 === i.indexOf(s) && i.push(s), Builder.isBrowser && console.warn(\"Function compile error in \" + e, t);\n }\n\n var l = function l() {\n for (var t = [], i = 0; i < arguments.length; i++) {\n t[i] = arguments[i];\n }\n\n try {\n if (Builder.isBrowser) return a.apply(void 0, t);\n var r = safeDynamicRequire(\"vm2\").VM,\n o = t[0],\n s = t[1];\n return new r({\n timeout: 100,\n sandbox: _assign(_assign(_assign(_assign({}, o), {\n state: o\n }), {\n builder: api\n }), {\n event: s\n })\n }).run(e.replace(/(^|;)return /, \"$1\"));\n } catch (t) {\n Builder.isBrowser ? console.warn(\"Builder custom code error:\", t.message || t, \"in\", e, t.stack || t) : process.env.DEBUG && console.debug(\"Builder custom code error:\", t.message || t, \"in\", e, t.stack || t), n && n.push(t);\n }\n };\n\n return Builder.isBrowser && (fnCache[r] = l), l;\n}\n\nvar isPromise = function isPromise(e) {\n return \"function\" == typeof e.then;\n},\n isRequestInfo = function isRequestInfo(e) {\n return !isPromise(e);\n},\n BuilderAsyncRequestsContext = React__default.createContext({\n requests: [],\n errors: [],\n logs: []\n}),\n BuilderStoreContext = React__default.createContext({\n state: {},\n rootState: {},\n content: {},\n context: {},\n update: function update(e) {\n return null;\n }\n}),\n applyPatchWithMinimalMutationChain = function applyPatchWithMinimalMutationChain(e, t, n) {\n if (void 0 === n && (n = !0), Object(e) !== e) return e;\n var i = t.path,\n r = t.op,\n o = t.value,\n a = i.split(/\\//);\n \"\" === a[0] && a.shift();\n\n for (var s = n ? e : _assign({}, e), l = s, u = 0; u < a.length; u++) {\n var d = u === a.length - 1,\n c = a[u];\n\n if (d) {\n if (\"replace\" === r) l[c] = o;else if (\"add\" === r) {\n var p = Number(c);\n Array.isArray(l) ? \"-\" === c ? l.push(o) : l.splice(p, 0, o) : l[c] = o;\n } else if (\"remove\" === r) {\n p = Number(c);\n Array.isArray(l) ? l.splice(p, 1) : delete l[c];\n }\n } else {\n var f = a[u + 1],\n m = Object(l[c]) === l[c] ? l[c] : String(Number(f)) === f ? [] : {};\n l = l[c] = Array.isArray(m) ? __spreadArrays(m) : _assign({}, m);\n }\n }\n\n return s;\n},\n htmlEscape = function htmlEscape(e) {\n return e.replace(/&/g, \"&\").replace(//g, \">\").replace(/\"/g, \""\");\n},\n blockToHtmlString = function blockToHtmlString(e) {\n var t;\n return (\"<\" + htmlEscape(e.tagName || \"div\") + ' \\n class=\"builder-block ' + e.id + \" \" + (e.class || \"\") + '\"\\n builder-id=\"' + e.id + '\"\\n ' + Object.keys(e.properties || {}).map(function (t) {\n return htmlEscape(t) + '=\"' + htmlEscape(e.properties[t]) + '\"';\n }).join(\" \") + \"\\n >\" + (\"Text\" === (null === (t = null == e ? void 0 : e.component) || void 0 === t ? void 0 : t.name) ? e.component.options.text : e.children ? e.children.map(function (e) {\n return blockToHtmlString(e);\n }).join(\"\") : \"\") + \"\").replace(/\\s+/g, \" \");\n},\n Link = function Link(e) {\n return React__default.createElement(BuilderStoreContext.Consumer, null, function (t) {\n return t.renderLink ? t.renderLink(e) : React__default.createElement(\"a\", _assign({}, e));\n });\n},\n camelCaseToKebabCase = function camelCaseToKebabCase(e) {\n return e ? e.replace(/([A-Z])/g, function (e) {\n return \"-\" + e[0].toLowerCase();\n }) : \"\";\n},\n kebabCaseToCamelCase = function kebabCaseToCamelCase(e) {\n return void 0 === e && (e = \"\"), e.replace(/-([a-z])/g, function (e) {\n return e[1].toUpperCase();\n });\n},\n Device = {\n desktop: 0,\n tablet: 1,\n mobile: 2\n},\n blocksMap = {},\n voidElements = new Set([\"area\", \"base\", \"br\", \"col\", \"embed\", \"hr\", \"img\", \"input\", \"link\", \"meta\", \"param\", \"source\", \"track\", \"wbr\", \"textarea\"]),\n last = function last(e) {\n return e[e.length - 1];\n};\n\nfunction omit(e, t) {\n for (var n = Object.assign({}, e), i = 0, r = t; i < r.length; i++) {\n delete n[r[i]];\n }\n\n return n;\n}\n\nvar cssCase = function cssCase(e) {\n if (!e) return e;\n var t = camelCaseToKebabCase(e);\n return e[0] === e[0].toUpperCase() && (t = \"-\" + t), t;\n},\n fastClone = function fastClone(e) {\n return JSON.parse(JSON.stringify(e));\n};\n\nfunction capitalize(e) {\n if (e) return e[0].toUpperCase() + e.slice(1);\n}\n\nvar BuilderBlock = function (e) {\n function t() {\n var t = null !== e && e.apply(this, arguments) || this;\n return t.state = {\n hasError: !1,\n updates: 0\n }, t.privateState = {\n state: {},\n rootState: {},\n context: {},\n update: function update() {}\n }, t.onWindowMessage = function (e) {\n var n = e.data;\n if (n) switch (n.type) {\n case \"builder.selectionChange\":\n if (!(o = n.data)) break;\n var i = o.selection,\n r = t.block && t.block.id;\n r && Array.isArray(i) && i.indexOf(r) > -1 && setTimeout(function () {\n window.$block = t, window.$blocks || (window.$blocks = []), window.$blocks.push(t);\n });\n break;\n\n case \"builder.patchUpdates\":\n var o;\n if (!(o = n.data) || !o.data) break;\n var a = o.data[t.block.id];\n if (!a) return;\n location.href.includes(\"builder.debug=true\") && t.eval(\"debugger\");\n\n for (var s = _assign({}, t.block), l = 0, u = a; l < u.length; l++) {\n var d = u[l];\n applyPatchWithMinimalMutationChain(s, d);\n }\n\n blocksMap[t.props.block.id] = s, t.setState({\n updates: t.state.updates + 1\n });\n }\n }, t;\n }\n\n return __extends(t, e), Object.defineProperty(t.prototype, \"store\", {\n get: function get() {\n return this.privateState;\n },\n enumerable: !0,\n configurable: !0\n }), t.getDerivedStateFromError = function (e) {\n return {\n hasError: !0\n };\n }, t.prototype.componentDidCatch = function (e, t) {\n console.error(\"Builder block error:\", e, t);\n }, t.prototype.stringToFunction = function (e, t) {\n return void 0 === t && (t = !0), stringToFunction(e, t, this._errors, this._logs);\n }, Object.defineProperty(t.prototype, \"block\", {\n get: function get() {\n return blocksMap[this.props.block.id] || this.props.block;\n },\n enumerable: !0,\n configurable: !0\n }), Object.defineProperty(t.prototype, \"emotionCss\", {\n get: function get() {\n var e,\n t,\n n,\n i = this.block;\n\n if (Builder.isServer) {\n var r = i.animations && i.animations[0];\n\n if (r && \"hover\" !== r.trigger) {\n var o = r && r.steps && r.steps[0],\n a = o && o.styles;\n a && (n = a);\n }\n }\n\n var s = sizeNames.slice().reverse(),\n l = this.block,\n u = {};\n if (l.responsiveStyles) for (var d = 0, c = s; d < c.length; d++) {\n var p = c[d];\n \"large\" === p ? this.props.emailMode || (u[\"&.builder-block\"] = Object.assign({}, l.responsiveStyles[p], n)) : u[\"@media only screen and (max-width: \" + sizes[p].max + \"px)\"] = {\n \"&.builder-block\": l.responsiveStyles[p]\n };\n }\n var f = i.animations && i.animations.find(function (e) {\n return \"hover\" === e.trigger;\n });\n return f && (u[\":hover\"] = (null === (t = null === (e = f.steps) || void 0 === e ? void 0 : e[1]) || void 0 === t ? void 0 : t.styles) || {}, u.transition = \"all \" + f.duration + \"s \" + camelCaseToKebabCase(f.easing), f.delay && (u.transitionDelay = f.delay + \"s\")), u;\n },\n enumerable: !0,\n configurable: !0\n }), t.prototype.eval = function (e) {\n return this.stringToFunction(e)(this.privateState.state, void 0, this.block, builder, Device, this.privateState.update, Builder, this.privateState.context);\n }, t.prototype.componentWillUnmount = function () {\n Builder.isEditing && removeEventListener(\"message\", this.onWindowMessage);\n }, t.prototype.componentDidMount = function () {\n var e,\n t = this,\n n = this.block,\n i = n && n.animations;\n\n if (Builder.isEditing && addEventListener(\"message\", this.onWindowMessage), i) {\n var r = {\n animations: fastClone(i)\n };\n if (n.bindings) for (var o in n.bindings) {\n if ((null === (e = o.trim) || void 0 === e ? void 0 : e.call(o)) && o.startsWith(\"animations.\")) {\n var a = this.stringToFunction(n.bindings[o]);\n void 0 !== a && set(r, o, a(this.privateState.state, null, n, builder, null, null, Builder, this.privateState.context));\n }\n }\n Builder.animator.bindAnimations(r.animations.filter(function (e) {\n return \"hover\" !== e.trigger;\n }).map(function (e) {\n return _assign(_assign({}, e), {\n elementId: t.block.id\n });\n }));\n }\n }, t.prototype.getElement = function (e, n) {\n var i,\n r,\n o,\n a,\n s,\n l = this;\n void 0 === e && (e = 0), void 0 === n && (n = this.privateState.state);\n var u,\n d = this.props,\n c = (d.child, d.fieldName, this.block),\n p = (c.tagName || \"div\").toLowerCase();\n\n if (\"template\" === p) {\n var f = c.children ? c.children.map(function (e) {\n return blockToHtmlString(e);\n }).join(\" \") : \"\";\n return console.debug(\"template html\", f), jsx(\"template\", _assign({}, c.properties, {\n dangerouslySetInnerHTML: {\n __html: f\n }\n }));\n }\n\n var m = c.component && (c.component.name || c.component.component),\n h = null;\n c.component && !c.component.class && (c.component && c.component.tag ? u = c.component.tag : (h = Builder.components.find(function (e) {\n return e.name === m;\n }) || null) && h.class ? u = h.class : h && h.tag ? u = h.tag : m.startsWith(\"Builder:\") ? console.warn(\"Missing @builder.io/widgets installation, please install and import @builder.io/widgets to use \" + m.split(\":\")[1] + \" in your content, more info here: https://github.com/BuilderIO/builder/tree/main/packages/widgets\") : console.warn(\"Missing registration for \" + m + \", have you included the registration in your bundle?\"));\n\n var g = _assign(_assign({}, c.properties), {\n style: {}\n });\n\n if (g = _assign(_assign({}, g.properties), g), c.component && (g.component = fastClone(c.component)), c.bindings) for (var v in c.bindings) {\n if (null === (r = v.trim) || void 0 === r ? void 0 : r.call(v)) {\n var b = this.stringToFunction(c.bindings[v]);\n set(g, v, b(n, null, c, api(), Device, null, Builder, this.privateState.context));\n }\n }\n if (g.hide) return null;\n if (delete g.hide, (\"show\" in g || c.bindings && c.bindings.show) && !g.show) return null;\n\n if (delete g.show, c.actions) {\n var y = function y(e) {\n if (!(null === (o = e.trim) || void 0 === o ? void 0 : o.call(e))) return \"continue\";\n var t = c.actions[e];\n\n g[\"on\" + capitalize(e)] = function (e) {\n var i = n;\n return \"undefined\" != typeof Proxy && (i = new Proxy(n, {\n set: function set(e, t, n) {\n return e[t] = n, l.privateState.rootState[t] = n, !0;\n }\n })), l.stringToFunction(t, !1)(i, e, l.block, builder, Device, l.privateState.update, Builder, l.privateState.context);\n };\n };\n\n for (var v in c.actions) {\n y(v);\n }\n }\n\n var _ = (g.component || g.options) && _assign(_assign({}, g.options), g.component.options || g.component.data),\n x = voidElements.has(p),\n S = h && (h.fragment || h.noWrap),\n w = (null === (a = g.attr) || void 0 === a ? void 0 : a.style) || (\"string\" == typeof g.style ? g.style : \"\") || \"\";\n\n if (\"string\" == typeof w) {\n \"object\" != typeof g.style && (g.style = {});\n\n for (var k = 0, C = w.split(\";\"); k < C.length; k++) {\n var B = C[k].split(\":\");\n if (!B.length) return;\n v = B[0], b = B[1];\n B.length > 2 && (b = B.slice(1).join(\":\")), g.style[kebabCaseToCamelCase(v)] = b;\n }\n }\n\n var R = _assign(_assign(_assign({}, omit(g, [\"class\", \"component\", \"attr\"])), ((i = {})[\"string\" != typeof p || p.includes(\"-\") ? \"class\" : \"className\"] = \"builder-block \" + this.id + (c.class ? \" \" + c.class : \"\") + (!c.component || [\"Image\", \"Video\", \"Banner\"].indexOf(m) > -1 ? \"\" : \" builder-has-component\") + (g.class ? \" \" + g.class : \"\") + (Builder.isEditing && (null === (s = this.privateState.state._spacer) || void 0 === s ? void 0 : s.parent) === c.id ? \" builder-spacer-parent\" : \"\"), i.key = this.id + e, i[\"builder-id\"] = this.id, i)), 0 !== e && {\n \"builder-index\": e\n });\n\n Builder.isEditing && (R[\"builder-inline-styles\"] = g.attr && g.attr.style ? Object.keys(g.style).reduce(function (e, t) {\n return (e ? e + \";\" : \"\") + cssCase(t) + \":\" + g.style[t] + \";\";\n }, \"\") : \"\"), (R.properties && R.properties.href || R.href) && \"div\" === p && (p = \"a\"), \"a\" === p && (p = Link);\n var E = c.children || R.children || [];\n return jsx(React__default.Fragment, null, jsx(ClassNames, null, function (e) {\n var n = e.css;\n e.cx;\n\n if (!l.props.emailMode) {\n var i = \" \" + n(l.emotionCss);\n R.class && (R.class += i), R.className && (R.className += i);\n }\n\n return jsx(BuilderAsyncRequestsContext.Consumer, null, function (e) {\n return l._asyncRequests = e && e.requests, l._errors = e && e.errors, l._logs = e && e.logs, x ? jsx(p, _assign({}, R)) : u && (S || l.props.emailMode) ? jsx(u, _assign({}, _, {\n attributes: R,\n builderBlock: c,\n builderState: l.privateState\n })) : jsx(p, _assign({}, R), u && jsx(u, _assign({\n builderState: l.privateState,\n builderBlock: c\n }, _)), c.text || g.text ? g.text : !u && E && Array.isArray(E) && E.length ? E.map(function (e, n) {\n return jsx(t, {\n key: (l.id || \"\") + n,\n block: e,\n index: n,\n size: l.props.size,\n fieldName: l.props.fieldName,\n child: l.props.child,\n emailMode: l.props.emailMode\n });\n }) : null);\n });\n }));\n }, Object.defineProperty(t.prototype, \"id\", {\n get: function get() {\n var e = this.block;\n return e.id.startsWith(\"builder\") ? e.id : \"builder-\" + e.id;\n },\n enumerable: !0,\n configurable: !0\n }), t.prototype.contents = function (e) {\n var t = this,\n n = this.block;\n\n if (this.privateState = e, n.repeat && n.repeat.collection) {\n var i = n.repeat.collection,\n r = last((i || \"\").trim().split(\"(\")[0].trim().split(\".\")),\n o = n.repeat.itemName || (r ? r + \"Item\" : \"item\"),\n a = this.stringToFunction(i)(e.state, null, n, api(), Device, null, Builder, this.privateState.context);\n return Array.isArray(a) ? a.map(function (n, i) {\n var r,\n a = _assign(_assign({}, e.state), ((r = {\n $index: i,\n $item: n\n })[o] = n, r[\"$\" + o + \"Index\"] = i, r));\n\n return jsx(BuilderStoreContext.Provider, {\n key: i,\n value: _assign(_assign({}, e), {\n state: a\n })\n }, t.getElement(i, a));\n }) : null;\n }\n\n return this.getElement();\n }, t.prototype.render = function () {\n var e = this;\n return this.state.hasError ? jsx(\"span\", {\n css: {\n display: \"inline-block\",\n padding: 5,\n color: \"#999\",\n fontSize: 11,\n fontStyle: \"italic\"\n }\n }, \"Builder block error :( Check console for details\") : jsx(BuilderStoreContext.Consumer, null, function (t) {\n return e.contents(t);\n });\n }, t;\n}(React__default.Component),\n BuilderBlocks = function (e) {\n function t() {\n var t = null !== e && e.apply(this, arguments) || this;\n return t.onClickEmptyBlocks = function () {\n var e;\n Builder.isIframe && t.noBlocks && (null === (e = window.parent) || void 0 === e || e.postMessage({\n type: \"builder.clickEmptyBlocks\",\n data: {\n parentElementId: t.parentId,\n dataPath: t.path\n }\n }, \"*\"));\n }, t.onHoverEmptyBlocks = function () {\n var e;\n Builder.isEditing && t.noBlocks && (null === (e = window.parent) || void 0 === e || e.postMessage({\n type: \"builder.hoverEmptyBlocks\",\n data: {\n parentElementId: t.parentId,\n dataPath: t.path\n }\n }, \"*\"));\n }, t;\n }\n\n return __extends(t, e), Object.defineProperty(t.prototype, \"isRoot\", {\n get: function get() {\n return !this.props.child;\n },\n enumerable: !0,\n configurable: !0\n }), Object.defineProperty(t.prototype, \"noBlocks\", {\n get: function get() {\n var e = this.props.blocks;\n return !(e && e.length);\n },\n enumerable: !0,\n configurable: !0\n }), Object.defineProperty(t.prototype, \"path\", {\n get: function get() {\n var e = this.props.dataPath || \"\";\n return e.trim() && (e.startsWith(\"this.\") ? e = e.replace(\"this.\", \"\") : e.startsWith(\"component.options.\") || (e = \"component.options.\" + e)), e;\n },\n enumerable: !0,\n configurable: !0\n }), Object.defineProperty(t.prototype, \"parentId\", {\n get: function get() {\n return this.props.parentElementId ? this.props.parentElementId : this.props.parent && this.props.parent.id;\n },\n enumerable: !0,\n configurable: !0\n }), t.prototype.render = function () {\n var e = this,\n t = this.props.blocks,\n n = this.props.emailMode ? \"span\" : \"div\";\n return jsx(n, _assign({\n className: \"builder-blocks\" + (this.noBlocks ? \" no-blocks\" : \"\") + (this.props.child ? \" builder-blocks-child\" : \"\") + (this.props.className ? \" \" + this.props.className : \"\"),\n \"builder-type\": \"blocks\",\n \"builder-path\": Builder.isIframe ? this.path : void 0,\n \"builder-parent-id\": this.parentId,\n css: _assign(_assign({}, !this.props.emailMode && {\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"stretch\"\n }), this.props.style),\n onClick: function onClick() {\n e.noBlocks && e.onClickEmptyBlocks();\n }\n }, Builder.isEditing && {\n onMouseEnter: function onMouseEnter() {\n return e.onHoverEmptyBlocks();\n }\n }), t && Array.isArray(t) && t.map(function (t, n) {\n return t && \"@builder.io/sdk:Element\" === t[\"@type\"] ? jsx(BuilderBlock, {\n key: t.id,\n block: t,\n index: n,\n fieldName: e.props.fieldName,\n child: e.props.child,\n emailMode: e.props.emailMode\n }) : t;\n }) || t);\n }, t;\n}(React__default.Component),\n NoWrap = function NoWrap(e) {\n return e.children;\n};\n\nfunction getData(e) {\n if (void 0 !== (null == e ? void 0 : e.data)) {\n var t = e.data,\n n = t.blocks,\n i = t.blocksString,\n r = Array.isArray(n) || \"string\" == typeof i,\n o = _assign(_assign({}, e.data), r && {\n blocks: n || JSON.parse(i)\n });\n\n return delete o.blocksString, o;\n }\n}\n\nvar variantsScript = function variantsScript(e, t) {\n return (\"\\n(function() {\\n if (window.builderNoTrack) {\\n return;\\n }\\n\\n var variants = \" + e + ';\\n function removeVariants() {\\n variants.forEach(function (template) {\\n document.querySelector(\\'template[data-template-variant-id=\"\\' + template.id + \\'\"]\\').remove();\\n });\\n }\\n\\n if (typeof document.createElement(\"template\").content === \\'undefined\\') {\\n removeVariants();\\n return ;\\n }\\n\\n function setCookie(name,value,days) {\\n var expires = \"\";\\n if (days) {\\n var date = new Date();\\n date.setTime(date.getTime() + (days*24*60*60*1000));\\n expires = \"; expires=\" + date.toUTCString();\\n }\\n document.cookie = name + \"=\" + (value || \"\") + expires + \"; path=/\" + \"; Secure; SameSite=None\";\\n }\\n\\n function getCookie(name) {\\n var nameEQ = name + \"=\";\\n var ca = document.cookie.split(\\';\\');\\n for(var i=0;i < ca.length;i++) {\\n var c = ca[i];\\n while (c.charAt(0)==\\' \\') c = c.substring(1,c.length);\\n if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);\\n }\\n return null;\\n }\\n var cookieName = \\'builder.tests.' + t + \"';\\n var variantInCookie = getCookie(cookieName);\\n var availableIDs = variants.map(function(vr) { return vr.id }).concat('\" + t + \"');\\n var variantId;\\n if (availableIDs.indexOf(variantInCookie) > -1) {\\n variantId = variantInCookie;\\n }\\n if (!variantId) {\\n var n = 0;\\n var random = Math.random();\\n for (var i = 0; i < variants.length; i++) {\\n var variant = variants[i];\\n var testRatio = variant.testRatio;\\n n += testRatio;\\n if (random < n) {\\n setCookie(cookieName, variant.id);\\n variantId = variant.id;\\n break;\\n }\\n }\\n if (!variantId) {\\n variantId = \\\"\" + t + '\";\\n setCookie(cookieName, \"' + t + '\");\\n }\\n }\\n if (variantId && variantId !== \"' + t + \"\\\") {\\n var winningTemplate = document.querySelector('template[data-template-variant-id=\\\"' + variantId + '\\\"]');\\n if (winningTemplate) {\\n var parentNode = winningTemplate.parentNode;\\n var newParent = parentNode.cloneNode(false);\\n newParent.appendChild(winningTemplate.content.firstChild);\\n parentNode.parentNode.replaceChild(newParent, parentNode);\\n }\\n } else if (variants.length > 0) {\\n removeVariants();\\n }\\n})()\").replace(/\\s+/g, \" \");\n},\n VariantsProvider = function VariantsProvider(e) {\n var t = e.initialContent,\n n = e.children;\n if (Builder.isBrowser && !builder.canTrack) return n([t]);\n if (!Boolean(Object.keys((null == t ? void 0 : t.variations) || {}).length)) return n([t]);\n\n var i = Object.keys(t.variations).map(function (e) {\n return _assign(_assign({\n id: e\n }, t.variations[e]), {\n data: getData(t.variations[e])\n });\n }),\n r = __spreadArrays(i, [t]);\n\n if (Builder.isServer) {\n var o = JSON.stringify(Object.keys(t.variations || {}).map(function (e) {\n return {\n id: e,\n testRatio: t.variations[e].testRatio\n };\n }));\n return createElement(Fragment$1, null, n(r, function () {\n return createElement(\"script\", {\n dangerouslySetInnerHTML: {\n __html: variantsScript(o, t.id)\n }\n });\n }));\n }\n\n var a = \"builder.tests.\" + t.id,\n s = builder.getCookie(a);\n if (!s && Builder.isBrowser) for (var l = 0, u = Math.random(), d = 0; d < i.length; d++) {\n var c = i[d];\n\n if (u < (l += c.testRatio)) {\n builder.setCookie(a, c.id), s = c.id;\n break;\n }\n }\n return s || (s = t.id, builder.setCookie(a, s)), n([r.find(function (e) {\n return e.id === s;\n })]);\n},\n BuilderContent = function (_super) {\n function BuilderContent() {\n var _this = null !== _super && _super.apply(this, arguments) || this;\n\n return _this.ref = null, _this.state = {\n loading: !_this.props.content,\n data: getContentWithInfo(_this.props.content),\n updates: 1\n }, _this.onWindowMessage = function (event) {\n var _a,\n _b,\n _c,\n message = event.data;\n\n if (message) switch (message.type) {\n case \"builder.patchUpdates\":\n if (null === (_a = _this.props.options) || void 0 === _a ? void 0 : _a.noEditorUpdates) return;\n var data = message.data;\n if (!data || !data.data) break;\n var patches = data.data[null === (_b = _this.state.data) || void 0 === _b ? void 0 : _b.id];\n if (!patches || !patches.length) return;\n location.href.includes(\"builder.debug=true\") && eval(\"debugger\");\n\n for (var _i = 0, patches_1 = patches; _i < patches_1.length; _i++) {\n var patch = patches_1[_i];\n applyPatchWithMinimalMutationChain(_this.state.data, patch);\n }\n\n _this.setState({\n updates: _this.state.updates + 1,\n data: _this.state.data ? _assign({}, _this.state.data) : _this.state.data\n }), _this.props.contentLoaded && _this.props.contentLoaded(null === (_c = _this.state.data) || void 0 === _c ? void 0 : _c.data, _this.state.data);\n }\n }, _this.subscriptions = new Subscription(), _this.firstLoad = !0, _this.clicked = !1, _this.trackedImpression = !1, _this.intersectionObserver = null, _this.onClick = function (e) {\n var t = e.nativeEvent,\n n = _this.data;\n n && (builder.autoTrack && _this.builder.trackInteraction(n.id, _this.renderedVariantId, _this.clicked, t, {\n content: n\n }), _this.clicked || (_this.clicked = !0));\n }, _this;\n }\n\n return __extends(BuilderContent, _super), Object.defineProperty(BuilderContent.prototype, \"builder\", {\n get: function get() {\n return this.props.builder || builder;\n },\n enumerable: !0,\n configurable: !0\n }), Object.defineProperty(BuilderContent.prototype, \"name\", {\n get: function get() {\n var e = this.props;\n return \"model\" in e ? e.model : e.modelName;\n },\n enumerable: !0,\n configurable: !0\n }), Object.defineProperty(BuilderContent.prototype, \"renderedVariantId\", {\n get: function get() {\n var e,\n t,\n n = this.props.isStatic ? this.builder.getCookie(\"builder.tests.\" + (null === (e = this.data) || void 0 === e ? void 0 : e.id)) : null === (t = this.data) || void 0 === t ? void 0 : t.variationId;\n if (null !== n) return n;\n },\n enumerable: !0,\n configurable: !0\n }), Object.defineProperty(BuilderContent.prototype, \"options\", {\n get: function get() {\n var e,\n t = _assign({}, this.props.options || {});\n\n return this.props.content && !(null === (e = t.initialContent) || void 0 === e ? void 0 : e.length) && (t.initialContent = [this.props.content]), t;\n },\n enumerable: !0,\n configurable: !0\n }), Object.defineProperty(BuilderContent.prototype, \"data\", {\n get: function get() {\n var e = (this.props.inline || !Builder.isBrowser || this.firstLoad) && this.options.initialContent && this.options.initialContent[0] || this.state.data;\n return getContentWithInfo(e);\n },\n enumerable: !0,\n configurable: !0\n }), BuilderContent.prototype.componentDidMount = function () {\n var e, t;\n if (!this.props.inline || Builder.isEditing) this.subscribeToContent();else if (this.props.inline && (null === (t = null === (e = this.options) || void 0 === e ? void 0 : e.initialContent) || void 0 === t ? void 0 : t.length)) {\n var n = this.options.initialContent[0];\n this.builder.trackImpression(n.id, this.renderedVariantId, void 0, {\n content: n\n });\n }\n Builder.isEditing && addEventListener(\"message\", this.onWindowMessage);\n }, BuilderContent.prototype.subscribeToContent = function () {\n var e = this;\n \"_inline\" !== this.name && this.subscriptions.add(builder.queueGetContent(this.name, this.options).subscribe(function (t) {\n var n = t && t[0];\n\n if (e.setState({\n data: n,\n loading: !1\n }), n && e.firstLoad && (e.firstLoad = !1, builder.autoTrack && !Builder.isEditing)) {\n var i = !1;\n if (\"function\" == typeof IntersectionObserver && e.ref) try {\n (e.intersectionObserver = new IntersectionObserver(function (t, i) {\n t.forEach(function (t) {\n t.intersectionRatio > 0 && !e.trackedImpression && (e.builder.trackImpression(n.id, e.renderedVariantId, void 0, {\n content: e.data\n }), e.data, e.trackedImpression = !0, e.ref && i.unobserve(e.ref));\n });\n })).observe(e.ref), i = !0;\n } catch (e) {\n console.warn(\"Could not bind intersection observer\");\n }\n i || (e.trackedImpression = !0, e.builder.trackImpression(n.id, e.renderedVariantId, void 0, {\n content: n\n }));\n }\n\n e.props.contentLoaded && e.props.contentLoaded(n && n.data, n);\n }, function (t) {\n e.props.contentError && (e.props.contentError(t), e.setState({\n loading: !1\n }));\n }));\n }, BuilderContent.prototype.componentWillUnmount = function () {\n Builder.isEditing && removeEventListener(\"message\", this.onWindowMessage), this.subscriptions.unsubscribe(), this.intersectionObserver && this.ref && this.intersectionObserver.unobserve(this.ref);\n }, BuilderContent.prototype.render = function () {\n var e = this;\n if (this.props.dataOnly) return null;\n var t = this.state.loading,\n n = this.data,\n i = this.props.dataOnly ? NoWrap : \"div\";\n return React__default.createElement(VariantsProvider, {\n initialContent: n\n }, function (r, o) {\n return React__default.createElement(React__default.Fragment, null, r.map(function (a, s) {\n var l = s === r.length - 1 ? React__default.Fragment : \"template\";\n return React__default.createElement(React__default.Fragment, {\n key: String((null == a ? void 0 : a.id) + s)\n }, \"template\" !== l && (null == o ? void 0 : o()), React__default.createElement(l, _assign({\n key: String((null == a ? void 0 : a.id) + s)\n }, \"template\" === l && {\n \"data-template-variant-id\": null == a ? void 0 : a.id\n }), React__default.createElement(i, _assign({}, 0 === s && !e.props.dataOnly && {\n ref: function ref(t) {\n return e.ref = t;\n }\n }, {\n className: \"builder-content\",\n onClick: e.onClick,\n \"builder-content-id\": null == a ? void 0 : a.id,\n \"builder-model\": e.name\n }), e.props.children(null == a ? void 0 : a.data, !e.props.inline && t, n))));\n }));\n });\n }, BuilderContent;\n}(React__default.Component),\n getContentWithInfo = function getContentWithInfo(e) {\n var t;\n\n if (e) {\n var n = builder.getCookie(\"builder.tests.\" + e.id),\n i = n === e.id ? e : null === (t = e.variations) || void 0 === t ? void 0 : t[n],\n r = (null == i ? void 0 : i.name) || ((null == i ? void 0 : i.id) === e.id ? \"Default variation\" : \"\");\n return _assign(_assign({}, e), {\n variationId: n,\n testVariationId: n,\n testVariationName: r\n });\n }\n\n return null;\n};\n\nfunction unwrapExports(e) {\n return e && e.__esModule && Object.prototype.hasOwnProperty.call(e, \"default\") ? e.default : e;\n}\n\nfunction createCommonjsModule(e, t) {\n return e(t = {\n exports: {}\n }, t.exports), t.exports;\n}\n\nvar onChange_1 = createCommonjsModule(function (e, t) {\n Object.defineProperty(t, \"__esModule\", {\n value: !0\n });\n\n var n = Symbol(\"target\"),\n i = Symbol(\"unsubscribe\"),\n r = function r(e, t) {\n return t && t.toString && (e && (e += \".\"), e += t.toString()), e;\n },\n o = function o(e) {\n return Array.isArray(e) ? e.slice() : Object.assign({}, e);\n },\n a = function a(e, t, _a2) {\n if (\"undefined\" == typeof Proxy) return e;\n void 0 === _a2 && (_a2 = {});\n\n var s,\n l,\n u = Symbol(\"ProxyTarget\"),\n d = !1,\n c = !1,\n p = !1,\n f = _a2.equals || Object.is,\n m = new WeakMap(),\n h = new WeakMap(),\n g = new WeakMap(),\n v = function v(e, n, i, a) {\n if (!p) if (d) {\n if (d && l && void 0 !== i && void 0 !== a && \"length\" !== n) {\n var u = l;\n e !== s && function (e, t) {\n for (var n; e;) {\n -1 === (n = e.indexOf(\".\")) && (n = e.length), t(e.slice(0, n)), e = e.slice(n + 1);\n }\n }(e = e.replace(s, \"\").slice(1), function (e) {\n u[e] = o(u[e]), u = u[e];\n }), u[n] = i;\n }\n\n c = !0;\n } else t(r(e, n), a, i);\n },\n b = function b(e, t) {\n var n = m ? m.get(e) : void 0;\n n && n.delete(t);\n },\n y = function y(e, t) {\n if (p) return e;\n h.set(e, t);\n var n = g.get(e);\n return void 0 === n && (n = new Proxy(e, x), g.set(e, n)), n;\n },\n _ = function _(e) {\n return p || !0 === _a2.ignoreSymbols && \"symbol\" == typeof e;\n },\n x = {\n get: function get(e, t, o) {\n if (t === u || t === n) return e;\n if (t === i && \"\" === h.get(e)) return function (e) {\n return p = !0, m = null, h = null, g = null, e;\n }(e);\n var s = Reflect.get(e, t, o);\n if (function (e) {\n return null === e || \"object\" != typeof e && \"function\" != typeof e;\n }(s) || function (e) {\n return e instanceof RegExp || e instanceof Number;\n }(s) || \"constructor\" === t || !0 === _a2.isShallow) return s;\n\n var l = function (e, t) {\n var n = m ? m.get(e) : void 0;\n if (n) return n;\n n = new Map(), m.set(e, n);\n var i = n.get(t);\n return i || (i = Reflect.getOwnPropertyDescriptor(e, t), n.set(t, i)), i;\n }(e, t);\n\n if (l && !l.configurable) {\n if (l.set && !l.get) return;\n if (!1 === l.writable) return s;\n }\n\n return y(s, r(h.get(e), t));\n },\n set: function set(e, t, n, i) {\n n && void 0 !== n[u] && (n = n[u]);\n\n var r = _(t),\n o = r ? null : Reflect.get(e, t, i),\n a = Reflect.set(e[u] || e, t, n);\n\n return r || f(o, n) || v(h.get(e), t, o, n), a;\n },\n defineProperty: function defineProperty(e, t, n) {\n var i = Reflect.defineProperty(e, t, n);\n return _(t) || (b(e, t), v(h.get(e), t, void 0, n.value)), i;\n },\n deleteProperty: function deleteProperty(e, t) {\n if (!Reflect.has(e, t)) return !0;\n\n var n = _(t),\n i = n ? null : Reflect.get(e, t),\n r = Reflect.deleteProperty(e, t);\n\n return n || (b(e, t), v(h.get(e), t, i)), r;\n },\n apply: function apply(e, t, n) {\n var i = t instanceof Date;\n\n if (i && (t = t[u]), !d) {\n d = !0, i && (l = t.valueOf()), (Array.isArray(t) || \"[object Object]\" === toString.call(t)) && (l = o(t[u])), s = (s = h.get(e)).slice(0, Math.max(s.lastIndexOf(\".\"), 0));\n var r = Reflect.apply(e, t, n);\n return d = !1, (c || i && !f(l, t.valueOf())) && (v(s, \"\", l, t[u] || t), l = null, c = !1), r;\n }\n\n return Reflect.apply(e, t, n);\n }\n },\n S = y(e, \"\");\n\n return t = t.bind(S), S;\n };\n\n a.target = function (e) {\n return e[n] || e;\n }, a.unsubscribe = function (e) {\n return e[i] || e;\n }, e.exports = a, t.default = a;\n}),\n onChange = unwrapExports(onChange_1),\n nextTick = Builder.nextTick;\n\nfunction debounceNextTick(e, t, n) {\n return void 0 === t && \"function\" == typeof e ? debounceNextTickImpl(e) : {\n configurable: !0,\n enumerable: n.enumerable,\n get: function get() {\n return Object.defineProperty(this, t, {\n configurable: !0,\n enumerable: n.enumerable,\n value: debounceNextTickImpl(n.value)\n }), this[t];\n }\n };\n}\n\nfunction debounceNextTickImpl(e) {\n var t = null,\n n = null;\n return function () {\n var e = t;\n if (t = [].slice.call(arguments), n = this, null !== e) return;\n nextTick(i);\n };\n\n function i() {\n e.apply(n, t), t = null, n = null;\n }\n}\n\nfunction throttle(e, t, n) {\n var i, r, o;\n void 0 === n && (n = {});\n\n var a = null,\n s = 0,\n l = function l() {\n s = !1 === n.leading ? 0 : Date.now(), a = null, o = e.apply(i, r), a || (i = r = null);\n };\n\n return function () {\n var u = Date.now();\n s || !1 !== n.leading || (s = u);\n var d = t - (u - s);\n return i = this, r = arguments, d <= 0 || d > t ? (a && (clearTimeout(a), a = null), s = u, o = e.apply(i, r), a || (i = r = null)) : a || !1 === n.trailing || (a = setTimeout(l, d)), o;\n };\n}\n\nvar BuilderMetaContext = React__default.createContext({\n emailMode: !1,\n ampMode: !1,\n isServer: !1\n});\n\nfunction pick(e) {\n for (var t = [], n = 1; n < arguments.length; n++) {\n t[n - 1] = arguments[n];\n }\n\n var i = {};\n return t.forEach(function (t) {\n i[t] = e[t];\n }), i;\n}\n\nfunction omit$1(e) {\n for (var t = [], n = 1; n < arguments.length; n++) {\n t[n - 1] = arguments[n];\n }\n\n var i = _assign({}, e);\n\n return t.forEach(function (e) {\n delete i[e];\n }), i;\n}\n\nvar wrapComponent = function wrapComponent(e) {\n return function (t) {\n var n,\n i = t.builderTag || \"div\",\n r = [\"children\"].concat((null === (n = e.inputs) || void 0 === n ? void 0 : n.map(function (e) {\n return e.name;\n })) || []),\n o = omit$1.apply(void 0, __spreadArrays([t], r, [\"attributes\"])),\n a = t;\n return e.noWrap ? React__default.createElement(e.class, _assign({\n attributes: o\n }, a)) : React__default.createElement(i, _assign({}, o), React__default.createElement(e.class, _assign({}, a)));\n };\n},\n size = function size(e) {\n return Object.keys(e).length;\n};\n\nfunction debounce(e, t, n) {\n var i;\n return void 0 === n && (n = !1), function () {\n var r = this,\n o = arguments;\n clearTimeout(i), i = setTimeout(function () {\n i = null, n || e.apply(r, o);\n }, t), n && !i && e.apply(r, o);\n };\n}\n\nvar fontsLoaded = new Set(),\n fetch$1 = Builder.isBrowser ? window.fetch : require(\"node-fetch\"),\n sizeMap = {\n desktop: \"large\",\n tablet: \"medium\",\n mobile: \"small\"\n};\n\nfunction decorator(e) {\n return function () {\n for (var t = [], n = 0; n < arguments.length; n++) {\n t[n] = arguments[n];\n }\n\n if (3 === t.length) {\n var i = t[0],\n r = t[1],\n o = t[2];\n if (o && (o.value || o.get)) return t = [], a(i, r, o);\n }\n\n return a;\n\n function a(n, i, r) {\n var o,\n a = r.value ? \"value\" : \"get\";\n return _assign(_assign({}, r), ((o = {})[a] = e.apply(void 0, __spreadArrays([r[a]], t)), o));\n }\n };\n}\n\nvar Throttle = decorator(throttle),\n fetchCache = {},\n tryEval = function tryEval(e, t, n) {\n void 0 === t && (t = {});\n var i = e;\n\n if (\"string\" == typeof i && i.trim()) {\n var r = !(i.includes(\";\") || i.includes(\" return \")),\n o = function o() {};\n\n try {\n Builder.isBrowser && (o = new Function(\"state\", \"var rootState = state;\\n if (typeof Proxy !== 'undefined') {\\n rootState = new Proxy(rootState, {\\n set: function () {\\n return false;\\n },\\n get: function (target, key) {\\n if (key === 'state') {\\n return state;\\n }\\n return target[key]\\n }\\n });\\n }\\n with (rootState) {\\n \" + (r ? \"return (\" + e + \");\" : e) + \";\\n }\"));\n } catch (e) {\n Builder.isBrowser && console.warn(\"Could not compile javascript\", e);\n }\n\n try {\n return Builder.isBrowser ? o(t || {}) : new (0, safeDynamicRequire(\"vm2\").VM)({\n sandbox: _assign(_assign({}, t), {\n state: t\n })\n }).run(i.replace(/(^|;)return /, \"$1\"));\n } catch (t) {\n n && n.push(t), Builder.isBrowser ? console.warn(\"Builder custom code error:\", t.message, \"in\", e, t.stack) : process.env.DEBUG && console.debug(\"Builder custom code error:\", t.message, \"in\", e, t.stack);\n }\n }\n};\n\nfunction searchToObject(e) {\n var t = (e.search || \"\").substring(1).split(\"&\"),\n n = {};\n\n for (var i in t) {\n if (t[i] && \"string\" == typeof t[i]) {\n var r = t[i].split(\"=\");\n n[decodeURIComponent(r[0])] = decodeURIComponent(r[1]);\n }\n }\n\n return n;\n}\n\nvar BuilderComponent = function (e) {\n function t(t) {\n var n = e.call(this, t) || this;\n\n if (n.subscriptions = new Subscription(), n.onStateChange = new BehaviorSubject(null), n.asServer = Builder.isServer, n.contentRef = null, n.styleRef = null, n.rootState = Builder.isServer ? {} : onChange({}, function () {\n return n.updateState();\n }), n.lastJsCode = \"\", n.lastHttpRequests = {}, n.httpSubscriptionPerKey = {}, n.ref = null, n.messageListener = function (e) {\n var t = e.data;\n\n switch (t.type) {\n case \"builder.updateSpacer\":\n var i = t.data;\n n.rootState._spacer;\n n.updateState(function (e) {\n e._spacer = i;\n });\n break;\n\n case \"builder.resetState\":\n var r = t.data,\n o = r.state;\n\n if (r.model === n.name) {\n for (var a in n.rootState) {\n \"function\" != typeof n.rootState[a] && delete n.rootState[a];\n }\n\n Object.assign(n.rootState, o), n.setState(_assign(_assign({}, n.state), {\n state: n.rootState,\n updates: (n.state && n.state.updates || 0) + 1\n }));\n }\n\n break;\n\n case \"builder.resetSymbolState\":\n var s = t.data.state,\n l = (o = s.state, s.model, s.id);\n\n if (n.props.builderBlock && n.props.builderBlock === l) {\n for (var a in n.rootState) {\n delete n.rootState[a];\n }\n\n Object.assign(n.rootState, o), n.setState(_assign(_assign({}, n.state), {\n state: n.rootState,\n updates: (n.state && n.state.updates || 0) + 1\n }));\n }\n\n }\n }, n.resizeFn = function () {\n var e = n.deviceSizeState;\n e !== n.state.state.deviceSize && n.setState(_assign(_assign({}, n.state), {\n updates: (n.state && n.state.updates || 0) + 1,\n state: Object.assign(n.rootState, _assign(_assign({}, n.state.state), {\n deviceSize: e\n }))\n }));\n }, n.resizeListener = Builder.isEditing ? throttle(n.resizeFn, 200) : debounce(n.resizeFn, 400), n.mounted = !1, n.updateState = function (e) {\n var t = n.rootState;\n e && e(t), n.mounted ? n.setState({\n update: n.updateState,\n state: t,\n updates: (n.state && n.state.updates || 0) + 1\n }) : n.state = _assign(_assign({}, n.state), {\n update: n.updateState,\n state: t,\n updates: (n.state && n.state.updates || 0) + 1\n }), n.notifyStateChange();\n }, n.onContentLoaded = function (e, t) {\n if (\"page\" === n.name && Builder.isBrowser && e) {\n var i = e.title,\n r = e.pageTitle,\n o = e.description,\n a = e.pageDescription;\n\n if ((i || r) && (document.title = i || r), o || a) {\n var s = document.querySelector('meta[name=\"description\"]');\n s || ((s = document.createElement(\"meta\")).setAttribute(\"name\", \"description\"), document.head.appendChild(s)), s.setAttribute(\"content\", o || a);\n }\n }\n\n if (Builder.isEditing && n.notifyStateChange(), n.props.contentLoaded && n.props.contentLoaded(e, t), e && e.inputs && Array.isArray(e.inputs) && e.inputs.length && (e.state || (e.state = {}), e.inputs.forEach(function (t) {\n t && t.name && void 0 !== t.defaultValue && void 0 === e.state[t.name] && (e.state[t.name] = t.defaultValue);\n })), e && e.state) {\n var l = _assign(_assign({}, n.state), {\n updates: (n.state && n.state.updates || 0) + 1,\n state: Object.assign(n.rootState, _assign(_assign(_assign(_assign({}, n.state.state), {\n location: n.locationState,\n deviceSize: n.deviceSizeState,\n device: n.device\n }), e.state), n.props.data))\n });\n\n n.mounted ? n.setState(l) : n.state = l;\n }\n\n if (e && e.jsCode && Builder.isBrowser && !n.options.codegen) {\n var u = !1;\n\n if (Builder.isEditing && (n.lastJsCode === e.jsCode ? u = !0 : n.lastJsCode = e.jsCode), !u) {\n var d = n.state.state;\n\n try {\n new Function(\"data\", \"ref\", \"state\", \"update\", \"element\", \"Builder\", \"builder\", \"context\", e.jsCode)(e, n, d, n.state.update, n.ref, Builder, builder, n.state.context);\n } catch (t) {\n Builder.isBrowser ? console.warn(\"Builder custom code error:\", t.message, \"in\", e.jsCode, t.stack) : process.env.DEBUG && console.debug(\"Builder custom code error:\", t.message, \"in\", e.jsCode, t.stack);\n }\n }\n }\n\n if (e && e.httpRequests && !n.props.noAsync && !(u = !1)) {\n var c = function c(t) {\n var i = e.httpRequests[t];\n if (i && (!n.data[t] || Builder.isEditing)) if (Builder.isBrowser) {\n var r = n.evalExpression(i);\n if (Builder.isEditing && n.lastHttpRequests[t] === r) return \"continue\";\n n.lastHttpRequests[t] = r;\n var o = i.match(/builder\\.io\\/api\\/v2\\/([^\\/\\?]+)/i);\n o && o[1];\n n.throttledHandleRequest(t, r);\n var a = n.httpSubscriptionPerKey[t];\n a && a.unsubscribe();\n var s = n.httpSubscriptionPerKey[t] = n.onStateChange.subscribe(function () {\n var e = n.evalExpression(i);\n e !== r && (n.throttledHandleRequest(t, e), n.lastHttpRequests[t] = e);\n });\n n.subscriptions.add(s);\n } else n.handleRequest(t, n.evalExpression(i));\n };\n\n for (var p in e.httpRequests) {\n c(p);\n }\n }\n }, n.state = {\n context: _assign(_assign({}, t.context), {\n apiKey: builder.apiKey || n.props.apiKey\n }),\n state: Object.assign(n.rootState, _assign(_assign(_assign(_assign({}, n.inlinedContent && n.inlinedContent.data && n.inlinedContent.data.state), {\n isBrowser: Builder.isBrowser,\n isServer: !Builder.isBrowser,\n _hydrate: t.hydrate,\n location: n.locationState,\n deviceSize: n.deviceSizeState,\n device: n.device\n }), n.getHtmlData()), t.data)),\n updates: 0,\n key: 0,\n update: n.updateState\n }, Builder.isBrowser) {\n var i = n.props.apiKey;\n\n if (i && i !== n.builder.apiKey && (n.builder.apiKey = i), n.inlinedContent) {\n var r = n.inlinedContent.content || n.inlinedContent;\n n.onContentLoaded(null == r ? void 0 : r.data, getContentWithInfo(r));\n }\n }\n\n return n;\n }\n\n return __extends(t, e), Object.defineProperty(t.prototype, \"options\", {\n get: function get() {\n return _assign(_assign({}, t.defaults), this.props);\n },\n enumerable: !0,\n configurable: !0\n }), Object.defineProperty(t.prototype, \"name\", {\n get: function get() {\n return this.props.model || this.props.modelName || this.props.name;\n },\n enumerable: !0,\n configurable: !0\n }), Object.defineProperty(t.prototype, \"element\", {\n get: function get() {\n return this.ref;\n },\n enumerable: !0,\n configurable: !0\n }), Object.defineProperty(t.prototype, \"inlinedContent\", {\n get: function get() {\n if (!this.isPreviewing || this.props.inlineContent) return this.props.content;\n },\n enumerable: !0,\n configurable: !0\n }), Object.defineProperty(t.prototype, \"builder\", {\n get: function get() {\n return this.props.builder || builder;\n },\n enumerable: !0,\n configurable: !0\n }), t.prototype.getHtmlData = function () {\n var e = this.inlinedContent && this.inlinedContent.id || this.props.entry,\n t = e && Builder.isBrowser && document.querySelector('script[data-builder-json=\"' + e + '\"],script[data-builder-state=\"' + e + '\"]');\n if (t) try {\n return JSON.parse(t.innerText);\n } catch (e) {\n console.warn(\"Could not parse Builder.io HTML data transfer\", e, t.innerText);\n }\n return {};\n }, Object.defineProperty(t.prototype, \"device\", {\n get: function get() {\n return this.builder.getUserAttributes().device || \"desktop\";\n },\n enumerable: !0,\n configurable: !0\n }), Object.defineProperty(t.prototype, \"locationState\", {\n get: function get() {\n return _assign(_assign({}, pick(this.location, \"pathname\", \"hostname\", \"search\", \"host\")), {\n path: this.location.pathname && this.location.pathname.split(\"/\").slice(1) || \"\",\n query: searchToObject(this.location)\n });\n },\n enumerable: !0,\n configurable: !0\n }), Object.defineProperty(t.prototype, \"deviceSizeState\", {\n get: function get() {\n return Builder.isBrowser ? sizes.getSizeForWidth(window.innerWidth) : sizeMap[this.device] || \"large\";\n },\n enumerable: !0,\n configurable: !0\n }), t.renderInto = function (e, n, i, r) {\n if (void 0 === n && (n = {}), void 0 === i && (i = !0), void 0 === r && (r = !1), console.debug(\"BuilderPage.renderInto\", e, n, i, this), e) {\n var o = null;\n\n if (\"string\" == typeof e ? o = document.querySelector(e) : e instanceof Element && (o = e), o) {\n var a = o.classList.contains(\"builder-hydrated\");\n\n if (!a || r) {\n o.classList.add(\"builder-hydrated\");\n var s = i && o.innerHTML.includes(\"builder-block\");\n\n if (!o.classList.contains(\"builder-component\")) {\n var l = o.querySelector(\".builder-api-styles\") || (o.previousElementSibling && o.previousElementSibling.matches(\".builder-api-styles\") ? o.previousElementSibling : null),\n u = \"\";\n if (l) l.innerHTML.replace(/\\/\\*start:([^\\*]+?)\\*\\/([\\s\\S]*?)\\/\\*end:([^\\*]+?)\\*\\//g, function (e, t, n) {\n var i = null;\n\n try {\n i = document.querySelector('[data-emotion-css=\"' + t + '\"]');\n } catch (e) {\n console.warn(e);\n }\n\n return i ? i.innerHTML = n : Builder.isEditing || (u += e), e;\n }), Builder.nextTick(function () {\n l.innerHTML = u;\n });\n var d = o.querySelector(\".builder-component\");\n d ? o = d : s = !1;\n }\n\n location.search.includes(\"builder.debug=true\") && console.debug(\"hydrate\", s, o);\n var c = o;\n\n if (!a) {\n var p = document.createElement(\"div\");\n o.insertAdjacentElement(\"beforebegin\", p), p.appendChild(o), c = p;\n }\n\n if ((Builder.isEditing || Builder.isBrowser && location.search.includes(\"builder.preview=\")) && (s = !1), s && o) {\n var f = ReactDOM.render(React__default.createElement(t, _assign({}, n)), c, c.builderRootRef);\n return c.builderRootRef = f, f;\n }\n\n var m = ReactDOM.render(React__default.createElement(t, _assign({}, n)), c, c.builderRootRef);\n return c.builderRootRef = m, m;\n }\n\n console.debug(\"Tried to hydrate multiple times\");\n }\n }\n }, t.prototype.componentDidMount = function () {\n var e,\n t = this;\n this.mounted = !0, this.asServer && (this.asServer = !1, this.updateState(function (e) {\n e.isBrowser = !0, e.isServer = !1;\n })), Builder.isIframe && (null === (e = window.parent) || void 0 === e || e.postMessage({\n type: \"builder.sdkInjected\",\n data: {\n modelName: this.name\n }\n }, \"*\")), Builder.isBrowser && (window.addEventListener(\"resize\", this.resizeListener), Builder.isEditing && window.addEventListener(\"message\", this.messageListener), setTimeout(function () {\n window.dispatchEvent(new CustomEvent(\"builder:component:load\", {\n detail: {\n ref: t\n }\n }));\n }));\n }, Object.defineProperty(t.prototype, \"isPreviewing\", {\n get: function get() {\n return (Builder.isServer || Builder.isBrowser && Builder.isPreviewing) && builder.previewingModel === this.name;\n },\n enumerable: !0,\n configurable: !0\n }), t.prototype.notifyStateChange = function () {\n if (!Builder.isServer && this && this.state) {\n var e = this.state.state;\n this.props.onStateChange && this.props.onStateChange(e), Builder.isBrowser && window.dispatchEvent(new CustomEvent(\"builder:component:stateChange\", {\n detail: {\n state: e,\n ref: this\n }\n })), this.onStateChange.next(e);\n }\n }, t.prototype.processStateFromApi = function (e) {\n return e;\n }, Object.defineProperty(t.prototype, \"location\", {\n get: function get() {\n return this.props.location || (Builder.isBrowser ? location : {});\n },\n enumerable: !0,\n configurable: !0\n }), t.prototype.getCssFromFont = function (e, t) {\n var n = e.family + (e.kind && !e.kind.includes(\"#\") ? \", \" + e.kind : \"\"),\n i = n.split(\",\")[0],\n r = e.fileUrl ? e.fileUrl : e.files && e.files.regular,\n o = \"\";\n if (r && n && i && (o += ('\\n@font-face {\\n font-family: \"' + n + '\";\\n src: local(\"' + i + \"\\\"), url('\" + r + \"') format('woff2');\\n font-display: fallback;\\n font-weight: 400;\\n}\\n \").trim()), e.files) for (var a in e.files) {\n if (String(Number(a)) === a) {\n var s = e.files[a];\n s && s !== r && (o += ('\\n@font-face {\\n font-family: \"' + n + \"\\\";\\n src: url('\" + s + \"') format('woff2');\\n font-display: fallback;\\n font-weight: \" + a + \";\\n}\\n \").trim());\n }\n }\n return o;\n }, t.prototype.componentWillUnmount = function () {\n this.unsubscribe(), Builder.isBrowser && (window.removeEventListener(\"resize\", this.resizeListener), window.removeEventListener(\"message\", this.messageListener));\n }, t.prototype.getFontCss = function (e) {\n var t = this;\n return this.builder.allowCustomFonts && (null == e ? void 0 : e.customFonts) && e.customFonts.length && e.customFonts.map(function (n) {\n return t.getCssFromFont(n, e);\n }).join(\" \") || \"\";\n }, t.prototype.ensureFontsLoaded = function (e) {\n if (this.builder.allowCustomFonts && (null == e ? void 0 : e.customFonts) && Array.isArray(e.customFonts)) for (var t = 0, n = e.customFonts; t < n.length; t++) {\n var i = n[t],\n r = i.fileUrl ? i.fileUrl : i.files && i.files.regular;\n\n if (!fontsLoaded.has(r)) {\n var o = this.getCssFromFont(i, e);\n if (fontsLoaded.add(r), !o) continue;\n var a = document.createElement(\"style\");\n a.className = \"builder-custom-font\", a.setAttribute(\"data-builder-custom-font\", r), a.innerHTML = o, document.head.appendChild(a);\n }\n }\n }, t.prototype.getCss = function (e) {\n var t,\n n = null === (t = this.useContent) || void 0 === t ? void 0 : t.id,\n i = (null == e ? void 0 : e.cssCode) || \"\";\n return n && (i = i.replace(/&/g, \".builder-component-\" + n)), i + this.getFontCss(e);\n }, Object.defineProperty(t.prototype, \"data\", {\n get: function get() {\n var e,\n t = _assign(_assign(_assign({}, this.inlinedContent && (null === (e = this.inlinedContent.data) || void 0 === e ? void 0 : e.state)), this.props.data), this.state.state);\n\n return Object.assign(this.rootState, t), t;\n },\n enumerable: !0,\n configurable: !0\n }), t.prototype.componentDidUpdate = function (e) {\n var t = this;\n this.props.data && e.data !== this.props.data && this.state.update(function (e) {\n Object.assign(e, t.props.data);\n }), Builder.isEditing && this.inlinedContent && e.content !== this.inlinedContent && this.onContentLoaded(this.inlinedContent.data, this.inlinedContent);\n }, t.prototype.checkStyles = function (e) {\n if (this.styleRef) {\n var t = this.getCss(e);\n this.styleRef.innerHTML !== t && (this.styleRef.innerHTML = t);\n }\n }, t.prototype.reload = function () {\n this.setState({\n key: this.state.key + 1\n });\n }, Object.defineProperty(t.prototype, \"content\", {\n get: function get() {\n var e = this.inlinedContent;\n return e && e.content && (e = _assign(_assign({}, e), {\n data: e.content\n })), e;\n },\n enumerable: !0,\n configurable: !0\n }), Object.defineProperty(t.prototype, \"useContent\", {\n get: function get() {\n return this.content || this.state.context.builderContent;\n },\n enumerable: !0,\n configurable: !0\n }), t.prototype.render = function () {\n var e,\n t = this,\n n = this.content,\n i = Builder.isBrowser && this.props.data && size(this.props.data) && hash(this.props.data),\n r = Builder.isEditing ? this.name : this.props.entry;\n r && !Builder.isEditing && i && i.length < 300 && (r += \":\" + i);\n var o = this.props.dataOnly ? React__default.Fragment : \"div\",\n a = null === (e = this.useContent) || void 0 === e ? void 0 : e.id;\n return React__default.createElement(o, {\n onClick: function onClick(e) {\n !Builder.isEditing || t.props.isChild || t.props.stopClickPropagationWhenEditing || e.stopPropagation();\n },\n className: \"builder-component \" + (a ? \"builder-component-\" + a : \"\"),\n \"data-name\": this.name,\n \"data-source\": \"Rendered by Builder.io\",\n key: this.state.key,\n ref: function ref(e) {\n return t.ref = e;\n }\n }, React__default.createElement(BuilderMetaContext.Consumer, null, function (e) {\n return React__default.createElement(BuilderMetaContext.Provider, {\n value: \"boolean\" == typeof t.props.ampMode ? _assign(_assign({}, e), {\n ampMode: t.props.ampMode\n }) : e\n }, React__default.createElement(BuilderAsyncRequestsContext.Consumer, null, function (e) {\n var i;\n return t._asyncRequests = e && e.requests, t._errors = e && e.errors, t._logs = e && e.logs, React__default.createElement(BuilderContent, {\n isStatic: t.props.isStatic || Builder.isStatic,\n key: (null === (i = t.inlinedContent) || void 0 === i ? void 0 : i.id) || (\"content\" in t.props && !t.isPreviewing ? \"null-content-prop\" : \"no-content-prop\"),\n builder: t.builder,\n ref: function ref(e) {\n return t.contentRef = e;\n },\n contentLoaded: function contentLoaded(e, n) {\n return t.onContentLoaded(e, n);\n },\n options: _assign(_assign(_assign(_assign(_assign({\n key: r,\n entry: t.props.entry\n }, n && {\n initialContent: [n]\n }), !n && \"content\" in t.props && !t.isPreviewing && {\n initialContent: []\n }), t.props.url && {\n url: t.props.url\n }), t.props.options), t.options.codegen && {\n format: \"react\"\n }),\n inline: t.props.inlineContent || !t.isPreviewing && \"content\" in t.props,\n contentError: t.props.contentError,\n modelName: t.name || \"page\"\n }, function (e, n, i) {\n var r;\n if (t.props.dataOnly) return null;\n i && i.id && (t.state.context.builderContent = i), Builder.isBrowser && Builder.nextTick(function () {\n t.checkStyles(e);\n });\n var o = t.options.codegen;\n\n if (o && !t.Component && (null == e ? void 0 : e.blocksJs)) {\n var a = Array.from(new Set(Builder.components.map(function (e) {\n return e.name;\n }))),\n s = Builder.components.slice().reverse(),\n l = a.map(function (e) {\n return s.find(function (t) {\n return t.class && t.name === e;\n });\n }),\n u = a.map(function (e) {\n return (e || \"\").replace(/[^\\w]+/gi, \"\");\n }),\n d = l.map(function (e) {\n return wrapComponent(e);\n });\n t.Component = new (Function.bind.apply(Function, __spreadArrays([void 0, \"jsx\", \"_css\", \"Builder\", \"builder\", \"React\", \"useBuilderState\"], u, [e.blocksJs])))().apply(void 0, __spreadArrays([jsx, css, Builder, builder, React__default, function (e) {\n var t = React__default.useState(0)[1];\n return React__default.useState(function () {\n return onChange(e, function () {\n t(function (e) {\n return e + 1;\n });\n });\n })[0];\n }], d));\n }\n\n return e ? React__default.createElement(\"div\", {\n \"data-builder-component\": t.name,\n \"data-builder-content-id\": i.id,\n \"data-builder-variation-id\": i.testVariationId || i.variationId || i.id\n }, !o && t.getCss(e) && React__default.createElement(\"style\", {\n ref: function ref(e) {\n return t.styleRef = e;\n },\n className: \"builder-custom-styles\",\n dangerouslySetInnerHTML: {\n __html: t.getCss(e)\n }\n }), React__default.createElement(BuilderStoreContext.Provider, {\n value: _assign(_assign({}, t.state), {\n rootState: t.rootState,\n state: t.data,\n content: i,\n renderLink: t.props.renderLink\n })\n }, o && t.Component ? React__default.createElement(t.Component, {\n data: t.data,\n context: t.state.context\n }) : React__default.createElement(BuilderBlocks, {\n key: String(!!(null === (r = null == e ? void 0 : e.blocks) || void 0 === r ? void 0 : r.length)),\n emailMode: t.props.emailMode,\n fieldName: \"blocks\",\n blocks: e.blocks\n }))) : n ? React__default.createElement(\"div\", {\n \"data-builder-component\": t.name,\n className: \"builder-loading\"\n }, t.props.children) : React__default.createElement(\"div\", {\n \"data-builder-component\": t.name,\n className: \"builder-no-content\"\n });\n });\n }));\n }));\n }, t.prototype.evalExpression = function (e) {\n var t = this,\n n = this.data;\n return e.replace(/{{([^}]+)}}/g, function (e, i) {\n return tryEval(i, n, t._errors);\n });\n }, t.prototype.throttledHandleRequest = function (e, t) {\n return this.handleRequest(e, t);\n }, t.prototype.handleRequest = function (e, t) {\n return __awaiter(this, void 0, void 0, function () {\n var n,\n i,\n r,\n o,\n a = this;\n return __generator(this, function (s) {\n return Builder.isIframe && fetchCache[t] ? (this.updateState(function (n) {\n n[e] = fetchCache[t];\n }), [2, fetchCache[t]]) : (n = function n() {\n return __awaiter(a, void 0, void 0, function () {\n var n, i, r;\n return __generator(this, function (o) {\n switch (o.label) {\n case 0:\n n = Date.now(), Builder.isBrowser || console.time(\"Fetch \" + t), o.label = 1;\n\n case 1:\n return o.trys.push([1, 4, 5, 6]), [4, fetch$1(t)];\n\n case 2:\n return [4, o.sent().json()];\n\n case 3:\n return i = o.sent(), [3, 6];\n\n case 4:\n return r = o.sent(), this._errors && this._errors.push(r), this._logs && this._logs.push(\"Fetch to \" + t + \" errored in \" + (Date.now() - n) + \"ms\"), [2];\n\n case 5:\n return Builder.isBrowser || (console.timeEnd(\"Fetch \" + t), this._logs && this._logs.push(\"Fetched \" + t + \" in \" + (Date.now() - n) + \"ms\")), [7];\n\n case 6:\n return i && (Builder.isIframe && (fetchCache[t] = i), this.updateState(function (t) {\n t[e] = i;\n })), [2, i];\n }\n });\n });\n }, (i = this._asyncRequests && this._asyncRequests.find(function (e) {\n return isRequestInfo(e) && e.url === t;\n })) ? ((r = i.promise).then(function (t) {\n t && a.updateState(function (n) {\n n[e] = t;\n });\n }), [2, r]) : (o = n(), Builder.nextTick(function () {\n a._asyncRequests && a._asyncRequests.push(o);\n }), [2, o]));\n });\n });\n }, t.prototype.unsubscribe = function () {\n this.subscriptions && (this.subscriptions.unsubscribe(), this.subscriptions = new Subscription());\n }, t.prototype.handleBuilderRequest = function (e, t) {\n var n = this,\n i = tryEval(t, this.data, this._errors);\n this.subscriptions && this.unsubscribe(), i && this.subscriptions.add(this.builder.queueGetContent(i.model, i).subscribe(function (t) {\n t && n.updateState(function (n) {\n n[e] = t;\n });\n }));\n }, t.defaults = {\n codegen: Boolean(Builder.isBrowser && location.href.includes(\"builder.codegen=true\"))\n }, __decorate([debounceNextTick, __metadata(\"design:type\", Function), __metadata(\"design:paramtypes\", []), __metadata(\"design:returntype\", void 0)], t.prototype, \"notifyStateChange\", null), __decorate([Throttle(100, {\n leading: !0,\n trailing: !0\n }), __metadata(\"design:type\", Function), __metadata(\"design:paramtypes\", [String, String]), __metadata(\"design:returntype\", void 0)], t.prototype, \"throttledHandleRequest\", null), t;\n}(React__default.Component);\n\nfunction BuilderBlock$1(e) {\n return e.type = \"react\", Builder.Component(e);\n}\n\nfunction updateMetadata(e, t) {\n var n = Builder.components.find(function (t) {\n return \"string\" == typeof e ? t.name === e : t.class === t;\n }) || null,\n i = t(n);\n n && i ? Builder.registerComponent(i.class || n.class, i) : n && !i || !n && i && Builder.registerComponent(i.class, i);\n}\n\nfunction withBuilder(e, t) {\n return BuilderBlock$1(t)(e), e;\n}\n\nvar withChildren = function withChildren(e) {\n var t = React__default.forwardRef(function (t, n) {\n var i = t.children || t.builderBlock && t.builderBlock.children && t.builderBlock.children.map(function (e) {\n return React__default.createElement(BuilderBlock, {\n key: e.id,\n block: e\n });\n });\n return React__default.createElement(e, _assign({}, t, {\n ref: n\n }), i);\n });\n return t.builderOptions = {\n canHaveChildren: !0\n }, t;\n},\n noWrap = function noWrap(e) {\n var t = React__default.forwardRef(function (t, n) {\n var i = _assign(_assign({}, t), t.attributes);\n\n return React__default.createElement(e, _assign({}, i, {\n ref: n\n }));\n });\n return t.builderOptions = {\n noWrap: !0\n }, t;\n},\n iconUrl = \"https://firebasestorage.googleapis.com/v0/b/builder-3b0a2.appspot.com/o/images%2Fbaseline-text_fields-24px%20(1).svg?alt=media&token=12177b73-0ee3-42ca-98c6-0dd003de1929\",\n TextComponent = function (e) {\n function t() {\n var t = null !== e && e.apply(this, arguments) || this;\n return t.textRef = null, t;\n }\n\n return __extends(t, e), t.prototype.componentDidUpdate = function (e) {\n this.allowTextEdit && (!this.textRef || \"true\" === this.textRef.contentEditable && this.textRef === document.activeElement || this.props.text !== e.text && (this.textRef.innerHTML = this.props.text));\n }, t.prototype.componentDidMount = function () {\n this.textRef && (this.textRef.innerHTML = this.props.text);\n }, Object.defineProperty(t.prototype, \"allowTextEdit\", {\n get: function get() {\n return Builder.isBrowser && Builder.isEditing && location.search.includes(\"builder.allowTextEdit=true\") && !(this.props.builderBlock && this.props.builderBlock.bindings && (this.props.builderBlock.bindings[\"component.options.text\"] || this.props.builderBlock.bindings[\"options.text\"] || this.props.builderBlock.bindings.text));\n },\n enumerable: !0,\n configurable: !0\n }), t.prototype.render = function () {\n var e = this,\n t = this.allowTextEdit,\n n = {\n outline: \"none\",\n \"& p:first-of-type, & .builder-paragraph:first-of-type\": {\n margin: 0\n },\n \"& > p, & .builder-paragraph\": {\n color: \"inherit\",\n lineHeight: \"inherit\",\n letterSpacing: \"inherit\",\n fontWeight: \"inherit\",\n fontSize: \"inherit\",\n textAlign: \"inherit\",\n fontFamily: \"inherit\"\n }\n };\n return jsx(BuilderStoreContext.Consumer, null, function (i) {\n var r;\n return (null === (r = i.content.meta) || void 0 === r ? void 0 : r.rtlMode) && (n.direction = \"rtl\"), jsx(React__default.Fragment, null, jsx(\"span\", _assign({\n ref: function ref(t) {\n e.textRef = t;\n },\n contentEditable: t || void 0,\n onInput: function onInput(n) {\n var i;\n t && (null === (i = window.parent) || void 0 === i || i.postMessage({\n type: \"builder.textEdited\",\n data: {\n id: e.props.builderBlock && e.props.builderBlock.id,\n value: n.currentTarget.innerHTML\n }\n }, \"*\"));\n },\n onKeyDown: function onKeyDown(n) {\n t && e.textRef && 27 === n.which && document.activeElement === e.textRef && e.textRef.blur();\n },\n onFocus: function onFocus(n) {\n var i;\n t && (null === (i = window.parent) || void 0 === i || i.postMessage({\n type: \"builder.textFocused\",\n data: {\n id: e.props.builderBlock && e.props.builderBlock.id\n }\n }, \"*\"));\n },\n onBlur: function onBlur(n) {\n var i;\n t && (null === (i = window.parent) || void 0 === i || i.postMessage({\n type: \"builder.textBlurred\",\n data: {\n id: e.props.builderBlock && e.props.builderBlock.id\n }\n }, \"*\"));\n },\n css: n,\n className: \"builder-text\"\n }, !t && {\n dangerouslySetInnerHTML: {\n __html: e.props.text || e.props.content || \"\"\n }\n })));\n });\n }, t;\n}(React__default.Component),\n Text = withBuilder(TextComponent, {\n name: \"Text\",\n static: !0,\n image: iconUrl,\n inputs: [{\n name: \"text\",\n type: \"html\",\n required: !0,\n autoFocus: !0,\n bubble: !0,\n defaultValue: \"Enter some text...\"\n }],\n defaultStyles: {\n lineHeight: \"normal\",\n height: \"auto\",\n textAlign: \"center\"\n }\n});\n\nfunction Slot(e) {\n var t = e.name,\n n = useContext(BuilderStoreContext),\n i = !n.context.symbolId;\n return jsx(\"div\", _assign({\n css: {\n pointerEvents: \"auto\"\n }\n }, i && {\n \"builder-slot\": t\n }), jsx(BuilderBlocks, {\n child: !0,\n parentElementId: n.context.symbolId,\n dataPath: \"symbol.data.\" + t,\n blocks: n.state[t] || []\n }));\n}\n\nBuilder.registerComponent(Slot, {\n name: \"Slot\",\n description: \"Allow child blocks to be inserted into this content when used as a Symbol\",\n docsLink: \"https://www.builder.io/c/docs/symbols-with-blocks\",\n image: \"https://cdn.builder.io/api/v1/image/assets%2FYJIGb4i01jvw0SRdL5Bt%2F3aad6de36eae43b59b52c85190fdef56\",\n inputs: [{\n name: \"name\",\n type: \"string\",\n required: !0,\n defaultValue: \"children\"\n }]\n});\n\nvar FragmentComponent = function (e) {\n function t() {\n return null !== e && e.apply(this, arguments) || this;\n }\n\n return __extends(t, e), t.prototype.render = function () {\n return this.props.builderBlock && this.props.builderBlock.children && this.props.builderBlock.children.map(function (e, t) {\n return React__default.createElement(BuilderBlock, {\n block: e,\n key: e.id,\n index: t\n });\n });\n }, t;\n}(React__default.Component),\n Fragment = withBuilder(FragmentComponent, {\n name: \"Core:Fragment\",\n canHaveChildren: !0,\n noWrap: !0,\n static: !0,\n hideFromInsertMenu: !0\n}),\n DEFAULT_ASPECT_RATIO = .7004048582995948,\n defaultBlocks = [{\n \"@type\": \"@builder.io/sdk:Element\",\n responsiveStyles: {\n large: {\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"stretch\",\n flexShrink: \"0\",\n position: \"relative\",\n marginTop: \"30px\",\n textAlign: \"center\",\n lineHeight: \"normal\",\n height: \"auto\",\n minHeight: \"20px\",\n minWidth: \"20px\",\n overflow: \"hidden\"\n }\n },\n component: {\n name: \"Image\",\n options: {\n image: \"https://builder.io/api/v1/image/assets%2Fpwgjf0RoYWbdnJSbpBAjXNRMe9F2%2Ffb27a7c790324294af8be1c35fe30f4d\",\n backgroundPosition: \"center\",\n backgroundSize: \"cover\",\n aspectRatio: DEFAULT_ASPECT_RATIO\n }\n }\n}, {\n \"@type\": \"@builder.io/sdk:Element\",\n responsiveStyles: {\n large: {\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"stretch\",\n flexShrink: \"0\",\n position: \"relative\",\n marginTop: \"30px\",\n textAlign: \"center\",\n lineHeight: \"normal\",\n height: \"auto\"\n }\n },\n component: {\n name: \"Text\",\n options: {\n text: \"

Enter some text...

\"\n }\n }\n}],\n ColumnsComponent = function (e) {\n function t() {\n return null !== e && e.apply(this, arguments) || this;\n }\n\n return __extends(t, e), Object.defineProperty(t.prototype, \"columns\", {\n get: function get() {\n return this.props.columns || [];\n },\n enumerable: !0,\n configurable: !0\n }), Object.defineProperty(t.prototype, \"gutterSize\", {\n get: function get() {\n return \"number\" == typeof this.props.space ? this.props.space || 0 : 20;\n },\n enumerable: !0,\n configurable: !0\n }), t.prototype.getWidth = function (e) {\n return this.columns[e] && this.columns[e].width || 100 / this.columns.length;\n }, t.prototype.getColumnWidth = function (e) {\n var t = this.columns,\n n = this.gutterSize * (t.length - 1) / t.length;\n return \"calc(\" + this.getWidth(e) + \"% - \" + n + \"px)\";\n }, t.prototype.render = function () {\n var e,\n t = this,\n n = this.columns,\n i = this.gutterSize;\n return jsx(React__default.Fragment, null, jsx(\"div\", {\n className: \"builder-columns\",\n css: _assign({\n display: \"flex\"\n }, \"never\" !== this.props.stackColumnsAt && (e = {}, e[\"@media (max-width: \" + (\"tablet\" !== this.props.stackColumnsAt ? 639 : 999) + \"px)\"] = {\n flexDirection: this.props.reverseColumnsWhenStacked ? \"column-reverse\" : \"column\",\n alignItems: \"stretch\"\n }, e))\n }, n.map(function (e, n) {\n var r,\n o,\n a = e.link ? Link : \"div\";\n return jsx(React__default.Fragment, {\n key: n\n }, jsx(a, _assign({\n className: \"builder-column\"\n }, e.link ? {\n href: e.link\n } : null, {\n css: _assign((r = {\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"stretch\",\n lineHeight: \"normal\"\n }, r[\"& > .builder-blocks\"] = {\n flexGrow: 1\n }, r.width = t.getColumnWidth(n), r.marginLeft = 0 === n ? 0 : i, r), \"never\" !== t.props.stackColumnsAt && (o = {}, o[\"@media (max-width: \" + (\"tablet\" !== t.props.stackColumnsAt ? 639 : 999) + \"px)\"] = {\n width: \"100%\",\n marginLeft: 0\n }, o))\n }), jsx(BuilderBlocks, {\n key: n,\n child: !0,\n parentElementId: t.props.builderBlock && t.props.builderBlock.id,\n blocks: e.blocks,\n dataPath: \"component.options.columns.\" + n + \".blocks\"\n })));\n })));\n }, t;\n}(React__default.Component),\n Columns = withBuilder(ColumnsComponent, {\n name: \"Columns\",\n static: !0,\n inputs: [{\n name: \"columns\",\n type: \"array\",\n broadcast: !0,\n subFields: [{\n name: \"blocks\",\n type: \"array\",\n hideFromUI: !0,\n defaultValue: defaultBlocks\n }, {\n name: \"width\",\n type: \"number\",\n hideFromUI: !0,\n helperText: \"Width %, e.g. set to 50 to fill half of the space\"\n }, {\n name: \"link\",\n type: \"url\",\n helperText: \"Optionally set a url that clicking this column will link to\"\n }],\n defaultValue: [{\n blocks: defaultBlocks\n }, {\n blocks: defaultBlocks\n }],\n onChange: function onChange(e) {\n function t() {\n n.forEach(function (e) {\n e.delete(\"width\");\n });\n }\n\n var n = e.get(\"columns\");\n Array.isArray(n) && (!n.find(function (e) {\n return e.get(\"width\");\n }) || (n.find(function (e) {\n return !e.get(\"width\");\n }) || 100 !== n.reduce(function (e, t) {\n return e + t.get(\"width\");\n }, 0)) && t());\n }\n }, {\n name: \"space\",\n type: \"number\",\n defaultValue: 20,\n helperText: \"Size of gap between columns\",\n advanced: !0\n }, {\n name: \"stackColumnsAt\",\n type: \"string\",\n defaultValue: \"tablet\",\n helperText: \"Convert horizontal columns to vertical at what device size\",\n enum: [\"tablet\", \"mobile\", \"never\"],\n advanced: !0\n }, {\n name: \"reverseColumnsWhenStacked\",\n type: \"boolean\",\n defaultValue: !1,\n helperText: \"When stacking columns for mobile devices, reverse the ordering\",\n advanced: !0\n }]\n}),\n EmbedComponent = function (e) {\n function t() {\n var t = null !== e && e.apply(this, arguments) || this;\n return t.elementRef = null, t.scriptsInserted = new Set(), t.scriptsRun = new Set(), t;\n }\n\n return __extends(t, e), t.prototype.componentDidUpdate = function (e) {\n this.props.content !== e.content && this.findAndRunScripts();\n }, t.prototype.componentDidMount = function () {\n this.findAndRunScripts();\n }, t.prototype.findAndRunScripts = function () {\n if (this.elementRef && \"undefined\" != typeof window) for (var e = this.elementRef.getElementsByTagName(\"script\"), t = 0; t < e.length; t++) {\n var n = e[t];\n\n if (n.src) {\n if (this.scriptsInserted.has(n.src)) continue;\n this.scriptsInserted.add(n.src);\n var i = document.createElement(\"script\");\n i.async = !0, i.src = n.src, document.head.appendChild(i);\n } else {\n if (this.scriptsRun.has(n.innerText)) continue;\n this.scriptsRun.add(n.innerText);\n\n try {\n new Function(n.innerText)();\n } catch (e) {\n console.warn(\"Builder custom code component error:\", e);\n }\n }\n }\n }, Object.defineProperty(t.prototype, \"content\", {\n get: function get() {\n return Builder.isServer ? (this.props.content || \"\").replace(//g, \"\") : this.props.content;\n },\n enumerable: !0,\n configurable: !0\n }), t.prototype.render = function () {\n var e = this;\n return React__default.createElement(\"div\", {\n ref: function ref(t) {\n return e.elementRef = t;\n },\n className: \"builder-embed\",\n dangerouslySetInnerHTML: {\n __html: this.content\n }\n });\n }, t;\n}(React__default.Component),\n Embed = withBuilder(EmbedComponent, {\n name: \"Embed\",\n static: !0,\n inputs: [{\n name: \"url\",\n type: \"url\",\n required: !0,\n defaultValue: \"\",\n helperText: \"e.g. enter a youtube url, google map, etc\",\n onChange: function onChange(e) {\n var t = e.get(\"url\");\n\n if (t) {\n e.set(\"content\", \"Loading...\");\n return fetch(\"https://iframe.ly/api/iframely?url=\" + t + \"&api_key=ae0e60e78201a3f2b0de4b\").then(function (e) {\n return e.json();\n }).then(function (n) {\n e.get(\"url\") === t && (n.html ? e.set(\"content\", n.html) : e.set(\"content\", \"Invalid url, please try another\"));\n }).catch(function (t) {\n e.set(\"content\", \"There was an error embedding this URL, please try again or another URL\");\n });\n }\n\n e.delete(\"content\");\n }\n }, {\n name: \"content\",\n type: \"html\",\n defaultValue: '
(Choose an embed URL)
',\n hideFromUI: !0\n }]\n}),\n globalReplaceNodes = {} || null,\n isShopify = Builder.isBrowser && \"Shopify\" in window;\n\nif (Builder.isBrowser && globalReplaceNodes) {\n var customCodeQuerySelector_1 = \".builder-custom-code\";\n\n try {\n var allCustomCodeElements_1 = Array.from(document.querySelectorAll(customCodeQuerySelector_1)),\n builderTemplates = document.querySelectorAll(\"template[data-template-variant-id]\");\n builderTemplates.length && Array.from(builderTemplates).forEach(function (e) {\n var t = e.content.querySelectorAll(customCodeQuerySelector_1);\n t.length && (allCustomCodeElements_1 = allCustomCodeElements_1.concat(Array.from(t)));\n }), allCustomCodeElements_1.forEach(function (e) {\n var t = e.parentElement,\n n = t && t.getAttribute(\"builder-id\");\n n && (globalReplaceNodes[n] = globalReplaceNodes[n] || [], globalReplaceNodes[n].push(isShopify ? e : e.cloneNode(!0)));\n });\n } catch (e) {\n console.error(\"Builder replace nodes error:\", e);\n }\n}\n\nvar CustomCodeComponent = function (e) {\n function t(t) {\n var n,\n i = e.call(this, t) || this;\n\n if (i.elementRef = null, i.originalRef = null, i.scriptsInserted = new Set(), i.scriptsRun = new Set(), i.firstLoad = !0, i.replaceNodes = !1, i.state = {\n hydrated: !1\n }, Builder.isBrowser) {\n var r = null === (n = i.props.builderBlock) || void 0 === n ? void 0 : n.id;\n if (i.replaceNodes = Boolean(Builder.isBrowser && (t.replaceNodes || isShopify) && r && (null == globalReplaceNodes ? void 0 : globalReplaceNodes[r])), i.firstLoad && i.props.builderBlock) if (r && (null == globalReplaceNodes ? void 0 : globalReplaceNodes[r])) {\n var o = globalReplaceNodes[r].shift() || null;\n i.originalRef = o, 0 === globalReplaceNodes[r].length && delete globalReplaceNodes[r];\n } else if (i.replaceNodes) {\n var a = document.querySelectorAll(\".\" + i.props.builderBlock.id + \" .builder-custom-code\");\n\n if (1 === a.length) {\n var s = a[0];\n i.originalRef = s, i.originalRef.remove();\n }\n }\n }\n\n return i;\n }\n\n return __extends(t, e), Object.defineProperty(t.prototype, \"noReactRender\", {\n get: function get() {\n var e;\n return Boolean(isShopify && (null === (e = this.props.code) || void 0 === e ? void 0 : e.match(/{[{%]/g)));\n },\n enumerable: !0,\n configurable: !0\n }), Object.defineProperty(t.prototype, \"isHydrating\", {\n get: function get() {\n return !isShopify && this.originalRef;\n },\n enumerable: !0,\n configurable: !0\n }), t.prototype.componentDidUpdate = function (e) {\n this.props.code !== e.code && this.findAndRunScripts();\n }, t.prototype.componentDidMount = function () {\n var e = this;\n this.firstLoad = !1, this.replaceNodes || (this.isHydrating ? (this.setState({\n hydrated: !0\n }), Builder.nextTick(function () {\n return e.findAndRunScripts();\n })) : this.findAndRunScripts()), Builder.isBrowser && this.replaceNodes && this.originalRef && this.elementRef && this.elementRef.appendChild(this.originalRef);\n }, t.prototype.findAndRunScripts = function () {\n if (this.elementRef && \"undefined\" != typeof window) for (var e = this.elementRef.getElementsByTagName(\"script\"), t = 0; t < e.length; t++) {\n var n = e[t];\n\n if (n.src) {\n if (this.scriptsInserted.has(n.src)) continue;\n this.scriptsInserted.add(n.src);\n var i = document.createElement(\"script\");\n i.async = !0, i.src = n.src, document.head.appendChild(i);\n } else if (!n.type || [\"text/javascript\", \"application/javascript\", \"application/ecmascript\"].includes(n.type)) {\n if (this.scriptsRun.has(n.innerText)) continue;\n\n try {\n this.scriptsRun.add(n.innerText), new Function(n.innerText)();\n } catch (e) {\n console.warn(\"Builder custom code component error:\", e);\n }\n }\n }\n }, Object.defineProperty(t.prototype, \"code\", {\n get: function get() {\n return (Builder.isServer || this.isHydrating && this.firstLoad) && this.props.scriptsClientOnly ? (this.props.code || \"\").replace(/)<[^<]*)*<\\/script>/gi, \"\") : this.props.code;\n },\n enumerable: !0,\n configurable: !0\n }), t.prototype.render = function () {\n var e = this;\n return React__default.createElement(\"div\", _assign({\n ref: function ref(t) {\n return e.elementRef = t;\n },\n className: \"builder-custom-code\"\n }, !this.replaceNodes && !this.noReactRender && {\n dangerouslySetInnerHTML: {\n __html: this.code\n }\n }));\n }, t;\n}(React__default.Component),\n CustomCode = withBuilder(CustomCodeComponent, {\n name: \"Custom Code\",\n static: !0,\n requiredPermissions: [\"editCode\"],\n inputs: [{\n name: \"code\",\n type: \"html\",\n required: !0,\n defaultValue: \"

Hello there, I am custom HTML code!

\",\n code: !0\n }, _assign({\n name: \"replaceNodes\",\n type: \"boolean\",\n helperText: \"Preserve server rendered dom nodes\",\n advanced: !0\n }, isShopify && {\n defaultValue: !0\n }), _assign({\n name: \"scriptsClientOnly\",\n type: \"boolean\",\n helperText: \"Only print and run scripts on the client. Important when scripts influence DOM that could be replaced when client loads\",\n advanced: !0\n }, !isShopify && {\n defaultValue: !0\n })]\n});\n\nfunction removeProtocol(e) {\n return e.replace(/http(s)?:/, \"\");\n}\n\nfunction isElementInViewport(e) {\n var t = e.getBoundingClientRect();\n return t.top >= 0 && t.left >= 0 && t.bottom <= (window.innerHeight || document.documentElement.clientHeight) && t.right <= (window.innerWidth || document.documentElement.clientWidth);\n}\n\nfunction getShopifyImageUrl(e, t) {\n if (!e || !(null == e ? void 0 : e.match(/cdn\\.shopify\\.com/)) || !t) return e;\n if (\"master\" === t) return removeProtocol(e);\n var n = e.match(/(_\\d+x(\\d+)?)?(\\.(jpg|jpeg|gif|png|bmp|bitmap|tiff|tif)(\\?v=\\d+)?)/i);\n\n if (n) {\n var i = e.split(n[0]),\n r = n[3],\n o = t.match(\"x\") ? t : t + \"x\";\n return removeProtocol(i[0] + \"_\" + o + r);\n }\n\n return null;\n}\n\nvar DEFAULT_ASPECT_RATIO$1 = .7041;\n\nfunction updateQueryParam(e, t, n) {\n void 0 === e && (e = \"\");\n var i = new RegExp(\"([?&])\" + t + \"=.*?(&|$)\", \"i\"),\n r = -1 !== e.indexOf(\"?\") ? \"&\" : \"?\";\n return e.match(i) ? e.replace(i, \"$1\" + t + \"=\" + encodeURIComponent(n) + \"$2\") : e + r + t + \"=\" + encodeURIComponent(n);\n}\n\nfunction getSrcSet(e) {\n if (!e) return e;\n var t = [100, 200, 400, 800, 1200, 1600, 2e3];\n\n if (e.match(/builder\\.io/)) {\n var n = e,\n i = Number(e.split(\"?width=\")[1]);\n return isNaN(i) || (n = n + \" \" + i + \"w\"), t.filter(function (e) {\n return e !== i;\n }).map(function (t) {\n return updateQueryParam(e, \"width\", t) + \" \" + t + \"w\";\n }).concat([n]).join(\", \");\n }\n\n return e.match(/cdn\\.shopify\\.com/) ? t.map(function (t) {\n return [getShopifyImageUrl(e, t + \"x\" + t), t];\n }).filter(function (e) {\n return !!e[0];\n }).map(function (e) {\n return e[0] + \" \" + e[1] + \"w\";\n }).concat([e]).join(\", \") : e;\n}\n\nvar getSizes = function getSizes(e, t) {\n var n,\n i,\n r,\n o,\n a,\n s,\n l,\n u,\n d = \"\";\n\n if (e) {\n var c = e.split(\",\"),\n p = c.length;\n d = c.map(function (e, t) {\n return p === t + 1 ? e.replace(/\\([\\s\\S]*?\\)/g, \"\").trim() : e;\n }).join(\", \");\n } else if (t && t.responsiveStyles) {\n var f = [],\n m = !1,\n h = /^\\d+/;\n\n if (null === (r = null === (i = null === (n = t.responsiveStyles) || void 0 === n ? void 0 : n.small) || void 0 === i ? void 0 : i.width) || void 0 === r ? void 0 : r.match(h)) {\n m = !0;\n var g = \"(max-width: 639px)\" + \" \" + t.responsiveStyles.small.width.replace(\"%\", \"vw\");\n f.push(g);\n }\n\n if (null === (s = null === (a = null === (o = t.responsiveStyles) || void 0 === o ? void 0 : o.medium) || void 0 === a ? void 0 : a.width) || void 0 === s ? void 0 : s.match(h)) {\n m = !0;\n g = \"(max-width: 999px)\" + \" \" + t.responsiveStyles.medium.width.replace(\"%\", \"vw\");\n f.push(g);\n }\n\n if (null === (u = null === (l = t.responsiveStyles) || void 0 === l ? void 0 : l.large) || void 0 === u ? void 0 : u.width) {\n var v = t.responsiveStyles.large.width.replace(\"%\", \"vw\");\n f.push(v);\n } else m && f.push(\"100vw\");\n\n f.length && (d = f.join(\", \"));\n }\n\n return d;\n},\n ImageComponent = function (e) {\n function t() {\n var t = null !== e && e.apply(this, arguments) || this;\n return t.state = {\n imageLoaded: !t.useLazyLoading,\n load: !t.useLazyLoading\n }, t.pictureRef = null, t.scrollListener = null, t.intersectionObserver = null, t;\n }\n\n return __extends(t, e), Object.defineProperty(t.prototype, \"useLazyLoading\", {\n get: function get() {\n return (!Builder.isBrowser || !location.search.includes(\"builder.lazyLoadImages=false\")) && (!(!Builder.isBrowser || !location.href.includes(\"builder.lazyLoadImages=true\")) || this.props.lazy);\n },\n enumerable: !0,\n configurable: !0\n }), t.prototype.componentWillUnmount = function () {\n Builder.isBrowser && (this.scrollListener && (window.removeEventListener(\"scroll\", this.scrollListener), this.scrollListener = null), this.intersectionObserver && this.pictureRef && this.intersectionObserver.unobserve(this.pictureRef));\n }, t.prototype.componentDidMount = function () {\n var e = this;\n if (this.props.lazy && Builder.isBrowser) if (this.pictureRef && isElementInViewport(this.pictureRef)) this.setState({\n load: !0\n });else if (\"function\" == typeof IntersectionObserver && this.pictureRef) {\n (this.intersectionObserver = new IntersectionObserver(function (t, n) {\n t.forEach(function (t) {\n t.intersectionRatio > 0 && (e.setState({\n load: !0\n }), e.pictureRef && n.unobserve(e.pictureRef));\n });\n })).observe(this.pictureRef);\n } else {\n var t = throttle(function (n) {\n if (e.pictureRef) {\n var i = e.pictureRef.getBoundingClientRect(),\n r = window.innerHeight / 2;\n i.top < window.innerHeight + r && (e.setState(_assign(_assign({}, e.state), {\n load: !0\n })), window.removeEventListener(\"scroll\", t), e.scrollListener = null);\n }\n }, 400, {\n leading: !1,\n trailing: !0\n });\n this.scrollListener = t, window.addEventListener(\"scroll\", t, {\n capture: !0,\n passive: !0\n }), t();\n }\n }, Object.defineProperty(t.prototype, \"image\", {\n get: function get() {\n return this.props.image || this.props.src;\n },\n enumerable: !0,\n configurable: !0\n }), t.prototype.getSrcSet = function () {\n var e = this.image;\n if (e && (e.match(/builder\\.io/) || e.match(/cdn\\.shopify\\.com/))) return getSrcSet(e);\n }, t.prototype.render = function () {\n var e = this,\n t = this.props,\n n = t.aspectRatio,\n i = t.lazy,\n r = this.props.builderBlock && this.props.builderBlock.children,\n o = this.props.srcset,\n a = getSizes(this.props.sizes, this.props.builderBlock),\n s = this.image;\n o && s && s.includes(\"builder.io/api/v1/image\") ? o.includes(s.split(\"?\")[0]) || (console.debug(\"Removed given srcset\"), o = this.getSrcSet()) : s && !o && (o = this.getSrcSet());\n var l = this.props.fitContent;\n return jsx(BuilderMetaContext.Consumer, null, function (t) {\n var s,\n u = t.ampMode,\n d = u ? \"amp-img\" : \"img\",\n c = (!i || e.state.load || u) && jsx(d, _assign({}, u ? {\n layout: \"responsive\",\n height: e.props.height || (n ? Math.round(1e3 * n) : void 0),\n width: e.props.width || (n ? Math.round(1e3 / n) : void 0)\n } : null, {\n alt: e.props.altText,\n key: Builder.isEditing && \"string\" == typeof e.image && e.image.split(\"?\")[0] || void 0,\n role: e.props.altText ? void 0 : \"presentation\",\n css: _assign(_assign({\n opacity: u ? 1 : e.useLazyLoading && !e.state.imageLoaded ? 0 : 1,\n transition: \"opacity 0.2s ease-in-out\",\n objectFit: e.props.backgroundSize || \"cover\",\n objectPosition: e.props.backgroundPosition || \"center\"\n }, n && !u && {\n position: \"absolute\",\n height: \"100%\",\n width: \"100%\",\n left: 0,\n top: 0\n }), u && (s = {}, s[\"& img\"] = {\n objectFit: e.props.backgroundSize,\n objectPosition: e.props.backgroundPosition\n }, s)),\n loading: \"lazy\",\n className: \"builder-image\" + (e.props.className ? \" \" + e.props.className : \"\"),\n src: e.image\n }, !u && {\n onLoad: function onLoad() {\n return e.setState({\n imageLoaded: !0\n });\n }\n }, {\n srcSet: o,\n sizes: !u && a ? a : void 0\n }));\n return jsx(React__default.Fragment, null, u ? c : jsx(\"picture\", {\n ref: function ref(t) {\n return e.pictureRef = t;\n }\n }, o && o.match(/builder\\.io/) && !e.props.noWebp && jsx(\"source\", {\n srcSet: o.replace(/\\?/g, \"?format=webp&\"),\n type: \"image/webp\"\n }), c), !n || u || l && r && r.length ? null : jsx(\"div\", {\n className: \"builder-image-sizer\",\n css: {\n width: \"100%\",\n paddingTop: 100 * n + \"%\",\n pointerEvents: \"none\",\n fontSize: 0\n }\n }, \" \"), r && r.length ? l ? r.map(function (e, t) {\n return jsx(BuilderBlock, {\n key: e.id,\n block: e\n });\n }) : jsx(\"div\", {\n css: {\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"stretch\",\n position: \"absolute\",\n top: 0,\n left: 0,\n width: \"100%\",\n height: \"100%\"\n }\n }, r.map(function (e, t) {\n return jsx(BuilderBlock, {\n key: e.id,\n block: e\n });\n })) : null);\n });\n }, t;\n}(React__default.Component),\n Image = withBuilder(ImageComponent, {\n name: \"Image\",\n static: !0,\n image: \"https://firebasestorage.googleapis.com/v0/b/builder-3b0a2.appspot.com/o/images%2Fbaseline-insert_photo-24px.svg?alt=media&token=4e5d0ef4-f5e8-4e57-b3a9-38d63a9b9dc4\",\n defaultStyles: {\n position: \"relative\",\n minHeight: \"20px\",\n minWidth: \"20px\",\n overflow: \"hidden\"\n },\n canHaveChildren: !0,\n inputs: [{\n name: \"image\",\n type: \"file\",\n bubble: !0,\n allowedFileTypes: [\"jpeg\", \"jpg\", \"png\", \"svg\"],\n required: !0,\n defaultValue: \"https://cdn.builder.io/api/v1/image/assets%2Fpwgjf0RoYWbdnJSbpBAjXNRMe9F2%2Ffb27a7c790324294af8be1c35fe30f4d\",\n onChange: function onChange(e) {\n e.delete(\"srcset\"), e.delete(\"noWebp\");\n var t,\n n,\n i = e.get(\"image\"),\n r = e.get(\"aspectRatio\");\n if (fetch(i).then(function (e) {\n return e.blob();\n }).then(function (t) {\n t.type.includes(\"svg\") && e.set(\"noWebp\", !0);\n }), i && (!r || .7041 === r)) return (t = i, void 0 === n && (n = 6e4), new Promise(function (e, i) {\n var r = document.createElement(\"img\"),\n o = !1;\n r.onload = function () {\n o = !0, e(r);\n }, r.addEventListener(\"error\", function (e) {\n console.warn(\"Image load failed\", e.error), i(e.error);\n }), r.src = t, setTimeout(function () {\n o || i(new Error(\"Image load timed out\"));\n }, n);\n })).then(function (t) {\n var n,\n r = e.get(\"aspectRatio\");\n e.get(\"image\") !== i || r && .7041 !== r || t.width && t.height && (e.set(\"aspectRatio\", (n = t.height / t.width, Math.round(1e3 * n) / 1e3)), e.set(\"height\", t.height), e.set(\"width\", t.width));\n });\n }\n }, {\n name: \"backgroundSize\",\n type: \"text\",\n defaultValue: \"cover\",\n enum: [{\n label: \"contain\",\n value: \"contain\",\n helperText: \"The image should never get cropped\"\n }, {\n label: \"cover\",\n value: \"cover\",\n helperText: \"The image should fill it's box, cropping when needed\"\n }]\n }, {\n name: \"backgroundPosition\",\n type: \"text\",\n defaultValue: \"center\",\n enum: [\"center\", \"top\", \"left\", \"right\", \"bottom\", \"top left\", \"top right\", \"bottom left\", \"bottom right\"]\n }, {\n name: \"altText\",\n type: \"string\",\n helperText: \"Text to display when the user has images off\"\n }, {\n name: \"height\",\n type: \"number\",\n hideFromUI: !0\n }, {\n name: \"width\",\n type: \"number\",\n hideFromUI: !0\n }, {\n name: \"sizes\",\n type: \"string\",\n hideFromUI: !0\n }, {\n name: \"srcset\",\n type: \"string\",\n hideFromUI: !0\n }, {\n name: \"lazy\",\n type: \"boolean\",\n defaultValue: !0,\n hideFromUI: !0\n }, {\n name: \"fitContent\",\n type: \"boolean\",\n helperText: \"When child blocks are provided, fit to them instead of using the image's aspect ratio\",\n defaultValue: !0\n }, {\n name: \"aspectRatio\",\n type: \"number\",\n helperText: \"This is the ratio of height/width, e.g. set to 1.5 for a 300px wide and 200px tall photo. Set to 0 to not force the image to maintain it's aspect ratio\",\n advanced: !0,\n defaultValue: DEFAULT_ASPECT_RATIO$1\n }]\n}),\n DEFAULT_ASPECT_RATIO$2 = .7004048582995948,\n VideoComponent = function (e) {\n function t() {\n var t = null !== e && e.apply(this, arguments) || this;\n return t.video = null, t.containerRef = null, t.scrollListener = null, t.state = {\n load: !t.lazyLoad\n }, t;\n }\n\n return __extends(t, e), Object.defineProperty(t.prototype, \"lazyLoad\", {\n get: function get() {\n return !1 !== this.props.lazyLoad;\n },\n enumerable: !0,\n configurable: !0\n }), t.prototype.updateVideo = function () {\n var e = this,\n t = this.video;\n\n if (t) {\n [\"muted\", \"playsInline\", \"autoPlay\"].forEach(function (n) {\n var i = n.toLowerCase();\n e.props[n] ? t.setAttribute(i, i) : t.removeAttribute(i);\n });\n }\n }, t.prototype.componentDidUpdate = function () {\n this.updateVideo();\n }, t.prototype.componentDidMount = function () {\n var e = this;\n\n if (this.updateVideo(), this.lazyLoad && Builder.isBrowser) {\n var t = throttle(function (n) {\n if (e.containerRef) {\n var i = e.containerRef.getBoundingClientRect(),\n r = window.innerHeight / 2;\n i.top < window.innerHeight + r && (e.setState(function (e) {\n return _assign(_assign({}, e), {\n load: !0\n });\n }), window.removeEventListener(\"scroll\", t), e.scrollListener = null);\n }\n }, 400, {\n leading: !1,\n trailing: !0\n });\n this.scrollListener = t, window.addEventListener(\"scroll\", t, {\n capture: !0,\n passive: !0\n }), t();\n }\n }, t.prototype.componentWillUnmount = function () {\n Builder.isBrowser && this.scrollListener && (window.removeEventListener(\"scroll\", this.scrollListener), this.scrollListener = null);\n }, t.prototype.render = function () {\n var e = this,\n t = this.props,\n n = t.aspectRatio,\n i = t.children;\n return jsx(\"div\", {\n ref: function ref(t) {\n return e.containerRef = t;\n },\n css: {\n position: \"relative\"\n }\n }, jsx(\"video\", {\n key: this.props.video || \"no-src\",\n poster: this.props.posterImage,\n ref: function ref(t) {\n return e.video = t;\n },\n autoPlay: this.props.autoPlay,\n muted: this.props.muted,\n controls: this.props.controls,\n loop: this.props.loop,\n className: \"builder-video\",\n css: _assign({\n width: \"100%\",\n height: \"100%\",\n objectFit: this.props.fit,\n objectPosition: this.props.position,\n zIndex: 2,\n borderRadius: 1\n }, n ? {\n position: \"absolute\"\n } : null)\n }, (!this.lazyLoad || this.state.load) && jsx(\"source\", {\n type: \"video/mp4\",\n src: this.props.video\n })), !n || this.props.fitContent && i ? null : jsx(\"div\", {\n css: {\n width: \"100%\",\n paddingTop: 100 * n + \"%\",\n pointerEvents: \"none\",\n fontSize: 0\n }\n }), i && this.props.fitContent ? jsx(\"div\", {\n css: {\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"stretch\"\n }\n }, i) : i ? jsx(\"div\", {\n css: {\n pointerEvents: \"none\",\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"stretch\",\n position: \"absolute\",\n top: 0,\n left: 0,\n width: \"100%\",\n height: \"100%\"\n }\n }, i) : null);\n }, t;\n}(React__default.Component),\n Video = Builder.registerComponent(withChildren(VideoComponent), {\n name: \"Video\",\n canHaveChildren: !0,\n defaultStyles: {\n minHeight: \"20px\",\n minWidth: \"20px\"\n },\n image: \"https://firebasestorage.googleapis.com/v0/b/builder-3b0a2.appspot.com/o/images%2Fbaseline-videocam-24px%20(1).svg?alt=media&token=49a84e4a-b20e-4977-a650-047f986874bb\",\n inputs: [{\n name: \"video\",\n type: \"file\",\n allowedFileTypes: [\"mp4\"],\n bubble: !0,\n defaultValue: \"https://firebasestorage.googleapis.com/v0/b/builder-3b0a2.appspot.com/o/assets%2FKQlEmWDxA0coC3PK6UvkrjwkIGI2%2F28cb070609f546cdbe5efa20e931aa4b?alt=media&token=912e9551-7a7c-4dfb-86b6-3da1537d1a7f\",\n required: !0\n }, {\n name: \"posterImage\",\n type: \"file\",\n allowedFileTypes: [\"jpeg\", \"png\"],\n helperText: \"Image to show before the video plays\"\n }, {\n name: \"autoPlay\",\n type: \"boolean\",\n defaultValue: !0\n }, {\n name: \"controls\",\n type: \"boolean\",\n defaultValue: !1\n }, {\n name: \"muted\",\n type: \"boolean\",\n defaultValue: !0\n }, {\n name: \"loop\",\n type: \"boolean\",\n defaultValue: !0\n }, {\n name: \"playsInline\",\n type: \"boolean\",\n defaultValue: !0\n }, {\n name: \"fit\",\n type: \"text\",\n defaultValue: \"cover\",\n enum: [\"contain\", \"cover\", \"fill\", \"auto\"]\n }, {\n name: \"fitContent\",\n type: \"boolean\",\n helperText: \"When child blocks are provided, fit to them instead of using the aspect ratio\",\n defaultValue: !0,\n advanced: !0\n }, {\n name: \"position\",\n type: \"text\",\n defaultValue: \"center\",\n enum: [\"center\", \"top\", \"left\", \"right\", \"bottom\", \"top left\", \"top right\", \"bottom left\", \"bottom right\"]\n }, {\n name: \"height\",\n type: \"number\",\n advanced: !0\n }, {\n name: \"width\",\n type: \"number\",\n advanced: !0\n }, {\n name: \"aspectRatio\",\n type: \"number\",\n advanced: !0,\n defaultValue: DEFAULT_ASPECT_RATIO$2\n }, {\n name: \"lazyLoad\",\n type: \"boolean\",\n helperText: 'Load this video \"lazily\" - as in only when a user scrolls near the video. Recommended for optmized performance and bandwidth consumption',\n defaultValue: !0,\n advanced: !0\n }]\n}),\n size$1 = function size$1(e) {\n return Object.keys(e).length;\n},\n isShopify$1 = Builder.isBrowser && \"Shopify\" in window,\n refs = {};\n\nif (Builder.isBrowser) try {\n Array.from(document.querySelectorAll(\"[builder-static-symbol]\")).forEach(function (e) {\n var t = e.getAttribute(\"builder-static-symbol\");\n t && (refs[t] = e);\n });\n} catch (e) {\n console.error(\"Builder replace nodes error:\", e);\n}\n\nvar SymbolComponent = function (e) {\n function t() {\n var t = null !== e && e.apply(this, arguments) || this;\n return t.ref = null, t.staticRef = null, t;\n }\n\n return __extends(t, e), Object.defineProperty(t.prototype, \"placeholder\", {\n get: function get() {\n return jsx(\"div\", {\n css: {\n padding: 10\n }\n }, \"Symbols let you reuse dynamic elements across your content. Please choose a model and entry for this symbol.\");\n },\n enumerable: !0,\n configurable: !0\n }), t.prototype.componentDidMount = function () {\n var e, t, n;\n this.useStatic && this.staticRef && refs[null === (e = this.props.builderBlock) || void 0 === e ? void 0 : e.id] && (null === (t = this.staticRef.parentNode) || void 0 === t || t.replaceChild(refs[null === (n = this.props.builderBlock) || void 0 === n ? void 0 : n.id], this.staticRef));\n }, Object.defineProperty(t.prototype, \"useStatic\", {\n get: function get() {\n var e;\n return Boolean(Builder.isBrowser && refs[null === (e = this.props.builderBlock) || void 0 === e ? void 0 : e.id] && !(Builder.isEditing || Builder.isPreviewing));\n },\n enumerable: !0,\n configurable: !0\n }), t.prototype.render = function () {\n var e,\n t = this;\n if (this.useStatic) return jsx(\"div\", {\n ref: function ref(e) {\n return t.staticRef = e;\n }\n });\n var n = this.props.symbol,\n i = !1;\n n || (i = !0);\n var r = this.props.dataOnly ? NoWrap : this.props.builderBlock && this.props.builderBlock.tagName || \"div\",\n o = n || {},\n a = o.model,\n s = o.entry,\n l = o.data,\n u = o.content,\n d = o.inline,\n c = (null == n ? void 0 : n.dynamic) || this.props.dynamic;\n a && (s || c) || (null === (e = null == u ? void 0 : u.data) || void 0 === e ? void 0 : e.blocksJs) || d || (i = !0);\n var p = c ? void 0 : [a, s].join(\":\"),\n f = Builder.isEditing ? null : l && size$1(l) && hash(l);\n p && f && f.length < 300 && (p += \":\" + f);\n var m = this.props.attributes || {};\n return jsx(BuilderStoreContext.Consumer, {\n key: (a || \"no model\") + \":\" + (s || \"no entry\")\n }, function (e) {\n var o, d, c, f, h, g, v, b, y;\n return jsx(r, _assign({\n \"data-model\": a\n }, m, {\n className: (m.class || m.className || \"\") + \" builder-symbol\" + ((null == n ? void 0 : n.inline) ? \" builder-inline-symbol\" : \"\") + ((null == n ? void 0 : n.dynamic) || t.props.dynamic ? \" builder-dynamic-symbol\" : \"\")\n }), i ? t.placeholder : jsx(BuilderComponent, _assign({\n isChild: !0,\n ref: function ref(e) {\n return t.ref = e;\n },\n context: _assign(_assign({}, e.context), {\n symbolId: null === (o = t.props.builderBlock) || void 0 === o ? void 0 : o.id\n }),\n modelName: a,\n entry: s,\n data: _assign(_assign(_assign({}, l), !!t.props.inheritState && e.state), null === (v = null === (g = null === (h = null === (f = null === (c = null === (d = t.props.builderBlock) || void 0 === d ? void 0 : d.component) || void 0 === c ? void 0 : c.options) || void 0 === f ? void 0 : f.symbol) || void 0 === h ? void 0 : h.content) || void 0 === g ? void 0 : g.data) || void 0 === v ? void 0 : v.state),\n renderLink: e.renderLink,\n inlineContent: null == n ? void 0 : n.inline\n }, u && {\n content: u\n }, {\n options: {\n key: p,\n noEditorUpdates: !0\n },\n codegen: !!(null === (b = null == u ? void 0 : u.data) || void 0 === b ? void 0 : b.blocksJs),\n hydrate: null === (y = e.state) || void 0 === y ? void 0 : y._hydrate,\n builderBlock: t.props.builderBlock,\n dataOnly: t.props.dataOnly\n }), t.props.children));\n });\n }, t;\n}(React__default.Component),\n Symbol$1 = withBuilder(SymbolComponent, {\n name: \"Symbol\",\n noWrap: !0,\n static: !0,\n inputs: [{\n name: \"symbol\",\n type: \"uiSymbol\"\n }, {\n name: \"dataOnly\",\n helperText: \"Make this a data symbol that doesn't display any UI\",\n type: \"boolean\",\n defaultValue: !1,\n advanced: !0,\n hideFromUI: !0\n }, {\n name: \"inheritState\",\n helperText: \"Inherit the parent component state and data\",\n type: \"boolean\",\n defaultValue: isShopify$1,\n advanced: !0\n }, {\n name: \"renderToLiquid\",\n helperText: \"Render this symbols contents to liquid. Turn off to fetch with javascript and use custom targeting\",\n type: \"boolean\",\n defaultValue: isShopify$1,\n advanced: !0,\n hideFromUI: !0\n }, {\n name: \"useChildren\",\n hideFromUI: !0,\n type: \"boolean\"\n }]\n}),\n ButtonComponent = function (e) {\n function t() {\n return null !== e && e.apply(this, arguments) || this;\n }\n\n return __extends(t, e), t.prototype.render = function () {\n var e = this.props.link ? Link : \"span\";\n return React__default.createElement(e, _assign({\n role: \"button\",\n href: this.props.link,\n target: this.props.openLinkInNewTab ? \"_blank\" : void 0\n }, this.props.attributes), this.props.text);\n }, t;\n}(React__default.Component),\n Button = withBuilder(ButtonComponent, {\n name: \"Core:Button\",\n image: \"https://cdn.builder.io/api/v1/image/assets%2FIsxPKMo2gPRRKeakUztj1D6uqed2%2F81a15681c3e74df09677dfc57a615b13\",\n defaultStyles: {\n appearance: \"none\",\n paddingTop: \"15px\",\n paddingBottom: \"15px\",\n paddingLeft: \"25px\",\n paddingRight: \"25px\",\n backgroundColor: \"#000000\",\n color: \"white\",\n borderRadius: \"4px\",\n textAlign: \"center\",\n cursor: \"pointer\"\n },\n inputs: [{\n name: \"text\",\n type: \"text\",\n defaultValue: \"Click me!\",\n bubble: !0\n }, {\n name: \"link\",\n type: \"url\",\n bubble: !0\n }, {\n name: \"openLinkInNewTab\",\n type: \"boolean\",\n defaultValue: !1,\n friendlyName: \"Open link in new tab\"\n }],\n static: !0,\n noWrap: !0\n}),\n SectionComponent = function (e) {\n function t() {\n var t = null !== e && e.apply(this, arguments) || this;\n return t.ref = null, t.unmountCallbacks = [], t.state = {\n inView: !1\n }, t;\n }\n\n return __extends(t, e), Object.defineProperty(t.prototype, \"renderContents\", {\n get: function get() {\n return !0 !== this.props.lazyLoad || this.state.inView;\n },\n enumerable: !0,\n configurable: !0\n }), t.prototype.componentWillUnmount = function () {\n this.unmountCallbacks.forEach(function (e) {\n return e();\n });\n }, t.prototype.componentDidMount = function () {\n var e = this;\n if (this.props.lazyLoad) if (\"undefined\" != typeof IntersectionObserver && this.ref) {\n var t = new IntersectionObserver(function (t, n) {\n t.forEach(function (t) {\n t.intersectionRatio > 0 && (e.setState({\n inView: !0\n }), e.ref && n.unobserve(e.ref));\n });\n });\n t.observe(this.ref), this.unmountCallbacks.push(function () {\n e.ref && t.unobserve(e.ref);\n });\n } else this.setState({\n inView: !0\n });\n }, t.prototype.render = function () {\n var e = this;\n return jsx(\"section\", {\n ref: function ref(t) {\n return e.ref = t;\n },\n css: _assign({\n width: \"100%\",\n alignSelf: \"stretch\",\n flexGrow: 1,\n boxSizing: \"border-box\",\n maxWidth: this.props.maxWidth,\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"stretch\",\n marginLeft: \"auto\",\n marginRight: \"auto\"\n }, this.renderContents ? null : this.props.lazyStyles)\n }, this.renderContents ? jsx(React__default.Fragment, null, this.props.children, this.props.builderBlock && this.props.builderBlock.children && this.props.builderBlock.children.map(function (e, t) {\n return jsx(BuilderBlock, {\n key: e.id,\n block: e\n });\n })) : null);\n }, t;\n}(React__default.Component),\n Section = withBuilder(SectionComponent, {\n name: \"Core:Section\",\n static: !0,\n image: \"https://cdn.builder.io/api/v1/image/assets%2FIsxPKMo2gPRRKeakUztj1D6uqed2%2F682efef23ace49afac61748dd305c70a\",\n inputs: [{\n name: \"maxWidth\",\n type: \"number\",\n defaultValue: 1200\n }, {\n name: \"lazyLoad\",\n type: \"boolean\",\n defaultValue: !1,\n advanced: !0,\n description: \"Only render this section when in view\"\n }],\n defaultStyles: {\n paddingLeft: \"20px\",\n paddingRight: \"20px\",\n paddingTop: \"50px\",\n paddingBottom: \"50px\",\n marginTop: \"0px\",\n width: \"100vw\",\n marginLeft: \"calc(50% - 50vw)\"\n },\n canHaveChildren: !0,\n defaultChildren: [{\n \"@type\": \"@builder.io/sdk:Element\",\n responsiveStyles: {\n large: {\n textAlign: \"center\"\n }\n },\n component: {\n name: \"Text\",\n options: {\n text: \"

I am a section! My content keeps from getting too wide, so that it's easy to read even on big screens.

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur

\"\n }\n }\n }]\n}),\n StateProviderComponent = function (e) {\n function t() {\n return null !== e && e.apply(this, arguments) || this;\n }\n\n return __extends(t, e), t.prototype.render = function () {\n var e = this;\n return React__default.createElement(BuilderStoreContext.Consumer, null, function (t) {\n return React__default.createElement(BuilderStoreContext.Provider, {\n value: _assign(_assign({}, t), {\n state: _assign(_assign({}, t.state), e.props.state),\n context: _assign(_assign({}, t.context), e.props.context)\n })\n }, e.props.builderBlock && e.props.builderBlock.children && e.props.builderBlock.children.map(function (e, t) {\n return React__default.createElement(BuilderBlock, {\n block: e,\n key: e.id,\n index: t,\n child: !0\n });\n }), e.props.children);\n });\n }, t;\n}(React__default.Component),\n StateProvider = withBuilder(StateProviderComponent, {\n name: \"Builder:StateProvider\",\n canHaveChildren: !0,\n static: !0,\n noWrap: !0,\n hideFromInsertMenu: !0\n}),\n prefetched = new Set();\n\nfunction searchToObject$1(e) {\n var t = (e.search || \"\").substring(1).split(\"&\"),\n n = {};\n\n for (var i in t) {\n if (t[i] && \"string\" == typeof t[i]) {\n var r = t[i].split(\"=\");\n n[decodeURIComponent(r[0])] = decodeURIComponent(r[1]);\n }\n }\n\n return n;\n}\n\nvar RouterComponent = function (e) {\n function t() {\n var t = null !== e && e.apply(this, arguments) || this;\n return t.builder = builder, t.routed = !1, t.preloadQueue = 0, t.onPopState = function (e) {\n t.updateLocationState();\n }, t.onMouseOverOrTouchStart = function (e) {\n if (!(t.preloadQueue > 4) && !1 !== t.props.preloadOnHover) {\n var n = t.findHrefTarget(e);\n\n if (n) {\n var i = n.getAttribute(\"href\");\n\n if (i) {\n if (!t.isRelative(i)) {\n var r = t.convertToRelative(i);\n if (!r) return;\n i = r;\n }\n\n if (!i.startsWith(\"#\") && !prefetched.has(i)) {\n prefetched.add(i);\n var o = t.parseUrl(i);\n t.preloadQueue++;\n var a = builder.getUserAttributes();\n a.urlPath = o.pathname, a.queryString = o.search;\n var s = builder.get(t.model, {\n userAttributes: a,\n key: t.model + \":\" + o.pathname + o.search\n }).subscribe(function () {\n t.preloadQueue--, s.unsubscribe();\n });\n }\n }\n }\n }\n }, t.onClick = function (e) {\n return __awaiter(t, void 0, void 0, function () {\n var t, n, i, r;\n return __generator(this, function (o) {\n if (!1 === this.props.handleRouting) return [2];\n if (0 !== e.button || e.ctrlKey || e.defaultPrevented || e.metaKey) return [2];\n if (!(t = this.findHrefTarget(e))) return [2];\n if (t.target && \"_client\" !== t.target) return [2];\n if (!(n = t.getAttribute(\"href\"))) return [2];\n if (this.props.onRoute && (i = {\n url: n,\n anchorNode: t,\n preventDefault: function preventDefault() {\n this.defaultPrevented = !0;\n },\n defaultPrevented: !1\n }, this.props.onRoute(i), i.defaultPrevented)) return [2];\n\n if (!this.isRelative(n)) {\n if (!(r = this.convertToRelative(n))) return [2];\n n = r;\n }\n\n return n.startsWith(\"#\") || (e.preventDefault(), this.route(n)), [2];\n });\n });\n }, t.privateState = null, t;\n }\n\n return __extends(t, e), t.prototype.route = function (e) {\n return this.routed = !0, window.history && window.history.pushState ? (history.pushState(null, \"\", e), this.updateLocationState(), !0) : (location.href = e, !1);\n }, t.prototype.updateLocationState = function () {\n this.privateState && this.privateState.update(function (e) {\n e.location = _assign(_assign({}, e.location), {\n pathname: location.pathname,\n search: location.search,\n path: location.pathname.split(\"/\").slice(1),\n query: searchToObject$1(location)\n });\n });\n }, Object.defineProperty(t.prototype, \"model\", {\n get: function get() {\n return this.props.model || \"page\";\n },\n enumerable: !0,\n configurable: !0\n }), t.prototype.componentDidMount = function () {\n \"undefined\" != typeof document && (document.addEventListener(\"click\", this.onClick), window.addEventListener(\"popstate\", this.onPopState), document.addEventListener(\"mouseover\", this.onMouseOverOrTouchStart), document.addEventListener(\"touchstart\", this.onMouseOverOrTouchStart));\n }, t.prototype.componentWillUnmount = function () {\n \"undefined\" != typeof document && (document.removeEventListener(\"click\", this.onClick), document.removeEventListener(\"mouseover\", this.onMouseOverOrTouchStart), window.removeEventListener(\"popstate\", this.onPopState), document.removeEventListener(\"touchstart\", this.onMouseOverOrTouchStart));\n }, t.prototype.render = function () {\n var e = this,\n t = this.model;\n return jsx(BuilderStoreContext.Consumer, null, function (n) {\n e.privateState = n;\n var i = n.state && n.state.location && n.state.location.pathname + n.state.location.search;\n return jsx(\"div\", {\n className: \"builder-router\",\n \"data-model\": t\n }, jsx(\"style\", null, \"\\n @keyframes builderLoadingSpinner {\\n 0% {\\n transform: rotate(0deg);\\n }\\n 100% {\\n transform: rotate(360deg);\\n }\\n }\\n /* TODO: overridable tag */\\n .builder-page-loading {\\n -webkit-animation: builderLoadingSpinner 1s infinite linear;\\n animation: builderLoadingSpinner 1s infinite linear;\\n -webkit-transform: translateZ(0);\\n transform: translateZ(0);\\n border-radius: 50%;\\n width: 36px;\\n height: 36px;\\n margin: 6px auto;\\n position: relative;\\n border: 1px solid transparent;\\n border-left: 1px solid #808284;\\n }\\n \"), jsx(BuilderComponent, {\n key: i,\n data: e.props.data,\n content: e.routed ? void 0 : e.props.content,\n modelName: t,\n options: {\n key: Builder.isEditing ? void 0 : e.model + \":\" + i\n }\n }, e.props.children || jsx(\"div\", {\n css: {\n display: \"flex\"\n }\n }, jsx(\"div\", {\n css: {\n margin: \"40vh auto\"\n },\n className: \"builder-page-loading\"\n }))));\n });\n }, t.prototype.findHrefTarget = function (e) {\n for (var t = e.target; t;) {\n if (t instanceof HTMLAnchorElement && t.getAttribute(\"href\")) return t;\n if (t === e.currentTarget) break;\n t = t.parentElement;\n }\n\n return null;\n }, t.prototype.isRelative = function (e) {\n return !e.match(/^(\\/\\/|https?:\\/\\/)/i);\n }, t.prototype.parseUrl = function (e) {\n var t = document.createElement(\"a\");\n return t.href = e, t;\n }, t.prototype.convertToRelative = function (e) {\n var t = this.parseUrl(location.href),\n n = this.parseUrl(e);\n\n if (t.host === n.host) {\n var i = n.pathname + (n.search ? n.search : \"\");\n return i.startsWith(\"#\") ? null : i || \"/\";\n }\n\n return null;\n }, t;\n}(React__default.Component),\n Router = withBuilder(RouterComponent, {\n name: \"Core:Router\",\n hideFromInsertMenu: !0,\n inputs: [{\n name: \"model\",\n type: \"string\",\n defaultValue: \"page\",\n advanced: !0\n }, {\n name: \"handleRouting\",\n type: \"boolean\",\n defaultValue: !0,\n advanced: !0\n }, {\n name: \"preloadOnHover\",\n type: \"boolean\",\n defaultValue: !0,\n advanced: !0\n }, {\n name: \"onRoute\",\n type: \"function\",\n advanced: !0\n }]\n});\n\nfunction Mutation(e) {\n var t,\n n,\n i = React__default.useRef(null);\n useWaitForSelector(e.selector, function (t) {\n \"afterEnd\" !== e.type && (t.innerHTML = \"\"), t.appendChild(i.current.firstElementChild);\n });\n var r = null === (t = e.builderBlock) || void 0 === t ? void 0 : t.children;\n return jsx(\"span\", {\n style: {\n display: \"none\"\n },\n ref: i\n }, jsx(BuilderBlocks, {\n style: {\n display: \"inline\"\n },\n child: !0,\n parentElementId: null === (n = e.builderBlock) || void 0 === n ? void 0 : n.id,\n dataPath: \"this.children\",\n blocks: r\n }));\n}\n\nfunction useWaitForSelector(e, t) {\n React__default.useLayoutEffect(function () {\n try {\n var n = document.querySelector(e);\n if (n) return void t(n);\n } catch (e) {\n console.warn(e);\n }\n\n var i = new MutationObserver(function () {\n try {\n var n = document.querySelector(e);\n n && (i.disconnect(), t(n));\n } catch (e) {\n console.warn(e);\n }\n });\n return i.observe(document.body, {\n attributes: !0,\n subtree: !0,\n characterData: !0\n }), function () {\n i.disconnect();\n };\n }, [e]);\n}\n\nBuilder.registerComponent(Mutation, {\n name: \"Builder:Mutation\",\n canHaveChildren: !0,\n noWrap: !0,\n hideFromInsertMenu: !0,\n inputs: [{\n name: \"type\",\n type: \"string\",\n defaultValue: \"replace\",\n enum: [{\n label: \"Replace\",\n value: \"replace\",\n helperText: \"Replace the contents of this site region with content from Builder\"\n }, {\n label: \"Append\",\n value: \"afterEnd\",\n helperText: \"Append Builder content after the chosen site region\"\n }]\n }, {\n name: \"selector\",\n type: \"builder:domSelector\"\n }]\n});\n\nvar get = function get(e, t, n) {\n var i = String.prototype.split.call(t, /[,[\\].]+?/).filter(Boolean).reduce(function (e, t) {\n return null != e ? e[t] : e;\n }, e);\n return void 0 === i || i === e ? n : i;\n},\n MULTIPART_CONTENT_TYPE = \"multipart/form-data\",\n JSON_CONTENT_TYPE = \"application/json\",\n ENCODED_CONTENT_TYPE = \"application/x-www-form-urlencoded\",\n FormComponent = function (e) {\n function t() {\n var t = null !== e && e.apply(this, arguments) || this;\n return t.ref = null, t.state = {\n state: \"unsubmitted\",\n responseData: null,\n formErrorMessage: \"\"\n }, t;\n }\n\n return __extends(t, e), Object.defineProperty(t.prototype, \"submissionState\", {\n get: function get() {\n return Builder.isEditing && this.props.previewState || this.state.state;\n },\n enumerable: !0,\n configurable: !0\n }), t.prototype.render = function () {\n var e = this;\n return jsx(BuilderStoreContext.Consumer, null, function (t) {\n return jsx(BuilderStoreContext.Provider, {\n value: _assign(_assign({}, t), {\n state: _assign(_assign({}, t.state), {\n formErrorMessage: e.state.formErrorMessage\n })\n })\n }, jsx(\"form\", _assign({\n validate: e.props.validate,\n ref: function ref(t) {\n return e.ref = t;\n },\n action: !e.props.sendWithJs && e.props.action,\n method: e.props.method,\n name: e.props.name,\n onSubmit: function onSubmit(t) {\n var n,\n i = e.props.sendWithJs || \"email\" === e.props.sendSubmissionsTo;\n if (\"zapier\" === e.props.sendSubmissionsTo) t.preventDefault();else if (i) {\n if (!e.props.action && \"email\" !== e.props.sendSubmissionsTo) return void t.preventDefault();\n t.preventDefault();\n var r = t.currentTarget,\n o = e.props.customHeaders || {},\n a = void 0,\n s = new FormData(r),\n l = Array.from(t.currentTarget.querySelectorAll(\"input,select,textarea\")).filter(function (e) {\n return !!e.name;\n }).map(function (e) {\n var t,\n n = e.name;\n if (e instanceof HTMLInputElement) {\n if (\"radio\" === e.type) {\n if (e.checked) return {\n key: n,\n value: t = e.name\n };\n } else if (\"checkbox\" === e.type) t = e.checked;else if (\"number\" === e.type || \"range\" === e.type) {\n var i = e.valueAsNumber;\n isNaN(i) || (t = i);\n } else t = \"file\" === e.type ? e.files : e.value;\n } else t = e.value;\n return {\n key: n,\n value: t\n };\n }),\n u = e.props.contentType;\n if (\"email\" === e.props.sendSubmissionsTo && (u = MULTIPART_CONTENT_TYPE), Array.from(l).forEach(function (e) {\n var t = e.value;\n (t instanceof File || Array.isArray(t) && t[0] instanceof File || t instanceof FileList) && (u = MULTIPART_CONTENT_TYPE);\n }), u === MULTIPART_CONTENT_TYPE) a = s;else if (u === JSON_CONTENT_TYPE) {\n var d = {};\n Array.from(l).forEach(function (e) {\n var t = e.value,\n n = e.key;\n set(d, n, t);\n }), a = JSON.stringify(d);\n } else {\n if (u !== ENCODED_CONTENT_TYPE) return void console.error(\"Unsupported content type: \", u);\n a = Array.from(l).map(function (e) {\n var t = e.value,\n n = e.key;\n return encodeURIComponent(n) + \"=\" + encodeURIComponent(t);\n }).join(\"&\");\n }\n u && u !== MULTIPART_CONTENT_TYPE && (i && (null === (n = e.props.action) || void 0 === n ? void 0 : n.includes(\"zapier.com\")) || (o[\"content-type\"] = u));\n var c = new CustomEvent(\"presubmit\", {\n detail: {\n body: a\n }\n });\n if (e.ref && (e.ref.dispatchEvent(c), c.defaultPrevented)) return;\n e.setState(_assign(_assign({}, e.state), {\n state: \"sending\"\n }));\n var p = (\"dev\" === builder.env ? \"http://localhost:5000\" : \"https://builder.io\") + \"/api/v1/form-submit?apiKey=\" + builder.apiKey + \"&to=\" + btoa(e.props.sendSubmissionsToEmail || \"\") + \"&name=\" + encodeURIComponent(e.props.name || \"\");\n fetch(\"email\" === e.props.sendSubmissionsTo ? p : e.props.action, {\n body: a,\n headers: o,\n method: e.props.method || \"post\"\n }).then(function (t) {\n return __awaiter(e, void 0, void 0, function () {\n var e, n, i, r, o;\n return __generator(this, function (a) {\n switch (a.label) {\n case 0:\n return (n = t.headers.get(\"content-type\")) && -1 !== n.indexOf(JSON_CONTENT_TYPE) ? [4, t.json()] : [3, 2];\n\n case 1:\n return e = a.sent(), [3, 4];\n\n case 2:\n return [4, t.text()];\n\n case 3:\n e = a.sent(), a.label = 4;\n\n case 4:\n if (!t.ok && this.props.errorMessagePath && (i = get(e, this.props.errorMessagePath)) && (\"string\" != typeof i && (i = JSON.stringify(i)), this.setState(_assign(_assign({}, this.state), {\n formErrorMessage: i\n }))), this.setState(_assign(_assign({}, this.state), {\n responseData: e,\n state: t.ok ? \"success\" : \"error\"\n })), t.ok) {\n if (r = new CustomEvent(\"submit:success\", {\n detail: {\n res: t,\n body: e\n }\n }), this.ref) {\n if (this.ref.dispatchEvent(r), r.defaultPrevented) return [2];\n !1 !== this.props.resetFormOnSubmit && this.ref.reset();\n }\n\n this.props.successUrl && (this.ref ? (o = new CustomEvent(\"route\", {\n detail: {\n url: this.props.successUrl\n }\n }), this.ref.dispatchEvent(o), o.defaultPrevented || (location.href = this.props.successUrl)) : location.href = this.props.successUrl);\n }\n\n return [2];\n }\n });\n });\n }, function (t) {\n var n = new CustomEvent(\"submit:error\", {\n detail: {\n error: t\n }\n });\n e.ref && (e.ref.dispatchEvent(n), n.defaultPrevented) || e.setState(_assign(_assign({}, e.state), {\n responseData: t,\n state: \"error\"\n }));\n });\n }\n }\n }, e.props.attributes), e.props.builderBlock && e.props.builderBlock.children && e.props.builderBlock.children.map(function (e, t) {\n return jsx(BuilderBlock, {\n key: e.id,\n block: e\n });\n }), \"error\" === e.submissionState && jsx(BuilderBlocks, {\n dataPath: \"errorMessage\",\n blocks: e.props.errorMessage\n }), \"sending\" === e.submissionState && jsx(BuilderBlocks, {\n dataPath: \"sendingMessage\",\n blocks: e.props.sendingMessage\n }), \"error\" === e.submissionState && e.state.responseData && jsx(\"pre\", {\n className: \"builder-form-error-text\",\n css: {\n padding: 10,\n color: \"red\",\n textAlign: \"center\"\n }\n }, JSON.stringify(e.state.responseData, null, 2)), \"success\" === e.submissionState && jsx(BuilderBlocks, {\n dataPath: \"successMessage\",\n blocks: e.props.successMessage\n })));\n });\n }, t;\n}(React__default.Component),\n Form = withBuilder(FormComponent, {\n name: \"Form:Form\",\n defaults: {\n responsiveStyles: {\n large: {\n marginTop: \"15px\",\n paddingBottom: \"15px\"\n }\n }\n },\n image: \"https://cdn.builder.io/api/v1/image/assets%2FIsxPKMo2gPRRKeakUztj1D6uqed2%2Fef36d2a846134910b64b88e6d18c5ca5\",\n inputs: [{\n name: \"sendSubmissionsTo\",\n type: \"string\",\n enum: [{\n label: \"Send to email\",\n value: \"email\",\n helperText: \"Send form submissions to the email address of your choosing\"\n }, {\n label: \"Custom\",\n value: \"custom\",\n helperText: \"Handle where the form requests go manually with a little code, e.g. to your own custom backend\"\n }],\n defaultValue: \"email\"\n }, {\n name: \"sendSubmissionsToEmail\",\n type: \"string\",\n required: !0,\n defaultValue: \"your@email.com\",\n showIf: 'options.get(\"sendSubmissionsTo\") === \"email\"'\n }, {\n name: \"sendWithJs\",\n type: \"boolean\",\n helperText: \"Set to false to use basic html form action\",\n defaultValue: !0,\n showIf: 'options.get(\"sendSubmissionsTo\") === \"custom\"'\n }, {\n name: \"name\",\n type: \"string\",\n defaultValue: \"My form\"\n }, {\n name: \"action\",\n type: \"string\",\n helperText: \"URL to send the form data to\",\n showIf: 'options.get(\"sendSubmissionsTo\") === \"custom\"'\n }, {\n name: \"contentType\",\n type: \"string\",\n defaultValue: JSON_CONTENT_TYPE,\n advanced: !0,\n enum: [JSON_CONTENT_TYPE, MULTIPART_CONTENT_TYPE, ENCODED_CONTENT_TYPE],\n showIf: 'options.get(\"sendSubmissionsTo\") === \"custom\" && options.get(\"sendWithJs\") === true'\n }, {\n name: \"method\",\n type: \"string\",\n showIf: 'options.get(\"sendSubmissionsTo\") === \"custom\"',\n defaultValue: \"POST\",\n advanced: !0\n }, {\n name: \"previewState\",\n type: \"string\",\n enum: [\"unsubmitted\", \"sending\", \"success\", \"error\"],\n defaultValue: \"unsubmitted\",\n helperText: 'Choose a state to edit, e.g. choose \"success\" to show what users see on success and edit the message',\n showIf: 'options.get(\"sendSubmissionsTo\") !== \"zapier\" && options.get(\"sendWithJs\") === true'\n }, {\n name: \"successUrl\",\n type: \"url\",\n helperText: \"Optional URL to redirect the user to on form submission success\",\n showIf: 'options.get(\"sendSubmissionsTo\") !== \"zapier\" && options.get(\"sendWithJs\") === true'\n }, {\n name: \"resetFormOnSubmit\",\n type: \"boolean\",\n showIf: function showIf(e) {\n return \"custom\" === e.get(\"sendSubmissionsTo\") && !0 === e.get(\"sendWithJs\");\n },\n advanced: !0\n }, {\n name: \"successMessage\",\n type: \"uiBlocks\",\n hideFromUI: !0,\n defaultValue: [{\n \"@type\": \"@builder.io/sdk:Element\",\n responsiveStyles: {\n large: {\n marginTop: \"10px\"\n }\n },\n component: {\n name: \"Text\",\n options: {\n text: \"Thanks!\"\n }\n }\n }]\n }, {\n name: \"validate\",\n type: \"boolean\",\n defaultValue: !0,\n advanced: !0\n }, {\n name: \"errorMessagePath\",\n type: \"text\",\n advanced: !0,\n helperText: 'Path to where to get the error message from in a JSON response to display to the user, e.g. \"error.message\" for a response like { \"error\": { \"message\": \"this username is taken\" }}'\n }, {\n name: \"errorMessage\",\n type: \"uiBlocks\",\n hideFromUI: !0,\n defaultValue: [{\n \"@type\": \"@builder.io/sdk:Element\",\n responsiveStyles: {\n large: {\n marginTop: \"10px\"\n }\n },\n bindings: {\n \"component.options.text\": \"state.formErrorMessage || block.component.options.text\"\n },\n component: {\n name: \"Text\",\n options: {\n text: \"Form submission error :( Please check your answers and try again\"\n }\n }\n }]\n }, {\n name: \"sendingMessage\",\n type: \"uiBlocks\",\n hideFromUI: !0,\n defaultValue: [{\n \"@type\": \"@builder.io/sdk:Element\",\n responsiveStyles: {\n large: {\n marginTop: \"10px\"\n }\n },\n component: {\n name: \"Text\",\n options: {\n text: \"Sending...\"\n }\n }\n }]\n }, _assign(_assign({\n name: \"customHeaders\",\n type: \"map\"\n }, {\n valueType: {\n type: \"string\"\n }\n }), {\n advanced: !0,\n showIf: 'options.get(\"sendSubmissionsTo\") === \"custom\" && options.get(\"sendWithJs\") === true'\n })],\n noWrap: !0,\n canHaveChildren: !0,\n defaultChildren: [{\n \"@type\": \"@builder.io/sdk:Element\",\n responsiveStyles: {\n large: {\n marginTop: \"10px\"\n }\n },\n component: {\n name: \"Text\",\n options: {\n text: \"Enter your name\"\n }\n }\n }, {\n \"@type\": \"@builder.io/sdk:Element\",\n responsiveStyles: {\n large: {\n marginTop: \"10px\"\n }\n },\n component: {\n name: \"Form:Input\",\n options: {\n name: \"name\",\n placeholder: \"Jane Doe\"\n }\n }\n }, {\n \"@type\": \"@builder.io/sdk:Element\",\n responsiveStyles: {\n large: {\n marginTop: \"10px\"\n }\n },\n component: {\n name: \"Text\",\n options: {\n text: \"Enter your email\"\n }\n }\n }, {\n \"@type\": \"@builder.io/sdk:Element\",\n responsiveStyles: {\n large: {\n marginTop: \"10px\"\n }\n },\n component: {\n name: \"Form:Input\",\n options: {\n name: \"email\",\n placeholder: \"jane@doe.com\"\n }\n }\n }, {\n \"@type\": \"@builder.io/sdk:Element\",\n responsiveStyles: {\n large: {\n marginTop: \"10px\"\n }\n },\n component: {\n name: \"Form:SubmitButton\",\n options: {\n text: \"Submit\"\n }\n }\n }]\n}),\n FormInputComponent = function (e) {\n function t() {\n return null !== e && e.apply(this, arguments) || this;\n }\n\n return __extends(t, e), t.prototype.render = function () {\n return React__default.createElement(\"input\", _assign({\n key: Builder.isEditing && this.props.defaultValue ? this.props.defaultValue : \"default-key\",\n placeholder: this.props.placeholder,\n type: this.props.type,\n name: this.props.name,\n value: this.props.value,\n defaultValue: this.props.defaultValue,\n required: this.props.required\n }, this.props.attributes));\n }, t;\n}(React__default.Component),\n FormInput = withBuilder(FormInputComponent, {\n name: \"Form:Input\",\n image: \"https://cdn.builder.io/api/v1/image/assets%2FIsxPKMo2gPRRKeakUztj1D6uqed2%2Fad6f37889d9e40bbbbc72cdb5875d6ca\",\n inputs: [{\n name: \"type\",\n type: \"text\",\n enum: [\"text\", \"number\", \"email\", \"url\", \"checkbox\", \"radio\", \"range\", \"date\", \"datetime-local\", \"search\", \"tel\", \"time\", \"file\", \"month\", \"week\", \"password\", \"color\", \"hidden\"],\n defaultValue: \"text\"\n }, {\n name: \"name\",\n type: \"string\",\n required: !0,\n helperText: 'Every input in a form needs a unique name describing what it takes, e.g. \"email\"'\n }, {\n name: \"placeholder\",\n type: \"string\",\n defaultValue: \"Hello there\",\n helperText: \"Text to display when there is no value\"\n }, {\n name: \"defaultValue\",\n type: \"string\"\n }, {\n name: \"value\",\n type: \"string\",\n advanced: !0\n }, {\n name: \"required\",\n type: \"boolean\",\n helperText: \"Is this input required to be filled out to submit a form\",\n defaultValue: !1\n }],\n noWrap: !0,\n static: !0,\n defaultStyles: {\n paddingTop: \"10px\",\n paddingBottom: \"10px\",\n paddingLeft: \"10px\",\n paddingRight: \"10px\",\n borderRadius: \"3px\",\n borderWidth: \"1px\",\n borderStyle: \"solid\",\n borderColor: \"#ccc\"\n }\n}),\n FormSubmitButtonComponent = function (e) {\n function t() {\n return null !== e && e.apply(this, arguments) || this;\n }\n\n return __extends(t, e), t.prototype.render = function () {\n return React__default.createElement(\"button\", _assign({\n type: \"submit\"\n }, this.props.attributes), this.props.text);\n }, t;\n}(React__default.Component),\n FormSubmitButton = withBuilder(FormSubmitButtonComponent, {\n name: \"Form:SubmitButton\",\n image: \"https://cdn.builder.io/api/v1/image/assets%2FIsxPKMo2gPRRKeakUztj1D6uqed2%2Fdf2820ffed1f4349a94c40b3221f5b98\",\n defaultStyles: {\n appearance: \"none\",\n paddingTop: \"15px\",\n paddingBottom: \"15px\",\n paddingLeft: \"25px\",\n paddingRight: \"25px\",\n backgroundColor: \"#3898EC\",\n color: \"white\",\n borderRadius: \"4px\",\n cursor: \"pointer\"\n },\n inputs: [{\n name: \"text\",\n type: \"text\",\n defaultValue: \"Click me\"\n }],\n static: !0,\n noWrap: !0\n}),\n LabelComponent = function (e) {\n function t() {\n return null !== e && e.apply(this, arguments) || this;\n }\n\n return __extends(t, e), t.prototype.render = function () {\n return React__default.createElement(\"label\", _assign({\n htmlFor: this.props.for\n }, this.props.attributes), this.props.text && React__default.createElement(\"span\", {\n className: \"builder-label-text\",\n dangerouslySetInnerHTML: {\n __html: this.props.text\n }\n }), this.props.builderBlock && this.props.builderBlock.children && this.props.builderBlock.children.map(function (e) {\n return React__default.createElement(BuilderBlock, {\n key: e.id,\n block: e\n });\n }));\n }, t;\n}(React__default.Component),\n Label = withBuilder(LabelComponent, {\n name: \"Form:Label\",\n image: \"https://cdn.builder.io/api/v1/image/assets%2FIsxPKMo2gPRRKeakUztj1D6uqed2%2F9322342f04b545fb9a8091cd801dfb5b\",\n inputs: [{\n name: \"text\",\n type: \"html\",\n richText: !0,\n defaultValue: \"Label\"\n }, {\n name: \"for\",\n type: \"text\",\n helperText: \"The name of the input this label is for\",\n advanced: !0\n }],\n noWrap: !0,\n static: !0,\n canHaveChildren: !0\n}),\n FormSelectComponent = function (e) {\n function t() {\n return null !== e && e.apply(this, arguments) || this;\n }\n\n return __extends(t, e), t.prototype.render = function () {\n var e = this.props.options;\n return React__default.createElement(\"select\", _assign({\n value: this.props.value,\n key: Builder.isEditing && this.props.defaultValue ? this.props.defaultValue : \"default-key\",\n defaultValue: this.props.defaultValue,\n name: this.props.name\n }, this.props.attributes), e && e.map(function (e) {\n return React__default.createElement(\"option\", {\n value: e.value\n }, e.name || e.value);\n }));\n }, t;\n}(React__default.Component),\n FormSelect = withBuilder(FormSelectComponent, {\n name: \"Form:Select\",\n image: \"https://cdn.builder.io/api/v1/image/assets%2FIsxPKMo2gPRRKeakUztj1D6uqed2%2F83acca093fb24aaf94dee136e9a4b045\",\n defaultStyles: {\n alignSelf: \"flex-start\"\n },\n inputs: [{\n name: \"options\",\n type: \"list\",\n required: !0,\n subFields: [{\n name: \"value\",\n type: \"text\",\n required: !0\n }, {\n name: \"name\",\n type: \"text\"\n }],\n defaultValue: [{\n value: \"option 1\"\n }, {\n value: \"option 2\"\n }]\n }, {\n name: \"name\",\n type: \"string\",\n required: !0,\n helperText: 'Every select in a form needs a unique name describing what it gets, e.g. \"email\"'\n }, {\n name: \"defaultValue\",\n type: \"string\"\n }, {\n name: \"value\",\n type: \"string\",\n advanced: !0\n }, {\n name: \"required\",\n type: \"boolean\",\n defaultValue: !1\n }],\n static: !0,\n noWrap: !0\n}),\n TextAreaComponent = function (e) {\n function t() {\n return null !== e && e.apply(this, arguments) || this;\n }\n\n return __extends(t, e), t.prototype.render = function () {\n return React__default.createElement(\"textarea\", _assign({\n placeholder: this.props.placeholder,\n name: this.props.name,\n value: this.props.value,\n defaultValue: this.props.defaultValue\n }, this.props.attributes));\n }, t;\n}(React__default.Component),\n TextArea = withBuilder(TextAreaComponent, {\n name: \"Form:TextArea\",\n image: \"https://cdn.builder.io/api/v1/image/assets%2FIsxPKMo2gPRRKeakUztj1D6uqed2%2Ff74a2f3de58c4c3e939204e5b6b8f6c3\",\n inputs: [{\n advanced: !0,\n name: \"value\",\n type: \"string\"\n }, {\n name: \"name\",\n type: \"string\",\n required: !0,\n helperText: 'Every input in a form needs a unique name describing what it gets, e.g. \"email\"'\n }, {\n name: \"defaultValue\",\n type: \"string\"\n }, {\n name: \"placeholder\",\n type: \"string\",\n defaultValue: \"Hello there\"\n }, {\n name: \"required\",\n type: \"boolean\",\n defaultValue: !1\n }],\n defaultStyles: {\n paddingTop: \"10px\",\n paddingBottom: \"10px\",\n paddingLeft: \"10px\",\n paddingRight: \"10px\",\n borderRadius: \"3px\",\n borderWidth: \"1px\",\n borderStyle: \"solid\",\n borderColor: \"#ccc\"\n },\n static: !0,\n noWrap: !0\n}),\n ImgComponent = function (e) {\n function t() {\n return null !== e && e.apply(this, arguments) || this;\n }\n\n return __extends(t, e), t.prototype.render = function () {\n var e = this.props.attributes || {};\n return React__default.createElement(\"img\", _assign({}, this.props.attributes, {\n src: this.props.image || e.src\n }));\n }, t;\n}(React__default.Component),\n Img = withBuilder(ImgComponent, {\n name: \"Raw:Img\",\n hideFromInsertMenu: !0,\n image: \"https://firebasestorage.googleapis.com/v0/b/builder-3b0a2.appspot.com/o/images%2Fbaseline-insert_photo-24px.svg?alt=media&token=4e5d0ef4-f5e8-4e57-b3a9-38d63a9b9dc4\",\n inputs: [{\n name: \"image\",\n bubble: !0,\n type: \"file\",\n allowedFileTypes: [\"jpeg\", \"jpg\", \"png\", \"svg\"],\n required: !0\n }],\n noWrap: !0,\n static: !0\n}),\n RawText = function RawText(e) {\n var t = e.attributes || {};\n return createElement(\"span\", {\n className: (null == t ? void 0 : t.class) || (null == t ? void 0 : t.className),\n dangerouslySetInnerHTML: {\n __html: e.text || \"\"\n }\n });\n};\n\nBuilder.registerComponent(RawText, {\n name: \"Builder:RawText\",\n hideFromInsertMenu: !0,\n inputs: [{\n name: \"text\",\n bubble: !0,\n type: \"longText\",\n required: !0\n }]\n}), Builder.isReact = !0;\nexport default builder;\nexport { BuilderAsyncRequestsContext, BuilderBlock$1 as BuilderBlock, BuilderBlock as BuilderBlockComponent, BuilderBlocks, BuilderComponent, BuilderContent, BuilderMetaContext, BuilderComponent as BuilderPage, BuilderStoreContext, Button, Columns, CustomCode, Slot as Dropzone, Embed, Form, FormInput, FormSelect, FormSubmitButton, Fragment, Image, Img, Label, Mutation, RawText, BuilderComponent as RenderContent, Router, Section, StateProvider, Symbol$1 as Symbol, Text, TextArea, Video, getSrcSet, noWrap, onChange, stringToFunction, updateMetadata, withBuilder, withChildren };","/*\n\nBased off glamor's StyleSheet, thanks Sunil ❤️\n\nhigh performance StyleSheet for css-in-js systems\n\n- uses multiple style tags behind the scenes for millions of rules\n- uses `insertRule` for appending in production for *much* faster performance\n\n// usage\n\nimport { StyleSheet } from '@emotion/sheet'\n\nlet styleSheet = new StyleSheet({ key: '', container: document.head })\n\nstyleSheet.insert('#box { border: 1px solid red; }')\n- appends a css rule into the stylesheet\n\nstyleSheet.flush()\n- empties the stylesheet of all its contents\n\n*/\n// $FlowFixMe\nfunction sheetForTag(tag) {\n if (tag.sheet) {\n // $FlowFixMe\n return tag.sheet;\n } // this weirdness brought to you by firefox\n\n /* istanbul ignore next */\n\n\n for (var i = 0; i < document.styleSheets.length; i++) {\n if (document.styleSheets[i].ownerNode === tag) {\n // $FlowFixMe\n return document.styleSheets[i];\n }\n }\n}\n\nfunction createStyleElement(options) {\n var tag = document.createElement('style');\n tag.setAttribute('data-emotion', options.key);\n\n if (options.nonce !== undefined) {\n tag.setAttribute('nonce', options.nonce);\n }\n\n tag.appendChild(document.createTextNode(''));\n return tag;\n}\n\nvar StyleSheet = /*#__PURE__*/function () {\n function StyleSheet(options) {\n this.isSpeedy = options.speedy === undefined ? process.env.NODE_ENV === 'production' : options.speedy;\n this.tags = [];\n this.ctr = 0;\n this.nonce = options.nonce; // key is the value of the data-emotion attribute, it's used to identify different sheets\n\n this.key = options.key;\n this.container = options.container;\n this.before = null;\n }\n\n var _proto = StyleSheet.prototype;\n\n _proto.insert = function insert(rule) {\n // the max length is how many rules we have per style tag, it's 65000 in speedy mode\n // it's 1 in dev because we insert source maps that map a single rule to a location\n // and you can only have one source map per style tag\n if (this.ctr % (this.isSpeedy ? 65000 : 1) === 0) {\n var _tag = createStyleElement(this);\n\n var before;\n\n if (this.tags.length === 0) {\n before = this.before;\n } else {\n before = this.tags[this.tags.length - 1].nextSibling;\n }\n\n this.container.insertBefore(_tag, before);\n this.tags.push(_tag);\n }\n\n var tag = this.tags[this.tags.length - 1];\n\n if (this.isSpeedy) {\n var sheet = sheetForTag(tag);\n\n try {\n // this is a really hot path\n // we check the second character first because having \"i\"\n // as the second character will happen less often than\n // having \"@\" as the first character\n var isImportRule = rule.charCodeAt(1) === 105 && rule.charCodeAt(0) === 64; // this is the ultrafast version, works across browsers\n // the big drawback is that the css won't be editable in devtools\n\n sheet.insertRule(rule, // we need to insert @import rules before anything else\n // otherwise there will be an error\n // technically this means that the @import rules will\n // _usually_(not always since there could be multiple style tags)\n // be the first ones in prod and generally later in dev\n // this shouldn't really matter in the real world though\n // @import is generally only used for font faces from google fonts and etc.\n // so while this could be technically correct then it would be slower and larger\n // for a tiny bit of correctness that won't matter in the real world\n isImportRule ? 0 : sheet.cssRules.length);\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(\"There was a problem inserting the following rule: \\\"\" + rule + \"\\\"\", e);\n }\n }\n } else {\n tag.appendChild(document.createTextNode(rule));\n }\n\n this.ctr++;\n };\n\n _proto.flush = function flush() {\n // $FlowFixMe\n this.tags.forEach(function (tag) {\n return tag.parentNode.removeChild(tag);\n });\n this.tags = [];\n this.ctr = 0;\n };\n\n return StyleSheet;\n}();\n\nexport { StyleSheet };","import { StyleSheet } from '@emotion/sheet';\nimport Stylis from '@emotion/stylis';\nimport '@emotion/weak-memoize'; // https://github.com/thysultan/stylis.js/tree/master/plugins/rule-sheet\n// inlined to avoid umd wrapper and peerDep warnings/installing stylis\n// since we use stylis after closure compiler\n\nvar delimiter = '/*|*/';\nvar needle = delimiter + '}';\n\nfunction toSheet(block) {\n if (block) {\n Sheet.current.insert(block + '}');\n }\n}\n\nvar Sheet = {\n current: null\n};\n\nvar ruleSheet = function ruleSheet(context, content, selectors, parents, line, column, length, ns, depth, at) {\n switch (context) {\n // property\n case 1:\n {\n switch (content.charCodeAt(0)) {\n case 64:\n {\n // @import\n Sheet.current.insert(content + ';');\n return '';\n }\n // charcode for l\n\n case 108:\n {\n // charcode for b\n // this ignores label\n if (content.charCodeAt(2) === 98) {\n return '';\n }\n }\n }\n\n break;\n }\n // selector\n\n case 2:\n {\n if (ns === 0) return content + delimiter;\n break;\n }\n // at-rule\n\n case 3:\n {\n switch (ns) {\n // @font-face, @page\n case 102:\n case 112:\n {\n Sheet.current.insert(selectors[0] + content);\n return '';\n }\n\n default:\n {\n return content + (at === 0 ? delimiter : '');\n }\n }\n }\n\n case -2:\n {\n content.split(needle).forEach(toSheet);\n }\n }\n};\n\nvar createCache = function createCache(options) {\n if (options === undefined) options = {};\n var key = options.key || 'css';\n var stylisOptions;\n\n if (options.prefix !== undefined) {\n stylisOptions = {\n prefix: options.prefix\n };\n }\n\n var stylis = new Stylis(stylisOptions);\n\n if (process.env.NODE_ENV !== 'production') {\n // $FlowFixMe\n if (/[^a-z-]/.test(key)) {\n throw new Error(\"Emotion key must only contain lower case alphabetical characters and - but \\\"\" + key + \"\\\" was passed\");\n }\n }\n\n var inserted = {}; // $FlowFixMe\n\n var container;\n {\n container = options.container || document.head;\n var nodes = document.querySelectorAll(\"style[data-emotion-\" + key + \"]\");\n Array.prototype.forEach.call(nodes, function (node) {\n var attrib = node.getAttribute(\"data-emotion-\" + key); // $FlowFixMe\n\n attrib.split(' ').forEach(function (id) {\n inserted[id] = true;\n });\n\n if (node.parentNode !== container) {\n container.appendChild(node);\n }\n });\n }\n\n var _insert;\n\n {\n stylis.use(options.stylisPlugins)(ruleSheet);\n\n _insert = function insert(selector, serialized, sheet, shouldCache) {\n var name = serialized.name;\n Sheet.current = sheet;\n\n if (process.env.NODE_ENV !== 'production' && serialized.map !== undefined) {\n var map = serialized.map;\n Sheet.current = {\n insert: function insert(rule) {\n sheet.insert(rule + map);\n }\n };\n }\n\n stylis(selector, serialized.styles);\n\n if (shouldCache) {\n cache.inserted[name] = true;\n }\n };\n }\n\n if (process.env.NODE_ENV !== 'production') {\n // https://esbench.com/bench/5bf7371a4cd7e6009ef61d0a\n var commentStart = /\\/\\*/g;\n var commentEnd = /\\*\\//g;\n stylis.use(function (context, content) {\n switch (context) {\n case -1:\n {\n while (commentStart.test(content)) {\n commentEnd.lastIndex = commentStart.lastIndex;\n\n if (commentEnd.test(content)) {\n commentStart.lastIndex = commentEnd.lastIndex;\n continue;\n }\n\n throw new Error('Your styles have an unterminated comment (\"/*\" without corresponding \"*/\").');\n }\n\n commentStart.lastIndex = 0;\n break;\n }\n }\n });\n stylis.use(function (context, content, selectors) {\n switch (context) {\n case -1:\n {\n var flag = 'emotion-disable-server-rendering-unsafe-selector-warning-please-do-not-use-this-the-warning-exists-for-a-reason';\n var unsafePseudoClasses = content.match(/(:first|:nth|:nth-last)-child/g);\n\n if (unsafePseudoClasses && cache.compat !== true) {\n unsafePseudoClasses.forEach(function (unsafePseudoClass) {\n var ignoreRegExp = new RegExp(unsafePseudoClass + \".*\\\\/\\\\* \" + flag + \" \\\\*\\\\/\");\n var ignore = ignoreRegExp.test(content);\n\n if (unsafePseudoClass && !ignore) {\n console.error(\"The pseudo class \\\"\" + unsafePseudoClass + \"\\\" is potentially unsafe when doing server-side rendering. Try changing it to \\\"\" + unsafePseudoClass.split('-child')[0] + \"-of-type\\\".\");\n }\n });\n }\n\n break;\n }\n }\n });\n }\n\n var cache = {\n key: key,\n sheet: new StyleSheet({\n key: key,\n container: container,\n nonce: options.nonce,\n speedy: options.speedy\n }),\n nonce: options.nonce,\n inserted: inserted,\n registered: {},\n insert: _insert\n };\n return cache;\n};\n\nexport default createCache;","var isBrowser = \"object\" !== 'undefined';\n\nfunction getRegisteredStyles(registered, registeredStyles, classNames) {\n var rawClassName = '';\n classNames.split(' ').forEach(function (className) {\n if (registered[className] !== undefined) {\n registeredStyles.push(registered[className]);\n } else {\n rawClassName += className + \" \";\n }\n });\n return rawClassName;\n}\n\nvar insertStyles = function insertStyles(cache, serialized, isStringTag) {\n var className = cache.key + \"-\" + serialized.name;\n\n if ( // we only need to add the styles to the registered cache if the\n // class name could be used further down\n // the tree but if it's a string tag, we know it won't\n // so we don't have to add it to registered cache.\n // this improves memory usage since we can avoid storing the whole style string\n (isStringTag === false || // we need to always store it if we're in compat mode and\n // in node since emotion-server relies on whether a style is in\n // the registered cache to know whether a style is global or not\n // also, note that this check will be dead code eliminated in the browser\n isBrowser === false && cache.compat !== undefined) && cache.registered[className] === undefined) {\n cache.registered[className] = serialized.styles;\n }\n\n if (cache.inserted[serialized.name] === undefined) {\n var current = serialized;\n\n do {\n var maybeStyles = cache.insert(\".\" + className, current, cache.sheet, true);\n current = current.next;\n } while (current !== undefined);\n }\n};\n\nexport { getRegisteredStyles, insertStyles };","/* eslint-disable */\n// Inspired by https://github.com/garycourt/murmurhash-js\n// Ported from https://github.com/aappleby/smhasher/blob/61a0530f28277f2e850bfc39600ce61d02b518de/src/MurmurHash2.cpp#L37-L86\nfunction murmur2(str) {\n // 'm' and 'r' are mixing constants generated offline.\n // They're not really 'magic', they just happen to work well.\n // const m = 0x5bd1e995;\n // const r = 24;\n // Initialize the hash\n var h = 0; // Mix 4 bytes at a time into the hash\n\n var k,\n i = 0,\n len = str.length;\n\n for (; len >= 4; ++i, len -= 4) {\n k = str.charCodeAt(i) & 0xff | (str.charCodeAt(++i) & 0xff) << 8 | (str.charCodeAt(++i) & 0xff) << 16 | (str.charCodeAt(++i) & 0xff) << 24;\n k =\n /* Math.imul(k, m): */\n (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16);\n k ^=\n /* k >>> r: */\n k >>> 24;\n h =\n /* Math.imul(k, m): */\n (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16) ^\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n } // Handle the last few bytes of the input array\n\n\n switch (len) {\n case 3:\n h ^= (str.charCodeAt(i + 2) & 0xff) << 16;\n\n case 2:\n h ^= (str.charCodeAt(i + 1) & 0xff) << 8;\n\n case 1:\n h ^= str.charCodeAt(i) & 0xff;\n h =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n } // Do a few final mixes of the hash to ensure the last few\n // bytes are well-incorporated.\n\n\n h ^= h >>> 13;\n h =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n return ((h ^ h >>> 15) >>> 0).toString(36);\n}\n\nexport default murmur2;","import hashString from '@emotion/hash';\nimport unitless from '@emotion/unitless';\nimport memoize from '@emotion/memoize';\nvar ILLEGAL_ESCAPE_SEQUENCE_ERROR = \"You have illegal escape sequence in your template literal, most likely inside content's property value.\\nBecause you write your CSS inside a JavaScript string you actually have to do double escaping, so for example \\\"content: '\\\\00d7';\\\" should become \\\"content: '\\\\\\\\00d7';\\\".\\nYou can read more about this here:\\nhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals#ES2018_revision_of_illegal_escape_sequences\";\nvar UNDEFINED_AS_OBJECT_KEY_ERROR = \"You have passed in falsy value as style object's key (can happen when in example you pass unexported component as computed key).\";\nvar hyphenateRegex = /[A-Z]|^ms/g;\nvar animationRegex = /_EMO_([^_]+?)_([^]*?)_EMO_/g;\n\nvar isCustomProperty = function isCustomProperty(property) {\n return property.charCodeAt(1) === 45;\n};\n\nvar isProcessableValue = function isProcessableValue(value) {\n return value != null && typeof value !== 'boolean';\n};\n\nvar processStyleName = memoize(function (styleName) {\n return isCustomProperty(styleName) ? styleName : styleName.replace(hyphenateRegex, '-$&').toLowerCase();\n});\n\nvar processStyleValue = function processStyleValue(key, value) {\n switch (key) {\n case 'animation':\n case 'animationName':\n {\n if (typeof value === 'string') {\n return value.replace(animationRegex, function (match, p1, p2) {\n cursor = {\n name: p1,\n styles: p2,\n next: cursor\n };\n return p1;\n });\n }\n }\n }\n\n if (unitless[key] !== 1 && !isCustomProperty(key) && typeof value === 'number' && value !== 0) {\n return value + 'px';\n }\n\n return value;\n};\n\nif (process.env.NODE_ENV !== 'production') {\n var contentValuePattern = /(attr|calc|counters?|url)\\(/;\n var contentValues = ['normal', 'none', 'counter', 'open-quote', 'close-quote', 'no-open-quote', 'no-close-quote', 'initial', 'inherit', 'unset'];\n var oldProcessStyleValue = processStyleValue;\n var msPattern = /^-ms-/;\n var hyphenPattern = /-(.)/g;\n var hyphenatedCache = {};\n\n processStyleValue = function processStyleValue(key, value) {\n if (key === 'content') {\n if (typeof value !== 'string' || contentValues.indexOf(value) === -1 && !contentValuePattern.test(value) && (value.charAt(0) !== value.charAt(value.length - 1) || value.charAt(0) !== '\"' && value.charAt(0) !== \"'\")) {\n console.error(\"You seem to be using a value for 'content' without quotes, try replacing it with `content: '\\\"\" + value + \"\\\"'`\");\n }\n }\n\n var processed = oldProcessStyleValue(key, value);\n\n if (processed !== '' && !isCustomProperty(key) && key.indexOf('-') !== -1 && hyphenatedCache[key] === undefined) {\n hyphenatedCache[key] = true;\n console.error(\"Using kebab-case for css properties in objects is not supported. Did you mean \" + key.replace(msPattern, 'ms-').replace(hyphenPattern, function (str, _char) {\n return _char.toUpperCase();\n }) + \"?\");\n }\n\n return processed;\n };\n}\n\nvar shouldWarnAboutInterpolatingClassNameFromCss = true;\n\nfunction handleInterpolation(mergedProps, registered, interpolation, couldBeSelectorInterpolation) {\n if (interpolation == null) {\n return '';\n }\n\n if (interpolation.__emotion_styles !== undefined) {\n if (process.env.NODE_ENV !== 'production' && interpolation.toString() === 'NO_COMPONENT_SELECTOR') {\n throw new Error('Component selectors can only be used in conjunction with babel-plugin-emotion.');\n }\n\n return interpolation;\n }\n\n switch (typeof interpolation) {\n case 'boolean':\n {\n return '';\n }\n\n case 'object':\n {\n if (interpolation.anim === 1) {\n cursor = {\n name: interpolation.name,\n styles: interpolation.styles,\n next: cursor\n };\n return interpolation.name;\n }\n\n if (interpolation.styles !== undefined) {\n var next = interpolation.next;\n\n if (next !== undefined) {\n // not the most efficient thing ever but this is a pretty rare case\n // and there will be very few iterations of this generally\n while (next !== undefined) {\n cursor = {\n name: next.name,\n styles: next.styles,\n next: cursor\n };\n next = next.next;\n }\n }\n\n var styles = interpolation.styles + \";\";\n\n if (process.env.NODE_ENV !== 'production' && interpolation.map !== undefined) {\n styles += interpolation.map;\n }\n\n return styles;\n }\n\n return createStringFromObject(mergedProps, registered, interpolation);\n }\n\n case 'function':\n {\n if (mergedProps !== undefined) {\n var previousCursor = cursor;\n var result = interpolation(mergedProps);\n cursor = previousCursor;\n return handleInterpolation(mergedProps, registered, result, couldBeSelectorInterpolation);\n } else if (process.env.NODE_ENV !== 'production') {\n console.error('Functions that are interpolated in css calls will be stringified.\\n' + 'If you want to have a css call based on props, create a function that returns a css call like this\\n' + 'let dynamicStyle = (props) => css`color: ${props.color}`\\n' + 'It can be called directly with props or interpolated in a styled call like this\\n' + \"let SomeComponent = styled('div')`${dynamicStyle}`\");\n }\n\n break;\n }\n\n case 'string':\n if (process.env.NODE_ENV !== 'production') {\n var matched = [];\n var replaced = interpolation.replace(animationRegex, function (match, p1, p2) {\n var fakeVarName = \"animation\" + matched.length;\n matched.push(\"const \" + fakeVarName + \" = keyframes`\" + p2.replace(/^@keyframes animation-\\w+/, '') + \"`\");\n return \"${\" + fakeVarName + \"}\";\n });\n\n if (matched.length) {\n console.error('`keyframes` output got interpolated into plain string, please wrap it with `css`.\\n\\n' + 'Instead of doing this:\\n\\n' + [].concat(matched, [\"`\" + replaced + \"`\"]).join('\\n') + '\\n\\nYou should wrap it with `css` like this:\\n\\n' + (\"css`\" + replaced + \"`\"));\n }\n }\n\n break;\n } // finalize string values (regular strings and functions interpolated into css calls)\n\n\n if (registered == null) {\n return interpolation;\n }\n\n var cached = registered[interpolation];\n\n if (process.env.NODE_ENV !== 'production' && couldBeSelectorInterpolation && shouldWarnAboutInterpolatingClassNameFromCss && cached !== undefined) {\n console.error('Interpolating a className from css`` is not recommended and will cause problems with composition.\\n' + 'Interpolating a className from css`` will be completely unsupported in a future major version of Emotion');\n shouldWarnAboutInterpolatingClassNameFromCss = false;\n }\n\n return cached !== undefined && !couldBeSelectorInterpolation ? cached : interpolation;\n}\n\nfunction createStringFromObject(mergedProps, registered, obj) {\n var string = '';\n\n if (Array.isArray(obj)) {\n for (var i = 0; i < obj.length; i++) {\n string += handleInterpolation(mergedProps, registered, obj[i], false);\n }\n } else {\n for (var _key in obj) {\n var value = obj[_key];\n\n if (typeof value !== 'object') {\n if (registered != null && registered[value] !== undefined) {\n string += _key + \"{\" + registered[value] + \"}\";\n } else if (isProcessableValue(value)) {\n string += processStyleName(_key) + \":\" + processStyleValue(_key, value) + \";\";\n }\n } else {\n if (_key === 'NO_COMPONENT_SELECTOR' && process.env.NODE_ENV !== 'production') {\n throw new Error('Component selectors can only be used in conjunction with babel-plugin-emotion.');\n }\n\n if (Array.isArray(value) && typeof value[0] === 'string' && (registered == null || registered[value[0]] === undefined)) {\n for (var _i = 0; _i < value.length; _i++) {\n if (isProcessableValue(value[_i])) {\n string += processStyleName(_key) + \":\" + processStyleValue(_key, value[_i]) + \";\";\n }\n }\n } else {\n var interpolated = handleInterpolation(mergedProps, registered, value, false);\n\n switch (_key) {\n case 'animation':\n case 'animationName':\n {\n string += processStyleName(_key) + \":\" + interpolated + \";\";\n break;\n }\n\n default:\n {\n if (process.env.NODE_ENV !== 'production' && _key === 'undefined') {\n console.error(UNDEFINED_AS_OBJECT_KEY_ERROR);\n }\n\n string += _key + \"{\" + interpolated + \"}\";\n }\n }\n }\n }\n }\n }\n\n return string;\n}\n\nvar labelPattern = /label:\\s*([^\\s;\\n{]+)\\s*;/g;\nvar sourceMapPattern;\n\nif (process.env.NODE_ENV !== 'production') {\n sourceMapPattern = /\\/\\*#\\ssourceMappingURL=data:application\\/json;\\S+\\s+\\*\\//;\n} // this is the cursor for keyframes\n// keyframes are stored on the SerializedStyles object as a linked list\n\n\nvar cursor;\n\nvar serializeStyles = function serializeStyles(args, registered, mergedProps) {\n if (args.length === 1 && typeof args[0] === 'object' && args[0] !== null && args[0].styles !== undefined) {\n return args[0];\n }\n\n var stringMode = true;\n var styles = '';\n cursor = undefined;\n var strings = args[0];\n\n if (strings == null || strings.raw === undefined) {\n stringMode = false;\n styles += handleInterpolation(mergedProps, registered, strings, false);\n } else {\n if (process.env.NODE_ENV !== 'production' && strings[0] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n }\n\n styles += strings[0];\n } // we start at 1 since we've already handled the first arg\n\n\n for (var i = 1; i < args.length; i++) {\n styles += handleInterpolation(mergedProps, registered, args[i], styles.charCodeAt(styles.length - 1) === 46);\n\n if (stringMode) {\n if (process.env.NODE_ENV !== 'production' && strings[i] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n }\n\n styles += strings[i];\n }\n }\n\n var sourceMap;\n\n if (process.env.NODE_ENV !== 'production') {\n styles = styles.replace(sourceMapPattern, function (match) {\n sourceMap = match;\n return '';\n });\n } // using a global regex with .exec is stateful so lastIndex has to be reset each time\n\n\n labelPattern.lastIndex = 0;\n var identifierName = '';\n var match; // https://esbench.com/bench/5b809c2cf2949800a0f61fb5\n\n while ((match = labelPattern.exec(styles)) !== null) {\n identifierName += '-' + // $FlowFixMe we know it's not null\n match[1];\n }\n\n var name = hashString(styles) + identifierName;\n\n if (process.env.NODE_ENV !== 'production') {\n // $FlowFixMe SerializedStyles type doesn't have toString property (and we don't want to add it)\n return {\n name: name,\n styles: styles,\n map: sourceMap,\n next: cursor,\n toString: function toString() {\n return \"You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop).\";\n }\n };\n }\n\n return {\n name: name,\n styles: styles,\n next: cursor\n };\n};\n\nexport { serializeStyles };","import '@babel/runtime/helpers/inheritsLoose';\nimport { createContext, forwardRef, createElement, Fragment } from 'react';\nimport createCache from '@emotion/cache';\nimport { getRegisteredStyles, insertStyles } from '@emotion/utils';\nimport { serializeStyles } from '@emotion/serialize';\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar EmotionCacheContext = /*#__PURE__*/createContext( // we're doing this to avoid preconstruct's dead code elimination in this one case\n// because this module is primarily intended for the browser and node\n// but it's also required in react native and similar environments sometimes\n// and we could have a special build just for that\n// but this is much easier and the native packages\n// might use a different theme context in the future anyway\ntypeof HTMLElement !== 'undefined' ? createCache() : null);\nvar ThemeContext = /*#__PURE__*/createContext({});\nvar CacheProvider = EmotionCacheContext.Provider;\n\nvar withEmotionCache = function withEmotionCache(func) {\n var render = function render(props, ref) {\n return /*#__PURE__*/createElement(EmotionCacheContext.Consumer, null, function (cache) {\n return func(props, cache, ref);\n });\n }; // $FlowFixMe\n\n\n return /*#__PURE__*/forwardRef(render);\n}; // thus we only need to replace what is a valid character for JS, but not for CSS\n\n\nvar sanitizeIdentifier = function sanitizeIdentifier(identifier) {\n return identifier.replace(/\\$/g, '-');\n};\n\nvar typePropName = '__EMOTION_TYPE_PLEASE_DO_NOT_USE__';\nvar labelPropName = '__EMOTION_LABEL_PLEASE_DO_NOT_USE__';\n\nvar createEmotionProps = function createEmotionProps(type, props) {\n if (process.env.NODE_ENV !== 'production' && typeof props.css === 'string' && // check if there is a css declaration\n props.css.indexOf(':') !== -1) {\n throw new Error(\"Strings are not allowed as css prop values, please wrap it in a css template literal from '@emotion/css' like this: css`\" + props.css + \"`\");\n }\n\n var newProps = {};\n\n for (var key in props) {\n if (hasOwnProperty.call(props, key)) {\n newProps[key] = props[key];\n }\n }\n\n newProps[typePropName] = type; // TODO: check if this still works with all of those different JSX functions\n\n if (process.env.NODE_ENV !== 'production') {\n var error = new Error();\n\n if (error.stack) {\n // chrome\n var match = error.stack.match(/at (?:Object\\.|Module\\.|)(?:jsx|createEmotionProps).*\\n\\s+at (?:Object\\.|)([A-Z][A-Za-z$]+) /);\n\n if (!match) {\n // safari and firefox\n match = error.stack.match(/.*\\n([A-Z][A-Za-z$]+)@/);\n }\n\n if (match) {\n newProps[labelPropName] = sanitizeIdentifier(match[1]);\n }\n }\n }\n\n return newProps;\n};\n\nvar Noop = function Noop() {\n return null;\n};\n\nvar render = function render(cache, props, theme, ref) {\n var cssProp = theme === null ? props.css : props.css(theme); // so that using `css` from `emotion` and passing the result to the css prop works\n // not passing the registered cache to serializeStyles because it would\n // make certain babel optimisations not possible\n\n if (typeof cssProp === 'string' && cache.registered[cssProp] !== undefined) {\n cssProp = cache.registered[cssProp];\n }\n\n var type = props[typePropName];\n var registeredStyles = [cssProp];\n var className = '';\n\n if (typeof props.className === 'string') {\n className = getRegisteredStyles(cache.registered, registeredStyles, props.className);\n } else if (props.className != null) {\n className = props.className + \" \";\n }\n\n var serialized = serializeStyles(registeredStyles);\n\n if (process.env.NODE_ENV !== 'production' && serialized.name.indexOf('-') === -1) {\n var labelFromStack = props[labelPropName];\n\n if (labelFromStack) {\n serialized = serializeStyles([serialized, 'label:' + labelFromStack + ';']);\n }\n }\n\n var rules = insertStyles(cache, serialized, typeof type === 'string');\n className += cache.key + \"-\" + serialized.name;\n var newProps = {};\n\n for (var key in props) {\n if (hasOwnProperty.call(props, key) && key !== 'css' && key !== typePropName && (process.env.NODE_ENV === 'production' || key !== labelPropName)) {\n newProps[key] = props[key];\n }\n }\n\n newProps.ref = ref;\n newProps.className = className;\n var ele = /*#__PURE__*/createElement(type, newProps);\n var possiblyStyleElement = /*#__PURE__*/createElement(Noop, null);\n return /*#__PURE__*/createElement(Fragment, null, possiblyStyleElement, ele);\n}; // eslint-disable-next-line no-undef\n\n\nvar Emotion = /* #__PURE__ */withEmotionCache(function (props, cache, ref) {\n if (typeof props.css === 'function') {\n return /*#__PURE__*/createElement(ThemeContext.Consumer, null, function (theme) {\n return render(cache, props, theme, ref);\n });\n }\n\n return render(cache, props, null, ref);\n});\n\nif (process.env.NODE_ENV !== 'production') {\n Emotion.displayName = 'EmotionCssPropInternal';\n}\n\nexport { CacheProvider as C, Emotion as E, ThemeContext as T, createEmotionProps as c, hasOwnProperty as h, withEmotionCache as w };","import { serializeStyles } from '@emotion/serialize';\n\nfunction css() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return serializeStyles(args);\n}\n\nexport default css;","import _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport { createElement, Component, Fragment } from 'react';\nimport '@emotion/cache';\nimport { h as hasOwnProperty, E as Emotion, c as createEmotionProps, w as withEmotionCache, T as ThemeContext } from './emotion-element-04d85134.browser.esm.js';\nexport { C as CacheProvider, T as ThemeContext, w as withEmotionCache } from './emotion-element-04d85134.browser.esm.js';\nimport { insertStyles, getRegisteredStyles } from '@emotion/utils';\nimport { serializeStyles } from '@emotion/serialize';\nimport { StyleSheet } from '@emotion/sheet';\nimport css from '@emotion/css';\nexport { default as css } from '@emotion/css';\n\nvar jsx = function jsx(type, props) {\n var args = arguments;\n\n if (props == null || !hasOwnProperty.call(props, 'css')) {\n // $FlowFixMe\n return createElement.apply(undefined, args);\n }\n\n var argsLength = args.length;\n var createElementArgArray = new Array(argsLength);\n createElementArgArray[0] = Emotion;\n createElementArgArray[1] = createEmotionProps(type, props);\n\n for (var i = 2; i < argsLength; i++) {\n createElementArgArray[i] = args[i];\n } // $FlowFixMe\n\n\n return createElement.apply(null, createElementArgArray);\n};\n\nvar warnedAboutCssPropForGlobal = false;\nvar Global = /* #__PURE__ */withEmotionCache(function (props, cache) {\n if (process.env.NODE_ENV !== 'production' && !warnedAboutCssPropForGlobal && ( // check for className as well since the user is\n // probably using the custom createElement which\n // means it will be turned into a className prop\n // $FlowFixMe I don't really want to add it to the type since it shouldn't be used\n props.className || props.css)) {\n console.error(\"It looks like you're using the css prop on Global, did you mean to use the styles prop instead?\");\n warnedAboutCssPropForGlobal = true;\n }\n\n var styles = props.styles;\n\n if (typeof styles === 'function') {\n return /*#__PURE__*/createElement(ThemeContext.Consumer, null, function (theme) {\n var serialized = serializeStyles([styles(theme)]);\n return /*#__PURE__*/createElement(InnerGlobal, {\n serialized: serialized,\n cache: cache\n });\n });\n }\n\n var serialized = serializeStyles([styles]);\n return /*#__PURE__*/createElement(InnerGlobal, {\n serialized: serialized,\n cache: cache\n });\n}); // maintain place over rerenders.\n// initial render from browser, insertBefore context.sheet.tags[0] or if a style hasn't been inserted there yet, appendChild\n// initial client-side render from SSR, use place of hydrating tag\n\nvar InnerGlobal = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(InnerGlobal, _React$Component);\n\n function InnerGlobal(props, context, updater) {\n return _React$Component.call(this, props, context, updater) || this;\n }\n\n var _proto = InnerGlobal.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.sheet = new StyleSheet({\n key: this.props.cache.key + \"-global\",\n nonce: this.props.cache.sheet.nonce,\n container: this.props.cache.sheet.container\n }); // $FlowFixMe\n\n var node = document.querySelector(\"style[data-emotion-\" + this.props.cache.key + \"=\\\"\" + this.props.serialized.name + \"\\\"]\");\n\n if (node !== null) {\n this.sheet.tags.push(node);\n }\n\n if (this.props.cache.sheet.tags.length) {\n this.sheet.before = this.props.cache.sheet.tags[0];\n }\n\n this.insertStyles();\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n if (prevProps.serialized.name !== this.props.serialized.name) {\n this.insertStyles();\n }\n };\n\n _proto.insertStyles = function insertStyles$1() {\n if (this.props.serialized.next !== undefined) {\n // insert keyframes\n insertStyles(this.props.cache, this.props.serialized.next, true);\n }\n\n if (this.sheet.tags.length) {\n // if this doesn't exist then it will be null so the style element will be appended\n var element = this.sheet.tags[this.sheet.tags.length - 1].nextElementSibling;\n this.sheet.before = element;\n this.sheet.flush();\n }\n\n this.props.cache.insert(\"\", this.props.serialized, this.sheet, false);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.sheet.flush();\n };\n\n _proto.render = function render() {\n return null;\n };\n\n return InnerGlobal;\n}(Component);\n\nvar keyframes = function keyframes() {\n var insertable = css.apply(void 0, arguments);\n var name = \"animation-\" + insertable.name; // $FlowFixMe\n\n return {\n name: name,\n styles: \"@keyframes \" + name + \"{\" + insertable.styles + \"}\",\n anim: 1,\n toString: function toString() {\n return \"_EMO_\" + this.name + \"_\" + this.styles + \"_EMO_\";\n }\n };\n};\n\nvar classnames = function classnames(args) {\n var len = args.length;\n var i = 0;\n var cls = '';\n\n for (; i < len; i++) {\n var arg = args[i];\n if (arg == null) continue;\n var toAdd = void 0;\n\n switch (typeof arg) {\n case 'boolean':\n break;\n\n case 'object':\n {\n if (Array.isArray(arg)) {\n toAdd = classnames(arg);\n } else {\n toAdd = '';\n\n for (var k in arg) {\n if (arg[k] && k) {\n toAdd && (toAdd += ' ');\n toAdd += k;\n }\n }\n }\n\n break;\n }\n\n default:\n {\n toAdd = arg;\n }\n }\n\n if (toAdd) {\n cls && (cls += ' ');\n cls += toAdd;\n }\n }\n\n return cls;\n};\n\nfunction merge(registered, css, className) {\n var registeredStyles = [];\n var rawClassName = getRegisteredStyles(registered, registeredStyles, className);\n\n if (registeredStyles.length < 2) {\n return className;\n }\n\n return rawClassName + css(registeredStyles);\n}\n\nvar Noop = function Noop() {\n return null;\n};\n\nvar ClassNames = withEmotionCache(function (props, context) {\n return /*#__PURE__*/createElement(ThemeContext.Consumer, null, function (theme) {\n var hasRendered = false;\n\n var css = function css() {\n if (hasRendered && process.env.NODE_ENV !== 'production') {\n throw new Error('css can only be used during render');\n }\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var serialized = serializeStyles(args, context.registered);\n {\n insertStyles(context, serialized, false);\n }\n return context.key + \"-\" + serialized.name;\n };\n\n var cx = function cx() {\n if (hasRendered && process.env.NODE_ENV !== 'production') {\n throw new Error('cx can only be used during render');\n }\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return merge(context.registered, css, classnames(args));\n };\n\n var content = {\n css: css,\n cx: cx,\n theme: theme\n };\n var ele = props.children(content);\n hasRendered = true;\n var possiblyStyleElement = /*#__PURE__*/createElement(Noop, null);\n return /*#__PURE__*/createElement(Fragment, null, possiblyStyleElement, ele);\n });\n});\nexport { ClassNames, Global, jsx as createElement, jsx, keyframes };","import { __assign } from 'tslib';\nimport hash from 'hash-sum';\n\n(function () {\n if (typeof window === 'undefined' || typeof window.CustomEvent === 'function') return false;\n\n function CustomEvent(event, params) {\n params = params || {\n bubbles: false,\n cancelable: false,\n detail: null\n };\n var evt = document.createEvent('CustomEvent');\n evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);\n return evt;\n }\n\n window.CustomEvent = CustomEvent;\n})();\n\nvar isSafari = typeof window !== 'undefined' && /^((?!chrome|android).)*safari/i.test(window.navigator.userAgent); // TODO: queue all of these in a debounceNextTick\n\nfunction nextTick(fn) {\n // React native\n if (typeof setImmediate === 'function' && typeof window === 'undefined') {\n return setImmediate(fn);\n } // TODO: should this be setImmediate instead? Forgot if that is micro or macro task\n // TODO: detect specifically if is server\n // if (typeof process !== 'undefined' && process.nextTick) {\n // console.log('process.nextTick?');\n // process.nextTick(fn);\n // return;\n // }\n // FIXME: fix the real safari issue of this randomly not working\n\n\n if (isSafari || typeof MutationObserver === 'undefined') {\n setTimeout(fn);\n return;\n }\n\n var called = 0;\n var observer = new MutationObserver(function () {\n return fn();\n });\n var element = document.createTextNode('');\n observer.observe(element, {\n characterData: true\n }); // tslint:disable-next-line\n\n element.data = String(called = ++called);\n} // TODO: unit tests\n\n\nvar QueryString =\n/** @class */\nfunction () {\n function QueryString() {}\n\n QueryString.parseDeep = function (queryString) {\n var obj = this.parse(queryString);\n return this.deepen(obj);\n };\n\n QueryString.stringifyDeep = function (obj) {\n var map = this.flatten(obj);\n return this.stringify(map);\n };\n\n QueryString.parse = function (queryString) {\n var query = {};\n var pairs = (queryString[0] === '?' ? queryString.substr(1) : queryString).split('&');\n\n for (var i = 0; i < pairs.length; i++) {\n var pair = pairs[i].split('='); // TODO: node support?\n\n try {\n query[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1] || '');\n } catch (error) {// Ignore malformed URI components\n }\n }\n\n return query;\n };\n\n QueryString.stringify = function (map) {\n var str = '';\n\n for (var key in map) {\n if (map.hasOwnProperty(key)) {\n var value = map[key];\n\n if (str) {\n str += '&';\n }\n\n str += encodeURIComponent(key) + '=' + encodeURIComponent(value);\n }\n }\n\n return str;\n };\n\n QueryString.deepen = function (map) {\n var output = {};\n\n for (var k in map) {\n var t = output;\n var parts = k.split('.');\n var key = parts.pop();\n\n while (parts.length) {\n var part = parts.shift();\n t = t[part] = t[part] || {};\n }\n\n t[key] = map[k];\n }\n\n return output;\n };\n\n QueryString.flatten = function (obj, _current, _res) {\n if (_res === void 0) {\n _res = {};\n }\n\n for (var key in obj) {\n var value = obj[key];\n var newKey = _current ? _current + '.' + key : key;\n\n if (value && typeof value === 'object') {\n this.flatten(value, newKey, _res);\n } else {\n _res[newKey] = value;\n }\n }\n\n return _res;\n };\n\n return QueryString;\n}();\n\nvar version = \"1.1.23-14\";\n\nvar Subscription =\n/** @class */\nfunction () {\n function Subscription(listeners, listener) {\n this.listeners = listeners;\n this.listener = listener;\n this.unsubscribed = false;\n this.otherSubscriptions = [];\n }\n\n Object.defineProperty(Subscription.prototype, \"closed\", {\n get: function get() {\n return this.unsubscribed;\n },\n enumerable: true,\n configurable: true\n });\n\n Subscription.prototype.add = function (subscription) {\n this.otherSubscriptions.push(subscription);\n };\n\n Subscription.prototype.unsubscribe = function () {\n if (this.unsubscribed) {\n return;\n }\n\n if (this.listener && this.listeners) {\n var index = this.listeners.indexOf(this.listener);\n\n if (index > -1) {\n this.listeners.splice(index, 1);\n }\n }\n\n this.otherSubscriptions.forEach(function (sub) {\n return sub.unsubscribe();\n });\n this.unsubscribed = true;\n };\n\n return Subscription;\n}(); // TODO: follow minimal basic spec: https://github.com/tc39/proposal-observable\n\n\nvar BehaviorSubject =\n/** @class */\nfunction () {\n function BehaviorSubject(value) {\n this.value = value;\n this.listeners = [];\n this.errorListeners = [];\n }\n\n BehaviorSubject.prototype.next = function (value) {\n this.value = value;\n\n for (var _i = 0, _a = this.listeners; _i < _a.length; _i++) {\n var listener = _a[_i];\n listener(value);\n }\n }; // TODO: implement this as PIPE instead\n\n\n BehaviorSubject.prototype.map = function (fn) {\n var newSubject = new BehaviorSubject(fn(this.value)); // TODO: on destroy delete these\n\n this.subscribe(function (val) {\n newSubject.next(fn(val));\n });\n this.catch(function (err) {\n newSubject.error(err);\n });\n return newSubject;\n };\n\n BehaviorSubject.prototype.catch = function (errorListener) {\n this.errorListeners.push(errorListener);\n return new Subscription(this.errorListeners, errorListener);\n };\n\n BehaviorSubject.prototype.error = function (error) {\n for (var _i = 0, _a = this.errorListeners; _i < _a.length; _i++) {\n var listener = _a[_i];\n listener(error);\n }\n };\n\n BehaviorSubject.prototype.subscribe = function (listener, errorListener) {\n this.listeners.push(listener);\n\n if (errorListener) {\n this.errorListeners.push(errorListener);\n }\n\n return new Subscription(this.listeners, listener);\n };\n\n BehaviorSubject.prototype.toPromise = function () {\n var _this = this;\n\n return new Promise(function (resolve, reject) {\n var subscription = _this.subscribe(function (value) {\n resolve(value);\n subscription.unsubscribe();\n }, function (err) {\n reject(err);\n subscription.unsubscribe();\n });\n });\n };\n\n BehaviorSubject.prototype.promise = function () {\n return this.toPromise();\n };\n\n return BehaviorSubject;\n}();\n\nvar State = {\n Pending: 'Pending',\n Fulfilled: 'Fulfilled',\n Rejected: 'Rejected'\n};\n\nfunction isFunction(val) {\n return val && typeof val === 'function';\n}\n\nfunction isObject(val) {\n return val && typeof val === 'object';\n}\n\nvar TinyPromise =\n/** @class */\nfunction () {\n function TinyPromise(executor) {\n this._state = State.Pending;\n this._handlers = [];\n this._value = null;\n executor(this._resolve.bind(this), this._reject.bind(this));\n }\n\n TinyPromise.prototype._resolve = function (x) {\n var _this = this;\n\n if (x instanceof TinyPromise) {\n x.then(this._resolve.bind(this), this._reject.bind(this));\n } else if (isObject(x) || isFunction(x)) {\n var called_1 = false;\n\n try {\n var thenable = x.then;\n\n if (isFunction(thenable)) {\n thenable.call(x, function (result) {\n if (!called_1) _this._resolve(result);\n called_1 = true;\n return undefined;\n }, function (error) {\n if (!called_1) _this._reject(error);\n called_1 = true;\n return undefined;\n });\n } else {\n this._fulfill(x);\n }\n } catch (ex) {\n if (!called_1) {\n this._reject(ex);\n }\n }\n } else {\n this._fulfill(x);\n }\n };\n\n TinyPromise.prototype._fulfill = function (result) {\n var _this = this;\n\n this._state = State.Fulfilled;\n this._value = result;\n\n this._handlers.forEach(function (handler) {\n return _this._callHandler(handler);\n });\n };\n\n TinyPromise.prototype._reject = function (error) {\n var _this = this;\n\n this._state = State.Rejected;\n this._value = error;\n\n this._handlers.forEach(function (handler) {\n return _this._callHandler(handler);\n });\n };\n\n TinyPromise.prototype._isPending = function () {\n return this._state === State.Pending;\n };\n\n TinyPromise.prototype._isFulfilled = function () {\n return this._state === State.Fulfilled;\n };\n\n TinyPromise.prototype._isRejected = function () {\n return this._state === State.Rejected;\n };\n\n TinyPromise.prototype._addHandler = function (onFulfilled, onRejected) {\n this._handlers.push({\n onFulfilled: onFulfilled,\n onRejected: onRejected\n });\n };\n\n TinyPromise.prototype._callHandler = function (handler) {\n if (this._isFulfilled() && isFunction(handler.onFulfilled)) {\n handler.onFulfilled(this._value);\n } else if (this._isRejected() && isFunction(handler.onRejected)) {\n handler.onRejected(this._value);\n }\n };\n\n TinyPromise.prototype.then = function (onFulfilled, onRejected) {\n var _this = this;\n\n switch (this._state) {\n case State.Pending:\n {\n return new TinyPromise(function (resolve, reject) {\n _this._addHandler(function (value) {\n nextTick(function () {\n try {\n if (isFunction(onFulfilled)) {\n resolve(onFulfilled(value));\n } else {\n resolve(value);\n }\n } catch (ex) {\n reject(ex);\n }\n });\n }, function (error) {\n nextTick(function () {\n try {\n if (isFunction(onRejected)) {\n resolve(onRejected(error));\n } else {\n reject(error);\n }\n } catch (ex) {\n reject(ex);\n }\n });\n });\n });\n }\n\n case State.Fulfilled:\n {\n return new TinyPromise(function (resolve, reject) {\n nextTick(function () {\n try {\n if (isFunction(onFulfilled)) {\n resolve(onFulfilled(_this._value));\n } else {\n resolve(_this._value);\n }\n } catch (ex) {\n reject(ex);\n }\n });\n });\n }\n\n case State.Rejected:\n {\n return new TinyPromise(function (resolve, reject) {\n nextTick(function () {\n try {\n if (isFunction(onRejected)) {\n resolve(onRejected(_this._value));\n } else {\n reject(_this._value);\n }\n } catch (ex) {\n reject(ex);\n }\n });\n });\n }\n }\n };\n\n return TinyPromise;\n}();\n\nvar Promise$1 = typeof Promise !== 'undefined' ? Promise : TinyPromise; // Webpack workaround to conditionally require certain external modules\n// only on the server and not bundle them on the client\n\nvar serverOnlyRequire;\n\ntry {\n // tslint:disable-next-line:no-eval\n serverOnlyRequire = eval('require');\n} catch (err) {\n // all good\n serverOnlyRequire = function serverOnlyRequire() {\n return null;\n };\n}\n\nvar serverOnlyRequire$1 = serverOnlyRequire;\n\nfunction promiseResolve(value) {\n return new Promise$1(function (resolve) {\n return resolve(value);\n });\n} // Adapted from https://raw.githubusercontent.com/developit/unfetch/master/src/index.mjs\n\n\nfunction tinyFetch(url, options) {\n if (options === void 0) {\n options = {};\n }\n\n return new Promise$1(function (resolve, reject) {\n var request = new XMLHttpRequest();\n request.open(options.method || 'get', url, true);\n\n if (options.headers) {\n for (var i in options.headers) {\n request.setRequestHeader(i, options.headers[i]);\n }\n }\n\n request.withCredentials = options.credentials === 'include';\n\n request.onload = function () {\n resolve(response());\n };\n\n request.onerror = reject;\n request.send(options.body);\n\n function response() {\n var _keys = [];\n var all = [];\n var headers = {};\n var header = undefined;\n request.getAllResponseHeaders().replace(/^(.*?):[^\\S\\n]*([\\s\\S]*?)$/gm, function (_match, _key, value) {\n var key = _key;\n\n _keys.push(key = key.toLowerCase());\n\n all.push([key, value]);\n header = headers[key];\n headers[key] = header ? header + \",\" + value : value;\n return '';\n });\n return {\n ok: (request.status / 100 | 0) === 2,\n status: request.status,\n statusText: request.statusText,\n url: request.responseURL,\n clone: response,\n text: function text() {\n return promiseResolve(request.responseText);\n },\n json: function json() {\n return promiseResolve(request.responseText).then(JSON.parse);\n },\n blob: function blob() {\n return promiseResolve(new Blob([request.response]));\n },\n headers: {\n keys: function keys() {\n return _keys;\n },\n entries: function entries() {\n return all;\n },\n get: function get(n) {\n return headers[n.toLowerCase()];\n },\n has: function has(n) {\n return n.toLowerCase() in headers;\n }\n }\n };\n }\n });\n}\n\nvar fetch = typeof global === 'object' && typeof global.fetch === 'function' ? global.fetch : typeof window === 'undefined' ? serverOnlyRequire$1('node-fetch') : typeof window.fetch !== 'undefined' ? window.fetch : tinyFetch;\n\nfunction assign(target) {\n var args = [];\n\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n\n var to = Object(target);\n\n for (var index = 1; index < arguments.length; index++) {\n var nextSource = arguments[index];\n\n if (nextSource != null) {\n // Skip over if undefined or null\n for (var nextKey in nextSource) {\n // Avoid bugs when hasOwnProperty is shadowed\n if (Object.prototype.hasOwnProperty.call(nextSource, nextKey)) {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n }\n\n return to;\n}\n\nfunction throttle(func, wait, options) {\n if (options === void 0) {\n options = {};\n }\n\n var context;\n var args;\n var result;\n var timeout = null;\n var previous = 0;\n\n var later = function later() {\n previous = options.leading === false ? 0 : Date.now();\n timeout = null;\n result = func.apply(context, args);\n if (!timeout) context = args = null;\n };\n\n return function () {\n var now = Date.now();\n if (!previous && options.leading === false) previous = now;\n var remaining = wait - (now - previous);\n context = this;\n args = arguments;\n\n if (remaining <= 0 || remaining > wait) {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n }\n\n previous = now;\n result = func.apply(context, args);\n if (!timeout) context = args = null;\n } else if (!timeout && options.trailing !== false) {\n timeout = setTimeout(later, remaining);\n }\n\n return result;\n };\n}\n\nvar camelCaseToKebabCase = function camelCaseToKebabCase(str) {\n return str ? str.replace(/([A-Z])/g, function (g) {\n return \"-\" + g[0].toLowerCase();\n }) : '';\n};\n\nvar Animator =\n/** @class */\nfunction () {\n function Animator() {}\n\n Animator.prototype.bindAnimations = function (animations) {\n for (var _i = 0, animations_1 = animations; _i < animations_1.length; _i++) {\n var animation = animations_1[_i];\n\n switch (animation.trigger) {\n case 'pageLoad':\n this.triggerAnimation(animation);\n break;\n\n case 'hover':\n this.bindHoverAnimation(animation);\n break;\n\n case 'scrollInView':\n this.bindScrollInViewAnimation(animation);\n break;\n }\n }\n };\n\n Animator.prototype.warnElementNotPresent = function (id) {\n console.warn(\"Cannot animate element: element with ID \" + id + \" not found!\");\n };\n\n Animator.prototype.augmentAnimation = function (animation, element) {\n var stylesUsed = this.getAllStylesUsed(animation);\n var computedStyle = getComputedStyle(element); // const computedStyle = getComputedStyle(element);\n // // FIXME: this will break if original load is in one reponsive size then resize to another hmmm\n // Need to use transform instead of left since left can change on screen sizes\n\n var firstStyles = animation.steps[0].styles;\n var lastStyles = animation.steps[animation.steps.length - 1].styles;\n var bothStyles = [firstStyles, lastStyles]; // FIXME: this won't work as expected for augmented animations - may need the editor itself to manage this\n\n for (var _i = 0, bothStyles_1 = bothStyles; _i < bothStyles_1.length; _i++) {\n var styles = bothStyles_1[_i];\n\n for (var _a = 0, stylesUsed_1 = stylesUsed; _a < stylesUsed_1.length; _a++) {\n var style = stylesUsed_1[_a];\n\n if (!(style in styles)) {\n styles[style] = computedStyle[style];\n }\n }\n }\n };\n\n Animator.prototype.getAllStylesUsed = function (animation) {\n var properties = [];\n\n for (var _i = 0, _a = animation.steps; _i < _a.length; _i++) {\n var step = _a[_i];\n\n for (var key in step.styles) {\n if (properties.indexOf(key) === -1) {\n properties.push(key);\n }\n }\n }\n\n return properties;\n };\n\n Animator.prototype.triggerAnimation = function (animation) {\n var _this = this; // TODO: do for ALL elements\n\n\n var elements = Array.prototype.slice.call(document.getElementsByClassName(animation.elementId || animation.id || ''));\n\n if (!elements.length) {\n this.warnElementNotPresent(animation.elementId || animation.id || '');\n return;\n }\n\n Array.from(elements).forEach(function (element) {\n _this.augmentAnimation(animation, element); // TODO: do this properly, may have other animations of different properties\n // TODO: only override the properties\n // TODO: if there is an entrance and hover animation, the transition duration will get effed\n // element.setAttribute('style', '');\n // const styledUsed = this.getAllStylesUsed(animation);\n\n\n element.style.transition = 'none';\n element.style.transitionDelay = '0';\n assign(element.style, animation.steps[0].styles); // TODO: queue/batch these timeouts\n // TODO: only include properties explicitly set in the animation\n // using Object.keys(styles)\n\n setTimeout(function () {\n element.style.transition = \"all \" + animation.duration + \"s \" + camelCaseToKebabCase(animation.easing);\n\n if (animation.delay) {\n element.style.transitionDelay = animation.delay + 's';\n }\n\n assign(element.style, animation.steps[1].styles); // TODO: maybe remove/reset transitoin property after animation duration\n // TODO: queue timers\n\n setTimeout(function () {\n // TODO: what if has other transition (reset back to what it was)\n element.style.transition = '';\n element.style.transitionDelay = '';\n }, (animation.delay || 0) * 1000 + animation.duration * 1000 + 100);\n });\n });\n };\n\n Animator.prototype.bindHoverAnimation = function (animation) {\n var _this = this; // TODO: is it multiple binding when editing...?\n // TODO: unbind on element remove\n // TODO: apply to ALL elements\n\n\n var elements = Array.prototype.slice.call(document.getElementsByClassName(animation.elementId || animation.id || ''));\n\n if (!elements.length) {\n this.warnElementNotPresent(animation.elementId || animation.id || '');\n return;\n }\n\n Array.from(elements).forEach(function (element) {\n _this.augmentAnimation(animation, element);\n\n var defaultState = animation.steps[0].styles;\n var hoverState = animation.steps[1].styles;\n\n function attachDefaultState() {\n assign(element.style, defaultState);\n }\n\n function attachHoverState() {\n assign(element.style, hoverState);\n }\n\n attachDefaultState();\n element.addEventListener('mouseenter', attachHoverState);\n element.addEventListener('mouseleave', attachDefaultState); // TODO: queue/batch these timeouts\n\n setTimeout(function () {\n element.style.transition = \"all \" + animation.duration + \"s \" + camelCaseToKebabCase(animation.easing);\n\n if (animation.delay) {\n element.style.transitionDelay = animation.delay + 's';\n }\n });\n });\n }; // TODO: unbind on element remove\n\n\n Animator.prototype.bindScrollInViewAnimation = function (animation) {\n var _this = this; // TODO: apply to ALL matching elements\n\n\n var elements = Array.prototype.slice.call(document.getElementsByClassName(animation.elementId || animation.id || ''));\n\n if (!elements.length) {\n this.warnElementNotPresent(animation.elementId || animation.id || '');\n return;\n } // TODO: if server side rendered and scrolled into view don't animate...\n\n\n Array.from(elements).forEach(function (element) {\n _this.augmentAnimation(animation, element);\n\n var triggered = false;\n\n function immediateOnScroll() {\n if (!triggered && isScrolledIntoView(element)) {\n triggered = true;\n setTimeout(function () {\n assign(element.style, animation.steps[1].styles);\n document.removeEventListener('scroll', onScroll);\n setTimeout(function () {\n element.style.transition = '';\n element.style.transitionDelay = '';\n }, (animation.duration * 1000 + (animation.delay || 0)) * 1000 + 100);\n });\n }\n } // TODO: roll all of these in one for more efficiency of checking all the rects\n\n\n var onScroll = throttle(immediateOnScroll, 200, {\n leading: false\n }); // TODO: fully in view or partially\n\n function isScrolledIntoView(elem) {\n var rect = elem.getBoundingClientRect();\n var windowHeight = window.innerHeight;\n var thresholdPrecent = 0;\n var threshold = thresholdPrecent * windowHeight; // TODO: partial in view? or what if element is larger than screen itself\n\n return rect.bottom > threshold && rect.top < windowHeight - threshold // Element is peeking top or bottom\n // (rect.top > 0 && rect.bottom < window.innerHeight) || // element fits within the screen and is fully on screen (not hanging off at all)\n // (rect.top < 0 && rect.bottom > window.innerHeight) // element is larger than the screen and hangs over the top and bottom\n ;\n }\n\n var defaultState = animation.steps[0].styles;\n\n function attachDefaultState() {\n assign(element.style, defaultState);\n }\n\n attachDefaultState(); // TODO: queue/batch these timeouts!\n\n setTimeout(function () {\n element.style.transition = \"all \" + animation.duration + \"s \" + camelCaseToKebabCase(animation.easing);\n\n if (animation.delay) {\n element.style.transitionDelay = animation.delay + 's';\n }\n }); // TODO: one listener for everything\n\n document.addEventListener('scroll', onScroll, {\n capture: true,\n passive: true\n }); // Do an initial check\n\n immediateOnScroll();\n });\n };\n\n return Animator;\n}();\n/**\r\n * Only gets one level up from hostname\r\n * wwww.example.com -> example.com\r\n * www.example.co.uk -> example.co.uk\r\n */\n\n\nfunction getTopLevelDomain(host) {\n var parts = host.split('.');\n\n if (parts.length > 2) {\n return parts.slice(1).join('.');\n }\n\n return host;\n}\n/**\r\n * RegExp to match field-content in RFC 7230 sec 3.2\r\n *\r\n * field-content = field-vchar [ 1*( SP / HTAB ) field-vchar ]\r\n * field-vchar = VCHAR / obs-text\r\n * obs-text = %x80-FF\r\n */\n\n\nvar fieldContentRegExp = /^[\\u0009\\u0020-\\u007e\\u0080-\\u00ff]+$/;\n\nvar Cookies =\n/** @class */\nfunction () {\n function Cookies(request, response) {\n this.request = request;\n this.response = response;\n }\n\n Cookies.prototype.get = function (name) {\n var header = this.request.headers['cookie'];\n\n if (!header) {\n return;\n }\n\n var match = header.match(getPattern(name));\n\n if (!match) {\n return;\n }\n\n var value = match[1];\n return value;\n };\n\n Cookies.prototype.set = function (name, value, opts) {\n var res = this.response;\n var req = this.request;\n var headers = res.getHeader('Set-Cookie') || []; // TODO: just make this always true\n\n var secure = this.secure !== undefined ? !!this.secure : req.protocol === 'https' || req.connection.encrypted;\n var cookie = new Cookie(name, value, opts);\n\n if (typeof headers === 'string') {\n headers = [headers];\n }\n\n if (!secure && opts && opts.secure) {\n throw new Error('Cannot send secure cookie over unencrypted connection');\n }\n\n cookie.secure = secure;\n\n if (opts && 'secure' in opts) {\n cookie.secure = !!opts.secure;\n }\n\n cookie.domain = req.headers.host && getTopLevelDomain(req.headers.host);\n pushCookie(headers, cookie);\n var setHeader = res.setHeader;\n setHeader.call(res, 'Set-Cookie', headers);\n return this;\n };\n\n return Cookies;\n}();\n\nvar Cookie =\n/** @class */\nfunction () {\n function Cookie(name, value, attrs) {\n this.path = '/';\n this.domain = undefined;\n this.httpOnly = true;\n this.sameSite = false;\n this.secure = false;\n this.overwrite = false;\n this.name = '';\n this.value = '';\n\n if (!fieldContentRegExp.test(name)) {\n throw new TypeError('argument name is invalid');\n }\n\n if (value && !fieldContentRegExp.test(value)) {\n throw new TypeError('argument value is invalid');\n }\n\n if (!value) {\n this.expires = new Date(0);\n }\n\n this.name = name;\n this.value = value || '';\n\n if (attrs.expires) {\n this.expires = attrs.expires;\n }\n\n if (attrs.secure) {\n this.secure = attrs.secure;\n }\n }\n\n Cookie.prototype.toString = function () {\n return this.name + \"=\" + this.value;\n };\n\n Cookie.prototype.toHeader = function () {\n var header = this.toString();\n\n if (this.maxAge) {\n this.expires = new Date(Date.now() + this.maxAge);\n }\n\n if (this.path) {\n header += \"; path=\" + this.path;\n }\n\n if (this.expires) {\n header += \"; expires=\" + this.expires.toUTCString();\n }\n\n if (this.domain) {\n header += \"; domain=\" + this.domain;\n } // TODO: samesite=none by default (?)\n\n\n header += \"; SameSite=\" + (this.sameSite === true ? 'strict' : 'None'); // TODO: On by default\n\n if (this.secure) {\n header += '; secure';\n }\n\n if (this.httpOnly) {\n header += '; httponly';\n }\n\n return header;\n };\n\n return Cookie;\n}();\n\nfunction getPattern(name) {\n return new RegExp(\"(?:^|;) *\" + name.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&') + \"=([^;]*)\");\n}\n\nfunction pushCookie(headers, cookie) {\n if (cookie.overwrite) {\n for (var i = headers.length - 1; i >= 0; i--) {\n if (headers[i].indexOf(cookie.name + \"=\") === 0) {\n headers.splice(i, 1);\n }\n }\n }\n\n headers.push(cookie.toHeader());\n}\n\nfunction omit(obj) {\n var values = [];\n\n for (var _i = 1; _i < arguments.length; _i++) {\n values[_i - 1] = arguments[_i];\n }\n\n var newObject = Object.assign({}, obj);\n\n for (var _a = 0, values_1 = values; _a < values_1.length; _a++) {\n var key = values_1[_a];\n delete newObject[key];\n }\n\n return newObject;\n}\n/**\r\n * @credit https://stackoverflow.com/a/2117523\r\n */\n\n\nfunction uuidv4() {\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\n var r = Math.random() * 16 | 0,\n v = c == 'x' ? r : r & 0x3 | 0x8;\n return v.toString(16);\n });\n}\n/**\r\n * Slightly cleaner and smaller UUIDs\r\n */\n\n\nfunction uuid() {\n return uuidv4().replace(/-/g, '');\n}\n\nfunction datePlusMinutes(minutes) {\n if (minutes === void 0) {\n minutes = 30;\n }\n\n return new Date(Date.now() + minutes * 60000);\n}\n\nvar isPositiveNumber = function isPositiveNumber(thing) {\n return typeof thing === 'number' && !isNaN(thing) && thing >= 0;\n};\n\nvar isReactNative = typeof navigator === 'object' && navigator.product === 'ReactNative';\nvar validEnvList = ['production', 'qa', 'test', 'development', 'dev', 'cdn-qa', 'cloud', 'fast', 'cdn2', 'cdn-prod'];\n\nfunction getQueryParam(url, variable) {\n var query = url.split('?')[1] || '';\n var vars = query.split('&');\n\n for (var i = 0; i < vars.length; i++) {\n var pair = vars[i].split('=');\n\n if (decodeURIComponent(pair[0]) === variable) {\n return decodeURIComponent(pair[1]);\n }\n }\n\n return null;\n}\n\nvar urlParser = {\n parse: function parse(url) {\n var parser = document.createElement('a');\n parser.href = url;\n var out = {};\n var props = 'username password host hostname port protocol origin pathname search hash'.split(' ');\n\n for (var i = props.length; i--;) {\n out[props[i]] = parser[props[i]];\n } // IE 11 pathname handling workaround\n // (IE omits preceeding '/', unlike other browsers)\n\n\n if ((out.pathname || out.pathname === '') && typeof out.pathname === 'string' && out.pathname.indexOf('/') !== 0) {\n out.pathname = '/' + out.pathname;\n }\n\n return out;\n }\n};\nvar parse = isReactNative ? function () {\n return {};\n} : typeof window === 'object' ? urlParser.parse : serverOnlyRequire$1('url').parse;\n\nfunction setCookie(name$$1, value, expires) {\n try {\n var expiresString = ''; // TODO: need to know if secure server side\n\n if (expires) {\n expiresString = '; expires=' + expires.toUTCString();\n }\n\n var secure = isBrowser ? location.protocol === 'https:' : true;\n document.cookie = name$$1 + '=' + (value || '') + expiresString + '; path=/' + (\"; domain=\" + getTopLevelDomain(location.hostname)) + (secure ? ';secure ; SameSite=None' : '');\n } catch (err) {\n console.warn('Could not set cookie', err);\n }\n}\n\nfunction getCookie(name$$1) {\n try {\n return decodeURIComponent(document.cookie.replace(new RegExp('(?:(?:^|.*;)\\\\s*' + encodeURIComponent(name$$1).replace(/[\\-\\.\\+\\*]/g, '\\\\$&') + '\\\\s*\\\\=\\\\s*([^;]*).*$)|^.*$'), '$1')) || null;\n } catch (err) {\n console.warn('Could not get cookie', err);\n }\n}\n\nfunction size(object) {\n return Object.keys(object).length;\n}\n\nfunction find(target, callback) {\n var list = target; // Makes sures is always has an positive integer as length.\n\n var length = list.length >>> 0;\n var thisArg = arguments[1];\n\n for (var i = 0; i < length; i++) {\n var element = list[i];\n\n if (callback.call(thisArg, element, i, list)) {\n return element;\n }\n }\n}\n\nvar sessionStorageKey = 'builderSessionId';\nvar localStorageKey = 'builderVisitorId';\nvar isBrowser = typeof window !== 'undefined' && !isReactNative;\nvar isIframe = isBrowser && window.top !== window.self;\n\nfunction BuilderComponent(info) {\n if (info === void 0) {\n info = {};\n }\n\n return Builder.Component(info);\n}\n\nvar Builder =\n/** @class */\nfunction () {\n function Builder(apiKey, request, response, forceNewInstance) {\n var _this = this;\n\n if (apiKey === void 0) {\n apiKey = null;\n }\n\n if (forceNewInstance === void 0) {\n forceNewInstance = false;\n }\n\n this.request = request;\n this.response = response;\n this.authToken = '';\n this.eventsQueue = [];\n this.throttledClearEventsQueue = throttle(function () {\n _this.processEventsQueue(); // Extend the session cookie\n\n\n _this.setCookie(sessionStorageKey, _this.sessionId, datePlusMinutes(30));\n }, 5);\n this.env = 'production';\n this.sessionId = this.getSessionId();\n this.targetContent = true;\n this.contentPerRequest = 1; // TODO: make array or function\n\n this.allowCustomFonts = true;\n this.cookies = null; // TODO: api options object\n\n this.cachebust = false;\n this.overrideParams = '';\n this.noCache = false;\n this.preview = false;\n this.canTrack$ = new BehaviorSubject(!this.browserTrackingDisabled);\n this.apiKey$ = new BehaviorSubject(null);\n this.userAttributesChanged = new BehaviorSubject(null);\n this.editingMode$ = new BehaviorSubject(isIframe); // TODO: decorator to do this stuff with the get/set (how do with typing too? compiler?)\n\n this.editingModel$ = new BehaviorSubject(null);\n this.userAgent = typeof navigator === 'object' && navigator.userAgent || '';\n this.trackingHooks = []; // Set this to control the userId\n // TODO: allow changing it mid session and updating existing data to be associated\n // e.g. for when a user navigates and then logs in\n\n this.visitorId = this.getVisitorId();\n this.autoTrack = !Builder.isBrowser ? false : !this.isDevelopmentEnv && !(Builder.isBrowser && location.search.indexOf('builder.preview=') !== -1);\n this.trackingUserAttributes = {};\n this.blockContentLoading = '';\n this.observersByKey = {};\n this.noEditorUpdates = {};\n this.overrides = {};\n this.getContentQueue = null;\n this.priorContentQueue = null;\n this.testCookiePrefix = 'builder.tests';\n this.cookieQueue = []; // TODO: use a window variable for this perhaps, e.g. bc webcomponents may be loading builder twice\n // with it's and react (use rollup build to fix)\n\n if (Builder.isBrowser && !forceNewInstance && Builder.singletonInstance) {\n return Builder.singletonInstance;\n }\n\n if (this.request && this.response) {\n this.setUserAgent(this.request.headers['user-agent'] || '');\n this.cookies = new Cookies(this.request, this.response);\n }\n\n if (apiKey) {\n this.apiKey = apiKey;\n }\n\n if (isBrowser) {\n this.bindMessageListeners(); // TODO: postmessage to parent the builder info for every package\n // type: 'builder.sdk', data: { name: '@builder.io/react', version: '0.1.23' }\n // (window as any).BUILDER_VERSION = Builder.VERSION;\n // Ensure always one Builder global singleton\n // TODO: some people won't want this, e.g. rakuten\n // Maybe hide this behind symbol or on document, etc\n // if ((window as any).Builder) {\n // Builder.components = (window as any).Builder.components;\n // } else {\n // (window as any).Builder = Builder;\n // }\n }\n\n if (isIframe) {\n this.messageFrameLoaded();\n } // TODO: on destroy clear subscription\n\n\n this.canTrack$.subscribe(function (value) {\n if (value) {\n if (typeof sessionStorage !== 'undefined') {\n try {\n if (!sessionStorage.getItem(sessionStorageKey)) {\n sessionStorage.setItem(sessionStorageKey, _this.sessionId);\n }\n } catch (err) {\n console.debug('Session storage error', err);\n }\n }\n\n if (_this.eventsQueue.length) {\n _this.throttledClearEventsQueue();\n }\n\n if (_this.cookieQueue.length) {\n _this.cookieQueue.forEach(function (item) {\n _this.setCookie(item[0], item[1]);\n });\n\n _this.cookieQueue.length = 0;\n }\n }\n });\n\n if (isBrowser) {\n // TODO: defer so subclass constructor runs and injects location service\n this.setTestsFromUrl(); // TODO: do this on every request send?\n\n this.getOverridesFromQueryString();\n }\n }\n\n Builder.register = function (type, info) {\n // TODO: all must have name and can't conflict?\n var typeList = this.registry[type];\n\n if (!typeList) {\n typeList = this.registry[type] = [];\n }\n\n typeList.push(info);\n\n if (Builder.isBrowser) {\n var message = {\n type: 'builder.register',\n data: {\n type: type,\n info: info\n }\n };\n\n try {\n parent.postMessage(message, '*');\n\n if (parent !== window) {\n window.postMessage(message, '*');\n }\n } catch (err) {\n console.debug('Could not postmessage', err);\n }\n }\n\n this.registryChange.next(this.registry);\n };\n\n Builder.registerEditor = function (info) {\n if (Builder.isBrowser) {\n window.postMessage({\n type: 'builder.registerEditor',\n data: omit(info, 'component')\n }, '*');\n var hostname = location.hostname;\n\n if (!Builder.isTrustedHost(hostname)) {\n console.error('Builder.registerEditor() called in the wrong environment! You cannot load custom editors from your app, they must be loaded through the Builder.io app itself. Follow the readme here for more details: https://github.com/builderio/builder/tree/master/plugins/cloudinary or contact chat us in our Spectrum community for help: https://spectrum.chat/builder');\n }\n }\n\n this.editors.push(info);\n };\n\n Builder.registerPlugin = function (info) {\n this.plugins.push(info);\n };\n\n Builder.registerAction = function (action) {\n this.actions.push(action);\n };\n\n Builder.registerTrustedHost = function (host) {\n this.trustedHosts.push(host);\n };\n\n Builder.isTrustedHost = function (hostname) {\n return this.trustedHosts.findIndex(function (trustedHost) {\n return trustedHost === hostname || hostname.endsWith(\".\" + trustedHost);\n }) > -1;\n };\n\n Builder.runAction = function (action) {\n // TODO\n var actionObject = typeof action === 'string' ? find(this.actions, function (item) {\n return item.name === action;\n }) : action;\n\n if (!actionObject) {\n throw new Error(\"Action not found: \" + action);\n }\n };\n\n Builder.fields = function (name$$1, fields) {\n var _a;\n\n (_a = window.parent) === null || _a === void 0 ? void 0 : _a.postMessage({\n type: 'builder.fields',\n data: {\n name: name$$1,\n fields: fields\n }\n }, '*');\n };\n\n Builder.set = function (settings) {\n if (Builder.isBrowser) {\n // TODO: merge\n Object.assign(this.settings, settings);\n var message = {\n type: 'builder.settingsChange',\n data: this.settings\n };\n parent.postMessage(message, '*');\n }\n\n this.settingsChange.next(this.settings);\n };\n\n Builder.import = function (packageName) {\n if (!Builder.isBrowser) {\n // TODO: server side support *maybe*\n console.warn('Builder.import used on the server - this should only be used in the browser');\n return;\n }\n\n var System = window.System;\n\n if (!System) {\n console.warn('System.js not available. Please include System.js when using Builder.import');\n return;\n }\n\n return System.import(\"https://cdn.builder.io/systemjs/\" + packageName);\n };\n\n Object.defineProperty(Builder, \"editingPage\", {\n // useCdnApi = false;\n get: function get() {\n return this._editingPage;\n },\n set: function set(editingPage) {\n this._editingPage = editingPage;\n\n if (isBrowser && isIframe) {\n if (editingPage) {\n document.body.classList.add('builder-editing-page');\n } else {\n document.body.classList.remove('builder-editing-page');\n }\n }\n },\n enumerable: true,\n configurable: true\n });\n\n Builder.prepareComponentSpecToSend = function (spec) {\n return __assign(__assign(__assign({}, spec), spec.inputs && {\n inputs: spec.inputs.map(function (input) {\n var _a; // TODO: do for nexted fields too\n // TODO: probably just convert all functions, not just\n // TODO: put this in input hooks: { onChange: ..., showIf: ... }\n\n\n var keysToConvertFnToString = ['onChange', 'showIf'];\n\n for (var _i = 0, keysToConvertFnToString_1 = keysToConvertFnToString; _i < keysToConvertFnToString_1.length; _i++) {\n var key = keysToConvertFnToString_1[_i];\n\n if (input[key] && typeof input[key] === 'function') {\n var fn = input[key];\n input = __assign(__assign({}, input), (_a = {}, _a[key] = \"return (\" + fn.toString() + \").apply(this, arguments)\", _a));\n }\n }\n\n return input;\n })\n }), {\n hooks: Object.keys(spec.hooks || {}).reduce(function (memo, key) {\n var value = spec.hooks && spec.hooks[key];\n\n if (!value) {\n return memo;\n }\n\n if (typeof value === 'string') {\n memo[key] = value;\n } else {\n memo[key] = \"return (\" + value.toString() + \").apply(this, arguments)\";\n }\n\n return memo;\n }, {}),\n class: undefined\n });\n };\n\n Builder.registerBlock = function (component, options) {\n this.registerComponent(component, options);\n };\n\n Builder.registerComponent = function (component, options) {\n var _a;\n\n var spec = __assign(__assign({\n class: component\n }, component.builderOptions), options);\n\n this.addComponent(spec);\n\n if (isBrowser) {\n var sendSpec = this.prepareComponentSpecToSend(spec);\n (_a = window.parent) === null || _a === void 0 ? void 0 : _a.postMessage({\n type: 'builder.registerComponent',\n data: sendSpec\n }, '*');\n }\n };\n\n Builder.addComponent = function (component) {\n var current = find(this.components, function (item) {\n return item.name === component.name;\n });\n\n if (current) {\n // FIXME: why does sometimes we get an extra post without class - probably\n // from postMessage handler wrong in some place\n if (current.class && !component.class) {\n return;\n }\n\n this.components.splice(this.components.indexOf(current), 1, component);\n } else {\n this.components.push(component);\n }\n }; // TODO: style guide, etc off this system as well?\n\n\n Builder.component = function (info) {\n var _this = this;\n\n if (info === void 0) {\n info = {};\n }\n\n return function (component) {\n var _a;\n\n var spec = __assign(__assign({}, info), {\n class: component\n });\n\n if (!spec.name) {\n spec.name = component.name;\n }\n\n _this.addComponent(spec);\n\n var sendSpec = _this.prepareComponentSpecToSend(spec); // TODO: serialize component name and inputs\n\n\n if (isBrowser) {\n (_a = window.parent) === null || _a === void 0 ? void 0 : _a.postMessage({\n type: 'builder.registerComponent',\n data: sendSpec\n }, '*');\n }\n\n return component;\n };\n };\n\n Object.defineProperty(Builder, \"Component\", {\n get: function get() {\n return this.component;\n },\n enumerable: true,\n configurable: true\n });\n\n Builder.prototype.processEventsQueue = function () {\n if (!this.eventsQueue.length) {\n return;\n }\n\n var events = this.eventsQueue;\n this.eventsQueue = [];\n\n var fullUserAttributes = __assign(__assign({}, Builder.overrideUserAttributes), this.trackingUserAttributes);\n\n for (var _i = 0, events_1 = events; _i < events_1.length; _i++) {\n var event_1 = events_1[_i];\n\n if (!event_1.data.metadata) {\n event_1.data.metadata = {};\n }\n\n if (!event_1.data.metadata.user) {\n event_1.data.metadata.user = {};\n }\n\n Object.assign(event_1.data.metadata.user, fullUserAttributes, event_1.data.metadata.user);\n }\n\n var host = this.host;\n fetch(host + \"/api/v1/track\", {\n method: 'POST',\n body: JSON.stringify({\n events: events\n }),\n headers: {\n 'content-type': 'application/json'\n },\n mode: 'cors'\n }).catch(function () {// Not the end of the world\n });\n };\n\n Object.defineProperty(Builder.prototype, \"browserTrackingDisabled\", {\n get: function get() {\n return Boolean(Builder.isBrowser && window.builderNoTrack);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Builder.prototype, \"canTrack\", {\n get: function get() {\n return this.canTrack$.value;\n },\n set: function set(canTrack) {\n if (this.canTrack !== canTrack) {\n this.canTrack$.next(canTrack);\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Builder.prototype, \"editingMode\", {\n get: function get() {\n return this.editingMode$.value;\n },\n set: function set(value) {\n if (value !== this.editingMode) {\n this.editingMode$.next(value);\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Builder.prototype, \"editingModel\", {\n get: function get() {\n return this.editingModel$.value;\n },\n set: function set(value) {\n if (value !== this.editingModel) {\n this.editingModel$.next(value);\n }\n },\n enumerable: true,\n configurable: true\n });\n\n Builder.prototype.findParentElement = function (target, callback, checkElement) {\n if (checkElement === void 0) {\n checkElement = true;\n }\n\n if (!(target instanceof HTMLElement)) {\n return null;\n }\n\n var parent = checkElement ? target : target.parentElement;\n\n do {\n if (!parent) {\n return null;\n }\n\n var matches = callback(parent);\n\n if (matches) {\n return parent;\n }\n } while (parent = parent.parentElement);\n\n return null;\n };\n\n Builder.prototype.findBuilderParent = function (target) {\n return this.findParentElement(target, function (el) {\n var id = el.getAttribute('builder-id') || el.id;\n return Boolean(id && id.indexOf('builder-') === 0);\n });\n };\n\n Builder.prototype.setUserAgent = function (userAgent) {\n this.userAgent = userAgent || '';\n };\n /**\r\n * Set a hook to modify events being tracked from builder, such as impressions and clicks\r\n *\r\n * For example, to track the model ID of each event associated with content for querying\r\n * by mode, you can do\r\n *\r\n * builder.setTrackingHook((event, context) => {\r\n * if (context.content) {\r\n * event.data.metadata.modelId = context.content.modelId\r\n * }\r\n * })\r\n */\n\n\n Builder.prototype.setTrackingHook = function (hook) {\n this.trackingHooks.push(hook);\n };\n\n Builder.prototype.track = function (eventName, properties, context) {\n if (properties === void 0) {\n properties = {};\n } // TODO: queue up track requests and fire them off when canTrack set to true - otherwise may get lots of clicks with no impressions\n\n\n if (isIframe || !isBrowser || Builder.isPreviewing) {\n return;\n }\n\n var eventData = JSON.parse(JSON.stringify({\n type: eventName,\n data: __assign(__assign({}, omit(properties, 'meta')), {\n metadata: __assign(__assign({\n sdkVersion: Builder.VERSION,\n url: location.href\n }, properties.meta), properties.metadata),\n ownerId: this.apiKey,\n userAttributes: this.getUserAttributes(),\n sessionId: this.sessionId,\n visitorId: this.visitorId\n })\n }));\n\n for (var _i = 0, _a = this.trackingHooks; _i < _a.length; _i++) {\n var hook = _a[_i];\n var returnValue = hook(eventData, context || {});\n\n if (returnValue) {\n eventData = returnValue;\n }\n } // batch events\n\n\n this.eventsQueue.push(eventData);\n\n if (this.canTrack) {\n this.throttledClearEventsQueue();\n }\n };\n\n Builder.prototype.getSessionId = function () {\n var sessionId = null;\n\n try {\n if (Builder.isBrowser && typeof sessionStorage !== 'undefined') {\n sessionId = this.getCookie(sessionStorageKey);\n }\n } catch (err) {\n console.debug('Session storage error', err); // It's ok\n }\n\n if (!sessionId) {\n sessionId = uuid();\n } // Give the app a second to start up and set canTrack to false if needed\n\n\n if (Builder.isBrowser) {\n this.setCookie(sessionStorageKey, sessionId, datePlusMinutes(30));\n }\n\n return sessionId;\n };\n\n Builder.prototype.getVisitorId = function () {\n var _this = this;\n\n if (this.visitorId) {\n return this.visitorId;\n }\n\n var visitorId = null;\n\n try {\n if (Builder.isBrowser && typeof localStorage !== 'undefined') {\n // TODO: cookie instead?\n visitorId = localStorage.getItem(localStorageKey);\n }\n } catch (err) {\n console.debug('Local storage error', err); // It's ok\n }\n\n if (!visitorId) {\n visitorId = uuid();\n }\n\n this.visitorId = visitorId; // Give the app a second to start up and set canTrack to false if needed\n\n if (Builder.isBrowser) {\n setTimeout(function () {\n try {\n if (_this.canTrack && typeof localStorage !== 'undefined' && visitorId) {\n localStorage.setItem(localStorageKey, visitorId);\n }\n } catch (err) {\n console.debug('Session storage error', err);\n }\n });\n }\n\n return visitorId;\n };\n\n Builder.prototype.trackImpression = function (contentId, variationId, properties, context) {\n if (isIframe || !isBrowser || Builder.isPreviewing) {\n return;\n } // TODO: use this.track method\n\n\n this.track('impression', {\n contentId: contentId,\n variationId: variationId !== contentId ? variationId : undefined,\n metadata: properties\n }, context);\n };\n\n Builder.prototype.trackConversion = function (amount, contentId, variationId, customProperties, context) {\n if (isIframe || !isBrowser || Builder.isPreviewing) {\n return;\n }\n\n var meta = typeof contentId === 'object' ? contentId : customProperties;\n var useContentId = typeof contentId === 'string' ? contentId : undefined;\n this.track('conversion', {\n amount: amount,\n variationId: variationId,\n meta: meta,\n contentId: useContentId\n }, context);\n };\n\n Object.defineProperty(Builder.prototype, \"isDevelopmentEnv\", {\n // TODO: set this for QA\n get: function get() {\n // Automatic determining of development environment\n return Builder.isIframe || Builder.isBrowser && (location.hostname === 'localhost' || location.port !== '') || this.env !== 'production';\n },\n enumerable: true,\n configurable: true\n });\n\n Builder.prototype.trackInteraction = function (contentId, variationId, alreadyTrackedOne, event, context) {\n if (alreadyTrackedOne === void 0) {\n alreadyTrackedOne = false;\n }\n\n if (isIframe || !isBrowser || Builder.isPreviewing) {\n return;\n }\n\n var target = event && event.target;\n var targetBuilderElement = target && this.findBuilderParent(target);\n\n function round(num) {\n return Math.round(num * 1000) / 1000;\n }\n\n var metadata = {};\n\n if (event) {\n var clientX = event.clientX,\n clientY = event.clientY;\n\n if (target) {\n var targetRect = target.getBoundingClientRect();\n var xOffset = clientX - targetRect.left;\n var yOffset = clientY - targetRect.top;\n var xRatio = round(xOffset / targetRect.width);\n var yRatio = round(yOffset / targetRect.height);\n metadata.targetOffset = {\n x: xRatio,\n y: yRatio\n };\n }\n\n if (targetBuilderElement) {\n var targetRect = targetBuilderElement.getBoundingClientRect();\n var xOffset = clientX - targetRect.left;\n var yOffset = clientY - targetRect.top;\n var xRatio = round(xOffset / targetRect.width);\n var yRatio = round(yOffset / targetRect.height);\n metadata.builderTargetOffset = {\n x: xRatio,\n y: yRatio\n };\n }\n }\n\n var builderId = targetBuilderElement && (targetBuilderElement.getAttribute('builder-id') || targetBuilderElement.id);\n\n if (builderId && targetBuilderElement) {\n metadata.builderElementIndex = [].slice.call(document.getElementsByClassName(builderId)).indexOf(targetBuilderElement);\n }\n\n this.track('click', {\n contentId: contentId,\n metadata: metadata,\n variationId: variationId !== contentId ? variationId : undefined,\n unique: !alreadyTrackedOne,\n targetBuilderElement: builderId || undefined\n }, context);\n };\n\n Builder.prototype.component = function (info) {\n if (info === void 0) {\n info = {};\n }\n\n return Builder.component(info);\n };\n\n Object.defineProperty(Builder.prototype, \"apiKey\", {\n get: function get() {\n return this.apiKey$.value;\n },\n set: function set(key) {\n this.apiKey$.next(key);\n },\n enumerable: true,\n configurable: true\n });\n\n Builder.prototype.modifySearch = function (search) {\n return search.replace(/(^|&|\\?)(builder_.*?)=/gi, function (_match, group1, group2) {\n return group1 + group2.replace(/_/g, '.') + '=';\n });\n };\n\n Builder.prototype.setTestsFromUrl = function () {\n var search = this.getLocation().search;\n var params = QueryString.parseDeep(this.modifySearch(search || '').substr(1));\n var tests = params.builder && params.builder.tests;\n\n if (tests && typeof tests === 'object') {\n for (var key in tests) {\n if (tests.hasOwnProperty(key)) {\n this.setTestCookie(key, tests[key]);\n }\n }\n }\n };\n\n Builder.prototype.resetOverrides = function () {\n // Ugly - pass down instances per request instead using react context\n // or use builder.get('foo', { req, res }) in react...........\n Builder.overrideUserAttributes = {};\n this.cachebust = false;\n this.noCache = false;\n this.preview = false;\n this.editingModel = null;\n this.overrides = {};\n this.env = 'production';\n this.userAgent = '';\n this.request = undefined;\n this.response = undefined;\n };\n\n Builder.prototype.getOverridesFromQueryString = function () {\n var location = this.getLocation();\n var params = QueryString.parseDeep(this.modifySearch(location.search || '').substr(1));\n var builder = params.builder;\n\n if (builder) {\n var userAttributes = builder.userAttributes,\n overrides = builder.overrides,\n env = builder.env,\n host = builder.host,\n api = builder.api,\n cachebust = builder.cachebust,\n noCache = builder.noCache,\n preview = builder.preview,\n editing = builder.editing,\n frameEditing = builder.frameEditing,\n overrideParams = builder.params;\n\n if (userAttributes) {\n this.setUserAttributes(userAttributes);\n }\n\n if (overrides) {\n this.overrides = overrides;\n }\n\n if (validEnvList.indexOf(env || api) > -1) {\n this.env = env || api;\n }\n\n if (Builder.isEditing) {\n var editingModel = frameEditing || editing || preview;\n\n if (editingModel && editingModel !== 'true') {\n this.editingModel = editingModel;\n }\n }\n\n if (cachebust) {\n this.cachebust = true;\n }\n\n if (noCache) {\n this.noCache = true;\n }\n\n if (preview) {\n this.preview = true;\n }\n\n if (params) {\n this.overrideParams = overrideParams;\n }\n }\n };\n\n Builder.prototype.messageFrameLoaded = function () {\n var _a;\n\n (_a = window.parent) === null || _a === void 0 ? void 0 : _a.postMessage({\n type: 'builder.loaded',\n data: {\n value: true\n }\n }, '*');\n };\n\n Builder.prototype.bindMessageListeners = function () {\n var _this = this;\n\n if (isBrowser) {\n addEventListener('message', function (event) {\n var _a, _b, _c, _d, _e;\n\n var url = parse(event.origin);\n var isRestricted = ['builder.register', 'builder.registerComponent'].indexOf((_a = event.data) === null || _a === void 0 ? void 0 : _a.type) === -1;\n var isTrusted = url.hostname && Builder.isTrustedHost(url.hostname);\n\n if (isRestricted && !isTrusted) {\n return;\n }\n\n var data = event.data;\n\n if (data) {\n switch (data.type) {\n case 'builder.ping':\n {\n (_b = window.parent) === null || _b === void 0 ? void 0 : _b.postMessage({\n type: 'builder.pong',\n data: {}\n }, '*');\n break;\n }\n\n case 'builder.register':\n {\n // TODO: possibly do this for all...\n if (event.source === window) {\n break;\n }\n\n var options = data.data;\n\n if (!options) {\n break;\n }\n\n var type = options.type,\n info = options.info; // TODO: all must have name and can't conflict?\n\n var typeList = Builder.registry[type];\n\n if (!typeList) {\n typeList = Builder.registry[type] = [];\n }\n\n typeList.push(info);\n Builder.registryChange.next(Builder.registry);\n break;\n }\n\n case 'builder.settingsChange':\n {\n // TODO: possibly do this for all...\n if (event.source === window) {\n break;\n }\n\n var settings = data.data;\n\n if (!settings) {\n break;\n }\n\n Object.assign(Builder.settings, settings);\n Builder.settingsChange.next(Builder.settings);\n break;\n }\n\n case 'builder.registerEditor':\n {\n // TODO: possibly do this for all...\n if (event.source === window) {\n break;\n }\n\n var info_1 = data.data;\n\n if (!info_1) {\n break;\n }\n\n var hasComponent_1 = !!info_1.component;\n Builder.editors.every(function (thisInfo, index) {\n if (info_1.name === thisInfo.name) {\n if (thisInfo.component && !hasComponent_1) {\n return false;\n } else {\n Builder.editors[index] = thisInfo;\n }\n\n return false;\n }\n\n return true;\n });\n break;\n }\n\n case 'builder.triggerAnimation':\n {\n Builder.animator.triggerAnimation(data.data);\n break;\n }\n\n case 'builder.contentUpdate':\n var key = data.data.key || data.data.alias || data.data.entry || data.data.modelName;\n var contentData = data.data.data; // hmmm...\n\n var observer = _this.observersByKey[key];\n\n if (observer && !_this.noEditorUpdates[key]) {\n observer.next([contentData]);\n }\n\n break;\n\n case 'builder.getComponents':\n (_c = window.parent) === null || _c === void 0 ? void 0 : _c.postMessage({\n type: 'builder.components',\n data: Builder.components.map(function (item) {\n return Builder.prepareComponentSpecToSend(item);\n })\n }, '*');\n break;\n\n case 'builder.editingModel':\n _this.editingModel = data.data.model;\n break;\n\n case 'builder.registerComponent':\n var componentData = data.data;\n Builder.addComponent(componentData);\n break;\n\n case 'builder.blockContentLoading':\n if (typeof data.data.model === 'string') {\n _this.blockContentLoading = data.data.model;\n }\n\n break;\n\n case 'builder.editingMode':\n var editingMode = data.data;\n\n if (editingMode) {\n _this.editingMode = true;\n document.body.classList.add('builder-editing');\n } else {\n _this.editingMode = false;\n document.body.classList.remove('builder-editing');\n }\n\n break;\n\n case 'builder.editingPageMode':\n var editingPageMode = data.data;\n Builder.editingPage = editingPageMode;\n break;\n\n case 'builder.overrideUserAttributes':\n var userAttributes = data.data;\n assign(Builder.overrideUserAttributes, userAttributes);\n\n _this.flushGetContentQueue(true); // TODO: refetch too\n\n\n break;\n\n case 'builder.overrideTestGroup':\n var _f = data.data,\n variationId = _f.variationId,\n contentId = _f.contentId;\n\n if (variationId && contentId) {\n _this.setTestCookie(contentId, variationId);\n\n _this.flushGetContentQueue(true);\n }\n\n break;\n\n case 'builder.evaluate':\n {\n var text = data.data.text;\n var args = data.data.arguments || [];\n var id_1 = data.data.id; // tslint:disable-next-line:no-function-constructor-with-string-args\n\n var fn = new Function(text);\n var result = void 0;\n var error = null;\n\n try {\n result = fn.apply(_this, args);\n } catch (err) {\n error = err;\n }\n\n if (error) {\n (_d = window.parent) === null || _d === void 0 ? void 0 : _d.postMessage({\n type: 'builder.evaluateError',\n data: {\n id: id_1,\n error: error.message\n }\n }, '*');\n } else {\n if (result && typeof result.then === 'function') {\n result.then(function (finalResult) {\n var _a;\n\n (_a = window.parent) === null || _a === void 0 ? void 0 : _a.postMessage({\n type: 'builder.evaluateResult',\n data: {\n id: id_1,\n result: finalResult\n }\n }, '*');\n }).catch(console.error);\n } else {\n (_e = window.parent) === null || _e === void 0 ? void 0 : _e.postMessage({\n type: 'builder.evaluateResult',\n data: {\n result: result,\n id: id_1\n }\n }, '*');\n }\n }\n\n break;\n }\n }\n }\n });\n }\n };\n\n Object.defineProperty(Builder.prototype, \"defaultCanTrack\", {\n get: function get() {\n return Boolean(Builder.isBrowser && navigator.userAgent.trim() && !navigator.userAgent.match(/bot|crawler|spider|robot|crawling|prerender|google|baidu|bing|msn|duckduckbot|teoma|slurp|yandex|phantom|headless|selenium|puppeteer/i) && !this.browserTrackingDisabled);\n },\n enumerable: true,\n configurable: true\n });\n\n Builder.prototype.init = function (apiKey, canTrack, req, res) {\n if (canTrack === void 0) {\n canTrack = this.defaultCanTrack;\n }\n\n if (req) {\n this.request = req;\n }\n\n if (res) {\n this.response = res;\n }\n\n this.canTrack = canTrack;\n this.apiKey = apiKey;\n return this;\n };\n\n Object.defineProperty(Builder.prototype, \"previewingModel\", {\n get: function get() {\n var search = this.getLocation().search;\n var params = QueryString.parse((search || '').substr(1));\n return params['builder.preview'];\n },\n enumerable: true,\n configurable: true\n }); // TODO: allow adding location object as property and/or in constructor\n\n Builder.prototype.getLocation = function () {\n var parsedLocation = {}; // in ssr mode\n\n if (this.request) {\n parsedLocation = parse(this.request.url);\n } else if (typeof location === 'object') {\n // in the browser\n parsedLocation = parse(location.href);\n } // IE11 bug with parsed path being empty string\n // causes issues with our user targeting\n\n\n if (parsedLocation.pathname === '') {\n parsedLocation.pathname = '/';\n }\n\n return parsedLocation;\n };\n\n Builder.prototype.getUserAttributes = function (userAgent) {\n if (userAgent === void 0) {\n userAgent = this.userAgent || '';\n }\n\n var isMobile = {\n Android: function Android() {\n return userAgent.match(/Android/i);\n },\n BlackBerry: function BlackBerry() {\n return userAgent.match(/BlackBerry/i);\n },\n iOS: function iOS() {\n return userAgent.match(/iPhone|iPod/i);\n },\n Opera: function Opera() {\n return userAgent.match(/Opera Mini/i);\n },\n Windows: function Windows() {\n return userAgent.match(/IEMobile/i) || userAgent.match(/WPDesktop/i);\n },\n any: function any() {\n return isMobile.Android() || isMobile.BlackBerry() || isMobile.iOS() || isMobile.Opera() || isMobile.Windows();\n }\n };\n var isTablet = userAgent.match(/Tablet|iPad/i);\n var url = this.getLocation();\n return __assign({\n urlPath: url.pathname,\n host: url.host || url.hostname,\n // TODO: maybe an option to choose to target off of mobile/tablet/desktop or just mobile/desktop\n device: isTablet ? 'tablet' : isMobile.any() ? 'mobile' : 'desktop'\n }, Builder.overrideUserAttributes);\n };\n\n Builder.prototype.setUserAttributes = function (options) {\n assign(Builder.overrideUserAttributes, options);\n this.userAttributesChanged.next(options);\n };\n /**\r\n * Set user attributes just for tracking purposes.\r\n *\r\n * Do this so properties exist on event objects for querying insights, but\r\n * won't affect targeting\r\n *\r\n * Use this when you want to track properties but don't need to target off\r\n * of them to optimize cache efficiency\r\n */\n\n\n Builder.prototype.setTrackingUserAttributes = function (attributes) {\n assign(this.trackingUserAttributes, attributes);\n };\n\n Builder.prototype.get = function (modelName, options) {\n if (options === void 0) {\n options = {};\n }\n\n var instance = this;\n\n if (!Builder.isBrowser) {\n instance = new Builder(options.apiKey || this.apiKey, options.req, options.res);\n instance.setUserAttributes(this.getUserAttributes());\n } else {\n if (options.apiKey && !this.apiKey) {\n this.apiKey = options.apiKey;\n }\n }\n\n return instance.queueGetContent(modelName, options).map(\n /* map( */\n function (matches) {\n var match = matches && matches[0];\n\n if (Builder.isStatic) {\n return match;\n }\n\n var matchData = match && match.data;\n\n if (!matchData) {\n return null;\n }\n\n if (typeof matchData.blocksString !== 'undefined') {\n matchData.blocks = JSON.parse(matchData.blocksString);\n delete matchData.blocksString;\n }\n\n return {\n // TODO: add ab test info here and other high level stuff\n data: matchData,\n id: match.id,\n variationId: match.testVariationId || match.variationId || null,\n testVariationId: match.testVariationId || match.variationId || null,\n testVariationName: match.testVariationName || null,\n lastUpdated: match.lastUpdated || null\n };\n }); // );\n }; // TODO: entry id in options\n\n\n Builder.prototype.queueGetContent = function (modelName, options) {\n var _this = this;\n\n if (options === void 0) {\n options = {};\n } // TODO: if query do modelName + query\n\n\n var key = options.key || options.alias || // TODO: SDKs only pass entry key when given to them, and never when editing...\n // options.entry ||\n // TODO: this is ugly - instead of multiple of same model with different options are sent\n // say requires key/alias. Or if not perhaps make a reliable hash of the options and use that.\n // TODO: store last user state on last request and if user attributes different now\n // give a warning that need to use keys to request new contente\n // (options &&\n // Object.keys(options).filter(key => key !== 'model').length &&\n // JSON.stringify({ model: modelName, ...options, initialContent: undefined })) ||\n modelName;\n var isEditingThisModel = this.editingModel === modelName; // TODO: include params in this key........\n\n var currentObservable = this.observersByKey[key]; // if (options.query && options.query._id) {\n // this.flushGetContentQueue([options])\n // }\n\n if (this.apiKey === 'DEMO' && !this.overrides[key] && !options.initialContent) {\n options.initialContent = [];\n }\n\n var initialContent = options.initialContent; // TODO: refresh option in options\n\n if (currentObservable && (!currentObservable.value || options.cache)) {\n // TODO: test if this ran, otherwise on 404 some observers may never be called...\n if (currentObservable.value) {\n nextTick(function () {\n // TODO: return a new observable and only that one fires subscribers, don't refire for existing ones\n currentObservable.next(currentObservable.value);\n });\n }\n\n return currentObservable;\n }\n\n if (isEditingThisModel) {\n if (Builder.isBrowser) {\n parent.postMessage({\n type: 'builder.updateContent',\n data: {\n options: options\n }\n }, '*');\n }\n }\n\n if (!initialContent\n /* || isEditingThisModel */\n ) {\n if (!this.getContentQueue) {\n this.getContentQueue = [];\n }\n\n this.getContentQueue.push(__assign(__assign({}, options), {\n model: modelName,\n key: key\n }));\n\n if (this.getContentQueue && this.getContentQueue.length >= this.contentPerRequest) {\n var queue_1 = this.getContentQueue.slice();\n this.getContentQueue = [];\n nextTick(function () {\n _this.flushGetContentQueue(false, queue_1);\n });\n } else {\n nextTick(function () {\n _this.flushGetContentQueue();\n });\n }\n }\n\n var observable = new BehaviorSubject(null);\n this.observersByKey[key] = observable;\n\n if (options.noEditorUpdates) {\n this.noEditorUpdates[key] = true;\n }\n\n if (initialContent) {\n nextTick(function () {\n // TODO: need to testModify this I think...?\n observable.next(initialContent);\n });\n }\n\n return observable;\n };\n\n Builder.prototype.requestUrl = function (url) {\n if (Builder.isBrowser) {\n // TODO: send auth header if builder.authToken\n return fetch(url, this.authToken ? {\n headers: {\n Authorization: \"Bearer \" + this.authToken\n }\n } : undefined).then(function (res) {\n return res.json();\n });\n }\n\n return new Promise(function (resolve, reject) {\n var module = url.indexOf('http:') === 0 ? serverOnlyRequire$1('http') : serverOnlyRequire$1('https');\n module.get(url, function (resp) {\n var data = ''; // A chunk of data has been recieved.\n\n resp.on('data', function (chunk) {\n data += chunk;\n }); // The whole response has been received. Print out the result.\n\n resp.on('end', function () {\n try {\n resolve(JSON.parse(data));\n } catch (err) {\n reject(err);\n }\n });\n }).on('error', function (error) {\n reject(error);\n });\n });\n };\n\n Object.defineProperty(Builder.prototype, \"host\", {\n get: function get() {\n switch (this.env) {\n case 'qa':\n return 'https://qa.builder.io';\n\n case 'test':\n return 'https://builder-io-test.web.app';\n\n case 'fast':\n return 'https://fast.builder.io';\n\n case 'cloud':\n return 'https://cloud.builder.io';\n\n case 'cdn2':\n return 'https://cdn2.builder.io';\n\n case 'cdn-qa':\n return 'https://cdn-qa.builder.io';\n\n case 'development':\n case 'dev':\n return 'http://localhost:5000';\n\n case 'cdn-prod':\n return 'https://cdn.builder.io';\n\n default:\n return Builder.overrideHost || 'https://cdn.builder.io';\n }\n },\n enumerable: true,\n configurable: true\n });\n\n Builder.prototype.flushGetContentQueue = function (usePastQueue, useQueue) {\n var _this = this;\n\n if (usePastQueue === void 0) {\n usePastQueue = false;\n }\n\n if (!this.apiKey) {\n throw new Error(\"Fetching content failed, expected apiKey to be defined instead got: \" + this.apiKey);\n }\n\n if (!usePastQueue && !this.getContentQueue) {\n return;\n }\n\n var queue = useQueue || (usePastQueue ? this.priorContentQueue : this.getContentQueue) || []; // TODO: do this on every request send?\n\n this.getOverridesFromQueryString();\n\n var queryParams = __assign({\n // TODO: way to force a request to be in a separate queue. or just lower queue limit to be 1 by default\n omit: queue[0].omit || 'meta.componentsUsed',\n apiKey: this.apiKey\n }, queue[0].options);\n\n if (queue[0].fields) {\n queryParams.fields = queue[0].fields;\n }\n\n if (queue[0].format) {\n queryParams.format = queue[0].format;\n }\n\n var pageQueryParams = typeof location !== 'undefined' ? QueryString.parseDeep(location.search.substr(1)) : undefined || {};\n var userAttributes = // FIXME: HACK: only checks first in queue for user attributes overrides, should check all\n // TODO: merge user attributes provided here with defaults and current user attiributes (?)\n queue && queue[0].userAttributes ? queue[0].userAttributes : this.targetContent ? this.getUserAttributes() : {\n urlPath: this.getLocation().pathname\n };\n var fullUrlQueueItem = queue.find(function (item) {\n return !!item.includeUrl;\n });\n\n if (fullUrlQueueItem) {\n var location_1 = this.getLocation();\n\n if (location_1.origin) {\n queryParams.url = \"\" + location_1.origin + location_1.pathname + location_1.search;\n }\n }\n\n var urlQueueItem = useQueue === null || useQueue === void 0 ? void 0 : useQueue.find(function (item) {\n return item.url;\n });\n\n if (urlQueueItem === null || urlQueueItem === void 0 ? void 0 : urlQueueItem.url) {\n userAttributes.urlPath = urlQueueItem.url.split('?')[0];\n } // TODO: merge in the attribute from query string ones\n // TODO: make this an option per component/request\n\n\n queryParams.userAttributes = userAttributes;\n\n if (!usePastQueue && !useQueue) {\n this.priorContentQueue = queue;\n this.getContentQueue = null;\n }\n\n var cachebust = this.cachebust || isIframe || pageQueryParams.cachebust || pageQueryParams['builder.cachebust'];\n\n if (cachebust || this.env !== 'production') {\n queryParams.cachebust = true;\n }\n\n if (Builder.isEditing) {\n queryParams.isEditing = true;\n }\n\n if (this.noCache || this.env !== 'production') {\n queryParams.noCache = true;\n }\n\n if (size(this.overrides)) {\n for (var key in this.overrides) {\n if (this.overrides.hasOwnProperty(key)) {\n queryParams[\"overrides.\" + key] = this.overrides[key];\n }\n }\n }\n\n if (!Builder.isReact) {\n // TODO: remove me once v1 page editors converted to v2\n // queryParams.extractCss = true;\n queryParams.prerender = true;\n }\n\n for (var _i = 0, queue_2 = queue; _i < queue_2.length; _i++) {\n var options = queue_2[_i];\n\n if (options.format) {\n queryParams.format = options.format;\n } // TODO: remove me and make permodel\n\n\n if (options.static) {\n queryParams.static = options.static;\n }\n\n if (options.cachebust) {\n queryParams.cachebust = options.cachebust;\n }\n\n if (isPositiveNumber(options.cacheSeconds)) {\n queryParams.cacheSeconds = options.cacheSeconds;\n }\n\n if (isPositiveNumber(options.staleCacheSeconds)) {\n queryParams.staleCacheSeconds = options.staleCacheSeconds;\n }\n\n var properties = ['prerender', 'extractCss', 'limit', 'offset', 'query', 'preview', 'model', 'entry', 'rev', 'static'];\n\n for (var _a = 0, properties_1 = properties; _a < properties_1.length; _a++) {\n var key = properties_1[_a];\n var value = options[key];\n\n if (value !== undefined) {\n queryParams.options = queryParams.options || {};\n queryParams.options[options.key] = queryParams.options[options.key] || {};\n queryParams.options[options.key][key] = JSON.stringify(value);\n }\n }\n }\n\n if (this.preview) {\n queryParams.preview = 'true';\n }\n\n var hasParams = Object.keys(queryParams).length > 0; // TODO: option to force dev or qa api here\n\n var host = this.host;\n var keyNames = queue.map(function (item) {\n return encodeURIComponent(item.key);\n }).join(',');\n\n if (this.overrideParams) {\n var params = omit(QueryString.parse(this.overrideParams), 'apiKey');\n assign(queryParams, params);\n }\n\n var queryStr = QueryString.stringifyDeep(queryParams);\n var format = queryParams.format;\n var promise = this.requestUrl(host + \"/api/v1/\" + (format === 'solid' || format === 'react' ? 'codegen' : 'query') + \"/\" + this.apiKey + \"/\" + keyNames + (queryParams && hasParams ? \"?\" + queryStr : '')).then(function (result) {\n for (var _i = 0, queue_3 = queue; _i < queue_3.length; _i++) {\n var options = queue_3[_i];\n var keyName = options.key;\n\n if (options.model === _this.blockContentLoading && !options.noEditorUpdates) {\n continue;\n }\n\n var isEditingThisModel = _this.editingModel === options.model;\n\n if (isEditingThisModel && Builder.isEditing) {\n parent.postMessage({\n type: 'builder.updateContent',\n data: {\n options: options\n }\n }, '*'); // return;\n }\n\n var observer = _this.observersByKey[keyName];\n\n if (!observer) {\n return;\n }\n\n var data = result[keyName];\n var sorted = data; // sortBy(data, item => item.priority);\n\n if (data) {\n var testModifiedResults = Builder.isServer ? sorted : _this.processResultsForTests(sorted);\n observer.next(testModifiedResults);\n } else {\n var search = _this.getLocation().search;\n\n if ((search || '').includes('builder.preview=' + options.model)) {\n var previewData = {\n id: 'preview',\n name: 'Preview',\n data: {}\n };\n observer.next([previewData]);\n }\n\n observer.next([]);\n }\n }\n }, function (err) {\n for (var _i = 0, queue_4 = queue; _i < queue_4.length; _i++) {\n var options = queue_4[_i];\n var observer = _this.observersByKey[options.key];\n\n if (!observer) {\n return;\n }\n\n observer.error(err);\n }\n });\n return promise;\n };\n\n Builder.prototype.processResultsForTests = function (results) {\n var _this = this;\n\n var _a;\n\n var mappedResults = results.map(function (item) {\n if (!item.variations) {\n return item;\n }\n\n var cookieValue = _this.getTestCookie(item.id);\n\n var cookieVariation = cookieValue === item.id ? item : item.variations[cookieValue];\n\n if (cookieVariation) {\n return __assign(__assign({}, item), {\n data: cookieVariation.data,\n variationId: cookieValue,\n testVariationId: cookieValue,\n testVariationName: cookieVariation.name\n });\n }\n\n if (_this.canTrack && item.variations && size(item.variations)) {\n var n = 0;\n var random = Math.random();\n\n for (var id in item.variations) {\n var variation = item.variations[id];\n var testRatio = variation.testRatio;\n n += testRatio;\n\n if (random < n) {\n _this.setTestCookie(item.id, variation.id);\n\n var variationName = variation.name || (variation.id === item.id ? 'Default variation' : '');\n return __assign(__assign({}, item), {\n data: variation.data,\n variationId: variation.id,\n testVariationId: variation.id,\n variationName: variationName,\n testVariationName: variationName\n });\n }\n }\n\n _this.setTestCookie(item.id, item.id);\n }\n\n return __assign(__assign(__assign({}, item), {\n variationId: item.id\n }), item.variations && size(item.variations) && {\n testVariationId: item.id,\n testVariationName: 'Default variation'\n });\n });\n\n if (isIframe) {\n (_a = window.parent) === null || _a === void 0 ? void 0 : _a.postMessage({\n type: 'builder.contentResults',\n data: {\n results: mappedResults\n }\n }, '*');\n }\n\n return mappedResults;\n };\n\n Builder.prototype.getTestCookie = function (contentId) {\n return this.getCookie(this.testCookiePrefix + \".\" + contentId);\n };\n\n Builder.prototype.setTestCookie = function (contentId, variationId) {\n if (!this.canTrack) {\n this.cookieQueue.push([contentId, variationId]);\n return;\n } // 30 days from now\n\n\n var future = new Date();\n future.setDate(future.getDate() + 30);\n return this.setCookie(this.testCookiePrefix + \".\" + contentId, variationId, future);\n };\n\n Builder.prototype.getCookie = function (name$$1) {\n if (this.cookies) {\n return this.cookies.get(name$$1);\n }\n\n return Builder.isBrowser && getCookie(name$$1);\n };\n\n Builder.prototype.setCookie = function (name$$1, value, expires) {\n if (this.cookies && !(Builder.isServer && Builder.isStatic)) {\n return this.cookies.set(name$$1, value, {\n expires: expires,\n secure: this.getLocation().protocol === 'https:'\n });\n }\n\n return Builder.isBrowser && setCookie(name$$1, value, expires);\n };\n\n Builder.prototype.getContent = function (modelName, options) {\n if (options === void 0) {\n options = {};\n }\n\n if (!this.apiKey) {\n throw new Error(\"Fetching content from model \" + modelName + \" failed, expected apiKey to be defined instead got: \" + this.apiKey);\n }\n\n return this.queueGetContent(modelName, options);\n };\n\n Builder.prototype.getAll = function (modelName, options) {\n if (options === void 0) {\n options = {};\n }\n\n var instance = this;\n\n if (!Builder.isBrowser) {\n instance = new Builder(options.apiKey || this.apiKey, options.req, options.res);\n instance.setUserAttributes(this.getUserAttributes());\n } else {\n if (options.apiKey && !this.apiKey) {\n this.apiKey = options.apiKey;\n }\n }\n\n return instance.getContent(modelName, __assign(__assign({\n limit: 30\n }, options), {\n key: options.key || // Make the key include all options so we don't reuse cache for the same conent fetched\n // with different options\n Builder.isBrowser ? modelName + \":\" + hash(omit(options, 'initialContent', 'req', 'res')) : undefined\n })).promise();\n };\n\n Builder.VERSION = version;\n Builder.components = [];\n /**\r\n * Makes it so that a/b tests generate code like {@link\r\n * https://www.builder.io/blog/high-performance-no-code#__next:~:text=Static%20generated%20A%2FB%20testing}\r\n * instead of the old way where we render only one test group at a time on the\r\n * server. This is the preferred/better way not and we should ultimately make it\r\n * the default\r\n */\n\n Builder.isStatic = true;\n Builder.animator = new Animator();\n Builder.nextTick = nextTick;\n Builder.throttle = throttle;\n Builder.editors = [];\n Builder.trustedHosts = ['builder.io', 'localhost'];\n Builder.plugins = [];\n Builder.actions = [];\n Builder.registry = {};\n Builder.registryChange = new BehaviorSubject({});\n Builder._editingPage = false;\n Builder.isIframe = isIframe;\n Builder.isBrowser = isBrowser;\n Builder.isReactNative = isReactNative;\n Builder.isServer = !isBrowser && !isReactNative;\n Builder.previewingModel = Builder.isBrowser && getQueryParam(location.href, 'builder.preview');\n Builder.settings = {};\n Builder.settingsChange = new BehaviorSubject({}); // TODO: this is quick and dirty, do better implementation later. Also can be unreliable\n // if page 301s etc. Use a query param instead? also could have issues with redirects. Injecting var could\n // work but is async...\n\n Builder.isEditing = Boolean(isIframe && (document.referrer && document.referrer.match(/builder\\.io|localhost:1234/) || location.search.indexOf('builder.frameEditing=') !== -1));\n Builder.isPreviewing = Boolean(isBrowser && (location.search.indexOf('builder.preview=') !== -1 || location.search.indexOf('builder.frameEditing=') !== -1));\n Builder.isReact = false;\n Builder.overrideUserAttributes = {};\n return Builder;\n}();\n\nvar builder = new Builder(null, undefined, undefined, true);\nBuilder.singletonInstance = builder;\nexport { Builder, BuilderComponent, isBrowser, BehaviorSubject, Subscription, builder };","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\n\n/* global Reflect, Promise */\nvar _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n\n return _extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n _extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nvar _assign = function __assign() {\n _assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return _assign.apply(this, arguments);\n};\n\nexport { _assign as __assign };\nexport function __rest(s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n}\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length,\n r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,\n d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);else for (var i = decorators.length - 1; i >= 0; i--) {\n if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n }\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\nexport function __param(paramIndex, decorator) {\n return function (target, key) {\n decorator(target, key, paramIndex);\n };\n}\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\nexport function __generator(thisArg, body) {\n var _ = {\n label: 0,\n sent: function sent() {\n if (t[0] & 1) throw t[1];\n return t[1];\n },\n trys: [],\n ops: []\n },\n f,\n y,\n t,\n g;\n return g = {\n next: verb(0),\n \"throw\": verb(1),\n \"return\": verb(2)\n }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function () {\n return this;\n }), g;\n\n function verb(n) {\n return function (v) {\n return step([n, v]);\n };\n }\n\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n\n while (_) {\n try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n\n switch (op[0]) {\n case 0:\n case 1:\n t = op;\n break;\n\n case 4:\n _.label++;\n return {\n value: op[1],\n done: false\n };\n\n case 5:\n _.label++;\n y = op[1];\n op = [0];\n continue;\n\n case 7:\n op = _.ops.pop();\n\n _.trys.pop();\n\n continue;\n\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];\n break;\n }\n\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n\n if (t && _.label < t[2]) {\n _.label = t[2];\n\n _.ops.push(op);\n\n break;\n }\n\n if (t[2]) _.ops.pop();\n\n _.trys.pop();\n\n continue;\n }\n\n op = body.call(thisArg, _);\n } catch (e) {\n op = [6, e];\n y = 0;\n } finally {\n f = t = 0;\n }\n }\n\n if (op[0] & 5) throw op[1];\n return {\n value: op[0] ? op[1] : void 0,\n done: true\n };\n }\n}\nexport function __createBinding(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}\nexport function __exportStar(m, exports) {\n for (var p in m) {\n if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\n }\n}\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator,\n m = s && o[s],\n i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function next() {\n if (o && i >= o.length) o = void 0;\n return {\n value: o && o[i++],\n done: !o\n };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o),\n r,\n ar = [],\n e;\n\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\n ar.push(r.value);\n }\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n\n return ar;\n}\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++) {\n ar = ar.concat(__read(arguments[i]));\n }\n\n return ar;\n}\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) {\n s += arguments[i].length;\n }\n\n for (var r = Array(s), k = 0, i = 0; i < il; i++) {\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) {\n r[k] = a[j];\n }\n }\n\n return r;\n}\n;\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []),\n i,\n q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () {\n return this;\n }, i;\n\n function verb(n) {\n if (g[n]) i[n] = function (v) {\n return new Promise(function (a, b) {\n q.push([n, v, a, b]) > 1 || resume(n, v);\n });\n };\n }\n\n function resume(n, v) {\n try {\n step(g[n](v));\n } catch (e) {\n settle(q[0][3], e);\n }\n }\n\n function step(r) {\n r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r);\n }\n\n function fulfill(value) {\n resume(\"next\", value);\n }\n\n function reject(value) {\n resume(\"throw\", value);\n }\n\n function settle(f, v) {\n if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]);\n }\n}\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) {\n throw e;\n }), verb(\"return\"), i[Symbol.iterator] = function () {\n return this;\n }, i;\n\n function verb(n, f) {\n i[n] = o[n] ? function (v) {\n return (p = !p) ? {\n value: __await(o[n](v)),\n done: n === \"return\"\n } : f ? f(v) : v;\n } : f;\n }\n}\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator],\n i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () {\n return this;\n }, i);\n\n function verb(n) {\n i[n] = o[n] && function (v) {\n return new Promise(function (resolve, reject) {\n v = o[n](v), settle(resolve, reject, v.done, v.value);\n });\n };\n }\n\n function settle(resolve, reject, d, v) {\n Promise.resolve(v).then(function (v) {\n resolve({\n value: v,\n done: d\n });\n }, reject);\n }\n}\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) {\n Object.defineProperty(cooked, \"raw\", {\n value: raw\n });\n } else {\n cooked.raw = raw;\n }\n\n return cooked;\n}\n;\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) {\n if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\n }\n result.default = mod;\n return result;\n}\nexport function __importDefault(mod) {\n return mod && mod.__esModule ? mod : {\n default: mod\n };\n}\nexport function __classPrivateFieldGet(receiver, privateMap) {\n if (!privateMap.has(receiver)) {\n throw new TypeError(\"attempted to get private field on non-instance\");\n }\n\n return privateMap.get(receiver);\n}\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\n if (!privateMap.has(receiver)) {\n throw new TypeError(\"attempted to set private field on non-instance\");\n }\n\n privateMap.set(receiver, value);\n return value;\n}","function memoize(fn) {\n var cache = {};\n return function (arg) {\n if (cache[arg] === undefined) cache[arg] = fn(arg);\n return cache[arg];\n };\n}\n\nexport default memoize;","function stylis_min(W) {\n function M(d, c, e, h, a) {\n for (var m = 0, b = 0, v = 0, n = 0, q, g, x = 0, K = 0, k, u = k = q = 0, l = 0, r = 0, I = 0, t = 0, B = e.length, J = B - 1, y, f = '', p = '', F = '', G = '', C; l < B;) {\n g = e.charCodeAt(l);\n l === J && 0 !== b + n + v + m && (0 !== b && (g = 47 === b ? 10 : 47), n = v = m = 0, B++, J++);\n\n if (0 === b + n + v + m) {\n if (l === J && (0 < r && (f = f.replace(N, '')), 0 < f.trim().length)) {\n switch (g) {\n case 32:\n case 9:\n case 59:\n case 13:\n case 10:\n break;\n\n default:\n f += e.charAt(l);\n }\n\n g = 59;\n }\n\n switch (g) {\n case 123:\n f = f.trim();\n q = f.charCodeAt(0);\n k = 1;\n\n for (t = ++l; l < B;) {\n switch (g = e.charCodeAt(l)) {\n case 123:\n k++;\n break;\n\n case 125:\n k--;\n break;\n\n case 47:\n switch (g = e.charCodeAt(l + 1)) {\n case 42:\n case 47:\n a: {\n for (u = l + 1; u < J; ++u) {\n switch (e.charCodeAt(u)) {\n case 47:\n if (42 === g && 42 === e.charCodeAt(u - 1) && l + 2 !== u) {\n l = u + 1;\n break a;\n }\n\n break;\n\n case 10:\n if (47 === g) {\n l = u + 1;\n break a;\n }\n\n }\n }\n\n l = u;\n }\n\n }\n\n break;\n\n case 91:\n g++;\n\n case 40:\n g++;\n\n case 34:\n case 39:\n for (; l++ < J && e.charCodeAt(l) !== g;) {}\n\n }\n\n if (0 === k) break;\n l++;\n }\n\n k = e.substring(t, l);\n 0 === q && (q = (f = f.replace(ca, '').trim()).charCodeAt(0));\n\n switch (q) {\n case 64:\n 0 < r && (f = f.replace(N, ''));\n g = f.charCodeAt(1);\n\n switch (g) {\n case 100:\n case 109:\n case 115:\n case 45:\n r = c;\n break;\n\n default:\n r = O;\n }\n\n k = M(c, r, k, g, a + 1);\n t = k.length;\n 0 < A && (r = X(O, f, I), C = H(3, k, r, c, D, z, t, g, a, h), f = r.join(''), void 0 !== C && 0 === (t = (k = C.trim()).length) && (g = 0, k = ''));\n if (0 < t) switch (g) {\n case 115:\n f = f.replace(da, ea);\n\n case 100:\n case 109:\n case 45:\n k = f + '{' + k + '}';\n break;\n\n case 107:\n f = f.replace(fa, '$1 $2');\n k = f + '{' + k + '}';\n k = 1 === w || 2 === w && L('@' + k, 3) ? '@-webkit-' + k + '@' + k : '@' + k;\n break;\n\n default:\n k = f + k, 112 === h && (k = (p += k, ''));\n } else k = '';\n break;\n\n default:\n k = M(c, X(c, f, I), k, h, a + 1);\n }\n\n F += k;\n k = I = r = u = q = 0;\n f = '';\n g = e.charCodeAt(++l);\n break;\n\n case 125:\n case 59:\n f = (0 < r ? f.replace(N, '') : f).trim();\n if (1 < (t = f.length)) switch (0 === u && (q = f.charCodeAt(0), 45 === q || 96 < q && 123 > q) && (t = (f = f.replace(' ', ':')).length), 0 < A && void 0 !== (C = H(1, f, c, d, D, z, p.length, h, a, h)) && 0 === (t = (f = C.trim()).length) && (f = '\\x00\\x00'), q = f.charCodeAt(0), g = f.charCodeAt(1), q) {\n case 0:\n break;\n\n case 64:\n if (105 === g || 99 === g) {\n G += f + e.charAt(l);\n break;\n }\n\n default:\n 58 !== f.charCodeAt(t - 1) && (p += P(f, q, g, f.charCodeAt(2)));\n }\n I = r = u = q = 0;\n f = '';\n g = e.charCodeAt(++l);\n }\n }\n\n switch (g) {\n case 13:\n case 10:\n 47 === b ? b = 0 : 0 === 1 + q && 107 !== h && 0 < f.length && (r = 1, f += '\\x00');\n 0 < A * Y && H(0, f, c, d, D, z, p.length, h, a, h);\n z = 1;\n D++;\n break;\n\n case 59:\n case 125:\n if (0 === b + n + v + m) {\n z++;\n break;\n }\n\n default:\n z++;\n y = e.charAt(l);\n\n switch (g) {\n case 9:\n case 32:\n if (0 === n + m + b) switch (x) {\n case 44:\n case 58:\n case 9:\n case 32:\n y = '';\n break;\n\n default:\n 32 !== g && (y = ' ');\n }\n break;\n\n case 0:\n y = '\\\\0';\n break;\n\n case 12:\n y = '\\\\f';\n break;\n\n case 11:\n y = '\\\\v';\n break;\n\n case 38:\n 0 === n + b + m && (r = I = 1, y = '\\f' + y);\n break;\n\n case 108:\n if (0 === n + b + m + E && 0 < u) switch (l - u) {\n case 2:\n 112 === x && 58 === e.charCodeAt(l - 3) && (E = x);\n\n case 8:\n 111 === K && (E = K);\n }\n break;\n\n case 58:\n 0 === n + b + m && (u = l);\n break;\n\n case 44:\n 0 === b + v + n + m && (r = 1, y += '\\r');\n break;\n\n case 34:\n case 39:\n 0 === b && (n = n === g ? 0 : 0 === n ? g : n);\n break;\n\n case 91:\n 0 === n + b + v && m++;\n break;\n\n case 93:\n 0 === n + b + v && m--;\n break;\n\n case 41:\n 0 === n + b + m && v--;\n break;\n\n case 40:\n if (0 === n + b + m) {\n if (0 === q) switch (2 * x + 3 * K) {\n case 533:\n break;\n\n default:\n q = 1;\n }\n v++;\n }\n\n break;\n\n case 64:\n 0 === b + v + n + m + u + k && (k = 1);\n break;\n\n case 42:\n case 47:\n if (!(0 < n + m + v)) switch (b) {\n case 0:\n switch (2 * g + 3 * e.charCodeAt(l + 1)) {\n case 235:\n b = 47;\n break;\n\n case 220:\n t = l, b = 42;\n }\n\n break;\n\n case 42:\n 47 === g && 42 === x && t + 2 !== l && (33 === e.charCodeAt(t + 2) && (p += e.substring(t, l + 1)), y = '', b = 0);\n }\n }\n\n 0 === b && (f += y);\n }\n\n K = x;\n x = g;\n l++;\n }\n\n t = p.length;\n\n if (0 < t) {\n r = c;\n if (0 < A && (C = H(2, p, r, d, D, z, t, h, a, h), void 0 !== C && 0 === (p = C).length)) return G + p + F;\n p = r.join(',') + '{' + p + '}';\n\n if (0 !== w * E) {\n 2 !== w || L(p, 2) || (E = 0);\n\n switch (E) {\n case 111:\n p = p.replace(ha, ':-moz-$1') + p;\n break;\n\n case 112:\n p = p.replace(Q, '::-webkit-input-$1') + p.replace(Q, '::-moz-$1') + p.replace(Q, ':-ms-input-$1') + p;\n }\n\n E = 0;\n }\n }\n\n return G + p + F;\n }\n\n function X(d, c, e) {\n var h = c.trim().split(ia);\n c = h;\n var a = h.length,\n m = d.length;\n\n switch (m) {\n case 0:\n case 1:\n var b = 0;\n\n for (d = 0 === m ? '' : d[0] + ' '; b < a; ++b) {\n c[b] = Z(d, c[b], e).trim();\n }\n\n break;\n\n default:\n var v = b = 0;\n\n for (c = []; b < a; ++b) {\n for (var n = 0; n < m; ++n) {\n c[v++] = Z(d[n] + ' ', h[b], e).trim();\n }\n }\n\n }\n\n return c;\n }\n\n function Z(d, c, e) {\n var h = c.charCodeAt(0);\n 33 > h && (h = (c = c.trim()).charCodeAt(0));\n\n switch (h) {\n case 38:\n return c.replace(F, '$1' + d.trim());\n\n case 58:\n return d.trim() + c.replace(F, '$1' + d.trim());\n\n default:\n if (0 < 1 * e && 0 < c.indexOf('\\f')) return c.replace(F, (58 === d.charCodeAt(0) ? '' : '$1') + d.trim());\n }\n\n return d + c;\n }\n\n function P(d, c, e, h) {\n var a = d + ';',\n m = 2 * c + 3 * e + 4 * h;\n\n if (944 === m) {\n d = a.indexOf(':', 9) + 1;\n var b = a.substring(d, a.length - 1).trim();\n b = a.substring(0, d).trim() + b + ';';\n return 1 === w || 2 === w && L(b, 1) ? '-webkit-' + b + b : b;\n }\n\n if (0 === w || 2 === w && !L(a, 1)) return a;\n\n switch (m) {\n case 1015:\n return 97 === a.charCodeAt(10) ? '-webkit-' + a + a : a;\n\n case 951:\n return 116 === a.charCodeAt(3) ? '-webkit-' + a + a : a;\n\n case 963:\n return 110 === a.charCodeAt(5) ? '-webkit-' + a + a : a;\n\n case 1009:\n if (100 !== a.charCodeAt(4)) break;\n\n case 969:\n case 942:\n return '-webkit-' + a + a;\n\n case 978:\n return '-webkit-' + a + '-moz-' + a + a;\n\n case 1019:\n case 983:\n return '-webkit-' + a + '-moz-' + a + '-ms-' + a + a;\n\n case 883:\n if (45 === a.charCodeAt(8)) return '-webkit-' + a + a;\n if (0 < a.indexOf('image-set(', 11)) return a.replace(ja, '$1-webkit-$2') + a;\n break;\n\n case 932:\n if (45 === a.charCodeAt(4)) switch (a.charCodeAt(5)) {\n case 103:\n return '-webkit-box-' + a.replace('-grow', '') + '-webkit-' + a + '-ms-' + a.replace('grow', 'positive') + a;\n\n case 115:\n return '-webkit-' + a + '-ms-' + a.replace('shrink', 'negative') + a;\n\n case 98:\n return '-webkit-' + a + '-ms-' + a.replace('basis', 'preferred-size') + a;\n }\n return '-webkit-' + a + '-ms-' + a + a;\n\n case 964:\n return '-webkit-' + a + '-ms-flex-' + a + a;\n\n case 1023:\n if (99 !== a.charCodeAt(8)) break;\n b = a.substring(a.indexOf(':', 15)).replace('flex-', '').replace('space-between', 'justify');\n return '-webkit-box-pack' + b + '-webkit-' + a + '-ms-flex-pack' + b + a;\n\n case 1005:\n return ka.test(a) ? a.replace(aa, ':-webkit-') + a.replace(aa, ':-moz-') + a : a;\n\n case 1e3:\n b = a.substring(13).trim();\n c = b.indexOf('-') + 1;\n\n switch (b.charCodeAt(0) + b.charCodeAt(c)) {\n case 226:\n b = a.replace(G, 'tb');\n break;\n\n case 232:\n b = a.replace(G, 'tb-rl');\n break;\n\n case 220:\n b = a.replace(G, 'lr');\n break;\n\n default:\n return a;\n }\n\n return '-webkit-' + a + '-ms-' + b + a;\n\n case 1017:\n if (-1 === a.indexOf('sticky', 9)) break;\n\n case 975:\n c = (a = d).length - 10;\n b = (33 === a.charCodeAt(c) ? a.substring(0, c) : a).substring(d.indexOf(':', 7) + 1).trim();\n\n switch (m = b.charCodeAt(0) + (b.charCodeAt(7) | 0)) {\n case 203:\n if (111 > b.charCodeAt(8)) break;\n\n case 115:\n a = a.replace(b, '-webkit-' + b) + ';' + a;\n break;\n\n case 207:\n case 102:\n a = a.replace(b, '-webkit-' + (102 < m ? 'inline-' : '') + 'box') + ';' + a.replace(b, '-webkit-' + b) + ';' + a.replace(b, '-ms-' + b + 'box') + ';' + a;\n }\n\n return a + ';';\n\n case 938:\n if (45 === a.charCodeAt(5)) switch (a.charCodeAt(6)) {\n case 105:\n return b = a.replace('-items', ''), '-webkit-' + a + '-webkit-box-' + b + '-ms-flex-' + b + a;\n\n case 115:\n return '-webkit-' + a + '-ms-flex-item-' + a.replace(ba, '') + a;\n\n default:\n return '-webkit-' + a + '-ms-flex-line-pack' + a.replace('align-content', '').replace(ba, '') + a;\n }\n break;\n\n case 973:\n case 989:\n if (45 !== a.charCodeAt(3) || 122 === a.charCodeAt(4)) break;\n\n case 931:\n case 953:\n if (!0 === la.test(d)) return 115 === (b = d.substring(d.indexOf(':') + 1)).charCodeAt(0) ? P(d.replace('stretch', 'fill-available'), c, e, h).replace(':fill-available', ':stretch') : a.replace(b, '-webkit-' + b) + a.replace(b, '-moz-' + b.replace('fill-', '')) + a;\n break;\n\n case 962:\n if (a = '-webkit-' + a + (102 === a.charCodeAt(5) ? '-ms-' + a : '') + a, 211 === e + h && 105 === a.charCodeAt(13) && 0 < a.indexOf('transform', 10)) return a.substring(0, a.indexOf(';', 27) + 1).replace(ma, '$1-webkit-$2') + a;\n }\n\n return a;\n }\n\n function L(d, c) {\n var e = d.indexOf(1 === c ? ':' : '{'),\n h = d.substring(0, 3 !== c ? e : 10);\n e = d.substring(e + 1, d.length - 1);\n return R(2 !== c ? h : h.replace(na, '$1'), e, c);\n }\n\n function ea(d, c) {\n var e = P(c, c.charCodeAt(0), c.charCodeAt(1), c.charCodeAt(2));\n return e !== c + ';' ? e.replace(oa, ' or ($1)').substring(4) : '(' + c + ')';\n }\n\n function H(d, c, e, h, a, m, b, v, n, q) {\n for (var g = 0, x = c, w; g < A; ++g) {\n switch (w = S[g].call(B, d, x, e, h, a, m, b, v, n, q)) {\n case void 0:\n case !1:\n case !0:\n case null:\n break;\n\n default:\n x = w;\n }\n }\n\n if (x !== c) return x;\n }\n\n function T(d) {\n switch (d) {\n case void 0:\n case null:\n A = S.length = 0;\n break;\n\n default:\n if ('function' === typeof d) S[A++] = d;else if ('object' === typeof d) for (var c = 0, e = d.length; c < e; ++c) {\n T(d[c]);\n } else Y = !!d | 0;\n }\n\n return T;\n }\n\n function U(d) {\n d = d.prefix;\n void 0 !== d && (R = null, d ? 'function' !== typeof d ? w = 1 : (w = 2, R = d) : w = 0);\n return U;\n }\n\n function B(d, c) {\n var e = d;\n 33 > e.charCodeAt(0) && (e = e.trim());\n V = e;\n e = [V];\n\n if (0 < A) {\n var h = H(-1, c, e, e, D, z, 0, 0, 0, 0);\n void 0 !== h && 'string' === typeof h && (c = h);\n }\n\n var a = M(O, e, c, 0, 0);\n 0 < A && (h = H(-2, a, e, e, D, z, a.length, 0, 0, 0), void 0 !== h && (a = h));\n V = '';\n E = 0;\n z = D = 1;\n return a;\n }\n\n var ca = /^\\0+/g,\n N = /[\\0\\r\\f]/g,\n aa = /: */g,\n ka = /zoo|gra/,\n ma = /([,: ])(transform)/g,\n ia = /,\\r+?/g,\n F = /([\\t\\r\\n ])*\\f?&/g,\n fa = /@(k\\w+)\\s*(\\S*)\\s*/,\n Q = /::(place)/g,\n ha = /:(read-only)/g,\n G = /[svh]\\w+-[tblr]{2}/,\n da = /\\(\\s*(.*)\\s*\\)/g,\n oa = /([\\s\\S]*?);/g,\n ba = /-self|flex-/g,\n na = /[^]*?(:[rp][el]a[\\w-]+)[^]*/,\n la = /stretch|:\\s*\\w+\\-(?:conte|avail)/,\n ja = /([^-])(image-set\\()/,\n z = 1,\n D = 1,\n E = 0,\n w = 1,\n O = [],\n S = [],\n A = 0,\n R = null,\n Y = 0,\n V = '';\n B.use = T;\n B.set = U;\n void 0 !== W && U(W);\n return B;\n}\n\nexport default stylis_min;","var unitlessKeys = {\n animationIterationCount: 1,\n borderImageOutset: 1,\n borderImageSlice: 1,\n borderImageWidth: 1,\n boxFlex: 1,\n boxFlexGroup: 1,\n boxOrdinalGroup: 1,\n columnCount: 1,\n columns: 1,\n flex: 1,\n flexGrow: 1,\n flexPositive: 1,\n flexShrink: 1,\n flexNegative: 1,\n flexOrder: 1,\n gridRow: 1,\n gridRowEnd: 1,\n gridRowSpan: 1,\n gridRowStart: 1,\n gridColumn: 1,\n gridColumnEnd: 1,\n gridColumnSpan: 1,\n gridColumnStart: 1,\n msGridRow: 1,\n msGridRowSpan: 1,\n msGridColumn: 1,\n msGridColumnSpan: 1,\n fontWeight: 1,\n lineHeight: 1,\n opacity: 1,\n order: 1,\n orphans: 1,\n tabSize: 1,\n widows: 1,\n zIndex: 1,\n zoom: 1,\n WebkitLineClamp: 1,\n // SVG-related properties\n fillOpacity: 1,\n floodOpacity: 1,\n stopOpacity: 1,\n strokeDasharray: 1,\n strokeDashoffset: 1,\n strokeMiterlimit: 1,\n strokeOpacity: 1,\n strokeWidth: 1\n};\nexport default unitlessKeys;","\"use strict\";\n\nexports.__esModule = true;\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\nvar getLocation = function getLocation(source) {\n var _source$location = source.location,\n search = _source$location.search,\n hash = _source$location.hash,\n href = _source$location.href,\n origin = _source$location.origin,\n protocol = _source$location.protocol,\n host = _source$location.host,\n hostname = _source$location.hostname,\n port = _source$location.port;\n var pathname = source.location.pathname;\n\n if (!pathname && href && canUseDOM) {\n var url = new URL(href);\n pathname = url.pathname;\n }\n\n return {\n pathname: encodeURI(decodeURI(pathname)),\n search: search,\n hash: hash,\n href: href,\n origin: origin,\n protocol: protocol,\n host: host,\n hostname: hostname,\n port: port,\n state: source.history.state,\n key: source.history.state && source.history.state.key || \"initial\"\n };\n};\n\nvar createHistory = function createHistory(source, options) {\n var listeners = [];\n var location = getLocation(source);\n var transitioning = false;\n\n var resolveTransition = function resolveTransition() {};\n\n return {\n get location() {\n return location;\n },\n\n get transitioning() {\n return transitioning;\n },\n\n _onTransitionComplete: function _onTransitionComplete() {\n transitioning = false;\n resolveTransition();\n },\n listen: function listen(listener) {\n listeners.push(listener);\n\n var popstateListener = function popstateListener() {\n location = getLocation(source);\n listener({\n location: location,\n action: \"POP\"\n });\n };\n\n source.addEventListener(\"popstate\", popstateListener);\n return function () {\n source.removeEventListener(\"popstate\", popstateListener);\n listeners = listeners.filter(function (fn) {\n return fn !== listener;\n });\n };\n },\n navigate: function navigate(to) {\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n state = _ref.state,\n _ref$replace = _ref.replace,\n replace = _ref$replace === undefined ? false : _ref$replace;\n\n if (typeof to === \"number\") {\n source.history.go(to);\n } else {\n state = _extends({}, state, {\n key: Date.now() + \"\"\n }); // try...catch iOS Safari limits to 100 pushState calls\n\n try {\n if (transitioning || replace) {\n source.history.replaceState(state, null, to);\n } else {\n source.history.pushState(state, null, to);\n }\n } catch (e) {\n source.location[replace ? \"replace\" : \"assign\"](to);\n }\n }\n\n location = getLocation(source);\n transitioning = true;\n var transition = new Promise(function (res) {\n return resolveTransition = res;\n });\n listeners.forEach(function (listener) {\n return listener({\n location: location,\n action: \"PUSH\"\n });\n });\n return transition;\n }\n };\n}; ////////////////////////////////////////////////////////////////////////////////\n// Stores history entries in memory for testing or other platforms like Native\n\n\nvar createMemorySource = function createMemorySource() {\n var initialPath = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"/\";\n var searchIndex = initialPath.indexOf(\"?\");\n var initialLocation = {\n pathname: searchIndex > -1 ? initialPath.substr(0, searchIndex) : initialPath,\n search: searchIndex > -1 ? initialPath.substr(searchIndex) : \"\"\n };\n var index = 0;\n var stack = [initialLocation];\n var states = [null];\n return {\n get location() {\n return stack[index];\n },\n\n addEventListener: function addEventListener(name, fn) {},\n removeEventListener: function removeEventListener(name, fn) {},\n history: {\n get entries() {\n return stack;\n },\n\n get index() {\n return index;\n },\n\n get state() {\n return states[index];\n },\n\n pushState: function pushState(state, _, uri) {\n var _uri$split = uri.split(\"?\"),\n pathname = _uri$split[0],\n _uri$split$ = _uri$split[1],\n search = _uri$split$ === undefined ? \"\" : _uri$split$;\n\n index++;\n stack.push({\n pathname: pathname,\n search: search.length ? \"?\" + search : search\n });\n states.push(state);\n },\n replaceState: function replaceState(state, _, uri) {\n var _uri$split2 = uri.split(\"?\"),\n pathname = _uri$split2[0],\n _uri$split2$ = _uri$split2[1],\n search = _uri$split2$ === undefined ? \"\" : _uri$split2$;\n\n stack[index] = {\n pathname: pathname,\n search: search\n };\n states[index] = state;\n },\n go: function go(to) {\n var newIndex = index + to;\n\n if (newIndex < 0 || newIndex > states.length - 1) {\n return;\n }\n\n index = newIndex;\n }\n }\n };\n}; ////////////////////////////////////////////////////////////////////////////////\n// global history - uses window.history as the source if available, otherwise a\n// memory history\n\n\nvar canUseDOM = !!(typeof window !== \"undefined\" && window.document && window.document.createElement);\n\nvar getSource = function getSource() {\n return canUseDOM ? window : createMemorySource();\n};\n\nvar globalHistory = createHistory(getSource());\nvar navigate = globalHistory.navigate; ////////////////////////////////////////////////////////////////////////////////\n\nexports.globalHistory = globalHistory;\nexports.navigate = navigate;\nexports.createHistory = createHistory;\nexports.createMemorySource = createMemorySource;","\"use strict\";\n\nexports.__esModule = true;\nexports.shallowCompare = exports.validateRedirect = exports.insertParams = exports.resolve = exports.match = exports.pick = exports.startsWith = undefined;\n\nvar _invariant = require(\"invariant\");\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n} ////////////////////////////////////////////////////////////////////////////////\n// startsWith(string, search) - Check if `string` starts with `search`\n\n\nvar startsWith = function startsWith(string, search) {\n return string.substr(0, search.length) === search;\n}; ////////////////////////////////////////////////////////////////////////////////\n// pick(routes, uri)\n//\n// Ranks and picks the best route to match. Each segment gets the highest\n// amount of points, then the type of segment gets an additional amount of\n// points where\n//\n// static > dynamic > splat > root\n//\n// This way we don't have to worry about the order of our routes, let the\n// computers do it.\n//\n// A route looks like this\n//\n// { path, default, value }\n//\n// And a returned match looks like:\n//\n// { route, params, uri }\n//\n// I know, I should use TypeScript not comments for these types.\n\n\nvar pick = function pick(routes, uri) {\n var match = void 0;\n var default_ = void 0;\n\n var _uri$split = uri.split(\"?\"),\n uriPathname = _uri$split[0];\n\n var uriSegments = segmentize(uriPathname);\n var isRootUri = uriSegments[0] === \"\";\n var ranked = rankRoutes(routes);\n\n for (var i = 0, l = ranked.length; i < l; i++) {\n var missed = false;\n var route = ranked[i].route;\n\n if (route.default) {\n default_ = {\n route: route,\n params: {},\n uri: uri\n };\n continue;\n }\n\n var routeSegments = segmentize(route.path);\n var params = {};\n var max = Math.max(uriSegments.length, routeSegments.length);\n var index = 0;\n\n for (; index < max; index++) {\n var routeSegment = routeSegments[index];\n var uriSegment = uriSegments[index];\n\n if (isSplat(routeSegment)) {\n // Hit a splat, just grab the rest, and return a match\n // uri: /files/documents/work\n // route: /files/*\n var param = routeSegment.slice(1) || \"*\";\n params[param] = uriSegments.slice(index).map(decodeURIComponent).join(\"/\");\n break;\n }\n\n if (uriSegment === undefined) {\n // URI is shorter than the route, no match\n // uri: /users\n // route: /users/:userId\n missed = true;\n break;\n }\n\n var dynamicMatch = paramRe.exec(routeSegment);\n\n if (dynamicMatch && !isRootUri) {\n var matchIsNotReserved = reservedNames.indexOf(dynamicMatch[1]) === -1;\n !matchIsNotReserved ? process.env.NODE_ENV !== \"production\" ? (0, _invariant2.default)(false, \" dynamic segment \\\"\" + dynamicMatch[1] + \"\\\" is a reserved name. Please use a different name in path \\\"\" + route.path + \"\\\".\") : (0, _invariant2.default)(false) : void 0;\n var value = decodeURIComponent(uriSegment);\n params[dynamicMatch[1]] = value;\n } else if (routeSegment !== uriSegment) {\n // Current segments don't match, not dynamic, not splat, so no match\n // uri: /users/123/settings\n // route: /users/:id/profile\n missed = true;\n break;\n }\n }\n\n if (!missed) {\n match = {\n route: route,\n params: params,\n uri: \"/\" + uriSegments.slice(0, index).join(\"/\")\n };\n break;\n }\n }\n\n return match || default_ || null;\n}; ////////////////////////////////////////////////////////////////////////////////\n// match(path, uri) - Matches just one path to a uri, also lol\n\n\nvar match = function match(path, uri) {\n return pick([{\n path: path\n }], uri);\n}; ////////////////////////////////////////////////////////////////////////////////\n// resolve(to, basepath)\n//\n// Resolves URIs as though every path is a directory, no files. Relative URIs\n// in the browser can feel awkward because not only can you be \"in a directory\"\n// you can be \"at a file\", too. For example\n//\n// browserSpecResolve('foo', '/bar/') => /bar/foo\n// browserSpecResolve('foo', '/bar') => /foo\n//\n// But on the command line of a file system, it's not as complicated, you can't\n// `cd` from a file, only directories. This way, links have to know less about\n// their current path. To go deeper you can do this:\n//\n// \n// // instead of\n// \n//\n// Just like `cd`, if you want to go deeper from the command line, you do this:\n//\n// cd deeper\n// # not\n// cd $(pwd)/deeper\n//\n// By treating every path as a directory, linking to relative paths should\n// require less contextual information and (fingers crossed) be more intuitive.\n\n\nvar resolve = function resolve(to, base) {\n // /foo/bar, /baz/qux => /foo/bar\n if (startsWith(to, \"/\")) {\n return to;\n }\n\n var _to$split = to.split(\"?\"),\n toPathname = _to$split[0],\n toQuery = _to$split[1];\n\n var _base$split = base.split(\"?\"),\n basePathname = _base$split[0];\n\n var toSegments = segmentize(toPathname);\n var baseSegments = segmentize(basePathname); // ?a=b, /users?b=c => /users?a=b\n\n if (toSegments[0] === \"\") {\n return addQuery(basePathname, toQuery);\n } // profile, /users/789 => /users/789/profile\n\n\n if (!startsWith(toSegments[0], \".\")) {\n var pathname = baseSegments.concat(toSegments).join(\"/\");\n return addQuery((basePathname === \"/\" ? \"\" : \"/\") + pathname, toQuery);\n } // ./ /users/123 => /users/123\n // ../ /users/123 => /users\n // ../.. /users/123 => /\n // ../../one /a/b/c/d => /a/b/one\n // .././one /a/b/c/d => /a/b/c/one\n\n\n var allSegments = baseSegments.concat(toSegments);\n var segments = [];\n\n for (var i = 0, l = allSegments.length; i < l; i++) {\n var segment = allSegments[i];\n if (segment === \"..\") segments.pop();else if (segment !== \".\") segments.push(segment);\n }\n\n return addQuery(\"/\" + segments.join(\"/\"), toQuery);\n}; ////////////////////////////////////////////////////////////////////////////////\n// insertParams(path, params)\n\n\nvar insertParams = function insertParams(path, params) {\n var _path$split = path.split(\"?\"),\n pathBase = _path$split[0],\n _path$split$ = _path$split[1],\n query = _path$split$ === undefined ? \"\" : _path$split$;\n\n var segments = segmentize(pathBase);\n var constructedPath = \"/\" + segments.map(function (segment) {\n var match = paramRe.exec(segment);\n return match ? params[match[1]] : segment;\n }).join(\"/\");\n var _params$location = params.location;\n _params$location = _params$location === undefined ? {} : _params$location;\n var _params$location$sear = _params$location.search,\n search = _params$location$sear === undefined ? \"\" : _params$location$sear;\n var searchSplit = search.split(\"?\")[1] || \"\";\n constructedPath = addQuery(constructedPath, query, searchSplit);\n return constructedPath;\n};\n\nvar validateRedirect = function validateRedirect(from, to) {\n var filter = function filter(segment) {\n return isDynamic(segment);\n };\n\n var fromString = segmentize(from).filter(filter).sort().join(\"/\");\n var toString = segmentize(to).filter(filter).sort().join(\"/\");\n return fromString === toString;\n}; ////////////////////////////////////////////////////////////////////////////////\n// Junk\n\n\nvar paramRe = /^:(.+)/;\nvar SEGMENT_POINTS = 4;\nvar STATIC_POINTS = 3;\nvar DYNAMIC_POINTS = 2;\nvar SPLAT_PENALTY = 1;\nvar ROOT_POINTS = 1;\n\nvar isRootSegment = function isRootSegment(segment) {\n return segment === \"\";\n};\n\nvar isDynamic = function isDynamic(segment) {\n return paramRe.test(segment);\n};\n\nvar isSplat = function isSplat(segment) {\n return segment && segment[0] === \"*\";\n};\n\nvar rankRoute = function rankRoute(route, index) {\n var score = route.default ? 0 : segmentize(route.path).reduce(function (score, segment) {\n score += SEGMENT_POINTS;\n if (isRootSegment(segment)) score += ROOT_POINTS;else if (isDynamic(segment)) score += DYNAMIC_POINTS;else if (isSplat(segment)) score -= SEGMENT_POINTS + SPLAT_PENALTY;else score += STATIC_POINTS;\n return score;\n }, 0);\n return {\n route: route,\n score: score,\n index: index\n };\n};\n\nvar rankRoutes = function rankRoutes(routes) {\n return routes.map(rankRoute).sort(function (a, b) {\n return a.score < b.score ? 1 : a.score > b.score ? -1 : a.index - b.index;\n });\n};\n\nvar segmentize = function segmentize(uri) {\n return uri // strip starting/ending slashes\n .replace(/(^\\/+|\\/+$)/g, \"\").split(\"/\");\n};\n\nvar addQuery = function addQuery(pathname) {\n for (var _len = arguments.length, query = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n query[_key - 1] = arguments[_key];\n }\n\n query = query.filter(function (q) {\n return q && q.length > 0;\n });\n return pathname + (query && query.length > 0 ? \"?\" + query.join(\"&\") : \"\");\n};\n\nvar reservedNames = [\"uri\", \"path\"];\n/**\n * Shallow compares two objects.\n * @param {Object} obj1 The first object to compare.\n * @param {Object} obj2 The second object to compare.\n */\n\nvar shallowCompare = function shallowCompare(obj1, obj2) {\n var obj1Keys = Object.keys(obj1);\n return obj1Keys.length === Object.keys(obj2).length && obj1Keys.every(function (key) {\n return obj2.hasOwnProperty(key) && obj1[key] === obj2[key];\n });\n}; ////////////////////////////////////////////////////////////////////////////////\n\n\nexports.startsWith = startsWith;\nexports.pick = pick;\nexports.match = match;\nexports.resolve = resolve;\nexports.insertParams = insertParams;\nexports.validateRedirect = validateRedirect;\nexports.shallowCompare = shallowCompare;","export default function _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}","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}","import React from 'react';\nimport _objectWithoutPropertiesLoose from '@babel/runtime/helpers/esm/objectWithoutPropertiesLoose';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport _assertThisInitialized from '@babel/runtime/helpers/esm/assertThisInitialized';\nimport _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport { isValidElementType } from 'react-is';\nimport hoistNonReactStatics from 'hoist-non-react-statics';\n/* eslint-disable import/prefer-default-export */\n\nfunction invariant(condition, message) {\n if (condition) return;\n var error = new Error(\"loadable: \" + message);\n error.framesToPop = 1;\n error.name = 'Invariant Violation';\n throw error;\n}\n\nfunction warn(message) {\n // eslint-disable-next-line no-console\n console.warn(\"loadable: \" + message);\n}\n\nvar Context = /*#__PURE__*/React.createContext();\nvar LOADABLE_REQUIRED_CHUNKS_KEY = '__LOADABLE_REQUIRED_CHUNKS__';\n\nfunction getRequiredChunkKey(namespace) {\n return \"\" + namespace + LOADABLE_REQUIRED_CHUNKS_KEY;\n}\n\nvar sharedInternals = /*#__PURE__*/Object.freeze({\n __proto__: null,\n getRequiredChunkKey: getRequiredChunkKey,\n invariant: invariant,\n Context: Context\n});\nvar LOADABLE_SHARED = {\n initialChunks: {}\n};\nvar STATUS_PENDING = 'PENDING';\nvar STATUS_RESOLVED = 'RESOLVED';\nvar STATUS_REJECTED = 'REJECTED';\n\nfunction resolveConstructor(ctor) {\n if (typeof ctor === 'function') {\n return {\n requireAsync: ctor,\n resolve: function resolve() {\n return undefined;\n },\n chunkName: function chunkName() {\n return undefined;\n }\n };\n }\n\n return ctor;\n}\n\nvar withChunkExtractor = function withChunkExtractor(Component) {\n var LoadableWithChunkExtractor = function LoadableWithChunkExtractor(props) {\n return React.createElement(Context.Consumer, null, function (extractor) {\n return React.createElement(Component, Object.assign({\n __chunkExtractor: extractor\n }, props));\n });\n };\n\n if (Component.displayName) {\n LoadableWithChunkExtractor.displayName = Component.displayName + \"WithChunkExtractor\";\n }\n\n return LoadableWithChunkExtractor;\n};\n\nvar identity = function identity(v) {\n return v;\n};\n\nfunction createLoadable(_ref) {\n var _ref$defaultResolveCo = _ref.defaultResolveComponent,\n defaultResolveComponent = _ref$defaultResolveCo === void 0 ? identity : _ref$defaultResolveCo,\n _render = _ref.render,\n onLoad = _ref.onLoad;\n\n function loadable(loadableConstructor, options) {\n if (options === void 0) {\n options = {};\n }\n\n var ctor = resolveConstructor(loadableConstructor);\n var cache = {};\n /**\n * Cachekey represents the component to be loaded\n * if key changes - component has to be reloaded\n * @param props\n * @returns {null|Component}\n */\n\n function _getCacheKey(props) {\n if (options.cacheKey) {\n return options.cacheKey(props);\n }\n\n if (ctor.resolve) {\n return ctor.resolve(props);\n }\n\n return 'static';\n }\n /**\n * Resolves loaded `module` to a specific `Component\n * @param module\n * @param props\n * @param Loadable\n * @returns Component\n */\n\n\n function resolve(module, props, Loadable) {\n var Component = options.resolveComponent ? options.resolveComponent(module, props) : defaultResolveComponent(module);\n\n if (options.resolveComponent && !isValidElementType(Component)) {\n throw new Error(\"resolveComponent returned something that is not a React component!\");\n }\n\n hoistNonReactStatics(Loadable, Component, {\n preload: true\n });\n return Component;\n }\n\n var cachedLoad = function cachedLoad(props) {\n var cacheKey = _getCacheKey(props);\n\n var promise = cache[cacheKey];\n\n if (!promise || promise.status === STATUS_REJECTED) {\n promise = ctor.requireAsync(props);\n promise.status = STATUS_PENDING;\n cache[cacheKey] = promise;\n promise.then(function () {\n promise.status = STATUS_RESOLVED;\n }, function (error) {\n console.error('loadable-components: failed to asynchronously load component', {\n fileName: ctor.resolve(props),\n chunkName: ctor.chunkName(props),\n error: error ? error.message : error\n });\n promise.status = STATUS_REJECTED;\n });\n }\n\n return promise;\n };\n\n var InnerLoadable = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(InnerLoadable, _React$Component);\n\n InnerLoadable.getDerivedStateFromProps = function getDerivedStateFromProps(props, state) {\n var cacheKey = _getCacheKey(props);\n\n return _extends({}, state, {\n cacheKey: cacheKey,\n // change of a key triggers loading state automatically\n loading: state.loading || state.cacheKey !== cacheKey\n });\n };\n\n function InnerLoadable(props) {\n var _this;\n\n _this = _React$Component.call(this, props) || this;\n _this.state = {\n result: null,\n error: null,\n loading: true,\n cacheKey: _getCacheKey(props)\n };\n invariant(!props.__chunkExtractor || ctor.requireSync, 'SSR requires `@loadable/babel-plugin`, please install it'); // Server-side\n\n if (props.__chunkExtractor) {\n // This module has been marked with no SSR\n if (options.ssr === false) {\n return _assertThisInitialized(_this);\n } // We run load function, we assume that it won't fail and that it\n // triggers a synchronous loading of the module\n\n\n ctor.requireAsync(props)[\"catch\"](function () {\n return null;\n }); // So we can require now the module synchronously\n\n _this.loadSync();\n\n props.__chunkExtractor.addChunk(ctor.chunkName(props));\n\n return _assertThisInitialized(_this);\n } // Client-side with `isReady` method present (SSR probably)\n // If module is already loaded, we use a synchronous loading\n // Only perform this synchronous loading if the component has not\n // been marked with no SSR, else we risk hydration mismatches\n\n\n if (options.ssr !== false && ( // is ready - was loaded in this session\n ctor.isReady && ctor.isReady(props) || // is ready - was loaded during SSR process\n ctor.chunkName && LOADABLE_SHARED.initialChunks[ctor.chunkName(props)])) {\n _this.loadSync();\n }\n\n return _this;\n }\n\n var _proto = InnerLoadable.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.mounted = true; // retrieve loading promise from a global cache\n\n var cachedPromise = this.getCache(); // if promise exists, but rejected - clear cache\n\n if (cachedPromise && cachedPromise.status === STATUS_REJECTED) {\n this.setCache();\n } // component might be resolved synchronously in the constructor\n\n\n if (this.state.loading) {\n this.loadAsync();\n }\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {\n // Component has to be reloaded on cacheKey change\n if (prevState.cacheKey !== this.state.cacheKey) {\n this.loadAsync();\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.mounted = false;\n };\n\n _proto.safeSetState = function safeSetState(nextState, callback) {\n if (this.mounted) {\n this.setState(nextState, callback);\n }\n }\n /**\n * returns a cache key for the current props\n * @returns {Component|string}\n */\n ;\n\n _proto.getCacheKey = function getCacheKey() {\n return _getCacheKey(this.props);\n }\n /**\n * access the persistent cache\n */\n ;\n\n _proto.getCache = function getCache() {\n return cache[this.getCacheKey()];\n }\n /**\n * sets the cache value. If called without value sets it as undefined\n */\n ;\n\n _proto.setCache = function setCache(value) {\n if (value === void 0) {\n value = undefined;\n }\n\n cache[this.getCacheKey()] = value;\n };\n\n _proto.triggerOnLoad = function triggerOnLoad() {\n var _this2 = this;\n\n if (onLoad) {\n setTimeout(function () {\n onLoad(_this2.state.result, _this2.props);\n });\n }\n }\n /**\n * Synchronously loads component\n * target module is expected to already exists in the module cache\n * or be capable to resolve synchronously (webpack target=node)\n */\n ;\n\n _proto.loadSync = function loadSync() {\n // load sync is expecting component to be in the \"loading\" state already\n // sounds weird, but loading=true is the initial state of InnerLoadable\n if (!this.state.loading) return;\n\n try {\n var loadedModule = ctor.requireSync(this.props);\n var result = resolve(loadedModule, this.props, Loadable);\n this.state.result = result;\n this.state.loading = false;\n } catch (error) {\n console.error('loadable-components: failed to synchronously load component, which expected to be available', {\n fileName: ctor.resolve(this.props),\n chunkName: ctor.chunkName(this.props),\n error: error ? error.message : error\n });\n this.state.error = error;\n }\n }\n /**\n * Asynchronously loads a component.\n */\n ;\n\n _proto.loadAsync = function loadAsync() {\n var _this3 = this;\n\n var promise = this.resolveAsync();\n promise.then(function (loadedModule) {\n var result = resolve(loadedModule, _this3.props, Loadable);\n\n _this3.safeSetState({\n result: result,\n loading: false\n }, function () {\n return _this3.triggerOnLoad();\n });\n })[\"catch\"](function (error) {\n return _this3.safeSetState({\n error: error,\n loading: false\n });\n });\n return promise;\n }\n /**\n * Asynchronously resolves(not loads) a component.\n * Note - this function does not change the state\n */\n ;\n\n _proto.resolveAsync = function resolveAsync() {\n var _this$props = this.props,\n __chunkExtractor = _this$props.__chunkExtractor,\n forwardedRef = _this$props.forwardedRef,\n props = _objectWithoutPropertiesLoose(_this$props, [\"__chunkExtractor\", \"forwardedRef\"]);\n\n return cachedLoad(props);\n };\n\n _proto.render = function render() {\n var _this$props2 = this.props,\n forwardedRef = _this$props2.forwardedRef,\n propFallback = _this$props2.fallback,\n __chunkExtractor = _this$props2.__chunkExtractor,\n props = _objectWithoutPropertiesLoose(_this$props2, [\"forwardedRef\", \"fallback\", \"__chunkExtractor\"]);\n\n var _this$state = this.state,\n error = _this$state.error,\n loading = _this$state.loading,\n result = _this$state.result;\n\n if (options.suspense) {\n var cachedPromise = this.getCache() || this.loadAsync();\n\n if (cachedPromise.status === STATUS_PENDING) {\n throw this.loadAsync();\n }\n }\n\n if (error) {\n throw error;\n }\n\n var fallback = propFallback || options.fallback || null;\n\n if (loading) {\n return fallback;\n }\n\n return _render({\n fallback: fallback,\n result: result,\n options: options,\n props: _extends({}, props, {\n ref: forwardedRef\n })\n });\n };\n\n return InnerLoadable;\n }(React.Component);\n\n var EnhancedInnerLoadable = withChunkExtractor(InnerLoadable);\n var Loadable = React.forwardRef(function (props, ref) {\n return React.createElement(EnhancedInnerLoadable, Object.assign({\n forwardedRef: ref\n }, props));\n });\n Loadable.displayName = 'Loadable'; // In future, preload could use ``\n\n Loadable.preload = function (props) {\n Loadable.load(props);\n };\n\n Loadable.load = function (props) {\n return cachedLoad(props);\n };\n\n return Loadable;\n }\n\n function lazy(ctor, options) {\n return loadable(ctor, _extends({}, options, {\n suspense: true\n }));\n }\n\n return {\n loadable: loadable,\n lazy: lazy\n };\n}\n\nfunction defaultResolveComponent(loadedModule) {\n // eslint-disable-next-line no-underscore-dangle\n return loadedModule.__esModule ? loadedModule[\"default\"] : loadedModule[\"default\"] || loadedModule;\n}\n/* eslint-disable no-use-before-define, react/no-multi-comp */\n\n\nvar _createLoadable = /*#__PURE__*/createLoadable({\n defaultResolveComponent: defaultResolveComponent,\n render: function render(_ref) {\n var Component = _ref.result,\n props = _ref.props;\n return React.createElement(Component, props);\n }\n}),\n loadable = _createLoadable.loadable,\n lazy = _createLoadable.lazy;\n/* eslint-disable no-use-before-define, react/no-multi-comp */\n\n\nvar _createLoadable$1 = /*#__PURE__*/createLoadable({\n onLoad: function onLoad(result, props) {\n if (result && props.forwardedRef) {\n if (typeof props.forwardedRef === 'function') {\n props.forwardedRef(result);\n } else {\n props.forwardedRef.current = result;\n }\n }\n },\n render: function render(_ref) {\n var result = _ref.result,\n props = _ref.props;\n\n if (props.children) {\n return props.children(result);\n }\n\n return null;\n }\n}),\n loadable$1 = _createLoadable$1.loadable,\n lazy$1 = _createLoadable$1.lazy;\n/* eslint-disable no-underscore-dangle, camelcase */\n\n\nvar BROWSER = typeof window !== 'undefined';\n\nfunction loadableReady(done, _temp) {\n if (done === void 0) {\n done = function done() {};\n }\n\n var _ref = _temp === void 0 ? {} : _temp,\n _ref$namespace = _ref.namespace,\n namespace = _ref$namespace === void 0 ? '' : _ref$namespace,\n _ref$chunkLoadingGlob = _ref.chunkLoadingGlobal,\n chunkLoadingGlobal = _ref$chunkLoadingGlob === void 0 ? '__LOADABLE_LOADED_CHUNKS__' : _ref$chunkLoadingGlob;\n\n if (!BROWSER) {\n warn('`loadableReady()` must be called in browser only');\n done();\n return Promise.resolve();\n }\n\n var requiredChunks = null;\n\n if (BROWSER) {\n var id = getRequiredChunkKey(namespace);\n var dataElement = document.getElementById(id);\n\n if (dataElement) {\n requiredChunks = JSON.parse(dataElement.textContent);\n var extElement = document.getElementById(id + \"_ext\");\n\n if (extElement) {\n var _JSON$parse = JSON.parse(extElement.textContent),\n namedChunks = _JSON$parse.namedChunks;\n\n namedChunks.forEach(function (chunkName) {\n LOADABLE_SHARED.initialChunks[chunkName] = true;\n });\n } else {\n // version mismatch\n throw new Error('loadable-component: @loadable/server does not match @loadable/component');\n }\n }\n }\n\n if (!requiredChunks) {\n warn('`loadableReady()` requires state, please use `getScriptTags` or `getScriptElements` server-side');\n done();\n return Promise.resolve();\n }\n\n var resolved = false;\n return new Promise(function (resolve) {\n window[chunkLoadingGlobal] = window[chunkLoadingGlobal] || [];\n var loadedChunks = window[chunkLoadingGlobal];\n var originalPush = loadedChunks.push.bind(loadedChunks);\n\n function checkReadyState() {\n if (requiredChunks.every(function (chunk) {\n return loadedChunks.some(function (_ref2) {\n var chunks = _ref2[0];\n return chunks.indexOf(chunk) > -1;\n });\n })) {\n if (!resolved) {\n resolved = true;\n resolve();\n }\n }\n }\n\n loadedChunks.push = function () {\n originalPush.apply(void 0, arguments);\n checkReadyState();\n };\n\n checkReadyState();\n }).then(done);\n}\n/* eslint-disable no-underscore-dangle */\n\n\nvar loadable$2 = loadable;\nloadable$2.lib = loadable$1;\nvar lazy$2 = lazy;\nlazy$2.lib = lazy$1;\nvar __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = sharedInternals;\nexport default loadable$2;\nexport { __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED, lazy$2 as lazy, loadableReady };","\"use strict\";\n\nvar utils = require(\"./utils\");\n\nmodule.exports = function batchProcessorMaker(options) {\n options = options || {};\n var reporter = options.reporter;\n var asyncProcess = utils.getOption(options, \"async\", true);\n var autoProcess = utils.getOption(options, \"auto\", true);\n\n if (autoProcess && !asyncProcess) {\n reporter && reporter.warn(\"Invalid options combination. auto=true and async=false is invalid. Setting async=true.\");\n asyncProcess = true;\n }\n\n var batch = Batch();\n var asyncFrameHandler;\n var isProcessing = false;\n\n function addFunction(level, fn) {\n if (!isProcessing && autoProcess && asyncProcess && batch.size() === 0) {\n // Since this is async, it is guaranteed to be executed after that the fn is added to the batch.\n // This needs to be done before, since we're checking the size of the batch to be 0.\n processBatchAsync();\n }\n\n batch.add(level, fn);\n }\n\n function processBatch() {\n // Save the current batch, and create a new batch so that incoming functions are not added into the currently processing batch.\n // Continue processing until the top-level batch is empty (functions may be added to the new batch while processing, and so on).\n isProcessing = true;\n\n while (batch.size()) {\n var processingBatch = batch;\n batch = Batch();\n processingBatch.process();\n }\n\n isProcessing = false;\n }\n\n function forceProcessBatch(localAsyncProcess) {\n if (isProcessing) {\n return;\n }\n\n if (localAsyncProcess === undefined) {\n localAsyncProcess = asyncProcess;\n }\n\n if (asyncFrameHandler) {\n cancelFrame(asyncFrameHandler);\n asyncFrameHandler = null;\n }\n\n if (localAsyncProcess) {\n processBatchAsync();\n } else {\n processBatch();\n }\n }\n\n function processBatchAsync() {\n asyncFrameHandler = requestFrame(processBatch);\n }\n\n function clearBatch() {\n batch = {};\n batchSize = 0;\n topLevel = 0;\n bottomLevel = 0;\n }\n\n function cancelFrame(listener) {\n // var cancel = window.cancelAnimationFrame || window.mozCancelAnimationFrame || window.webkitCancelAnimationFrame || window.clearTimeout;\n var cancel = clearTimeout;\n return cancel(listener);\n }\n\n function requestFrame(callback) {\n // var raf = window.requestAnimationFrame || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame || function(fn) { return window.setTimeout(fn, 20); };\n var raf = function raf(fn) {\n return setTimeout(fn, 0);\n };\n\n return raf(callback);\n }\n\n return {\n add: addFunction,\n force: forceProcessBatch\n };\n};\n\nfunction Batch() {\n var batch = {};\n var size = 0;\n var topLevel = 0;\n var bottomLevel = 0;\n\n function add(level, fn) {\n if (!fn) {\n fn = level;\n level = 0;\n }\n\n if (level > topLevel) {\n topLevel = level;\n } else if (level < bottomLevel) {\n bottomLevel = level;\n }\n\n if (!batch[level]) {\n batch[level] = [];\n }\n\n batch[level].push(fn);\n size++;\n }\n\n function process() {\n for (var level = bottomLevel; level <= topLevel; level++) {\n var fns = batch[level];\n\n for (var i = 0; i < fns.length; i++) {\n var fn = fns[i];\n fn();\n }\n }\n }\n\n function getSize() {\n return size;\n }\n\n return {\n add: add,\n process: process,\n size: getSize\n };\n}","\"use strict\";\n\nvar utils = module.exports = {};\nutils.getOption = getOption;\n\nfunction getOption(options, name, defaultValue) {\n var value = options[name];\n\n if ((value === undefined || value === null) && defaultValue !== undefined) {\n return defaultValue;\n }\n\n return value;\n}","/*!\n Copyright (c) 2018 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n\n/* global define */\n(function () {\n 'use strict';\n\n var hasOwn = {}.hasOwnProperty;\n\n function classNames() {\n var classes = [];\n\n for (var i = 0; i < arguments.length; i++) {\n var arg = arguments[i];\n if (!arg) continue;\n var argType = typeof arg;\n\n if (argType === 'string' || argType === 'number') {\n classes.push(arg);\n } else if (Array.isArray(arg)) {\n if (arg.length) {\n var inner = classNames.apply(null, arg);\n\n if (inner) {\n classes.push(inner);\n }\n }\n } else if (argType === 'object') {\n if (arg.toString === Object.prototype.toString) {\n for (var key in arg) {\n if (hasOwn.call(arg, key) && arg[key]) {\n classes.push(key);\n }\n }\n } else {\n classes.push(arg.toString());\n }\n }\n }\n\n return classes.join(' ');\n }\n\n if (typeof module !== 'undefined' && module.exports) {\n classNames.default = classNames;\n module.exports = classNames;\n } else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n // register as 'classnames', consistent with npm package name\n define('classnames', [], function () {\n return classNames;\n });\n } else {\n window.classNames = classNames;\n }\n})();","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n'use strict';\n\nvar _assign = require('object-assign'); // -- Inlined from fbjs --\n\n\nvar emptyObject = {};\n\nif (process.env.NODE_ENV !== 'production') {\n Object.freeze(emptyObject);\n}\n\nvar validateFormat = function validateFormat(format) {};\n\nif (process.env.NODE_ENV !== 'production') {\n validateFormat = function validateFormat(format) {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n };\n}\n\nfunction _invariant(condition, format, a, b, c, d, e, f) {\n validateFormat(format);\n\n if (!condition) {\n var error;\n\n if (format === undefined) {\n error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n\n throw error;\n }\n}\n\nvar warning = function warning() {};\n\nif (process.env.NODE_ENV !== 'production') {\n var printWarning = function printWarning(format) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var argIndex = 0;\n var message = 'Warning: ' + format.replace(/%s/g, function () {\n return args[argIndex++];\n });\n\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n\n warning = function warning(condition, format) {\n if (format === undefined) {\n throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument');\n }\n\n if (format.indexOf('Failed Composite propType: ') === 0) {\n return; // Ignore CompositeComponent proptype check.\n }\n\n if (!condition) {\n for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n\n printWarning.apply(undefined, [format].concat(args));\n }\n };\n} // /-- Inlined from fbjs --\n\n\nvar MIXINS_KEY = 'mixins'; // Helper function to allow the creation of anonymous functions which do not\n// have .name set to the name of the variable being assigned to.\n\nfunction identity(fn) {\n return fn;\n}\n\nvar ReactPropTypeLocationNames;\n\nif (process.env.NODE_ENV !== 'production') {\n ReactPropTypeLocationNames = {\n prop: 'prop',\n context: 'context',\n childContext: 'child context'\n };\n} else {\n ReactPropTypeLocationNames = {};\n}\n\nfunction factory(ReactComponent, isValidElement, ReactNoopUpdateQueue) {\n /**\n * Policies that describe methods in `ReactClassInterface`.\n */\n var injectedMixins = [];\n /**\n * Composite components are higher-level components that compose other composite\n * or host components.\n *\n * To create a new type of `ReactClass`, pass a specification of\n * your new class to `React.createClass`. The only requirement of your class\n * specification is that you implement a `render` method.\n *\n * var MyComponent = React.createClass({\n * render: function() {\n * return
Hello World
;\n * }\n * });\n *\n * The class specification supports a specific protocol of methods that have\n * special meaning (e.g. `render`). See `ReactClassInterface` for\n * more the comprehensive protocol. Any other properties and methods in the\n * class specification will be available on the prototype.\n *\n * @interface ReactClassInterface\n * @internal\n */\n\n var ReactClassInterface = {\n /**\n * An array of Mixin objects to include when defining your component.\n *\n * @type {array}\n * @optional\n */\n mixins: 'DEFINE_MANY',\n\n /**\n * An object containing properties and methods that should be defined on\n * the component's constructor instead of its prototype (static methods).\n *\n * @type {object}\n * @optional\n */\n statics: 'DEFINE_MANY',\n\n /**\n * Definition of prop types for this component.\n *\n * @type {object}\n * @optional\n */\n propTypes: 'DEFINE_MANY',\n\n /**\n * Definition of context types for this component.\n *\n * @type {object}\n * @optional\n */\n contextTypes: 'DEFINE_MANY',\n\n /**\n * Definition of context types this component sets for its children.\n *\n * @type {object}\n * @optional\n */\n childContextTypes: 'DEFINE_MANY',\n // ==== Definition methods ====\n\n /**\n * Invoked when the component is mounted. Values in the mapping will be set on\n * `this.props` if that prop is not specified (i.e. using an `in` check).\n *\n * This method is invoked before `getInitialState` and therefore cannot rely\n * on `this.state` or use `this.setState`.\n *\n * @return {object}\n * @optional\n */\n getDefaultProps: 'DEFINE_MANY_MERGED',\n\n /**\n * Invoked once before the component is mounted. The return value will be used\n * as the initial value of `this.state`.\n *\n * getInitialState: function() {\n * return {\n * isOn: false,\n * fooBaz: new BazFoo()\n * }\n * }\n *\n * @return {object}\n * @optional\n */\n getInitialState: 'DEFINE_MANY_MERGED',\n\n /**\n * @return {object}\n * @optional\n */\n getChildContext: 'DEFINE_MANY_MERGED',\n\n /**\n * Uses props from `this.props` and state from `this.state` to render the\n * structure of the component.\n *\n * No guarantees are made about when or how often this method is invoked, so\n * it must not have side effects.\n *\n * render: function() {\n * var name = this.props.name;\n * return
Hello, {name}!
;\n * }\n *\n * @return {ReactComponent}\n * @required\n */\n render: 'DEFINE_ONCE',\n // ==== Delegate methods ====\n\n /**\n * Invoked when the component is initially created and about to be mounted.\n * This may have side effects, but any external subscriptions or data created\n * by this method must be cleaned up in `componentWillUnmount`.\n *\n * @optional\n */\n componentWillMount: 'DEFINE_MANY',\n\n /**\n * Invoked when the component has been mounted and has a DOM representation.\n * However, there is no guarantee that the DOM node is in the document.\n *\n * Use this as an opportunity to operate on the DOM when the component has\n * been mounted (initialized and rendered) for the first time.\n *\n * @param {DOMElement} rootNode DOM element representing the component.\n * @optional\n */\n componentDidMount: 'DEFINE_MANY',\n\n /**\n * Invoked before the component receives new props.\n *\n * Use this as an opportunity to react to a prop transition by updating the\n * state using `this.setState`. Current props are accessed via `this.props`.\n *\n * componentWillReceiveProps: function(nextProps, nextContext) {\n * this.setState({\n * likesIncreasing: nextProps.likeCount > this.props.likeCount\n * });\n * }\n *\n * NOTE: There is no equivalent `componentWillReceiveState`. An incoming prop\n * transition may cause a state change, but the opposite is not true. If you\n * need it, you are probably looking for `componentWillUpdate`.\n *\n * @param {object} nextProps\n * @optional\n */\n componentWillReceiveProps: 'DEFINE_MANY',\n\n /**\n * Invoked while deciding if the component should be updated as a result of\n * receiving new props, state and/or context.\n *\n * Use this as an opportunity to `return false` when you're certain that the\n * transition to the new props/state/context will not require a component\n * update.\n *\n * shouldComponentUpdate: function(nextProps, nextState, nextContext) {\n * return !equal(nextProps, this.props) ||\n * !equal(nextState, this.state) ||\n * !equal(nextContext, this.context);\n * }\n *\n * @param {object} nextProps\n * @param {?object} nextState\n * @param {?object} nextContext\n * @return {boolean} True if the component should update.\n * @optional\n */\n shouldComponentUpdate: 'DEFINE_ONCE',\n\n /**\n * Invoked when the component is about to update due to a transition from\n * `this.props`, `this.state` and `this.context` to `nextProps`, `nextState`\n * and `nextContext`.\n *\n * Use this as an opportunity to perform preparation before an update occurs.\n *\n * NOTE: You **cannot** use `this.setState()` in this method.\n *\n * @param {object} nextProps\n * @param {?object} nextState\n * @param {?object} nextContext\n * @param {ReactReconcileTransaction} transaction\n * @optional\n */\n componentWillUpdate: 'DEFINE_MANY',\n\n /**\n * Invoked when the component's DOM representation has been updated.\n *\n * Use this as an opportunity to operate on the DOM when the component has\n * been updated.\n *\n * @param {object} prevProps\n * @param {?object} prevState\n * @param {?object} prevContext\n * @param {DOMElement} rootNode DOM element representing the component.\n * @optional\n */\n componentDidUpdate: 'DEFINE_MANY',\n\n /**\n * Invoked when the component is about to be removed from its parent and have\n * its DOM representation destroyed.\n *\n * Use this as an opportunity to deallocate any external resources.\n *\n * NOTE: There is no `componentDidUnmount` since your component will have been\n * destroyed by that point.\n *\n * @optional\n */\n componentWillUnmount: 'DEFINE_MANY',\n\n /**\n * Replacement for (deprecated) `componentWillMount`.\n *\n * @optional\n */\n UNSAFE_componentWillMount: 'DEFINE_MANY',\n\n /**\n * Replacement for (deprecated) `componentWillReceiveProps`.\n *\n * @optional\n */\n UNSAFE_componentWillReceiveProps: 'DEFINE_MANY',\n\n /**\n * Replacement for (deprecated) `componentWillUpdate`.\n *\n * @optional\n */\n UNSAFE_componentWillUpdate: 'DEFINE_MANY',\n // ==== Advanced methods ====\n\n /**\n * Updates the component's currently mounted DOM representation.\n *\n * By default, this implements React's rendering and reconciliation algorithm.\n * Sophisticated clients may wish to override this.\n *\n * @param {ReactReconcileTransaction} transaction\n * @internal\n * @overridable\n */\n updateComponent: 'OVERRIDE_BASE'\n };\n /**\n * Similar to ReactClassInterface but for static methods.\n */\n\n var ReactClassStaticInterface = {\n /**\n * This method is invoked after a component is instantiated and when it\n * receives new props. Return an object to update state in response to\n * prop changes. Return null to indicate no change to state.\n *\n * If an object is returned, its keys will be merged into the existing state.\n *\n * @return {object || null}\n * @optional\n */\n getDerivedStateFromProps: 'DEFINE_MANY_MERGED'\n };\n /**\n * Mapping from class specification keys to special processing functions.\n *\n * Although these are declared like instance properties in the specification\n * when defining classes using `React.createClass`, they are actually static\n * and are accessible on the constructor instead of the prototype. Despite\n * being static, they must be defined outside of the \"statics\" key under\n * which all other static methods are defined.\n */\n\n var RESERVED_SPEC_KEYS = {\n displayName: function displayName(Constructor, _displayName) {\n Constructor.displayName = _displayName;\n },\n mixins: function mixins(Constructor, _mixins) {\n if (_mixins) {\n for (var i = 0; i < _mixins.length; i++) {\n mixSpecIntoComponent(Constructor, _mixins[i]);\n }\n }\n },\n childContextTypes: function childContextTypes(Constructor, _childContextTypes) {\n if (process.env.NODE_ENV !== 'production') {\n validateTypeDef(Constructor, _childContextTypes, 'childContext');\n }\n\n Constructor.childContextTypes = _assign({}, Constructor.childContextTypes, _childContextTypes);\n },\n contextTypes: function contextTypes(Constructor, _contextTypes) {\n if (process.env.NODE_ENV !== 'production') {\n validateTypeDef(Constructor, _contextTypes, 'context');\n }\n\n Constructor.contextTypes = _assign({}, Constructor.contextTypes, _contextTypes);\n },\n\n /**\n * Special case getDefaultProps which should move into statics but requires\n * automatic merging.\n */\n getDefaultProps: function getDefaultProps(Constructor, _getDefaultProps) {\n if (Constructor.getDefaultProps) {\n Constructor.getDefaultProps = createMergedResultFunction(Constructor.getDefaultProps, _getDefaultProps);\n } else {\n Constructor.getDefaultProps = _getDefaultProps;\n }\n },\n propTypes: function propTypes(Constructor, _propTypes) {\n if (process.env.NODE_ENV !== 'production') {\n validateTypeDef(Constructor, _propTypes, 'prop');\n }\n\n Constructor.propTypes = _assign({}, Constructor.propTypes, _propTypes);\n },\n statics: function statics(Constructor, _statics) {\n mixStaticSpecIntoComponent(Constructor, _statics);\n },\n autobind: function autobind() {}\n };\n\n function validateTypeDef(Constructor, typeDef, location) {\n for (var propName in typeDef) {\n if (typeDef.hasOwnProperty(propName)) {\n // use a warning instead of an _invariant so components\n // don't show up in prod but only in __DEV__\n if (process.env.NODE_ENV !== 'production') {\n warning(typeof typeDef[propName] === 'function', '%s: %s type `%s` is invalid; it must be a function, usually from ' + 'React.PropTypes.', Constructor.displayName || 'ReactClass', ReactPropTypeLocationNames[location], propName);\n }\n }\n }\n }\n\n function validateMethodOverride(isAlreadyDefined, name) {\n var specPolicy = ReactClassInterface.hasOwnProperty(name) ? ReactClassInterface[name] : null; // Disallow overriding of base class methods unless explicitly allowed.\n\n if (ReactClassMixin.hasOwnProperty(name)) {\n _invariant(specPolicy === 'OVERRIDE_BASE', 'ReactClassInterface: You are attempting to override ' + '`%s` from your class specification. Ensure that your method names ' + 'do not overlap with React methods.', name);\n } // Disallow defining methods more than once unless explicitly allowed.\n\n\n if (isAlreadyDefined) {\n _invariant(specPolicy === 'DEFINE_MANY' || specPolicy === 'DEFINE_MANY_MERGED', 'ReactClassInterface: You are attempting to define ' + '`%s` on your component more than once. This conflict may be due ' + 'to a mixin.', name);\n }\n }\n /**\n * Mixin helper which handles policy validation and reserved\n * specification keys when building React classes.\n */\n\n\n function mixSpecIntoComponent(Constructor, spec) {\n if (!spec) {\n if (process.env.NODE_ENV !== 'production') {\n var typeofSpec = typeof spec;\n var isMixinValid = typeofSpec === 'object' && spec !== null;\n\n if (process.env.NODE_ENV !== 'production') {\n warning(isMixinValid, \"%s: You're attempting to include a mixin that is either null \" + 'or not an object. Check the mixins included by the component, ' + 'as well as any mixins they include themselves. ' + 'Expected object but got %s.', Constructor.displayName || 'ReactClass', spec === null ? null : typeofSpec);\n }\n }\n\n return;\n }\n\n _invariant(typeof spec !== 'function', \"ReactClass: You're attempting to \" + 'use a component class or function as a mixin. Instead, just use a ' + 'regular object.');\n\n _invariant(!isValidElement(spec), \"ReactClass: You're attempting to \" + 'use a component as a mixin. Instead, just use a regular object.');\n\n var proto = Constructor.prototype;\n var autoBindPairs = proto.__reactAutoBindPairs; // By handling mixins before any other properties, we ensure the same\n // chaining order is applied to methods with DEFINE_MANY policy, whether\n // mixins are listed before or after these methods in the spec.\n\n if (spec.hasOwnProperty(MIXINS_KEY)) {\n RESERVED_SPEC_KEYS.mixins(Constructor, spec.mixins);\n }\n\n for (var name in spec) {\n if (!spec.hasOwnProperty(name)) {\n continue;\n }\n\n if (name === MIXINS_KEY) {\n // We have already handled mixins in a special case above.\n continue;\n }\n\n var property = spec[name];\n var isAlreadyDefined = proto.hasOwnProperty(name);\n validateMethodOverride(isAlreadyDefined, name);\n\n if (RESERVED_SPEC_KEYS.hasOwnProperty(name)) {\n RESERVED_SPEC_KEYS[name](Constructor, property);\n } else {\n // Setup methods on prototype:\n // The following member methods should not be automatically bound:\n // 1. Expected ReactClass methods (in the \"interface\").\n // 2. Overridden methods (that were mixed in).\n var isReactClassMethod = ReactClassInterface.hasOwnProperty(name);\n var isFunction = typeof property === 'function';\n var shouldAutoBind = isFunction && !isReactClassMethod && !isAlreadyDefined && spec.autobind !== false;\n\n if (shouldAutoBind) {\n autoBindPairs.push(name, property);\n proto[name] = property;\n } else {\n if (isAlreadyDefined) {\n var specPolicy = ReactClassInterface[name]; // These cases should already be caught by validateMethodOverride.\n\n _invariant(isReactClassMethod && (specPolicy === 'DEFINE_MANY_MERGED' || specPolicy === 'DEFINE_MANY'), 'ReactClass: Unexpected spec policy %s for key %s ' + 'when mixing in component specs.', specPolicy, name); // For methods which are defined more than once, call the existing\n // methods before calling the new property, merging if appropriate.\n\n\n if (specPolicy === 'DEFINE_MANY_MERGED') {\n proto[name] = createMergedResultFunction(proto[name], property);\n } else if (specPolicy === 'DEFINE_MANY') {\n proto[name] = createChainedFunction(proto[name], property);\n }\n } else {\n proto[name] = property;\n\n if (process.env.NODE_ENV !== 'production') {\n // Add verbose displayName to the function, which helps when looking\n // at profiling tools.\n if (typeof property === 'function' && spec.displayName) {\n proto[name].displayName = spec.displayName + '_' + name;\n }\n }\n }\n }\n }\n }\n }\n\n function mixStaticSpecIntoComponent(Constructor, statics) {\n if (!statics) {\n return;\n }\n\n for (var name in statics) {\n var property = statics[name];\n\n if (!statics.hasOwnProperty(name)) {\n continue;\n }\n\n var isReserved = (name in RESERVED_SPEC_KEYS);\n\n _invariant(!isReserved, 'ReactClass: You are attempting to define a reserved ' + 'property, `%s`, that shouldn\\'t be on the \"statics\" key. Define it ' + 'as an instance property instead; it will still be accessible on the ' + 'constructor.', name);\n\n var isAlreadyDefined = (name in Constructor);\n\n if (isAlreadyDefined) {\n var specPolicy = ReactClassStaticInterface.hasOwnProperty(name) ? ReactClassStaticInterface[name] : null;\n\n _invariant(specPolicy === 'DEFINE_MANY_MERGED', 'ReactClass: You are attempting to define ' + '`%s` on your component more than once. This conflict may be ' + 'due to a mixin.', name);\n\n Constructor[name] = createMergedResultFunction(Constructor[name], property);\n return;\n }\n\n Constructor[name] = property;\n }\n }\n /**\n * Merge two objects, but throw if both contain the same key.\n *\n * @param {object} one The first object, which is mutated.\n * @param {object} two The second object\n * @return {object} one after it has been mutated to contain everything in two.\n */\n\n\n function mergeIntoWithNoDuplicateKeys(one, two) {\n _invariant(one && two && typeof one === 'object' && typeof two === 'object', 'mergeIntoWithNoDuplicateKeys(): Cannot merge non-objects.');\n\n for (var key in two) {\n if (two.hasOwnProperty(key)) {\n _invariant(one[key] === undefined, 'mergeIntoWithNoDuplicateKeys(): ' + 'Tried to merge two objects with the same key: `%s`. This conflict ' + 'may be due to a mixin; in particular, this may be caused by two ' + 'getInitialState() or getDefaultProps() methods returning objects ' + 'with clashing keys.', key);\n\n one[key] = two[key];\n }\n }\n\n return one;\n }\n /**\n * Creates a function that invokes two functions and merges their return values.\n *\n * @param {function} one Function to invoke first.\n * @param {function} two Function to invoke second.\n * @return {function} Function that invokes the two argument functions.\n * @private\n */\n\n\n function createMergedResultFunction(one, two) {\n return function mergedResult() {\n var a = one.apply(this, arguments);\n var b = two.apply(this, arguments);\n\n if (a == null) {\n return b;\n } else if (b == null) {\n return a;\n }\n\n var c = {};\n mergeIntoWithNoDuplicateKeys(c, a);\n mergeIntoWithNoDuplicateKeys(c, b);\n return c;\n };\n }\n /**\n * Creates a function that invokes two functions and ignores their return vales.\n *\n * @param {function} one Function to invoke first.\n * @param {function} two Function to invoke second.\n * @return {function} Function that invokes the two argument functions.\n * @private\n */\n\n\n function createChainedFunction(one, two) {\n return function chainedFunction() {\n one.apply(this, arguments);\n two.apply(this, arguments);\n };\n }\n /**\n * Binds a method to the component.\n *\n * @param {object} component Component whose method is going to be bound.\n * @param {function} method Method to be bound.\n * @return {function} The bound method.\n */\n\n\n function bindAutoBindMethod(component, method) {\n var boundMethod = method.bind(component);\n\n if (process.env.NODE_ENV !== 'production') {\n boundMethod.__reactBoundContext = component;\n boundMethod.__reactBoundMethod = method;\n boundMethod.__reactBoundArguments = null;\n var componentName = component.constructor.displayName;\n var _bind = boundMethod.bind;\n\n boundMethod.bind = function (newThis) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n } // User is trying to bind() an autobound method; we effectively will\n // ignore the value of \"this\" that the user is trying to use, so\n // let's warn.\n\n\n if (newThis !== component && newThis !== null) {\n if (process.env.NODE_ENV !== 'production') {\n warning(false, 'bind(): React component methods may only be bound to the ' + 'component instance. See %s', componentName);\n }\n } else if (!args.length) {\n if (process.env.NODE_ENV !== 'production') {\n warning(false, 'bind(): You are binding a component method to the component. ' + 'React does this for you automatically in a high-performance ' + 'way, so you can safely remove this call. See %s', componentName);\n }\n\n return boundMethod;\n }\n\n var reboundMethod = _bind.apply(boundMethod, arguments);\n\n reboundMethod.__reactBoundContext = component;\n reboundMethod.__reactBoundMethod = method;\n reboundMethod.__reactBoundArguments = args;\n return reboundMethod;\n };\n }\n\n return boundMethod;\n }\n /**\n * Binds all auto-bound methods in a component.\n *\n * @param {object} component Component whose method is going to be bound.\n */\n\n\n function bindAutoBindMethods(component) {\n var pairs = component.__reactAutoBindPairs;\n\n for (var i = 0; i < pairs.length; i += 2) {\n var autoBindKey = pairs[i];\n var method = pairs[i + 1];\n component[autoBindKey] = bindAutoBindMethod(component, method);\n }\n }\n\n var IsMountedPreMixin = {\n componentDidMount: function componentDidMount() {\n this.__isMounted = true;\n }\n };\n var IsMountedPostMixin = {\n componentWillUnmount: function componentWillUnmount() {\n this.__isMounted = false;\n }\n };\n /**\n * Add more to the ReactClass base class. These are all legacy features and\n * therefore not already part of the modern ReactComponent.\n */\n\n var ReactClassMixin = {\n /**\n * TODO: This will be deprecated because state should always keep a consistent\n * type signature and the only use case for this, is to avoid that.\n */\n replaceState: function replaceState(newState, callback) {\n this.updater.enqueueReplaceState(this, newState, callback);\n },\n\n /**\n * Checks whether or not this composite component is mounted.\n * @return {boolean} True if mounted, false otherwise.\n * @protected\n * @final\n */\n isMounted: function isMounted() {\n if (process.env.NODE_ENV !== 'production') {\n warning(this.__didWarnIsMounted, '%s: isMounted is deprecated. Instead, make sure to clean up ' + 'subscriptions and pending requests in componentWillUnmount to ' + 'prevent memory leaks.', this.constructor && this.constructor.displayName || this.name || 'Component');\n this.__didWarnIsMounted = true;\n }\n\n return !!this.__isMounted;\n }\n };\n\n var ReactClassComponent = function ReactClassComponent() {};\n\n _assign(ReactClassComponent.prototype, ReactComponent.prototype, ReactClassMixin);\n /**\n * Creates a composite component class given a class specification.\n * See https://facebook.github.io/react/docs/top-level-api.html#react.createclass\n *\n * @param {object} spec Class specification (which must define `render`).\n * @return {function} Component constructor function.\n * @public\n */\n\n\n function createClass(spec) {\n // To keep our warnings more understandable, we'll use a little hack here to\n // ensure that Constructor.name !== 'Constructor'. This makes sure we don't\n // unnecessarily identify a class without displayName as 'Constructor'.\n var Constructor = identity(function (props, context, updater) {\n // This constructor gets overridden by mocks. The argument is used\n // by mocks to assert on what gets mounted.\n if (process.env.NODE_ENV !== 'production') {\n warning(this instanceof Constructor, 'Something is calling a React component directly. Use a factory or ' + 'JSX instead. See: https://fb.me/react-legacyfactory');\n } // Wire up auto-binding\n\n\n if (this.__reactAutoBindPairs.length) {\n bindAutoBindMethods(this);\n }\n\n this.props = props;\n this.context = context;\n this.refs = emptyObject;\n this.updater = updater || ReactNoopUpdateQueue;\n this.state = null; // ReactClasses doesn't have constructors. Instead, they use the\n // getInitialState and componentWillMount methods for initialization.\n\n var initialState = this.getInitialState ? this.getInitialState() : null;\n\n if (process.env.NODE_ENV !== 'production') {\n // We allow auto-mocks to proceed as if they're returning null.\n if (initialState === undefined && this.getInitialState._isMockFunction) {\n // This is probably bad practice. Consider warning here and\n // deprecating this convenience.\n initialState = null;\n }\n }\n\n _invariant(typeof initialState === 'object' && !Array.isArray(initialState), '%s.getInitialState(): must return an object or null', Constructor.displayName || 'ReactCompositeComponent');\n\n this.state = initialState;\n });\n Constructor.prototype = new ReactClassComponent();\n Constructor.prototype.constructor = Constructor;\n Constructor.prototype.__reactAutoBindPairs = [];\n injectedMixins.forEach(mixSpecIntoComponent.bind(null, Constructor));\n mixSpecIntoComponent(Constructor, IsMountedPreMixin);\n mixSpecIntoComponent(Constructor, spec);\n mixSpecIntoComponent(Constructor, IsMountedPostMixin); // Initialize the defaultProps property after all mixins have been merged.\n\n if (Constructor.getDefaultProps) {\n Constructor.defaultProps = Constructor.getDefaultProps();\n }\n\n if (process.env.NODE_ENV !== 'production') {\n // This is a tag to indicate that the use of these method names is ok,\n // since it's used with createClass. If it's not, then it's likely a\n // mistake so we'll warn you to use the static property, property\n // initializer or constructor respectively.\n if (Constructor.getDefaultProps) {\n Constructor.getDefaultProps.isReactClassApproved = {};\n }\n\n if (Constructor.prototype.getInitialState) {\n Constructor.prototype.getInitialState.isReactClassApproved = {};\n }\n }\n\n _invariant(Constructor.prototype.render, 'createClass(...): Class specification must implement a `render` method.');\n\n if (process.env.NODE_ENV !== 'production') {\n warning(!Constructor.prototype.componentShouldUpdate, '%s has a method called ' + 'componentShouldUpdate(). Did you mean shouldComponentUpdate()? ' + 'The name is phrased as a question because the function is ' + 'expected to return a value.', spec.displayName || 'A component');\n warning(!Constructor.prototype.componentWillRecieveProps, '%s has a method called ' + 'componentWillRecieveProps(). Did you mean componentWillReceiveProps()?', spec.displayName || 'A component');\n warning(!Constructor.prototype.UNSAFE_componentWillRecieveProps, '%s has a method called UNSAFE_componentWillRecieveProps(). ' + 'Did you mean UNSAFE_componentWillReceiveProps()?', spec.displayName || 'A component');\n } // Reduce time spent doing lookups by setting these on the prototype.\n\n\n for (var methodName in ReactClassInterface) {\n if (!Constructor.prototype[methodName]) {\n Constructor.prototype[methodName] = null;\n }\n }\n\n return Constructor;\n }\n\n return createClass;\n}\n\nmodule.exports = factory;","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n'use strict';\n\nvar React = require('react');\n\nvar factory = require('./factory');\n\nif (typeof React === 'undefined') {\n throw Error('create-react-class could not find the React object. If you are using script tags, ' + 'make sure that React is being loaded before create-react-class.');\n} // Hack to grab NoopUpdateQueue from isomorphic React\n\n\nvar ReactNoopUpdateQueue = new React.Component().updater;\nmodule.exports = factory(React.Component, React.isValidElement, ReactNoopUpdateQueue);","/**\n * matchesSelector v2.0.2\n * matchesSelector( element, '.selector' )\n * MIT license\n */\n\n/*jshint browser: true, strict: true, undef: true, unused: true */\n(function (window, factory) {\n /*global define: false, module: false */\n 'use strict'; // universal module definition\n\n if (typeof define == 'function' && define.amd) {\n // AMD\n define(factory);\n } else if (typeof module == 'object' && module.exports) {\n // CommonJS\n module.exports = factory();\n } else {\n // browser global\n window.matchesSelector = factory();\n }\n})(window, function factory() {\n 'use strict';\n\n var matchesMethod = function () {\n var ElemProto = window.Element.prototype; // check for the standard method name first\n\n if (ElemProto.matches) {\n return 'matches';\n } // check un-prefixed\n\n\n if (ElemProto.matchesSelector) {\n return 'matchesSelector';\n } // check vendor prefixes\n\n\n var prefixes = ['webkit', 'moz', 'ms', 'o'];\n\n for (var i = 0; i < prefixes.length; i++) {\n var prefix = prefixes[i];\n var method = prefix + 'MatchesSelector';\n\n if (ElemProto[method]) {\n return method;\n }\n }\n }();\n\n return function matchesSelector(elem, selector) {\n return elem[matchesMethod](selector);\n };\n});","\"use strict\";\n\nvar detector = module.exports = {};\n\ndetector.isIE = function (version) {\n function isAnyIeVersion() {\n var agent = navigator.userAgent.toLowerCase();\n return agent.indexOf(\"msie\") !== -1 || agent.indexOf(\"trident\") !== -1 || agent.indexOf(\" edge/\") !== -1;\n }\n\n if (!isAnyIeVersion()) {\n return false;\n }\n\n if (!version) {\n return true;\n } //Shamelessly stolen from https://gist.github.com/padolsey/527683\n\n\n var ieVersion = function () {\n var undef,\n v = 3,\n div = document.createElement(\"div\"),\n all = div.getElementsByTagName(\"i\");\n\n do {\n div.innerHTML = \"\";\n } while (all[0]);\n\n return v > 4 ? v : undef;\n }();\n\n return version === ieVersion;\n};\n\ndetector.isLegacyOpera = function () {\n return !!window.opera;\n};","\"use strict\";\n\nvar utils = module.exports = {};\n/**\n * Loops through the collection and calls the callback for each element. if the callback returns truthy, the loop is broken and returns the same value.\n * @public\n * @param {*} collection The collection to loop through. Needs to have a length property set and have indices set from 0 to length - 1.\n * @param {function} callback The callback to be called for each element. The element will be given as a parameter to the callback. If this callback returns truthy, the loop is broken and the same value is returned.\n * @returns {*} The value that a callback has returned (if truthy). Otherwise nothing.\n */\n\nutils.forEach = function (collection, callback) {\n for (var i = 0; i < collection.length; i++) {\n var result = callback(collection[i]);\n\n if (result) {\n return result;\n }\n }\n};","/**\n * Resize detection strategy that injects objects to elements in order to detect resize events.\n * Heavily inspired by: http://www.backalleycoder.com/2013/03/18/cross-browser-event-based-element-resize-detection/\n */\n\"use strict\";\n\nvar browserDetector = require(\"../browser-detector\");\n\nmodule.exports = function (options) {\n options = options || {};\n var reporter = options.reporter;\n var batchProcessor = options.batchProcessor;\n var getState = options.stateHandler.getState;\n\n if (!reporter) {\n throw new Error(\"Missing required dependency: reporter.\");\n }\n /**\n * Adds a resize event listener to the element.\n * @public\n * @param {element} element The element that should have the listener added.\n * @param {function} listener The listener callback to be called for each resize event of the element. The element will be given as a parameter to the listener callback.\n */\n\n\n function addListener(element, listener) {\n function listenerProxy() {\n listener(element);\n }\n\n if (browserDetector.isIE(8)) {\n //IE 8 does not support object, but supports the resize event directly on elements.\n getState(element).object = {\n proxy: listenerProxy\n };\n element.attachEvent(\"onresize\", listenerProxy);\n } else {\n var object = getObject(element);\n\n if (!object) {\n throw new Error(\"Element is not detectable by this strategy.\");\n }\n\n object.contentDocument.defaultView.addEventListener(\"resize\", listenerProxy);\n }\n }\n\n function buildCssTextString(rules) {\n var seperator = options.important ? \" !important; \" : \"; \";\n return (rules.join(seperator) + seperator).trim();\n }\n /**\n * Makes an element detectable and ready to be listened for resize events. Will call the callback when the element is ready to be listened for resize changes.\n * @private\n * @param {object} options Optional options object.\n * @param {element} element The element to make detectable\n * @param {function} callback The callback to be called when the element is ready to be listened for resize changes. Will be called with the element as first parameter.\n */\n\n\n function makeDetectable(options, element, callback) {\n if (!callback) {\n callback = element;\n element = options;\n options = null;\n }\n\n options = options || {};\n var debug = options.debug;\n\n function injectObject(element, callback) {\n var OBJECT_STYLE = buildCssTextString([\"display: block\", \"position: absolute\", \"top: 0\", \"left: 0\", \"width: 100%\", \"height: 100%\", \"border: none\", \"padding: 0\", \"margin: 0\", \"opacity: 0\", \"z-index: -1000\", \"pointer-events: none\"]); //The target element needs to be positioned (everything except static) so the absolute positioned object will be positioned relative to the target element.\n // Position altering may be performed directly or on object load, depending on if style resolution is possible directly or not.\n\n var positionCheckPerformed = false; // The element may not yet be attached to the DOM, and therefore the style object may be empty in some browsers.\n // Since the style object is a reference, it will be updated as soon as the element is attached to the DOM.\n\n var style = window.getComputedStyle(element);\n var width = element.offsetWidth;\n var height = element.offsetHeight;\n getState(element).startSize = {\n width: width,\n height: height\n };\n\n function mutateDom() {\n function alterPositionStyles() {\n if (style.position === \"static\") {\n element.style.setProperty(\"position\", \"relative\", options.important ? \"important\" : \"\");\n\n var removeRelativeStyles = function removeRelativeStyles(reporter, element, style, property) {\n function getNumericalValue(value) {\n return value.replace(/[^-\\d\\.]/g, \"\");\n }\n\n var value = style[property];\n\n if (value !== \"auto\" && getNumericalValue(value) !== \"0\") {\n reporter.warn(\"An element that is positioned static has style.\" + property + \"=\" + value + \" which is ignored due to the static positioning. The element will need to be positioned relative, so the style.\" + property + \" will be set to 0. Element: \", element);\n element.style.setProperty(property, \"0\", options.important ? \"important\" : \"\");\n }\n }; //Check so that there are no accidental styles that will make the element styled differently now that is is relative.\n //If there are any, set them to 0 (this should be okay with the user since the style properties did nothing before [since the element was positioned static] anyway).\n\n\n removeRelativeStyles(reporter, element, style, \"top\");\n removeRelativeStyles(reporter, element, style, \"right\");\n removeRelativeStyles(reporter, element, style, \"bottom\");\n removeRelativeStyles(reporter, element, style, \"left\");\n }\n }\n\n function onObjectLoad() {\n // The object has been loaded, which means that the element now is guaranteed to be attached to the DOM.\n if (!positionCheckPerformed) {\n alterPositionStyles();\n }\n /*jshint validthis: true */\n\n\n function getDocument(element, callback) {\n //Opera 12 seem to call the object.onload before the actual document has been created.\n //So if it is not present, poll it with an timeout until it is present.\n //TODO: Could maybe be handled better with object.onreadystatechange or similar.\n if (!element.contentDocument) {\n var state = getState(element);\n\n if (state.checkForObjectDocumentTimeoutId) {\n window.clearTimeout(state.checkForObjectDocumentTimeoutId);\n }\n\n state.checkForObjectDocumentTimeoutId = setTimeout(function checkForObjectDocument() {\n state.checkForObjectDocumentTimeoutId = 0;\n getDocument(element, callback);\n }, 100);\n return;\n }\n\n callback(element.contentDocument);\n } //Mutating the object element here seems to fire another load event.\n //Mutating the inner document of the object element is fine though.\n\n\n var objectElement = this; //Create the style element to be added to the object.\n\n getDocument(objectElement, function onObjectDocumentReady(objectDocument) {\n //Notify that the element is ready to be listened to.\n callback(element);\n });\n } // The element may be detached from the DOM, and some browsers does not support style resolving of detached elements.\n // The alterPositionStyles needs to be delayed until we know the element has been attached to the DOM (which we are sure of when the onObjectLoad has been fired), if style resolution is not possible.\n\n\n if (style.position !== \"\") {\n alterPositionStyles(style);\n positionCheckPerformed = true;\n } //Add an object element as a child to the target element that will be listened to for resize events.\n\n\n var object = document.createElement(\"object\");\n object.style.cssText = OBJECT_STYLE;\n object.tabIndex = -1;\n object.type = \"text/html\";\n object.setAttribute(\"aria-hidden\", \"true\");\n object.onload = onObjectLoad; //Safari: This must occur before adding the object to the DOM.\n //IE: Does not like that this happens before, even if it is also added after.\n\n if (!browserDetector.isIE()) {\n object.data = \"about:blank\";\n }\n\n if (!getState(element)) {\n // The element has been uninstalled before the actual loading happened.\n return;\n }\n\n element.appendChild(object);\n getState(element).object = object; //IE: This must occur after adding the object to the DOM.\n\n if (browserDetector.isIE()) {\n object.data = \"about:blank\";\n }\n }\n\n if (batchProcessor) {\n batchProcessor.add(mutateDom);\n } else {\n mutateDom();\n }\n }\n\n if (browserDetector.isIE(8)) {\n //IE 8 does not support objects properly. Luckily they do support the resize event.\n //So do not inject the object and notify that the element is already ready to be listened to.\n //The event handler for the resize event is attached in the utils.addListener instead.\n callback(element);\n } else {\n injectObject(element, callback);\n }\n }\n /**\n * Returns the child object of the target element.\n * @private\n * @param {element} element The target element.\n * @returns The object element of the target.\n */\n\n\n function getObject(element) {\n return getState(element).object;\n }\n\n function uninstall(element) {\n if (!getState(element)) {\n return;\n }\n\n var object = getObject(element);\n\n if (!object) {\n return;\n }\n\n if (browserDetector.isIE(8)) {\n element.detachEvent(\"onresize\", object.proxy);\n } else {\n element.removeChild(object);\n }\n\n if (getState(element).checkForObjectDocumentTimeoutId) {\n window.clearTimeout(getState(element).checkForObjectDocumentTimeoutId);\n }\n\n delete getState(element).object;\n }\n\n return {\n makeDetectable: makeDetectable,\n addListener: addListener,\n uninstall: uninstall\n };\n};","/**\n * Resize detection strategy that injects divs to elements in order to detect resize events on scroll events.\n * Heavily inspired by: https://github.com/marcj/css-element-queries/blob/master/src/ResizeSensor.js\n */\n\"use strict\";\n\nvar forEach = require(\"../collection-utils\").forEach;\n\nmodule.exports = function (options) {\n options = options || {};\n var reporter = options.reporter;\n var batchProcessor = options.batchProcessor;\n var getState = options.stateHandler.getState;\n var hasState = options.stateHandler.hasState;\n var idHandler = options.idHandler;\n\n if (!batchProcessor) {\n throw new Error(\"Missing required dependency: batchProcessor\");\n }\n\n if (!reporter) {\n throw new Error(\"Missing required dependency: reporter.\");\n } //TODO: Could this perhaps be done at installation time?\n\n\n var scrollbarSizes = getScrollbarSizes();\n var styleId = \"erd_scroll_detection_scrollbar_style\";\n var detectionContainerClass = \"erd_scroll_detection_container\";\n\n function initDocument(targetDocument) {\n // Inject the scrollbar styling that prevents them from appearing sometimes in Chrome.\n // The injected container needs to have a class, so that it may be styled with CSS (pseudo elements).\n injectScrollStyle(targetDocument, styleId, detectionContainerClass);\n }\n\n initDocument(window.document);\n\n function buildCssTextString(rules) {\n var seperator = options.important ? \" !important; \" : \"; \";\n return (rules.join(seperator) + seperator).trim();\n }\n\n function getScrollbarSizes() {\n var width = 500;\n var height = 500;\n var child = document.createElement(\"div\");\n child.style.cssText = buildCssTextString([\"position: absolute\", \"width: \" + width * 2 + \"px\", \"height: \" + height * 2 + \"px\", \"visibility: hidden\", \"margin: 0\", \"padding: 0\"]);\n var container = document.createElement(\"div\");\n container.style.cssText = buildCssTextString([\"position: absolute\", \"width: \" + width + \"px\", \"height: \" + height + \"px\", \"overflow: scroll\", \"visibility: none\", \"top: \" + -width * 3 + \"px\", \"left: \" + -height * 3 + \"px\", \"visibility: hidden\", \"margin: 0\", \"padding: 0\"]);\n container.appendChild(child);\n document.body.insertBefore(container, document.body.firstChild);\n var widthSize = width - container.clientWidth;\n var heightSize = height - container.clientHeight;\n document.body.removeChild(container);\n return {\n width: widthSize,\n height: heightSize\n };\n }\n\n function injectScrollStyle(targetDocument, styleId, containerClass) {\n function injectStyle(style, method) {\n method = method || function (element) {\n targetDocument.head.appendChild(element);\n };\n\n var styleElement = targetDocument.createElement(\"style\");\n styleElement.innerHTML = style;\n styleElement.id = styleId;\n method(styleElement);\n return styleElement;\n }\n\n if (!targetDocument.getElementById(styleId)) {\n var containerAnimationClass = containerClass + \"_animation\";\n var containerAnimationActiveClass = containerClass + \"_animation_active\";\n var style = \"/* Created by the element-resize-detector library. */\\n\";\n style += \".\" + containerClass + \" > div::-webkit-scrollbar { \" + buildCssTextString([\"display: none\"]) + \" }\\n\\n\";\n style += \".\" + containerAnimationActiveClass + \" { \" + buildCssTextString([\"-webkit-animation-duration: 0.1s\", \"animation-duration: 0.1s\", \"-webkit-animation-name: \" + containerAnimationClass, \"animation-name: \" + containerAnimationClass]) + \" }\\n\";\n style += \"@-webkit-keyframes \" + containerAnimationClass + \" { 0% { opacity: 1; } 50% { opacity: 0; } 100% { opacity: 1; } }\\n\";\n style += \"@keyframes \" + containerAnimationClass + \" { 0% { opacity: 1; } 50% { opacity: 0; } 100% { opacity: 1; } }\";\n injectStyle(style);\n }\n }\n\n function addAnimationClass(element) {\n element.className += \" \" + detectionContainerClass + \"_animation_active\";\n }\n\n function addEvent(el, name, cb) {\n if (el.addEventListener) {\n el.addEventListener(name, cb);\n } else if (el.attachEvent) {\n el.attachEvent(\"on\" + name, cb);\n } else {\n return reporter.error(\"[scroll] Don't know how to add event listeners.\");\n }\n }\n\n function removeEvent(el, name, cb) {\n if (el.removeEventListener) {\n el.removeEventListener(name, cb);\n } else if (el.detachEvent) {\n el.detachEvent(\"on\" + name, cb);\n } else {\n return reporter.error(\"[scroll] Don't know how to remove event listeners.\");\n }\n }\n\n function getExpandElement(element) {\n return getState(element).container.childNodes[0].childNodes[0].childNodes[0];\n }\n\n function getShrinkElement(element) {\n return getState(element).container.childNodes[0].childNodes[0].childNodes[1];\n }\n /**\n * Adds a resize event listener to the element.\n * @public\n * @param {element} element The element that should have the listener added.\n * @param {function} listener The listener callback to be called for each resize event of the element. The element will be given as a parameter to the listener callback.\n */\n\n\n function addListener(element, listener) {\n var listeners = getState(element).listeners;\n\n if (!listeners.push) {\n throw new Error(\"Cannot add listener to an element that is not detectable.\");\n }\n\n getState(element).listeners.push(listener);\n }\n /**\n * Makes an element detectable and ready to be listened for resize events. Will call the callback when the element is ready to be listened for resize changes.\n * @private\n * @param {object} options Optional options object.\n * @param {element} element The element to make detectable\n * @param {function} callback The callback to be called when the element is ready to be listened for resize changes. Will be called with the element as first parameter.\n */\n\n\n function makeDetectable(options, element, callback) {\n if (!callback) {\n callback = element;\n element = options;\n options = null;\n }\n\n options = options || {};\n\n function debug() {\n if (options.debug) {\n var args = Array.prototype.slice.call(arguments);\n args.unshift(idHandler.get(element), \"Scroll: \");\n\n if (reporter.log.apply) {\n reporter.log.apply(null, args);\n } else {\n for (var i = 0; i < args.length; i++) {\n reporter.log(args[i]);\n }\n }\n }\n }\n\n function isDetached(element) {\n function isInDocument(element) {\n var isInShadowRoot = element.getRootNode && element.getRootNode().contains(element);\n return element === element.ownerDocument.body || element.ownerDocument.body.contains(element) || isInShadowRoot;\n }\n\n if (!isInDocument(element)) {\n return true;\n } // FireFox returns null style in hidden iframes. See https://github.com/wnr/element-resize-detector/issues/68 and https://bugzilla.mozilla.org/show_bug.cgi?id=795520\n\n\n if (window.getComputedStyle(element) === null) {\n return true;\n }\n\n return false;\n }\n\n function isUnrendered(element) {\n // Check the absolute positioned container since the top level container is display: inline.\n var container = getState(element).container.childNodes[0];\n var style = window.getComputedStyle(container);\n return !style.width || style.width.indexOf(\"px\") === -1; //Can only compute pixel value when rendered.\n }\n\n function getStyle() {\n // Some browsers only force layouts when actually reading the style properties of the style object, so make sure that they are all read here,\n // so that the user of the function can be sure that it will perform the layout here, instead of later (important for batching).\n var elementStyle = window.getComputedStyle(element);\n var style = {};\n style.position = elementStyle.position;\n style.width = element.offsetWidth;\n style.height = element.offsetHeight;\n style.top = elementStyle.top;\n style.right = elementStyle.right;\n style.bottom = elementStyle.bottom;\n style.left = elementStyle.left;\n style.widthCSS = elementStyle.width;\n style.heightCSS = elementStyle.height;\n return style;\n }\n\n function storeStartSize() {\n var style = getStyle();\n getState(element).startSize = {\n width: style.width,\n height: style.height\n };\n debug(\"Element start size\", getState(element).startSize);\n }\n\n function initListeners() {\n getState(element).listeners = [];\n }\n\n function storeStyle() {\n debug(\"storeStyle invoked.\");\n\n if (!getState(element)) {\n debug(\"Aborting because element has been uninstalled\");\n return;\n }\n\n var style = getStyle();\n getState(element).style = style;\n }\n\n function storeCurrentSize(element, width, height) {\n getState(element).lastWidth = width;\n getState(element).lastHeight = height;\n }\n\n function getExpandChildElement(element) {\n return getExpandElement(element).childNodes[0];\n }\n\n function getWidthOffset() {\n return 2 * scrollbarSizes.width + 1;\n }\n\n function getHeightOffset() {\n return 2 * scrollbarSizes.height + 1;\n }\n\n function getExpandWidth(width) {\n return width + 10 + getWidthOffset();\n }\n\n function getExpandHeight(height) {\n return height + 10 + getHeightOffset();\n }\n\n function getShrinkWidth(width) {\n return width * 2 + getWidthOffset();\n }\n\n function getShrinkHeight(height) {\n return height * 2 + getHeightOffset();\n }\n\n function positionScrollbars(element, width, height) {\n var expand = getExpandElement(element);\n var shrink = getShrinkElement(element);\n var expandWidth = getExpandWidth(width);\n var expandHeight = getExpandHeight(height);\n var shrinkWidth = getShrinkWidth(width);\n var shrinkHeight = getShrinkHeight(height);\n expand.scrollLeft = expandWidth;\n expand.scrollTop = expandHeight;\n shrink.scrollLeft = shrinkWidth;\n shrink.scrollTop = shrinkHeight;\n }\n\n function injectContainerElement() {\n var container = getState(element).container;\n\n if (!container) {\n container = document.createElement(\"div\");\n container.className = detectionContainerClass;\n container.style.cssText = buildCssTextString([\"visibility: hidden\", \"display: inline\", \"width: 0px\", \"height: 0px\", \"z-index: -1\", \"overflow: hidden\", \"margin: 0\", \"padding: 0\"]);\n getState(element).container = container;\n addAnimationClass(container);\n element.appendChild(container);\n\n var onAnimationStart = function onAnimationStart() {\n getState(element).onRendered && getState(element).onRendered();\n };\n\n addEvent(container, \"animationstart\", onAnimationStart); // Store the event handler here so that they may be removed when uninstall is called.\n // See uninstall function for an explanation why it is needed.\n\n getState(element).onAnimationStart = onAnimationStart;\n }\n\n return container;\n }\n\n function injectScrollElements() {\n function alterPositionStyles() {\n var style = getState(element).style;\n\n if (style.position === \"static\") {\n element.style.setProperty(\"position\", \"relative\", options.important ? \"important\" : \"\");\n\n var removeRelativeStyles = function removeRelativeStyles(reporter, element, style, property) {\n function getNumericalValue(value) {\n return value.replace(/[^-\\d\\.]/g, \"\");\n }\n\n var value = style[property];\n\n if (value !== \"auto\" && getNumericalValue(value) !== \"0\") {\n reporter.warn(\"An element that is positioned static has style.\" + property + \"=\" + value + \" which is ignored due to the static positioning. The element will need to be positioned relative, so the style.\" + property + \" will be set to 0. Element: \", element);\n element.style[property] = 0;\n }\n }; //Check so that there are no accidental styles that will make the element styled differently now that is is relative.\n //If there are any, set them to 0 (this should be okay with the user since the style properties did nothing before [since the element was positioned static] anyway).\n\n\n removeRelativeStyles(reporter, element, style, \"top\");\n removeRelativeStyles(reporter, element, style, \"right\");\n removeRelativeStyles(reporter, element, style, \"bottom\");\n removeRelativeStyles(reporter, element, style, \"left\");\n }\n }\n\n function getLeftTopBottomRightCssText(left, top, bottom, right) {\n left = !left ? \"0\" : left + \"px\";\n top = !top ? \"0\" : top + \"px\";\n bottom = !bottom ? \"0\" : bottom + \"px\";\n right = !right ? \"0\" : right + \"px\";\n return [\"left: \" + left, \"top: \" + top, \"right: \" + right, \"bottom: \" + bottom];\n }\n\n debug(\"Injecting elements\");\n\n if (!getState(element)) {\n debug(\"Aborting because element has been uninstalled\");\n return;\n }\n\n alterPositionStyles();\n var rootContainer = getState(element).container;\n\n if (!rootContainer) {\n rootContainer = injectContainerElement();\n } // Due to this WebKit bug https://bugs.webkit.org/show_bug.cgi?id=80808 (currently fixed in Blink, but still present in WebKit browsers such as Safari),\n // we need to inject two containers, one that is width/height 100% and another that is left/top -1px so that the final container always is 1x1 pixels bigger than\n // the targeted element.\n // When the bug is resolved, \"containerContainer\" may be removed.\n // The outer container can occasionally be less wide than the targeted when inside inline elements element in WebKit (see https://bugs.webkit.org/show_bug.cgi?id=152980).\n // This should be no problem since the inner container either way makes sure the injected scroll elements are at least 1x1 px.\n\n\n var scrollbarWidth = scrollbarSizes.width;\n var scrollbarHeight = scrollbarSizes.height;\n var containerContainerStyle = buildCssTextString([\"position: absolute\", \"flex: none\", \"overflow: hidden\", \"z-index: -1\", \"visibility: hidden\", \"width: 100%\", \"height: 100%\", \"left: 0px\", \"top: 0px\"]);\n var containerStyle = buildCssTextString([\"position: absolute\", \"flex: none\", \"overflow: hidden\", \"z-index: -1\", \"visibility: hidden\"].concat(getLeftTopBottomRightCssText(-(1 + scrollbarWidth), -(1 + scrollbarHeight), -scrollbarHeight, -scrollbarWidth)));\n var expandStyle = buildCssTextString([\"position: absolute\", \"flex: none\", \"overflow: scroll\", \"z-index: -1\", \"visibility: hidden\", \"width: 100%\", \"height: 100%\"]);\n var shrinkStyle = buildCssTextString([\"position: absolute\", \"flex: none\", \"overflow: scroll\", \"z-index: -1\", \"visibility: hidden\", \"width: 100%\", \"height: 100%\"]);\n var expandChildStyle = buildCssTextString([\"position: absolute\", \"left: 0\", \"top: 0\"]);\n var shrinkChildStyle = buildCssTextString([\"position: absolute\", \"width: 200%\", \"height: 200%\"]);\n var containerContainer = document.createElement(\"div\");\n var container = document.createElement(\"div\");\n var expand = document.createElement(\"div\");\n var expandChild = document.createElement(\"div\");\n var shrink = document.createElement(\"div\");\n var shrinkChild = document.createElement(\"div\"); // Some browsers choke on the resize system being rtl, so force it to ltr. https://github.com/wnr/element-resize-detector/issues/56\n // However, dir should not be set on the top level container as it alters the dimensions of the target element in some browsers.\n\n containerContainer.dir = \"ltr\";\n containerContainer.style.cssText = containerContainerStyle;\n containerContainer.className = detectionContainerClass;\n container.className = detectionContainerClass;\n container.style.cssText = containerStyle;\n expand.style.cssText = expandStyle;\n expandChild.style.cssText = expandChildStyle;\n shrink.style.cssText = shrinkStyle;\n shrinkChild.style.cssText = shrinkChildStyle;\n expand.appendChild(expandChild);\n shrink.appendChild(shrinkChild);\n container.appendChild(expand);\n container.appendChild(shrink);\n containerContainer.appendChild(container);\n rootContainer.appendChild(containerContainer);\n\n function onExpandScroll() {\n var state = getState(element);\n\n if (state && state.onExpand) {\n state.onExpand();\n } else {\n debug(\"Aborting expand scroll handler: element has been uninstalled\");\n }\n }\n\n function onShrinkScroll() {\n var state = getState(element);\n\n if (state && state.onShrink) {\n state.onShrink();\n } else {\n debug(\"Aborting shrink scroll handler: element has been uninstalled\");\n }\n }\n\n addEvent(expand, \"scroll\", onExpandScroll);\n addEvent(shrink, \"scroll\", onShrinkScroll); // Store the event handlers here so that they may be removed when uninstall is called.\n // See uninstall function for an explanation why it is needed.\n\n getState(element).onExpandScroll = onExpandScroll;\n getState(element).onShrinkScroll = onShrinkScroll;\n }\n\n function registerListenersAndPositionElements() {\n function updateChildSizes(element, width, height) {\n var expandChild = getExpandChildElement(element);\n var expandWidth = getExpandWidth(width);\n var expandHeight = getExpandHeight(height);\n expandChild.style.setProperty(\"width\", expandWidth + \"px\", options.important ? \"important\" : \"\");\n expandChild.style.setProperty(\"height\", expandHeight + \"px\", options.important ? \"important\" : \"\");\n }\n\n function updateDetectorElements(done) {\n var width = element.offsetWidth;\n var height = element.offsetHeight; // Check whether the size has actually changed since last time the algorithm ran. If not, some steps may be skipped.\n\n var sizeChanged = width !== getState(element).lastWidth || height !== getState(element).lastHeight;\n debug(\"Storing current size\", width, height); // Store the size of the element sync here, so that multiple scroll events may be ignored in the event listeners.\n // Otherwise the if-check in handleScroll is useless.\n\n storeCurrentSize(element, width, height); // Since we delay the processing of the batch, there is a risk that uninstall has been called before the batch gets to execute.\n // Since there is no way to cancel the fn executions, we need to add an uninstall guard to all fns of the batch.\n\n batchProcessor.add(0, function performUpdateChildSizes() {\n if (!sizeChanged) {\n return;\n }\n\n if (!getState(element)) {\n debug(\"Aborting because element has been uninstalled\");\n return;\n }\n\n if (!areElementsInjected()) {\n debug(\"Aborting because element container has not been initialized\");\n return;\n }\n\n if (options.debug) {\n var w = element.offsetWidth;\n var h = element.offsetHeight;\n\n if (w !== width || h !== height) {\n reporter.warn(idHandler.get(element), \"Scroll: Size changed before updating detector elements.\");\n }\n }\n\n updateChildSizes(element, width, height);\n });\n batchProcessor.add(1, function updateScrollbars() {\n // This function needs to be invoked event though the size is unchanged. The element could have been resized very quickly and then\n // been restored to the original size, which will have changed the scrollbar positions.\n if (!getState(element)) {\n debug(\"Aborting because element has been uninstalled\");\n return;\n }\n\n if (!areElementsInjected()) {\n debug(\"Aborting because element container has not been initialized\");\n return;\n }\n\n positionScrollbars(element, width, height);\n });\n\n if (sizeChanged && done) {\n batchProcessor.add(2, function () {\n if (!getState(element)) {\n debug(\"Aborting because element has been uninstalled\");\n return;\n }\n\n if (!areElementsInjected()) {\n debug(\"Aborting because element container has not been initialized\");\n return;\n }\n\n done();\n });\n }\n }\n\n function areElementsInjected() {\n return !!getState(element).container;\n }\n\n function notifyListenersIfNeeded() {\n function isFirstNotify() {\n return getState(element).lastNotifiedWidth === undefined;\n }\n\n debug(\"notifyListenersIfNeeded invoked\");\n var state = getState(element); // Don't notify if the current size is the start size, and this is the first notification.\n\n if (isFirstNotify() && state.lastWidth === state.startSize.width && state.lastHeight === state.startSize.height) {\n return debug(\"Not notifying: Size is the same as the start size, and there has been no notification yet.\");\n } // Don't notify if the size already has been notified.\n\n\n if (state.lastWidth === state.lastNotifiedWidth && state.lastHeight === state.lastNotifiedHeight) {\n return debug(\"Not notifying: Size already notified\");\n }\n\n debug(\"Current size not notified, notifying...\");\n state.lastNotifiedWidth = state.lastWidth;\n state.lastNotifiedHeight = state.lastHeight;\n forEach(getState(element).listeners, function (listener) {\n listener(element);\n });\n }\n\n function handleRender() {\n debug(\"startanimation triggered.\");\n\n if (isUnrendered(element)) {\n debug(\"Ignoring since element is still unrendered...\");\n return;\n }\n\n debug(\"Element rendered.\");\n var expand = getExpandElement(element);\n var shrink = getShrinkElement(element);\n\n if (expand.scrollLeft === 0 || expand.scrollTop === 0 || shrink.scrollLeft === 0 || shrink.scrollTop === 0) {\n debug(\"Scrollbars out of sync. Updating detector elements...\");\n updateDetectorElements(notifyListenersIfNeeded);\n }\n }\n\n function handleScroll() {\n debug(\"Scroll detected.\");\n\n if (isUnrendered(element)) {\n // Element is still unrendered. Skip this scroll event.\n debug(\"Scroll event fired while unrendered. Ignoring...\");\n return;\n }\n\n updateDetectorElements(notifyListenersIfNeeded);\n }\n\n debug(\"registerListenersAndPositionElements invoked.\");\n\n if (!getState(element)) {\n debug(\"Aborting because element has been uninstalled\");\n return;\n }\n\n getState(element).onRendered = handleRender;\n getState(element).onExpand = handleScroll;\n getState(element).onShrink = handleScroll;\n var style = getState(element).style;\n updateChildSizes(element, style.width, style.height);\n }\n\n function finalizeDomMutation() {\n debug(\"finalizeDomMutation invoked.\");\n\n if (!getState(element)) {\n debug(\"Aborting because element has been uninstalled\");\n return;\n }\n\n var style = getState(element).style;\n storeCurrentSize(element, style.width, style.height);\n positionScrollbars(element, style.width, style.height);\n }\n\n function ready() {\n callback(element);\n }\n\n function install() {\n debug(\"Installing...\");\n initListeners();\n storeStartSize();\n batchProcessor.add(0, storeStyle);\n batchProcessor.add(1, injectScrollElements);\n batchProcessor.add(2, registerListenersAndPositionElements);\n batchProcessor.add(3, finalizeDomMutation);\n batchProcessor.add(4, ready);\n }\n\n debug(\"Making detectable...\");\n\n if (isDetached(element)) {\n debug(\"Element is detached\");\n injectContainerElement();\n debug(\"Waiting until element is attached...\");\n\n getState(element).onRendered = function () {\n debug(\"Element is now attached\");\n install();\n };\n } else {\n install();\n }\n }\n\n function uninstall(element) {\n var state = getState(element);\n\n if (!state) {\n // Uninstall has been called on a non-erd element.\n return;\n } // Uninstall may have been called in the following scenarios:\n // (1) Right between the sync code and async batch (here state.busy = true, but nothing have been registered or injected).\n // (2) In the ready callback of the last level of the batch by another element (here, state.busy = true, but all the stuff has been injected).\n // (3) After the installation process (here, state.busy = false and all the stuff has been injected).\n // So to be on the safe side, let's check for each thing before removing.\n // We need to remove the event listeners, because otherwise the event might fire on an uninstall element which results in an error when trying to get the state of the element.\n\n\n state.onExpandScroll && removeEvent(getExpandElement(element), \"scroll\", state.onExpandScroll);\n state.onShrinkScroll && removeEvent(getShrinkElement(element), \"scroll\", state.onShrinkScroll);\n state.onAnimationStart && removeEvent(state.container, \"animationstart\", state.onAnimationStart);\n state.container && element.removeChild(state.container);\n }\n\n return {\n makeDetectable: makeDetectable,\n addListener: addListener,\n uninstall: uninstall,\n initDocument: initDocument\n };\n};","\"use strict\";\n\nvar forEach = require(\"./collection-utils\").forEach;\n\nvar elementUtilsMaker = require(\"./element-utils\");\n\nvar listenerHandlerMaker = require(\"./listener-handler\");\n\nvar idGeneratorMaker = require(\"./id-generator\");\n\nvar idHandlerMaker = require(\"./id-handler\");\n\nvar reporterMaker = require(\"./reporter\");\n\nvar browserDetector = require(\"./browser-detector\");\n\nvar batchProcessorMaker = require(\"batch-processor\");\n\nvar stateHandler = require(\"./state-handler\"); //Detection strategies.\n\n\nvar objectStrategyMaker = require(\"./detection-strategy/object.js\");\n\nvar scrollStrategyMaker = require(\"./detection-strategy/scroll.js\");\n\nfunction isCollection(obj) {\n return Array.isArray(obj) || obj.length !== undefined;\n}\n\nfunction toArray(collection) {\n if (!Array.isArray(collection)) {\n var array = [];\n forEach(collection, function (obj) {\n array.push(obj);\n });\n return array;\n } else {\n return collection;\n }\n}\n\nfunction isElement(obj) {\n return obj && obj.nodeType === 1;\n}\n/**\n * @typedef idHandler\n * @type {object}\n * @property {function} get Gets the resize detector id of the element.\n * @property {function} set Generate and sets the resize detector id of the element.\n */\n\n/**\n * @typedef Options\n * @type {object}\n * @property {boolean} callOnAdd Determines if listeners should be called when they are getting added.\n Default is true. If true, the listener is guaranteed to be called when it has been added.\n If false, the listener will not be guarenteed to be called when it has been added (does not prevent it from being called).\n * @property {idHandler} idHandler A custom id handler that is responsible for generating, setting and retrieving id's for elements.\n If not provided, a default id handler will be used.\n * @property {reporter} reporter A custom reporter that handles reporting logs, warnings and errors.\n If not provided, a default id handler will be used.\n If set to false, then nothing will be reported.\n * @property {boolean} debug If set to true, the the system will report debug messages as default for the listenTo method.\n */\n\n/**\n * Creates an element resize detector instance.\n * @public\n * @param {Options?} options Optional global options object that will decide how this instance will work.\n */\n\n\nmodule.exports = function (options) {\n options = options || {}; //idHandler is currently not an option to the listenTo function, so it should not be added to globalOptions.\n\n var idHandler;\n\n if (options.idHandler) {\n // To maintain compatability with idHandler.get(element, readonly), make sure to wrap the given idHandler\n // so that readonly flag always is true when it's used here. This may be removed next major version bump.\n idHandler = {\n get: function get(element) {\n return options.idHandler.get(element, true);\n },\n set: options.idHandler.set\n };\n } else {\n var idGenerator = idGeneratorMaker();\n var defaultIdHandler = idHandlerMaker({\n idGenerator: idGenerator,\n stateHandler: stateHandler\n });\n idHandler = defaultIdHandler;\n } //reporter is currently not an option to the listenTo function, so it should not be added to globalOptions.\n\n\n var reporter = options.reporter;\n\n if (!reporter) {\n //If options.reporter is false, then the reporter should be quiet.\n var quiet = reporter === false;\n reporter = reporterMaker(quiet);\n } //batchProcessor is currently not an option to the listenTo function, so it should not be added to globalOptions.\n\n\n var batchProcessor = getOption(options, \"batchProcessor\", batchProcessorMaker({\n reporter: reporter\n })); //Options to be used as default for the listenTo function.\n\n var globalOptions = {};\n globalOptions.callOnAdd = !!getOption(options, \"callOnAdd\", true);\n globalOptions.debug = !!getOption(options, \"debug\", false);\n var eventListenerHandler = listenerHandlerMaker(idHandler);\n var elementUtils = elementUtilsMaker({\n stateHandler: stateHandler\n }); //The detection strategy to be used.\n\n var detectionStrategy;\n var desiredStrategy = getOption(options, \"strategy\", \"object\");\n var importantCssRules = getOption(options, \"important\", false);\n var strategyOptions = {\n reporter: reporter,\n batchProcessor: batchProcessor,\n stateHandler: stateHandler,\n idHandler: idHandler,\n important: importantCssRules\n };\n\n if (desiredStrategy === \"scroll\") {\n if (browserDetector.isLegacyOpera()) {\n reporter.warn(\"Scroll strategy is not supported on legacy Opera. Changing to object strategy.\");\n desiredStrategy = \"object\";\n } else if (browserDetector.isIE(9)) {\n reporter.warn(\"Scroll strategy is not supported on IE9. Changing to object strategy.\");\n desiredStrategy = \"object\";\n }\n }\n\n if (desiredStrategy === \"scroll\") {\n detectionStrategy = scrollStrategyMaker(strategyOptions);\n } else if (desiredStrategy === \"object\") {\n detectionStrategy = objectStrategyMaker(strategyOptions);\n } else {\n throw new Error(\"Invalid strategy name: \" + desiredStrategy);\n } //Calls can be made to listenTo with elements that are still being installed.\n //Also, same elements can occur in the elements list in the listenTo function.\n //With this map, the ready callbacks can be synchronized between the calls\n //so that the ready callback can always be called when an element is ready - even if\n //it wasn't installed from the function itself.\n\n\n var onReadyCallbacks = {};\n /**\n * Makes the given elements resize-detectable and starts listening to resize events on the elements. Calls the event callback for each event for each element.\n * @public\n * @param {Options?} options Optional options object. These options will override the global options. Some options may not be overriden, such as idHandler.\n * @param {element[]|element} elements The given array of elements to detect resize events of. Single element is also valid.\n * @param {function} listener The callback to be executed for each resize event for each element.\n */\n\n function listenTo(options, elements, listener) {\n function onResizeCallback(element) {\n var listeners = eventListenerHandler.get(element);\n forEach(listeners, function callListenerProxy(listener) {\n listener(element);\n });\n }\n\n function addListener(callOnAdd, element, listener) {\n eventListenerHandler.add(element, listener);\n\n if (callOnAdd) {\n listener(element);\n }\n } //Options object may be omitted.\n\n\n if (!listener) {\n listener = elements;\n elements = options;\n options = {};\n }\n\n if (!elements) {\n throw new Error(\"At least one element required.\");\n }\n\n if (!listener) {\n throw new Error(\"Listener required.\");\n }\n\n if (isElement(elements)) {\n // A single element has been passed in.\n elements = [elements];\n } else if (isCollection(elements)) {\n // Convert collection to array for plugins.\n // TODO: May want to check so that all the elements in the collection are valid elements.\n elements = toArray(elements);\n } else {\n return reporter.error(\"Invalid arguments. Must be a DOM element or a collection of DOM elements.\");\n }\n\n var elementsReady = 0;\n var callOnAdd = getOption(options, \"callOnAdd\", globalOptions.callOnAdd);\n var onReadyCallback = getOption(options, \"onReady\", function noop() {});\n var debug = getOption(options, \"debug\", globalOptions.debug);\n forEach(elements, function attachListenerToElement(element) {\n if (!stateHandler.getState(element)) {\n stateHandler.initState(element);\n idHandler.set(element);\n }\n\n var id = idHandler.get(element);\n debug && reporter.log(\"Attaching listener to element\", id, element);\n\n if (!elementUtils.isDetectable(element)) {\n debug && reporter.log(id, \"Not detectable.\");\n\n if (elementUtils.isBusy(element)) {\n debug && reporter.log(id, \"System busy making it detectable\"); //The element is being prepared to be detectable. Do not make it detectable.\n //Just add the listener, because the element will soon be detectable.\n\n addListener(callOnAdd, element, listener);\n onReadyCallbacks[id] = onReadyCallbacks[id] || [];\n onReadyCallbacks[id].push(function onReady() {\n elementsReady++;\n\n if (elementsReady === elements.length) {\n onReadyCallback();\n }\n });\n return;\n }\n\n debug && reporter.log(id, \"Making detectable...\"); //The element is not prepared to be detectable, so do prepare it and add a listener to it.\n\n elementUtils.markBusy(element, true);\n return detectionStrategy.makeDetectable({\n debug: debug,\n important: importantCssRules\n }, element, function onElementDetectable(element) {\n debug && reporter.log(id, \"onElementDetectable\");\n\n if (stateHandler.getState(element)) {\n elementUtils.markAsDetectable(element);\n elementUtils.markBusy(element, false);\n detectionStrategy.addListener(element, onResizeCallback);\n addListener(callOnAdd, element, listener); // Since the element size might have changed since the call to \"listenTo\", we need to check for this change,\n // so that a resize event may be emitted.\n // Having the startSize object is optional (since it does not make sense in some cases such as unrendered elements), so check for its existance before.\n // Also, check the state existance before since the element may have been uninstalled in the installation process.\n\n var state = stateHandler.getState(element);\n\n if (state && state.startSize) {\n var width = element.offsetWidth;\n var height = element.offsetHeight;\n\n if (state.startSize.width !== width || state.startSize.height !== height) {\n onResizeCallback(element);\n }\n }\n\n if (onReadyCallbacks[id]) {\n forEach(onReadyCallbacks[id], function (callback) {\n callback();\n });\n }\n } else {\n // The element has been unisntalled before being detectable.\n debug && reporter.log(id, \"Element uninstalled before being detectable.\");\n }\n\n delete onReadyCallbacks[id];\n elementsReady++;\n\n if (elementsReady === elements.length) {\n onReadyCallback();\n }\n });\n }\n\n debug && reporter.log(id, \"Already detecable, adding listener.\"); //The element has been prepared to be detectable and is ready to be listened to.\n\n addListener(callOnAdd, element, listener);\n elementsReady++;\n });\n\n if (elementsReady === elements.length) {\n onReadyCallback();\n }\n }\n\n function uninstall(elements) {\n if (!elements) {\n return reporter.error(\"At least one element is required.\");\n }\n\n if (isElement(elements)) {\n // A single element has been passed in.\n elements = [elements];\n } else if (isCollection(elements)) {\n // Convert collection to array for plugins.\n // TODO: May want to check so that all the elements in the collection are valid elements.\n elements = toArray(elements);\n } else {\n return reporter.error(\"Invalid arguments. Must be a DOM element or a collection of DOM elements.\");\n }\n\n forEach(elements, function (element) {\n eventListenerHandler.removeAllListeners(element);\n detectionStrategy.uninstall(element);\n stateHandler.cleanState(element);\n });\n }\n\n function initDocument(targetDocument) {\n detectionStrategy.initDocument && detectionStrategy.initDocument(targetDocument);\n }\n\n return {\n listenTo: listenTo,\n removeListener: eventListenerHandler.removeListener,\n removeAllListeners: eventListenerHandler.removeAllListeners,\n uninstall: uninstall,\n initDocument: initDocument\n };\n};\n\nfunction getOption(options, name, defaultValue) {\n var value = options[name];\n\n if ((value === undefined || value === null) && defaultValue !== undefined) {\n return defaultValue;\n }\n\n return value;\n}","\"use strict\";\n\nmodule.exports = function (options) {\n var getState = options.stateHandler.getState;\n /**\n * Tells if the element has been made detectable and ready to be listened for resize events.\n * @public\n * @param {element} The element to check.\n * @returns {boolean} True or false depending on if the element is detectable or not.\n */\n\n function isDetectable(element) {\n var state = getState(element);\n return state && !!state.isDetectable;\n }\n /**\n * Marks the element that it has been made detectable and ready to be listened for resize events.\n * @public\n * @param {element} The element to mark.\n */\n\n\n function markAsDetectable(element) {\n getState(element).isDetectable = true;\n }\n /**\n * Tells if the element is busy or not.\n * @public\n * @param {element} The element to check.\n * @returns {boolean} True or false depending on if the element is busy or not.\n */\n\n\n function isBusy(element) {\n return !!getState(element).busy;\n }\n /**\n * Marks the object is busy and should not be made detectable.\n * @public\n * @param {element} element The element to mark.\n * @param {boolean} busy If the element is busy or not.\n */\n\n\n function markBusy(element, busy) {\n getState(element).busy = !!busy;\n }\n\n return {\n isDetectable: isDetectable,\n markAsDetectable: markAsDetectable,\n isBusy: isBusy,\n markBusy: markBusy\n };\n};","\"use strict\";\n\nmodule.exports = function () {\n var idCount = 1;\n /**\n * Generates a new unique id in the context.\n * @public\n * @returns {number} A unique id in the context.\n */\n\n function generate() {\n return idCount++;\n }\n\n return {\n generate: generate\n };\n};","\"use strict\";\n\nmodule.exports = function (options) {\n var idGenerator = options.idGenerator;\n var getState = options.stateHandler.getState;\n /**\n * Gets the resize detector id of the element.\n * @public\n * @param {element} element The target element to get the id of.\n * @returns {string|number|null} The id of the element. Null if it has no id.\n */\n\n function getId(element) {\n var state = getState(element);\n\n if (state && state.id !== undefined) {\n return state.id;\n }\n\n return null;\n }\n /**\n * Sets the resize detector id of the element. Requires the element to have a resize detector state initialized.\n * @public\n * @param {element} element The target element to set the id of.\n * @returns {string|number|null} The id of the element.\n */\n\n\n function setId(element) {\n var state = getState(element);\n\n if (!state) {\n throw new Error(\"setId required the element to have a resize detection state.\");\n }\n\n var id = idGenerator.generate();\n state.id = id;\n return id;\n }\n\n return {\n get: getId,\n set: setId\n };\n};","\"use strict\";\n\nmodule.exports = function (idHandler) {\n var eventListeners = {};\n /**\n * Gets all listeners for the given element.\n * @public\n * @param {element} element The element to get all listeners for.\n * @returns All listeners for the given element.\n */\n\n function getListeners(element) {\n var id = idHandler.get(element);\n\n if (id === undefined) {\n return [];\n }\n\n return eventListeners[id] || [];\n }\n /**\n * Stores the given listener for the given element. Will not actually add the listener to the element.\n * @public\n * @param {element} element The element that should have the listener added.\n * @param {function} listener The callback that the element has added.\n */\n\n\n function addListener(element, listener) {\n var id = idHandler.get(element);\n\n if (!eventListeners[id]) {\n eventListeners[id] = [];\n }\n\n eventListeners[id].push(listener);\n }\n\n function removeListener(element, listener) {\n var listeners = getListeners(element);\n\n for (var i = 0, len = listeners.length; i < len; ++i) {\n if (listeners[i] === listener) {\n listeners.splice(i, 1);\n break;\n }\n }\n }\n\n function removeAllListeners(element) {\n var listeners = getListeners(element);\n\n if (!listeners) {\n return;\n }\n\n listeners.length = 0;\n }\n\n return {\n get: getListeners,\n add: addListener,\n removeListener: removeListener,\n removeAllListeners: removeAllListeners\n };\n};","\"use strict\";\n/* global console: false */\n\n/**\n * Reporter that handles the reporting of logs, warnings and errors.\n * @public\n * @param {boolean} quiet Tells if the reporter should be quiet or not.\n */\n\nmodule.exports = function (quiet) {\n function noop() {//Does nothing.\n }\n\n var reporter = {\n log: noop,\n warn: noop,\n error: noop\n };\n\n if (!quiet && window.console) {\n var attachFunction = function attachFunction(reporter, name) {\n //The proxy is needed to be able to call the method with the console context,\n //since we cannot use bind.\n reporter[name] = function reporterProxy() {\n var f = console[name];\n\n if (f.apply) {\n //IE9 does not support console.log.apply :)\n f.apply(console, arguments);\n } else {\n for (var i = 0; i < arguments.length; i++) {\n f(arguments[i]);\n }\n }\n };\n };\n\n attachFunction(reporter, \"log\");\n attachFunction(reporter, \"warn\");\n attachFunction(reporter, \"error\");\n }\n\n return reporter;\n};","\"use strict\";\n\nvar prop = \"_erd\";\n\nfunction initState(element) {\n element[prop] = {};\n return getState(element);\n}\n\nfunction getState(element) {\n return element[prop];\n}\n\nfunction cleanState(element) {\n delete element[prop];\n}\n\nmodule.exports = {\n initState: initState,\n getState: getState,\n cleanState: cleanState\n};","var QueryHandler = require('./QueryHandler');\n\nvar each = require('./Util').each;\n/**\n * Represents a single media query, manages it's state and registered handlers for this query\n *\n * @constructor\n * @param {string} query the media query string\n * @param {boolean} [isUnconditional=false] whether the media query should run regardless of whether the conditions are met. Primarily for helping older browsers deal with mobile-first design\n */\n\n\nfunction MediaQuery(query, isUnconditional) {\n this.query = query;\n this.isUnconditional = isUnconditional;\n this.handlers = [];\n this.mql = window.matchMedia(query);\n var self = this;\n\n this.listener = function (mql) {\n // Chrome passes an MediaQueryListEvent object, while other browsers pass MediaQueryList directly\n self.mql = mql.currentTarget || mql;\n self.assess();\n };\n\n this.mql.addListener(this.listener);\n}\n\nMediaQuery.prototype = {\n constuctor: MediaQuery,\n\n /**\n * add a handler for this query, triggering if already active\n *\n * @param {object} handler\n * @param {function} handler.match callback for when query is activated\n * @param {function} [handler.unmatch] callback for when query is deactivated\n * @param {function} [handler.setup] callback for immediate execution when a query handler is registered\n * @param {boolean} [handler.deferSetup=false] should the setup callback be deferred until the first time the handler is matched?\n */\n addHandler: function addHandler(handler) {\n var qh = new QueryHandler(handler);\n this.handlers.push(qh);\n this.matches() && qh.on();\n },\n\n /**\n * removes the given handler from the collection, and calls it's destroy methods\n *\n * @param {object || function} handler the handler to remove\n */\n removeHandler: function removeHandler(handler) {\n var handlers = this.handlers;\n each(handlers, function (h, i) {\n if (h.equals(handler)) {\n h.destroy();\n return !handlers.splice(i, 1); //remove from array and exit each early\n }\n });\n },\n\n /**\n * Determine whether the media query should be considered a match\n *\n * @return {Boolean} true if media query can be considered a match, false otherwise\n */\n matches: function matches() {\n return this.mql.matches || this.isUnconditional;\n },\n\n /**\n * Clears all handlers and unbinds events\n */\n clear: function clear() {\n each(this.handlers, function (handler) {\n handler.destroy();\n });\n this.mql.removeListener(this.listener);\n this.handlers.length = 0; //clear array\n },\n\n /*\n * Assesses the query, turning on all handlers if it matches, turning them off if it doesn't match\n */\n assess: function assess() {\n var action = this.matches() ? 'on' : 'off';\n each(this.handlers, function (handler) {\n handler[action]();\n });\n }\n};\nmodule.exports = MediaQuery;","var MediaQuery = require('./MediaQuery');\n\nvar Util = require('./Util');\n\nvar each = Util.each;\nvar isFunction = Util.isFunction;\nvar isArray = Util.isArray;\n/**\n * Allows for registration of query handlers.\n * Manages the query handler's state and is responsible for wiring up browser events\n *\n * @constructor\n */\n\nfunction MediaQueryDispatch() {\n if (!window.matchMedia) {\n throw new Error('matchMedia not present, legacy browsers require a polyfill');\n }\n\n this.queries = {};\n this.browserIsIncapable = !window.matchMedia('only all').matches;\n}\n\nMediaQueryDispatch.prototype = {\n constructor: MediaQueryDispatch,\n\n /**\n * Registers a handler for the given media query\n *\n * @param {string} q the media query\n * @param {object || Array || Function} options either a single query handler object, a function, or an array of query handlers\n * @param {function} options.match fired when query matched\n * @param {function} [options.unmatch] fired when a query is no longer matched\n * @param {function} [options.setup] fired when handler first triggered\n * @param {boolean} [options.deferSetup=false] whether setup should be run immediately or deferred until query is first matched\n * @param {boolean} [shouldDegrade=false] whether this particular media query should always run on incapable browsers\n */\n register: function register(q, options, shouldDegrade) {\n var queries = this.queries,\n isUnconditional = shouldDegrade && this.browserIsIncapable;\n\n if (!queries[q]) {\n queries[q] = new MediaQuery(q, isUnconditional);\n } //normalise to object in an array\n\n\n if (isFunction(options)) {\n options = {\n match: options\n };\n }\n\n if (!isArray(options)) {\n options = [options];\n }\n\n each(options, function (handler) {\n if (isFunction(handler)) {\n handler = {\n match: handler\n };\n }\n\n queries[q].addHandler(handler);\n });\n return this;\n },\n\n /**\n * unregisters a query and all it's handlers, or a specific handler for a query\n *\n * @param {string} q the media query to target\n * @param {object || function} [handler] specific handler to unregister\n */\n unregister: function unregister(q, handler) {\n var query = this.queries[q];\n\n if (query) {\n if (handler) {\n query.removeHandler(handler);\n } else {\n query.clear();\n delete this.queries[q];\n }\n }\n\n return this;\n }\n};\nmodule.exports = MediaQueryDispatch;","/**\n * Delegate to handle a media query being matched and unmatched.\n *\n * @param {object} options\n * @param {function} options.match callback for when the media query is matched\n * @param {function} [options.unmatch] callback for when the media query is unmatched\n * @param {function} [options.setup] one-time callback triggered the first time a query is matched\n * @param {boolean} [options.deferSetup=false] should the setup callback be run immediately, rather than first time query is matched?\n * @constructor\n */\nfunction QueryHandler(options) {\n this.options = options;\n !options.deferSetup && this.setup();\n}\n\nQueryHandler.prototype = {\n constructor: QueryHandler,\n\n /**\n * coordinates setup of the handler\n *\n * @function\n */\n setup: function setup() {\n if (this.options.setup) {\n this.options.setup();\n }\n\n this.initialised = true;\n },\n\n /**\n * coordinates setup and triggering of the handler\n *\n * @function\n */\n on: function on() {\n !this.initialised && this.setup();\n this.options.match && this.options.match();\n },\n\n /**\n * coordinates the unmatch event for the handler\n *\n * @function\n */\n off: function off() {\n this.options.unmatch && this.options.unmatch();\n },\n\n /**\n * called when a handler is to be destroyed.\n * delegates to the destroy or unmatch callbacks, depending on availability.\n *\n * @function\n */\n destroy: function destroy() {\n this.options.destroy ? this.options.destroy() : this.off();\n },\n\n /**\n * determines equality by reference.\n * if object is supplied compare options, if function, compare match callback\n *\n * @function\n * @param {object || function} [target] the target for comparison\n */\n equals: function equals(target) {\n return this.options === target || this.options.match === target;\n }\n};\nmodule.exports = QueryHandler;","/**\n * Helper function for iterating over a collection\n *\n * @param collection\n * @param fn\n */\nfunction each(collection, fn) {\n var i = 0,\n length = collection.length,\n cont;\n\n for (i; i < length; i++) {\n cont = fn(collection[i], i);\n\n if (cont === false) {\n break; //allow early exit\n }\n }\n}\n/**\n * Helper function for determining whether target object is an array\n *\n * @param target the object under test\n * @return {Boolean} true if array, false otherwise\n */\n\n\nfunction isArray(target) {\n return Object.prototype.toString.apply(target) === '[object Array]';\n}\n/**\n * Helper function for determining whether target object is a function\n *\n * @param target the object under test\n * @return {Boolean} true if function, false otherwise\n */\n\n\nfunction isFunction(target) {\n return typeof target === 'function';\n}\n\nmodule.exports = {\n isFunction: isFunction,\n isArray: isArray,\n each: each\n};","var MediaQueryDispatch = require('./MediaQueryDispatch');\n\nmodule.exports = new MediaQueryDispatch();","/**\n * EvEmitter v1.1.0\n * Lil' event emitter\n * MIT License\n */\n\n/* jshint unused: true, undef: true, strict: true */\n(function (global, factory) {\n // universal module definition\n\n /* jshint strict: false */\n\n /* globals define, module, window */\n if (typeof define == 'function' && define.amd) {\n // AMD - RequireJS\n define(factory);\n } else if (typeof module == 'object' && module.exports) {\n // CommonJS - Browserify, Webpack\n module.exports = factory();\n } else {\n // Browser globals\n global.EvEmitter = factory();\n }\n})(typeof window != 'undefined' ? window : this, function () {\n \"use strict\";\n\n function EvEmitter() {}\n\n var proto = EvEmitter.prototype;\n\n proto.on = function (eventName, listener) {\n if (!eventName || !listener) {\n return;\n } // set events hash\n\n\n var events = this._events = this._events || {}; // set listeners array\n\n var listeners = events[eventName] = events[eventName] || []; // only add once\n\n if (listeners.indexOf(listener) == -1) {\n listeners.push(listener);\n }\n\n return this;\n };\n\n proto.once = function (eventName, listener) {\n if (!eventName || !listener) {\n return;\n } // add event\n\n\n this.on(eventName, listener); // set once flag\n // set onceEvents hash\n\n var onceEvents = this._onceEvents = this._onceEvents || {}; // set onceListeners object\n\n var onceListeners = onceEvents[eventName] = onceEvents[eventName] || {}; // set flag\n\n onceListeners[listener] = true;\n return this;\n };\n\n proto.off = function (eventName, listener) {\n var listeners = this._events && this._events[eventName];\n\n if (!listeners || !listeners.length) {\n return;\n }\n\n var index = listeners.indexOf(listener);\n\n if (index != -1) {\n listeners.splice(index, 1);\n }\n\n return this;\n };\n\n proto.emitEvent = function (eventName, args) {\n var listeners = this._events && this._events[eventName];\n\n if (!listeners || !listeners.length) {\n return;\n } // copy over to avoid interference if .off() in listener\n\n\n listeners = listeners.slice(0);\n args = args || []; // once stuff\n\n var onceListeners = this._onceEvents && this._onceEvents[eventName];\n\n for (var i = 0; i < listeners.length; i++) {\n var listener = listeners[i];\n var isOnce = onceListeners && onceListeners[listener];\n\n if (isOnce) {\n // remove listener\n // remove before trigger to prevent recursion\n this.off(eventName, listener); // unset once flag\n\n delete onceListeners[listener];\n } // trigger listener\n\n\n listener.apply(this, args);\n }\n\n return this;\n };\n\n proto.allOff = function () {\n delete this._events;\n delete this._onceEvents;\n };\n\n return EvEmitter;\n});","/**\n * Fizzy UI utils v2.0.7\n * MIT license\n */\n\n/*jshint browser: true, undef: true, unused: true, strict: true */\n(function (window, factory) {\n // universal module definition\n\n /*jshint strict: false */\n\n /*globals define, module, require */\n if (typeof define == 'function' && define.amd) {\n // AMD\n define(['desandro-matches-selector/matches-selector'], function (matchesSelector) {\n return factory(window, matchesSelector);\n });\n } else if (typeof module == 'object' && module.exports) {\n // CommonJS\n module.exports = factory(window, require('desandro-matches-selector'));\n } else {\n // browser global\n window.fizzyUIUtils = factory(window, window.matchesSelector);\n }\n})(window, function factory(window, matchesSelector) {\n 'use strict';\n\n var utils = {}; // ----- extend ----- //\n // extends objects\n\n utils.extend = function (a, b) {\n for (var prop in b) {\n a[prop] = b[prop];\n }\n\n return a;\n }; // ----- modulo ----- //\n\n\n utils.modulo = function (num, div) {\n return (num % div + div) % div;\n }; // ----- makeArray ----- //\n\n\n var arraySlice = Array.prototype.slice; // turn element or nodeList into an array\n\n utils.makeArray = function (obj) {\n if (Array.isArray(obj)) {\n // use object if already an array\n return obj;\n } // return empty array if undefined or null. #6\n\n\n if (obj === null || obj === undefined) {\n return [];\n }\n\n var isArrayLike = typeof obj == 'object' && typeof obj.length == 'number';\n\n if (isArrayLike) {\n // convert nodeList to array\n return arraySlice.call(obj);\n } // array of single index\n\n\n return [obj];\n }; // ----- removeFrom ----- //\n\n\n utils.removeFrom = function (ary, obj) {\n var index = ary.indexOf(obj);\n\n if (index != -1) {\n ary.splice(index, 1);\n }\n }; // ----- getParent ----- //\n\n\n utils.getParent = function (elem, selector) {\n while (elem.parentNode && elem != document.body) {\n elem = elem.parentNode;\n\n if (matchesSelector(elem, selector)) {\n return elem;\n }\n }\n }; // ----- getQueryElement ----- //\n // use element as selector string\n\n\n utils.getQueryElement = function (elem) {\n if (typeof elem == 'string') {\n return document.querySelector(elem);\n }\n\n return elem;\n }; // ----- handleEvent ----- //\n // enable .ontype to trigger from .addEventListener( elem, 'type' )\n\n\n utils.handleEvent = function (event) {\n var method = 'on' + event.type;\n\n if (this[method]) {\n this[method](event);\n }\n }; // ----- filterFindElements ----- //\n\n\n utils.filterFindElements = function (elems, selector) {\n // make array of elems\n elems = utils.makeArray(elems);\n var ffElems = [];\n elems.forEach(function (elem) {\n // check that elem is an actual element\n if (!(elem instanceof HTMLElement)) {\n return;\n } // add elem if no selector\n\n\n if (!selector) {\n ffElems.push(elem);\n return;\n } // filter & find items if we have a selector\n // filter\n\n\n if (matchesSelector(elem, selector)) {\n ffElems.push(elem);\n } // find children\n\n\n var childElems = elem.querySelectorAll(selector); // concat childElems to filterFound array\n\n for (var i = 0; i < childElems.length; i++) {\n ffElems.push(childElems[i]);\n }\n });\n return ffElems;\n }; // ----- debounceMethod ----- //\n\n\n utils.debounceMethod = function (_class, methodName, threshold) {\n threshold = threshold || 100; // original method\n\n var method = _class.prototype[methodName];\n var timeoutName = methodName + 'Timeout';\n\n _class.prototype[methodName] = function () {\n var timeout = this[timeoutName];\n clearTimeout(timeout);\n var args = arguments;\n\n var _this = this;\n\n this[timeoutName] = setTimeout(function () {\n method.apply(_this, args);\n delete _this[timeoutName];\n }, threshold);\n };\n }; // ----- docReady ----- //\n\n\n utils.docReady = function (callback) {\n var readyState = document.readyState;\n\n if (readyState == 'complete' || readyState == 'interactive') {\n // do async to allow for other scripts to run. metafizzy/flickity#441\n setTimeout(callback);\n } else {\n document.addEventListener('DOMContentLoaded', callback);\n }\n }; // ----- htmlInit ----- //\n // http://jamesroberts.name/blog/2010/02/22/string-functions-for-javascript-trim-to-camel-case-to-dashed-and-to-underscore/\n\n\n utils.toDashed = function (str) {\n return str.replace(/(.)([A-Z])/g, function (match, $1, $2) {\n return $1 + '-' + $2;\n }).toLowerCase();\n };\n\n var console = window.console;\n /**\n * allow user to initialize classes via [data-namespace] or .js-namespace class\n * htmlInit( Widget, 'widgetName' )\n * options are parsed from data-namespace-options\n */\n\n utils.htmlInit = function (WidgetClass, namespace) {\n utils.docReady(function () {\n var dashedNamespace = utils.toDashed(namespace);\n var dataAttr = 'data-' + dashedNamespace;\n var dataAttrElems = document.querySelectorAll('[' + dataAttr + ']');\n var jsDashElems = document.querySelectorAll('.js-' + dashedNamespace);\n var elems = utils.makeArray(dataAttrElems).concat(utils.makeArray(jsDashElems));\n var dataOptionsAttr = dataAttr + '-options';\n var jQuery = window.jQuery;\n elems.forEach(function (elem) {\n var attr = elem.getAttribute(dataAttr) || elem.getAttribute(dataOptionsAttr);\n var options;\n\n try {\n options = attr && JSON.parse(attr);\n } catch (error) {\n // log error, do not initialize\n if (console) {\n console.error('Error parsing ' + dataAttr + ' on ' + elem.className + ': ' + error);\n }\n\n return;\n } // initialize\n\n\n var instance = new WidgetClass(elem, options); // make available via $().data('namespace')\n\n if (jQuery) {\n jQuery.data(elem, namespace, instance);\n }\n });\n });\n }; // ----- ----- //\n\n\n return utils;\n});","\"use strict\";\n\nexports.__esModule = true;\nexports.applyTrailingSlashOption = void 0; // TODO(v5): Remove legacy setting and default to \"always\"\n\nvar applyTrailingSlashOption = function applyTrailingSlashOption(input, option) {\n if (option === void 0) {\n option = \"legacy\";\n }\n\n var hasHtmlSuffix = input.endsWith(\".html\");\n var hasXmlSuffix = input.endsWith(\".xml\");\n var hasPdfSuffix = input.endsWith(\".pdf\");\n if (input === \"/\") return input;\n\n if (hasHtmlSuffix || hasXmlSuffix || hasPdfSuffix) {\n option = \"never\";\n }\n\n if (option === \"always\") {\n return input.endsWith(\"/\") ? input : input + \"/\";\n }\n\n if (option === \"never\") {\n return input.endsWith(\"/\") ? input.slice(0, -1) : input;\n }\n\n return input;\n};\n\nexports.applyTrailingSlashOption = applyTrailingSlashOption;","\"use strict\";\n\nmodule.exports = Object.assign;","\"use strict\";\n\nvar _slicedToArray = require(\"/codebuild/output/src2086004610/src/petlab-gatsby-upsell/node_modules/@babel/runtime/helpers/slicedToArray.js\");\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nexports.__esModule = true;\nexports.wrapRootElement = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _react2 = require(\"@builder.io/partytown/react\");\n\nvar _gatsbyScript = require(\"gatsby-script\");\n\nfunction _getRequireWildcardCache(nodeInterop) {\n if (typeof WeakMap !== \"function\") return null;\n var cacheBabelInterop = new WeakMap();\n var cacheNodeInterop = new WeakMap();\n return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n}\n\nfunction _interopRequireWildcard(obj, nodeInterop) {\n if (!nodeInterop && obj && obj.__esModule) {\n return obj;\n }\n\n if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") {\n return {\n default: obj\n };\n }\n\n var cache = _getRequireWildcardCache(nodeInterop);\n\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n\n var newObj = {};\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n\n for (var key in obj) {\n if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n\n newObj.default = obj;\n\n if (cache) {\n cache.set(obj, newObj);\n }\n\n return newObj;\n}\n\nfunction PartytownProvider(_ref) {\n var children = _ref.children;\n\n var _ref2 = (0, _react.useState)({\n collectedForwards: new Set(),\n collectedAnyScript: false\n }),\n _ref3 = _slicedToArray(_ref2, 2),\n _ref3$ = _ref3[0],\n collectedForwards = _ref3$.collectedForwards,\n collectedAnyScript = _ref3$.collectedAnyScript,\n setState = _ref3[1];\n\n return /*#__PURE__*/_react.default.createElement(_gatsbyScript.PartytownContext.Provider, {\n value: {\n collectScript: function collectScript(newScript) {\n var stateShouldChange = false;\n var potentialNewState = {\n collectedAnyScript: collectedAnyScript,\n collectedForwards: collectedForwards\n };\n\n if (!collectedAnyScript) {\n potentialNewState.collectedAnyScript = true;\n stateShouldChange = true;\n }\n\n if (newScript !== null && newScript !== void 0 && newScript.forward) {\n if (Array.isArray(newScript.forward)) {\n var _iterator = _createForOfIteratorHelper(newScript.forward),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var singleForward = _step.value;\n\n if (!potentialNewState.collectedForwards.has(singleForward)) {\n potentialNewState.collectedForwards.add(singleForward);\n stateShouldChange = true;\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n } else {\n if (process.env.NODE_ENV === \"development\") {\n console.log(\"unexpected shape of forward\", newScript);\n }\n }\n }\n\n if (stateShouldChange) {\n setState(potentialNewState);\n }\n }\n }\n }, children, collectedAnyScript && /*#__PURE__*/_react.default.createElement(_react2.Partytown, {\n key: \"partytown\",\n forward: Array.from(collectedForwards)\n }));\n}\n\nvar wrapRootElement = function wrapRootElement(_ref4) {\n var element = _ref4.element;\n return /*#__PURE__*/_react.default.createElement(PartytownProvider, null, element);\n};\n\nexports.wrapRootElement = wrapRootElement;","/*!\n * getSize v2.0.3\n * measure size of elements\n * MIT license\n */\n\n/* jshint browser: true, strict: true, undef: true, unused: true */\n\n/* globals console: false */\n(function (window, factory) {\n /* jshint strict: false */\n\n /* globals define, module */\n if (typeof define == 'function' && define.amd) {\n // AMD\n define(factory);\n } else if (typeof module == 'object' && module.exports) {\n // CommonJS\n module.exports = factory();\n } else {\n // browser global\n window.getSize = factory();\n }\n})(window, function factory() {\n 'use strict'; // -------------------------- helpers -------------------------- //\n // get a number from a string, not a percentage\n\n function getStyleSize(value) {\n var num = parseFloat(value); // not a percent like '100%', and a number\n\n var isValid = value.indexOf('%') == -1 && !isNaN(num);\n return isValid && num;\n }\n\n function noop() {}\n\n var logError = typeof console == 'undefined' ? noop : function (message) {\n console.error(message);\n }; // -------------------------- measurements -------------------------- //\n\n var measurements = ['paddingLeft', 'paddingRight', 'paddingTop', 'paddingBottom', 'marginLeft', 'marginRight', 'marginTop', 'marginBottom', 'borderLeftWidth', 'borderRightWidth', 'borderTopWidth', 'borderBottomWidth'];\n var measurementsLength = measurements.length;\n\n function getZeroSize() {\n var size = {\n width: 0,\n height: 0,\n innerWidth: 0,\n innerHeight: 0,\n outerWidth: 0,\n outerHeight: 0\n };\n\n for (var i = 0; i < measurementsLength; i++) {\n var measurement = measurements[i];\n size[measurement] = 0;\n }\n\n return size;\n } // -------------------------- getStyle -------------------------- //\n\n /**\n * getStyle, get style of element, check for Firefox bug\n * https://bugzilla.mozilla.org/show_bug.cgi?id=548397\n */\n\n\n function getStyle(elem) {\n var style = getComputedStyle(elem);\n\n if (!style) {\n logError('Style returned ' + style + '. Are you running this code in a hidden iframe on Firefox? ' + 'See https://bit.ly/getsizebug1');\n }\n\n return style;\n } // -------------------------- setup -------------------------- //\n\n\n var isSetup = false;\n var isBoxSizeOuter;\n /**\n * setup\n * check isBoxSizerOuter\n * do on first getSize() rather than on page load for Firefox bug\n */\n\n function setup() {\n // setup once\n if (isSetup) {\n return;\n }\n\n isSetup = true; // -------------------------- box sizing -------------------------- //\n\n /**\n * Chrome & Safari measure the outer-width on style.width on border-box elems\n * IE11 & Firefox<29 measures the inner-width\n */\n\n var div = document.createElement('div');\n div.style.width = '200px';\n div.style.padding = '1px 2px 3px 4px';\n div.style.borderStyle = 'solid';\n div.style.borderWidth = '1px 2px 3px 4px';\n div.style.boxSizing = 'border-box';\n var body = document.body || document.documentElement;\n body.appendChild(div);\n var style = getStyle(div); // round value for browser zoom. desandro/masonry#928\n\n isBoxSizeOuter = Math.round(getStyleSize(style.width)) == 200;\n getSize.isBoxSizeOuter = isBoxSizeOuter;\n body.removeChild(div);\n } // -------------------------- getSize -------------------------- //\n\n\n function getSize(elem) {\n setup(); // use querySeletor if elem is string\n\n if (typeof elem == 'string') {\n elem = document.querySelector(elem);\n } // do not proceed on non-objects\n\n\n if (!elem || typeof elem != 'object' || !elem.nodeType) {\n return;\n }\n\n var style = getStyle(elem); // if hidden, everything is 0\n\n if (style.display == 'none') {\n return getZeroSize();\n }\n\n var size = {};\n size.width = elem.offsetWidth;\n size.height = elem.offsetHeight;\n var isBorderBox = size.isBorderBox = style.boxSizing == 'border-box'; // get all measurements\n\n for (var i = 0; i < measurementsLength; i++) {\n var measurement = measurements[i];\n var value = style[measurement];\n var num = parseFloat(value); // any 'auto', 'medium' value will be 0\n\n size[measurement] = !isNaN(num) ? num : 0;\n }\n\n var paddingWidth = size.paddingLeft + size.paddingRight;\n var paddingHeight = size.paddingTop + size.paddingBottom;\n var marginWidth = size.marginLeft + size.marginRight;\n var marginHeight = size.marginTop + size.marginBottom;\n var borderWidth = size.borderLeftWidth + size.borderRightWidth;\n var borderHeight = size.borderTopWidth + size.borderBottomWidth;\n var isBorderBoxSizeOuter = isBorderBox && isBoxSizeOuter; // overwrite width and height if we can get it from style\n\n var styleWidth = getStyleSize(style.width);\n\n if (styleWidth !== false) {\n size.width = styleWidth + ( // add padding and border unless it's already including it\n isBorderBoxSizeOuter ? 0 : paddingWidth + borderWidth);\n }\n\n var styleHeight = getStyleSize(style.height);\n\n if (styleHeight !== false) {\n size.height = styleHeight + ( // add padding and border unless it's already including it\n isBorderBoxSizeOuter ? 0 : paddingHeight + borderHeight);\n }\n\n size.innerWidth = size.width - (paddingWidth + borderWidth);\n size.innerHeight = size.height - (paddingHeight + borderHeight);\n size.outerWidth = size.width + marginWidth;\n size.outerHeight = size.height + marginHeight;\n return size;\n }\n\n return getSize;\n});","'use strict';\n\nfunction pad(hash, len) {\n while (hash.length < len) {\n hash = '0' + hash;\n }\n\n return hash;\n}\n\nfunction fold(hash, text) {\n var i;\n var chr;\n var len;\n\n if (text.length === 0) {\n return hash;\n }\n\n for (i = 0, len = text.length; i < len; i++) {\n chr = text.charCodeAt(i);\n hash = (hash << 5) - hash + chr;\n hash |= 0;\n }\n\n return hash < 0 ? hash * -2 : hash;\n}\n\nfunction foldObject(hash, o, seen) {\n return Object.keys(o).sort().reduce(foldKey, hash);\n\n function foldKey(hash, key) {\n return foldValue(hash, o[key], key, seen);\n }\n}\n\nfunction foldValue(input, value, key, seen) {\n var hash = fold(fold(fold(input, key), toString(value)), typeof value);\n\n if (value === null) {\n return fold(hash, 'null');\n }\n\n if (value === undefined) {\n return fold(hash, 'undefined');\n }\n\n if (typeof value === 'object' || typeof value === 'function') {\n if (seen.indexOf(value) !== -1) {\n return fold(hash, '[Circular]' + key);\n }\n\n seen.push(value);\n var objHash = foldObject(hash, value, seen);\n\n if (!('valueOf' in value) || typeof value.valueOf !== 'function') {\n return objHash;\n }\n\n try {\n return fold(objHash, String(value.valueOf()));\n } catch (err) {\n return fold(objHash, '[valueOf exception]' + (err.stack || err.message));\n }\n }\n\n return fold(hash, value.toString());\n}\n\nfunction toString(o) {\n return Object.prototype.toString.call(o);\n}\n\nfunction sum(o) {\n return pad(foldValue(0, o, '', []).toString(16), 8);\n}\n\nmodule.exports = sum;","'use strict';\n\nvar reactIs = require('react-is');\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\n\n\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\n\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;","/*!\n * imagesLoaded v4.1.4\n * JavaScript is all like \"You images are done yet or what?\"\n * MIT License\n */\n(function (window, factory) {\n 'use strict'; // universal module definition\n\n /*global define: false, module: false, require: false */\n\n if (typeof define == 'function' && define.amd) {\n // AMD\n define(['ev-emitter/ev-emitter'], function (EvEmitter) {\n return factory(window, EvEmitter);\n });\n } else if (typeof module == 'object' && module.exports) {\n // CommonJS\n module.exports = factory(window, require('ev-emitter'));\n } else {\n // browser global\n window.imagesLoaded = factory(window, window.EvEmitter);\n }\n})(typeof window !== 'undefined' ? window : this, // -------------------------- factory -------------------------- //\nfunction factory(window, EvEmitter) {\n 'use strict';\n\n var $ = window.jQuery;\n var console = window.console; // -------------------------- helpers -------------------------- //\n // extend objects\n\n function extend(a, b) {\n for (var prop in b) {\n a[prop] = b[prop];\n }\n\n return a;\n }\n\n var arraySlice = Array.prototype.slice; // turn element or nodeList into an array\n\n function makeArray(obj) {\n if (Array.isArray(obj)) {\n // use object if already an array\n return obj;\n }\n\n var isArrayLike = typeof obj == 'object' && typeof obj.length == 'number';\n\n if (isArrayLike) {\n // convert nodeList to array\n return arraySlice.call(obj);\n } // array of single index\n\n\n return [obj];\n } // -------------------------- imagesLoaded -------------------------- //\n\n /**\n * @param {Array, Element, NodeList, String} elem\n * @param {Object or Function} options - if function, use as callback\n * @param {Function} onAlways - callback function\n */\n\n\n function ImagesLoaded(elem, options, onAlways) {\n // coerce ImagesLoaded() without new, to be new ImagesLoaded()\n if (!(this instanceof ImagesLoaded)) {\n return new ImagesLoaded(elem, options, onAlways);\n } // use elem as selector string\n\n\n var queryElem = elem;\n\n if (typeof elem == 'string') {\n queryElem = document.querySelectorAll(elem);\n } // bail if bad element\n\n\n if (!queryElem) {\n console.error('Bad element for imagesLoaded ' + (queryElem || elem));\n return;\n }\n\n this.elements = makeArray(queryElem);\n this.options = extend({}, this.options); // shift arguments if no options set\n\n if (typeof options == 'function') {\n onAlways = options;\n } else {\n extend(this.options, options);\n }\n\n if (onAlways) {\n this.on('always', onAlways);\n }\n\n this.getImages();\n\n if ($) {\n // add jQuery Deferred object\n this.jqDeferred = new $.Deferred();\n } // HACK check async to allow time to bind listeners\n\n\n setTimeout(this.check.bind(this));\n }\n\n ImagesLoaded.prototype = Object.create(EvEmitter.prototype);\n ImagesLoaded.prototype.options = {};\n\n ImagesLoaded.prototype.getImages = function () {\n this.images = []; // filter & find items if we have an item selector\n\n this.elements.forEach(this.addElementImages, this);\n };\n /**\n * @param {Node} element\n */\n\n\n ImagesLoaded.prototype.addElementImages = function (elem) {\n // filter siblings\n if (elem.nodeName == 'IMG') {\n this.addImage(elem);\n } // get background image on element\n\n\n if (this.options.background === true) {\n this.addElementBackgroundImages(elem);\n } // find children\n // no non-element nodes, #143\n\n\n var nodeType = elem.nodeType;\n\n if (!nodeType || !elementNodeTypes[nodeType]) {\n return;\n }\n\n var childImgs = elem.querySelectorAll('img'); // concat childElems to filterFound array\n\n for (var i = 0; i < childImgs.length; i++) {\n var img = childImgs[i];\n this.addImage(img);\n } // get child background images\n\n\n if (typeof this.options.background == 'string') {\n var children = elem.querySelectorAll(this.options.background);\n\n for (i = 0; i < children.length; i++) {\n var child = children[i];\n this.addElementBackgroundImages(child);\n }\n }\n };\n\n var elementNodeTypes = {\n 1: true,\n 9: true,\n 11: true\n };\n\n ImagesLoaded.prototype.addElementBackgroundImages = function (elem) {\n var style = getComputedStyle(elem);\n\n if (!style) {\n // Firefox returns null if in a hidden iframe https://bugzil.la/548397\n return;\n } // get url inside url(\"...\")\n\n\n var reURL = /url\\((['\"])?(.*?)\\1\\)/gi;\n var matches = reURL.exec(style.backgroundImage);\n\n while (matches !== null) {\n var url = matches && matches[2];\n\n if (url) {\n this.addBackground(url, elem);\n }\n\n matches = reURL.exec(style.backgroundImage);\n }\n };\n /**\n * @param {Image} img\n */\n\n\n ImagesLoaded.prototype.addImage = function (img) {\n var loadingImage = new LoadingImage(img);\n this.images.push(loadingImage);\n };\n\n ImagesLoaded.prototype.addBackground = function (url, elem) {\n var background = new Background(url, elem);\n this.images.push(background);\n };\n\n ImagesLoaded.prototype.check = function () {\n var _this = this;\n\n this.progressedCount = 0;\n this.hasAnyBroken = false; // complete if no images\n\n if (!this.images.length) {\n this.complete();\n return;\n }\n\n function onProgress(image, elem, message) {\n // HACK - Chrome triggers event before object properties have changed. #83\n setTimeout(function () {\n _this.progress(image, elem, message);\n });\n }\n\n this.images.forEach(function (loadingImage) {\n loadingImage.once('progress', onProgress);\n loadingImage.check();\n });\n };\n\n ImagesLoaded.prototype.progress = function (image, elem, message) {\n this.progressedCount++;\n this.hasAnyBroken = this.hasAnyBroken || !image.isLoaded; // progress event\n\n this.emitEvent('progress', [this, image, elem]);\n\n if (this.jqDeferred && this.jqDeferred.notify) {\n this.jqDeferred.notify(this, image);\n } // check if completed\n\n\n if (this.progressedCount == this.images.length) {\n this.complete();\n }\n\n if (this.options.debug && console) {\n console.log('progress: ' + message, image, elem);\n }\n };\n\n ImagesLoaded.prototype.complete = function () {\n var eventName = this.hasAnyBroken ? 'fail' : 'done';\n this.isComplete = true;\n this.emitEvent(eventName, [this]);\n this.emitEvent('always', [this]);\n\n if (this.jqDeferred) {\n var jqMethod = this.hasAnyBroken ? 'reject' : 'resolve';\n this.jqDeferred[jqMethod](this);\n }\n }; // -------------------------- -------------------------- //\n\n\n function LoadingImage(img) {\n this.img = img;\n }\n\n LoadingImage.prototype = Object.create(EvEmitter.prototype);\n\n LoadingImage.prototype.check = function () {\n // If complete is true and browser supports natural sizes,\n // try to check for image status manually.\n var isComplete = this.getIsImageComplete();\n\n if (isComplete) {\n // report based on naturalWidth\n this.confirm(this.img.naturalWidth !== 0, 'naturalWidth');\n return;\n } // If none of the checks above matched, simulate loading on detached element.\n\n\n this.proxyImage = new Image();\n this.proxyImage.addEventListener('load', this);\n this.proxyImage.addEventListener('error', this); // bind to image as well for Firefox. #191\n\n this.img.addEventListener('load', this);\n this.img.addEventListener('error', this);\n this.proxyImage.src = this.img.src;\n };\n\n LoadingImage.prototype.getIsImageComplete = function () {\n // check for non-zero, non-undefined naturalWidth\n // fixes Safari+InfiniteScroll+Masonry bug infinite-scroll#671\n return this.img.complete && this.img.naturalWidth;\n };\n\n LoadingImage.prototype.confirm = function (isLoaded, message) {\n this.isLoaded = isLoaded;\n this.emitEvent('progress', [this, this.img, message]);\n }; // ----- events ----- //\n // trigger specified handler for event type\n\n\n LoadingImage.prototype.handleEvent = function (event) {\n var method = 'on' + event.type;\n\n if (this[method]) {\n this[method](event);\n }\n };\n\n LoadingImage.prototype.onload = function () {\n this.confirm(true, 'onload');\n this.unbindEvents();\n };\n\n LoadingImage.prototype.onerror = function () {\n this.confirm(false, 'onerror');\n this.unbindEvents();\n };\n\n LoadingImage.prototype.unbindEvents = function () {\n this.proxyImage.removeEventListener('load', this);\n this.proxyImage.removeEventListener('error', this);\n this.img.removeEventListener('load', this);\n this.img.removeEventListener('error', this);\n }; // -------------------------- Background -------------------------- //\n\n\n function Background(url, element) {\n this.url = url;\n this.element = element;\n this.img = new Image();\n } // inherit LoadingImage prototype\n\n\n Background.prototype = Object.create(LoadingImage.prototype);\n\n Background.prototype.check = function () {\n this.img.addEventListener('load', this);\n this.img.addEventListener('error', this);\n this.img.src = this.url; // check if image is already complete\n\n var isComplete = this.getIsImageComplete();\n\n if (isComplete) {\n this.confirm(this.img.naturalWidth !== 0, 'naturalWidth');\n this.unbindEvents();\n }\n };\n\n Background.prototype.unbindEvents = function () {\n this.img.removeEventListener('load', this);\n this.img.removeEventListener('error', this);\n };\n\n Background.prototype.confirm = function (isLoaded, message) {\n this.isLoaded = isLoaded;\n this.emitEvent('progress', [this, this.element, message]);\n }; // -------------------------- jQuery -------------------------- //\n\n\n ImagesLoaded.makeJQueryPlugin = function (jQuery) {\n jQuery = jQuery || window.jQuery;\n\n if (!jQuery) {\n return;\n } // set local variable\n\n\n $ = jQuery; // $().imagesLoaded()\n\n $.fn.imagesLoaded = function (options, callback) {\n var instance = new ImagesLoaded(this, options, callback);\n return instance.jqDeferred.promise($(this));\n };\n }; // try making plugin\n\n\n ImagesLoaded.makeJQueryPlugin(); // -------------------------- -------------------------- //\n\n return ImagesLoaded;\n});","var camel2hyphen = require('string-convert/camel2hyphen');\n\nvar isDimension = function isDimension(feature) {\n var re = /[height|width]$/;\n return re.test(feature);\n};\n\nvar obj2mq = function obj2mq(obj) {\n var mq = '';\n var features = Object.keys(obj);\n features.forEach(function (feature, index) {\n var value = obj[feature];\n feature = camel2hyphen(feature); // Add px to dimension features\n\n if (isDimension(feature) && typeof value === 'number') {\n value = value + 'px';\n }\n\n if (value === true) {\n mq += feature;\n } else if (value === false) {\n mq += 'not ' + feature;\n } else {\n mq += '(' + feature + ': ' + value + ')';\n }\n\n if (index < features.length - 1) {\n mq += ' and ';\n }\n });\n return mq;\n};\n\nvar json2mq = function json2mq(query) {\n var mq = '';\n\n if (typeof query === 'string') {\n return query;\n } // Handling array of media queries\n\n\n if (query instanceof Array) {\n query.forEach(function (q, index) {\n mq += obj2mq(q);\n\n if (index < query.length - 1) {\n mq += ', ';\n }\n });\n return mq;\n } // Handling single media query\n\n\n return obj2mq(query);\n};\n\nmodule.exports = json2mq;","/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n/** Used as references for various `Number` constants. */\n\nvar NAN = 0 / 0;\n/** `Object#toString` result references. */\n\nvar symbolTag = '[object Symbol]';\n/** Used to match leading and trailing whitespace. */\n\nvar reTrim = /^\\s+|\\s+$/g;\n/** Used to detect bad signed hexadecimal string values. */\n\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n/** Used to detect binary string values. */\n\nvar reIsBinary = /^0b[01]+$/i;\n/** Used to detect octal string values. */\n\nvar reIsOctal = /^0o[0-7]+$/i;\n/** Built-in method references without a dependency on `root`. */\n\nvar freeParseInt = parseInt;\n/** Detect free variable `global` from Node.js. */\n\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n/** Detect free variable `self`. */\n\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n/** Used as a reference to the global object. */\n\nvar root = freeGlobal || freeSelf || Function('return this')();\n/** Used for built-in method references. */\n\nvar objectProto = Object.prototype;\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\n\nvar objectToString = objectProto.toString;\n/* Built-in method references for those with the same name as other `lodash` methods. */\n\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\n\nvar now = function now() {\n return root.Date.now();\n};\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\n\n\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n\n wait = toNumber(wait) || 0;\n\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time; // Start the timer for the trailing edge.\n\n timerId = setTimeout(timerExpired, wait); // Invoke the leading edge.\n\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n result = wait - timeSinceLastCall;\n return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime; // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n\n return lastCallTime === undefined || timeSinceLastCall >= wait || timeSinceLastCall < 0 || maxing && timeSinceLastInvoke >= maxWait;\n }\n\n function timerExpired() {\n var time = now();\n\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n } // Restart the timer.\n\n\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined; // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n\n if (maxing) {\n // Handle invocations in a tight loop.\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n\n return result;\n }\n\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\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 */\n\n\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\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 * @since 4.0.0\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 */\n\n\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\n\n\nfunction isSymbol(value) {\n return typeof value == 'symbol' || isObjectLike(value) && objectToString.call(value) == symbolTag;\n}\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\n\n\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n\n if (isSymbol(value)) {\n return NAN;\n }\n\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? other + '' : other;\n }\n\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return isBinary || reIsOctal.test(value) ? freeParseInt(value.slice(2), isBinary ? 2 : 8) : reIsBadHex.test(value) ? NAN : +value;\n}\n\nmodule.exports = debounce;","/*!\n * Masonry v4.2.2\n * Cascading grid layout library\n * https://masonry.desandro.com\n * MIT License\n * by David DeSandro\n */\n(function (window, factory) {\n // universal module definition\n\n /* jshint strict: false */\n\n /*globals define, module, require */\n if (typeof define == 'function' && define.amd) {\n // AMD\n define(['outlayer/outlayer', 'get-size/get-size'], factory);\n } else if (typeof module == 'object' && module.exports) {\n // CommonJS\n module.exports = factory(require('outlayer'), require('get-size'));\n } else {\n // browser global\n window.Masonry = factory(window.Outlayer, window.getSize);\n }\n})(window, function factory(Outlayer, getSize) {\n 'use strict'; // -------------------------- masonryDefinition -------------------------- //\n // create an Outlayer layout class\n\n var Masonry = Outlayer.create('masonry'); // isFitWidth -> fitWidth\n\n Masonry.compatOptions.fitWidth = 'isFitWidth';\n var proto = Masonry.prototype;\n\n proto._resetLayout = function () {\n this.getSize();\n\n this._getMeasurement('columnWidth', 'outerWidth');\n\n this._getMeasurement('gutter', 'outerWidth');\n\n this.measureColumns(); // reset column Y\n\n this.colYs = [];\n\n for (var i = 0; i < this.cols; i++) {\n this.colYs.push(0);\n }\n\n this.maxY = 0;\n this.horizontalColIndex = 0;\n };\n\n proto.measureColumns = function () {\n this.getContainerWidth(); // if columnWidth is 0, default to outerWidth of first item\n\n if (!this.columnWidth) {\n var firstItem = this.items[0];\n var firstItemElem = firstItem && firstItem.element; // columnWidth fall back to item of first element\n\n this.columnWidth = firstItemElem && getSize(firstItemElem).outerWidth || // if first elem has no width, default to size of container\n this.containerWidth;\n }\n\n var columnWidth = this.columnWidth += this.gutter; // calculate columns\n\n var containerWidth = this.containerWidth + this.gutter;\n var cols = containerWidth / columnWidth; // fix rounding errors, typically with gutters\n\n var excess = columnWidth - containerWidth % columnWidth; // if overshoot is less than a pixel, round up, otherwise floor it\n\n var mathMethod = excess && excess < 1 ? 'round' : 'floor';\n cols = Math[mathMethod](cols);\n this.cols = Math.max(cols, 1);\n };\n\n proto.getContainerWidth = function () {\n // container is parent if fit width\n var isFitWidth = this._getOption('fitWidth');\n\n var container = isFitWidth ? this.element.parentNode : this.element; // check that this.size and size are there\n // IE8 triggers resize on body size change, so they might not be\n\n var size = getSize(container);\n this.containerWidth = size && size.innerWidth;\n };\n\n proto._getItemLayoutPosition = function (item) {\n item.getSize(); // how many columns does this brick span\n\n var remainder = item.size.outerWidth % this.columnWidth;\n var mathMethod = remainder && remainder < 1 ? 'round' : 'ceil'; // round if off by 1 pixel, otherwise use ceil\n\n var colSpan = Math[mathMethod](item.size.outerWidth / this.columnWidth);\n colSpan = Math.min(colSpan, this.cols); // use horizontal or top column position\n\n var colPosMethod = this.options.horizontalOrder ? '_getHorizontalColPosition' : '_getTopColPosition';\n var colPosition = this[colPosMethod](colSpan, item); // position the brick\n\n var position = {\n x: this.columnWidth * colPosition.col,\n y: colPosition.y\n }; // apply setHeight to necessary columns\n\n var setHeight = colPosition.y + item.size.outerHeight;\n var setMax = colSpan + colPosition.col;\n\n for (var i = colPosition.col; i < setMax; i++) {\n this.colYs[i] = setHeight;\n }\n\n return position;\n };\n\n proto._getTopColPosition = function (colSpan) {\n var colGroup = this._getTopColGroup(colSpan); // get the minimum Y value from the columns\n\n\n var minimumY = Math.min.apply(Math, colGroup);\n return {\n col: colGroup.indexOf(minimumY),\n y: minimumY\n };\n };\n /**\n * @param {Number} colSpan - number of columns the element spans\n * @returns {Array} colGroup\n */\n\n\n proto._getTopColGroup = function (colSpan) {\n if (colSpan < 2) {\n // if brick spans only one column, use all the column Ys\n return this.colYs;\n }\n\n var colGroup = []; // how many different places could this brick fit horizontally\n\n var groupCount = this.cols + 1 - colSpan; // for each group potential horizontal position\n\n for (var i = 0; i < groupCount; i++) {\n colGroup[i] = this._getColGroupY(i, colSpan);\n }\n\n return colGroup;\n };\n\n proto._getColGroupY = function (col, colSpan) {\n if (colSpan < 2) {\n return this.colYs[col];\n } // make an array of colY values for that one group\n\n\n var groupColYs = this.colYs.slice(col, col + colSpan); // and get the max value of the array\n\n return Math.max.apply(Math, groupColYs);\n }; // get column position based on horizontal index. #873\n\n\n proto._getHorizontalColPosition = function (colSpan, item) {\n var col = this.horizontalColIndex % this.cols;\n var isOver = colSpan > 1 && col + colSpan > this.cols; // shift to next row if item can't fit on current row\n\n col = isOver ? 0 : col; // don't let zero-size items take up space\n\n var hasSize = item.size.outerWidth && item.size.outerHeight;\n this.horizontalColIndex = hasSize ? col + colSpan : this.horizontalColIndex;\n return {\n col: col,\n y: this._getColGroupY(col, colSpan)\n };\n };\n\n proto._manageStamp = function (stamp) {\n var stampSize = getSize(stamp);\n\n var offset = this._getElementOffset(stamp); // get the columns that this stamp affects\n\n\n var isOriginLeft = this._getOption('originLeft');\n\n var firstX = isOriginLeft ? offset.left : offset.right;\n var lastX = firstX + stampSize.outerWidth;\n var firstCol = Math.floor(firstX / this.columnWidth);\n firstCol = Math.max(0, firstCol);\n var lastCol = Math.floor(lastX / this.columnWidth); // lastCol should not go over if multiple of columnWidth #425\n\n lastCol -= lastX % this.columnWidth ? 0 : 1;\n lastCol = Math.min(this.cols - 1, lastCol); // set colYs to bottom of the stamp\n\n var isOriginTop = this._getOption('originTop');\n\n var stampMaxY = (isOriginTop ? offset.top : offset.bottom) + stampSize.outerHeight;\n\n for (var i = firstCol; i <= lastCol; i++) {\n this.colYs[i] = Math.max(stampMaxY, this.colYs[i]);\n }\n };\n\n proto._getContainerSize = function () {\n this.maxY = Math.max.apply(Math, this.colYs);\n var size = {\n height: this.maxY\n };\n\n if (this._getOption('fitWidth')) {\n size.width = this._getContainerFitWidth();\n }\n\n return size;\n };\n\n proto._getContainerFitWidth = function () {\n var unusedCols = 0; // count unused columns\n\n var i = this.cols;\n\n while (--i) {\n if (this.colYs[i] !== 0) {\n break;\n }\n\n unusedCols++;\n } // fit container to columns that have been used\n\n\n return (this.cols - unusedCols) * this.columnWidth - this.gutter;\n };\n\n proto.needsResizeLayout = function () {\n var previousWidth = this.containerWidth;\n this.getContainerWidth();\n return previousWidth != this.containerWidth;\n };\n\n return Masonry;\n});","\"use strict\"; // ref: https://github.com/tc39/proposal-global\n\nvar getGlobal = function getGlobal() {\n // the only reliable means to get the global object is\n // `Function('return this')()`\n // However, this causes CSP violations in Chrome apps.\n if (typeof self !== 'undefined') {\n return self;\n }\n\n if (typeof window !== 'undefined') {\n return window;\n }\n\n if (typeof global !== 'undefined') {\n return global;\n }\n\n throw new Error('unable to locate global object');\n};\n\nvar global = getGlobal();\nmodule.exports = exports = global.fetch; // Needed for TypeScript and Webpack.\n\nif (global.fetch) {\n exports.default = global.fetch.bind(global);\n}\n\nexports.Headers = global.Headers;\nexports.Request = global.Request;\nexports.Response = global.Response;","/**\n * Outlayer Item\n */\n(function (window, factory) {\n // universal module definition\n\n /* jshint strict: false */\n\n /* globals define, module, require */\n if (typeof define == 'function' && define.amd) {\n // AMD - RequireJS\n define(['ev-emitter/ev-emitter', 'get-size/get-size'], factory);\n } else if (typeof module == 'object' && module.exports) {\n // CommonJS - Browserify, Webpack\n module.exports = factory(require('ev-emitter'), require('get-size'));\n } else {\n // browser global\n window.Outlayer = {};\n window.Outlayer.Item = factory(window.EvEmitter, window.getSize);\n }\n})(window, function factory(EvEmitter, getSize) {\n 'use strict'; // ----- helpers ----- //\n\n function isEmptyObj(obj) {\n for (var prop in obj) {\n return false;\n }\n\n prop = null;\n return true;\n } // -------------------------- CSS3 support -------------------------- //\n\n\n var docElemStyle = document.documentElement.style;\n var transitionProperty = typeof docElemStyle.transition == 'string' ? 'transition' : 'WebkitTransition';\n var transformProperty = typeof docElemStyle.transform == 'string' ? 'transform' : 'WebkitTransform';\n var transitionEndEvent = {\n WebkitTransition: 'webkitTransitionEnd',\n transition: 'transitionend'\n }[transitionProperty]; // cache all vendor properties that could have vendor prefix\n\n var vendorProperties = {\n transform: transformProperty,\n transition: transitionProperty,\n transitionDuration: transitionProperty + 'Duration',\n transitionProperty: transitionProperty + 'Property',\n transitionDelay: transitionProperty + 'Delay'\n }; // -------------------------- Item -------------------------- //\n\n function Item(element, layout) {\n if (!element) {\n return;\n }\n\n this.element = element; // parent layout class, i.e. Masonry, Isotope, or Packery\n\n this.layout = layout;\n this.position = {\n x: 0,\n y: 0\n };\n\n this._create();\n } // inherit EvEmitter\n\n\n var proto = Item.prototype = Object.create(EvEmitter.prototype);\n proto.constructor = Item;\n\n proto._create = function () {\n // transition objects\n this._transn = {\n ingProperties: {},\n clean: {},\n onEnd: {}\n };\n this.css({\n position: 'absolute'\n });\n }; // trigger specified handler for event type\n\n\n proto.handleEvent = function (event) {\n var method = 'on' + event.type;\n\n if (this[method]) {\n this[method](event);\n }\n };\n\n proto.getSize = function () {\n this.size = getSize(this.element);\n };\n /**\n * apply CSS styles to element\n * @param {Object} style\n */\n\n\n proto.css = function (style) {\n var elemStyle = this.element.style;\n\n for (var prop in style) {\n // use vendor property if available\n var supportedProp = vendorProperties[prop] || prop;\n elemStyle[supportedProp] = style[prop];\n }\n }; // measure position, and sets it\n\n\n proto.getPosition = function () {\n var style = getComputedStyle(this.element);\n\n var isOriginLeft = this.layout._getOption('originLeft');\n\n var isOriginTop = this.layout._getOption('originTop');\n\n var xValue = style[isOriginLeft ? 'left' : 'right'];\n var yValue = style[isOriginTop ? 'top' : 'bottom'];\n var x = parseFloat(xValue);\n var y = parseFloat(yValue); // convert percent to pixels\n\n var layoutSize = this.layout.size;\n\n if (xValue.indexOf('%') != -1) {\n x = x / 100 * layoutSize.width;\n }\n\n if (yValue.indexOf('%') != -1) {\n y = y / 100 * layoutSize.height;\n } // clean up 'auto' or other non-integer values\n\n\n x = isNaN(x) ? 0 : x;\n y = isNaN(y) ? 0 : y; // remove padding from measurement\n\n x -= isOriginLeft ? layoutSize.paddingLeft : layoutSize.paddingRight;\n y -= isOriginTop ? layoutSize.paddingTop : layoutSize.paddingBottom;\n this.position.x = x;\n this.position.y = y;\n }; // set settled position, apply padding\n\n\n proto.layoutPosition = function () {\n var layoutSize = this.layout.size;\n var style = {};\n\n var isOriginLeft = this.layout._getOption('originLeft');\n\n var isOriginTop = this.layout._getOption('originTop'); // x\n\n\n var xPadding = isOriginLeft ? 'paddingLeft' : 'paddingRight';\n var xProperty = isOriginLeft ? 'left' : 'right';\n var xResetProperty = isOriginLeft ? 'right' : 'left';\n var x = this.position.x + layoutSize[xPadding]; // set in percentage or pixels\n\n style[xProperty] = this.getXValue(x); // reset other property\n\n style[xResetProperty] = ''; // y\n\n var yPadding = isOriginTop ? 'paddingTop' : 'paddingBottom';\n var yProperty = isOriginTop ? 'top' : 'bottom';\n var yResetProperty = isOriginTop ? 'bottom' : 'top';\n var y = this.position.y + layoutSize[yPadding]; // set in percentage or pixels\n\n style[yProperty] = this.getYValue(y); // reset other property\n\n style[yResetProperty] = '';\n this.css(style);\n this.emitEvent('layout', [this]);\n };\n\n proto.getXValue = function (x) {\n var isHorizontal = this.layout._getOption('horizontal');\n\n return this.layout.options.percentPosition && !isHorizontal ? x / this.layout.size.width * 100 + '%' : x + 'px';\n };\n\n proto.getYValue = function (y) {\n var isHorizontal = this.layout._getOption('horizontal');\n\n return this.layout.options.percentPosition && isHorizontal ? y / this.layout.size.height * 100 + '%' : y + 'px';\n };\n\n proto._transitionTo = function (x, y) {\n this.getPosition(); // get current x & y from top/left\n\n var curX = this.position.x;\n var curY = this.position.y;\n var didNotMove = x == this.position.x && y == this.position.y; // save end position\n\n this.setPosition(x, y); // if did not move and not transitioning, just go to layout\n\n if (didNotMove && !this.isTransitioning) {\n this.layoutPosition();\n return;\n }\n\n var transX = x - curX;\n var transY = y - curY;\n var transitionStyle = {};\n transitionStyle.transform = this.getTranslate(transX, transY);\n this.transition({\n to: transitionStyle,\n onTransitionEnd: {\n transform: this.layoutPosition\n },\n isCleaning: true\n });\n };\n\n proto.getTranslate = function (x, y) {\n // flip cooridinates if origin on right or bottom\n var isOriginLeft = this.layout._getOption('originLeft');\n\n var isOriginTop = this.layout._getOption('originTop');\n\n x = isOriginLeft ? x : -x;\n y = isOriginTop ? y : -y;\n return 'translate3d(' + x + 'px, ' + y + 'px, 0)';\n }; // non transition + transform support\n\n\n proto.goTo = function (x, y) {\n this.setPosition(x, y);\n this.layoutPosition();\n };\n\n proto.moveTo = proto._transitionTo;\n\n proto.setPosition = function (x, y) {\n this.position.x = parseFloat(x);\n this.position.y = parseFloat(y);\n }; // ----- transition ----- //\n\n /**\n * @param {Object} style - CSS\n * @param {Function} onTransitionEnd\n */\n // non transition, just trigger callback\n\n\n proto._nonTransition = function (args) {\n this.css(args.to);\n\n if (args.isCleaning) {\n this._removeStyles(args.to);\n }\n\n for (var prop in args.onTransitionEnd) {\n args.onTransitionEnd[prop].call(this);\n }\n };\n /**\n * proper transition\n * @param {Object} args - arguments\n * @param {Object} to - style to transition to\n * @param {Object} from - style to start transition from\n * @param {Boolean} isCleaning - removes transition styles after transition\n * @param {Function} onTransitionEnd - callback\n */\n\n\n proto.transition = function (args) {\n // redirect to nonTransition if no transition duration\n if (!parseFloat(this.layout.options.transitionDuration)) {\n this._nonTransition(args);\n\n return;\n }\n\n var _transition = this._transn; // keep track of onTransitionEnd callback by css property\n\n for (var prop in args.onTransitionEnd) {\n _transition.onEnd[prop] = args.onTransitionEnd[prop];\n } // keep track of properties that are transitioning\n\n\n for (prop in args.to) {\n _transition.ingProperties[prop] = true; // keep track of properties to clean up when transition is done\n\n if (args.isCleaning) {\n _transition.clean[prop] = true;\n }\n } // set from styles\n\n\n if (args.from) {\n this.css(args.from); // force redraw. http://blog.alexmaccaw.com/css-transitions\n\n var h = this.element.offsetHeight; // hack for JSHint to hush about unused var\n\n h = null;\n } // enable transition\n\n\n this.enableTransition(args.to); // set styles that are transitioning\n\n this.css(args.to);\n this.isTransitioning = true;\n }; // dash before all cap letters, including first for\n // WebkitTransform => -webkit-transform\n\n\n function toDashedAll(str) {\n return str.replace(/([A-Z])/g, function ($1) {\n return '-' + $1.toLowerCase();\n });\n }\n\n var transitionProps = 'opacity,' + toDashedAll(transformProperty);\n\n proto.enableTransition = function\n /* style */\n () {\n // HACK changing transitionProperty during a transition\n // will cause transition to jump\n if (this.isTransitioning) {\n return;\n } // make `transition: foo, bar, baz` from style object\n // HACK un-comment this when enableTransition can work\n // while a transition is happening\n // var transitionValues = [];\n // for ( var prop in style ) {\n // // dash-ify camelCased properties like WebkitTransition\n // prop = vendorProperties[ prop ] || prop;\n // transitionValues.push( toDashedAll( prop ) );\n // }\n // munge number to millisecond, to match stagger\n\n\n var duration = this.layout.options.transitionDuration;\n duration = typeof duration == 'number' ? duration + 'ms' : duration; // enable transition styles\n\n this.css({\n transitionProperty: transitionProps,\n transitionDuration: duration,\n transitionDelay: this.staggerDelay || 0\n }); // listen for transition end event\n\n this.element.addEventListener(transitionEndEvent, this, false);\n }; // ----- events ----- //\n\n\n proto.onwebkitTransitionEnd = function (event) {\n this.ontransitionend(event);\n };\n\n proto.onotransitionend = function (event) {\n this.ontransitionend(event);\n }; // properties that I munge to make my life easier\n\n\n var dashedVendorProperties = {\n '-webkit-transform': 'transform'\n };\n\n proto.ontransitionend = function (event) {\n // disregard bubbled events from children\n if (event.target !== this.element) {\n return;\n }\n\n var _transition = this._transn; // get property name of transitioned property, convert to prefix-free\n\n var propertyName = dashedVendorProperties[event.propertyName] || event.propertyName; // remove property that has completed transitioning\n\n delete _transition.ingProperties[propertyName]; // check if any properties are still transitioning\n\n if (isEmptyObj(_transition.ingProperties)) {\n // all properties have completed transitioning\n this.disableTransition();\n } // clean style\n\n\n if (propertyName in _transition.clean) {\n // clean up style\n this.element.style[event.propertyName] = '';\n delete _transition.clean[propertyName];\n } // trigger onTransitionEnd callback\n\n\n if (propertyName in _transition.onEnd) {\n var onTransitionEnd = _transition.onEnd[propertyName];\n onTransitionEnd.call(this);\n delete _transition.onEnd[propertyName];\n }\n\n this.emitEvent('transitionEnd', [this]);\n };\n\n proto.disableTransition = function () {\n this.removeTransitionStyles();\n this.element.removeEventListener(transitionEndEvent, this, false);\n this.isTransitioning = false;\n };\n /**\n * removes style property from element\n * @param {Object} style\n **/\n\n\n proto._removeStyles = function (style) {\n // clean up transition styles\n var cleanStyle = {};\n\n for (var prop in style) {\n cleanStyle[prop] = '';\n }\n\n this.css(cleanStyle);\n };\n\n var cleanTransitionStyle = {\n transitionProperty: '',\n transitionDuration: '',\n transitionDelay: ''\n };\n\n proto.removeTransitionStyles = function () {\n // remove transition\n this.css(cleanTransitionStyle);\n }; // ----- stagger ----- //\n\n\n proto.stagger = function (delay) {\n delay = isNaN(delay) ? 0 : delay;\n this.staggerDelay = delay + 'ms';\n }; // ----- show/hide/remove ----- //\n // remove element from DOM\n\n\n proto.removeElem = function () {\n this.element.parentNode.removeChild(this.element); // remove display: none\n\n this.css({\n display: ''\n });\n this.emitEvent('remove', [this]);\n };\n\n proto.remove = function () {\n // just remove element if no transition support or no transition\n if (!transitionProperty || !parseFloat(this.layout.options.transitionDuration)) {\n this.removeElem();\n return;\n } // start transition\n\n\n this.once('transitionEnd', function () {\n this.removeElem();\n });\n this.hide();\n };\n\n proto.reveal = function () {\n delete this.isHidden; // remove display: none\n\n this.css({\n display: ''\n });\n var options = this.layout.options;\n var onTransitionEnd = {};\n var transitionEndProperty = this.getHideRevealTransitionEndProperty('visibleStyle');\n onTransitionEnd[transitionEndProperty] = this.onRevealTransitionEnd;\n this.transition({\n from: options.hiddenStyle,\n to: options.visibleStyle,\n isCleaning: true,\n onTransitionEnd: onTransitionEnd\n });\n };\n\n proto.onRevealTransitionEnd = function () {\n // check if still visible\n // during transition, item may have been hidden\n if (!this.isHidden) {\n this.emitEvent('reveal');\n }\n };\n /**\n * get style property use for hide/reveal transition end\n * @param {String} styleProperty - hiddenStyle/visibleStyle\n * @returns {String}\n */\n\n\n proto.getHideRevealTransitionEndProperty = function (styleProperty) {\n var optionStyle = this.layout.options[styleProperty]; // use opacity\n\n if (optionStyle.opacity) {\n return 'opacity';\n } // get first property\n\n\n for (var prop in optionStyle) {\n return prop;\n }\n };\n\n proto.hide = function () {\n // set flag\n this.isHidden = true; // remove display: none\n\n this.css({\n display: ''\n });\n var options = this.layout.options;\n var onTransitionEnd = {};\n var transitionEndProperty = this.getHideRevealTransitionEndProperty('hiddenStyle');\n onTransitionEnd[transitionEndProperty] = this.onHideTransitionEnd;\n this.transition({\n from: options.visibleStyle,\n to: options.hiddenStyle,\n // keep hidden stuff hidden\n isCleaning: true,\n onTransitionEnd: onTransitionEnd\n });\n };\n\n proto.onHideTransitionEnd = function () {\n // check if still hidden\n // during transition, item may have been un-hidden\n if (this.isHidden) {\n this.css({\n display: 'none'\n });\n this.emitEvent('hide');\n }\n };\n\n proto.destroy = function () {\n this.css({\n position: '',\n left: '',\n right: '',\n top: '',\n bottom: '',\n transition: '',\n transform: ''\n });\n };\n\n return Item;\n});","/*!\n * Outlayer v2.1.1\n * the brains and guts of a layout library\n * MIT license\n */\n(function (window, factory) {\n 'use strict'; // universal module definition\n\n /* jshint strict: false */\n\n /* globals define, module, require */\n\n if (typeof define == 'function' && define.amd) {\n // AMD - RequireJS\n define(['ev-emitter/ev-emitter', 'get-size/get-size', 'fizzy-ui-utils/utils', './item'], function (EvEmitter, getSize, utils, Item) {\n return factory(window, EvEmitter, getSize, utils, Item);\n });\n } else if (typeof module == 'object' && module.exports) {\n // CommonJS - Browserify, Webpack\n module.exports = factory(window, require('ev-emitter'), require('get-size'), require('fizzy-ui-utils'), require('./item'));\n } else {\n // browser global\n window.Outlayer = factory(window, window.EvEmitter, window.getSize, window.fizzyUIUtils, window.Outlayer.Item);\n }\n})(window, function factory(window, EvEmitter, getSize, utils, Item) {\n 'use strict'; // ----- vars ----- //\n\n var console = window.console;\n var jQuery = window.jQuery;\n\n var noop = function noop() {}; // -------------------------- Outlayer -------------------------- //\n // globally unique identifiers\n\n\n var GUID = 0; // internal store of all Outlayer intances\n\n var instances = {};\n /**\n * @param {Element, String} element\n * @param {Object} options\n * @constructor\n */\n\n function Outlayer(element, options) {\n var queryElement = utils.getQueryElement(element);\n\n if (!queryElement) {\n if (console) {\n console.error('Bad element for ' + this.constructor.namespace + ': ' + (queryElement || element));\n }\n\n return;\n }\n\n this.element = queryElement; // add jQuery\n\n if (jQuery) {\n this.$element = jQuery(this.element);\n } // options\n\n\n this.options = utils.extend({}, this.constructor.defaults);\n this.option(options); // add id for Outlayer.getFromElement\n\n var id = ++GUID;\n this.element.outlayerGUID = id; // expando\n\n instances[id] = this; // associate via id\n // kick it off\n\n this._create();\n\n var isInitLayout = this._getOption('initLayout');\n\n if (isInitLayout) {\n this.layout();\n }\n } // settings are for internal use only\n\n\n Outlayer.namespace = 'outlayer';\n Outlayer.Item = Item; // default options\n\n Outlayer.defaults = {\n containerStyle: {\n position: 'relative'\n },\n initLayout: true,\n originLeft: true,\n originTop: true,\n resize: true,\n resizeContainer: true,\n // item options\n transitionDuration: '0.4s',\n hiddenStyle: {\n opacity: 0,\n transform: 'scale(0.001)'\n },\n visibleStyle: {\n opacity: 1,\n transform: 'scale(1)'\n }\n };\n var proto = Outlayer.prototype; // inherit EvEmitter\n\n utils.extend(proto, EvEmitter.prototype);\n /**\n * set options\n * @param {Object} opts\n */\n\n proto.option = function (opts) {\n utils.extend(this.options, opts);\n };\n /**\n * get backwards compatible option value, check old name\n */\n\n\n proto._getOption = function (option) {\n var oldOption = this.constructor.compatOptions[option];\n return oldOption && this.options[oldOption] !== undefined ? this.options[oldOption] : this.options[option];\n };\n\n Outlayer.compatOptions = {\n // currentName: oldName\n initLayout: 'isInitLayout',\n horizontal: 'isHorizontal',\n layoutInstant: 'isLayoutInstant',\n originLeft: 'isOriginLeft',\n originTop: 'isOriginTop',\n resize: 'isResizeBound',\n resizeContainer: 'isResizingContainer'\n };\n\n proto._create = function () {\n // get items from children\n this.reloadItems(); // elements that affect layout, but are not laid out\n\n this.stamps = [];\n this.stamp(this.options.stamp); // set container style\n\n utils.extend(this.element.style, this.options.containerStyle); // bind resize method\n\n var canBindResize = this._getOption('resize');\n\n if (canBindResize) {\n this.bindResize();\n }\n }; // goes through all children again and gets bricks in proper order\n\n\n proto.reloadItems = function () {\n // collection of item elements\n this.items = this._itemize(this.element.children);\n };\n /**\n * turn elements into Outlayer.Items to be used in layout\n * @param {Array or NodeList or HTMLElement} elems\n * @returns {Array} items - collection of new Outlayer Items\n */\n\n\n proto._itemize = function (elems) {\n var itemElems = this._filterFindItemElements(elems);\n\n var Item = this.constructor.Item; // create new Outlayer Items for collection\n\n var items = [];\n\n for (var i = 0; i < itemElems.length; i++) {\n var elem = itemElems[i];\n var item = new Item(elem, this);\n items.push(item);\n }\n\n return items;\n };\n /**\n * get item elements to be used in layout\n * @param {Array or NodeList or HTMLElement} elems\n * @returns {Array} items - item elements\n */\n\n\n proto._filterFindItemElements = function (elems) {\n return utils.filterFindElements(elems, this.options.itemSelector);\n };\n /**\n * getter method for getting item elements\n * @returns {Array} elems - collection of item elements\n */\n\n\n proto.getItemElements = function () {\n return this.items.map(function (item) {\n return item.element;\n });\n }; // ----- init & layout ----- //\n\n /**\n * lays out all items\n */\n\n\n proto.layout = function () {\n this._resetLayout();\n\n this._manageStamps(); // don't animate first layout\n\n\n var layoutInstant = this._getOption('layoutInstant');\n\n var isInstant = layoutInstant !== undefined ? layoutInstant : !this._isLayoutInited;\n this.layoutItems(this.items, isInstant); // flag for initalized\n\n this._isLayoutInited = true;\n }; // _init is alias for layout\n\n\n proto._init = proto.layout;\n /**\n * logic before any new layout\n */\n\n proto._resetLayout = function () {\n this.getSize();\n };\n\n proto.getSize = function () {\n this.size = getSize(this.element);\n };\n /**\n * get measurement from option, for columnWidth, rowHeight, gutter\n * if option is String -> get element from selector string, & get size of element\n * if option is Element -> get size of element\n * else use option as a number\n *\n * @param {String} measurement\n * @param {String} size - width or height\n * @private\n */\n\n\n proto._getMeasurement = function (measurement, size) {\n var option = this.options[measurement];\n var elem;\n\n if (!option) {\n // default to 0\n this[measurement] = 0;\n } else {\n // use option as an element\n if (typeof option == 'string') {\n elem = this.element.querySelector(option);\n } else if (option instanceof HTMLElement) {\n elem = option;\n } // use size of element, if element\n\n\n this[measurement] = elem ? getSize(elem)[size] : option;\n }\n };\n /**\n * layout a collection of item elements\n * @api public\n */\n\n\n proto.layoutItems = function (items, isInstant) {\n items = this._getItemsForLayout(items);\n\n this._layoutItems(items, isInstant);\n\n this._postLayout();\n };\n /**\n * get the items to be laid out\n * you may want to skip over some items\n * @param {Array} items\n * @returns {Array} items\n */\n\n\n proto._getItemsForLayout = function (items) {\n return items.filter(function (item) {\n return !item.isIgnored;\n });\n };\n /**\n * layout items\n * @param {Array} items\n * @param {Boolean} isInstant\n */\n\n\n proto._layoutItems = function (items, isInstant) {\n this._emitCompleteOnItems('layout', items);\n\n if (!items || !items.length) {\n // no items, emit event with empty array\n return;\n }\n\n var queue = [];\n items.forEach(function (item) {\n // get x/y object from method\n var position = this._getItemLayoutPosition(item); // enqueue\n\n\n position.item = item;\n position.isInstant = isInstant || item.isLayoutInstant;\n queue.push(position);\n }, this);\n\n this._processLayoutQueue(queue);\n };\n /**\n * get item layout position\n * @param {Outlayer.Item} item\n * @returns {Object} x and y position\n */\n\n\n proto._getItemLayoutPosition = function\n /* item */\n () {\n return {\n x: 0,\n y: 0\n };\n };\n /**\n * iterate over array and position each item\n * Reason being - separating this logic prevents 'layout invalidation'\n * thx @paul_irish\n * @param {Array} queue\n */\n\n\n proto._processLayoutQueue = function (queue) {\n this.updateStagger();\n queue.forEach(function (obj, i) {\n this._positionItem(obj.item, obj.x, obj.y, obj.isInstant, i);\n }, this);\n }; // set stagger from option in milliseconds number\n\n\n proto.updateStagger = function () {\n var stagger = this.options.stagger;\n\n if (stagger === null || stagger === undefined) {\n this.stagger = 0;\n return;\n }\n\n this.stagger = getMilliseconds(stagger);\n return this.stagger;\n };\n /**\n * Sets position of item in DOM\n * @param {Outlayer.Item} item\n * @param {Number} x - horizontal position\n * @param {Number} y - vertical position\n * @param {Boolean} isInstant - disables transitions\n */\n\n\n proto._positionItem = function (item, x, y, isInstant, i) {\n if (isInstant) {\n // if not transition, just set CSS\n item.goTo(x, y);\n } else {\n item.stagger(i * this.stagger);\n item.moveTo(x, y);\n }\n };\n /**\n * Any logic you want to do after each layout,\n * i.e. size the container\n */\n\n\n proto._postLayout = function () {\n this.resizeContainer();\n };\n\n proto.resizeContainer = function () {\n var isResizingContainer = this._getOption('resizeContainer');\n\n if (!isResizingContainer) {\n return;\n }\n\n var size = this._getContainerSize();\n\n if (size) {\n this._setContainerMeasure(size.width, true);\n\n this._setContainerMeasure(size.height, false);\n }\n };\n /**\n * Sets width or height of container if returned\n * @returns {Object} size\n * @param {Number} width\n * @param {Number} height\n */\n\n\n proto._getContainerSize = noop;\n /**\n * @param {Number} measure - size of width or height\n * @param {Boolean} isWidth\n */\n\n proto._setContainerMeasure = function (measure, isWidth) {\n if (measure === undefined) {\n return;\n }\n\n var elemSize = this.size; // add padding and border width if border box\n\n if (elemSize.isBorderBox) {\n measure += isWidth ? elemSize.paddingLeft + elemSize.paddingRight + elemSize.borderLeftWidth + elemSize.borderRightWidth : elemSize.paddingBottom + elemSize.paddingTop + elemSize.borderTopWidth + elemSize.borderBottomWidth;\n }\n\n measure = Math.max(measure, 0);\n this.element.style[isWidth ? 'width' : 'height'] = measure + 'px';\n };\n /**\n * emit eventComplete on a collection of items events\n * @param {String} eventName\n * @param {Array} items - Outlayer.Items\n */\n\n\n proto._emitCompleteOnItems = function (eventName, items) {\n var _this = this;\n\n function onComplete() {\n _this.dispatchEvent(eventName + 'Complete', null, [items]);\n }\n\n var count = items.length;\n\n if (!items || !count) {\n onComplete();\n return;\n }\n\n var doneCount = 0;\n\n function tick() {\n doneCount++;\n\n if (doneCount == count) {\n onComplete();\n }\n } // bind callback\n\n\n items.forEach(function (item) {\n item.once(eventName, tick);\n });\n };\n /**\n * emits events via EvEmitter and jQuery events\n * @param {String} type - name of event\n * @param {Event} event - original event\n * @param {Array} args - extra arguments\n */\n\n\n proto.dispatchEvent = function (type, event, args) {\n // add original event to arguments\n var emitArgs = event ? [event].concat(args) : args;\n this.emitEvent(type, emitArgs);\n\n if (jQuery) {\n // set this.$element\n this.$element = this.$element || jQuery(this.element);\n\n if (event) {\n // create jQuery event\n var $event = jQuery.Event(event);\n $event.type = type;\n this.$element.trigger($event, args);\n } else {\n // just trigger with type if no event available\n this.$element.trigger(type, args);\n }\n }\n }; // -------------------------- ignore & stamps -------------------------- //\n\n /**\n * keep item in collection, but do not lay it out\n * ignored items do not get skipped in layout\n * @param {Element} elem\n */\n\n\n proto.ignore = function (elem) {\n var item = this.getItem(elem);\n\n if (item) {\n item.isIgnored = true;\n }\n };\n /**\n * return item to layout collection\n * @param {Element} elem\n */\n\n\n proto.unignore = function (elem) {\n var item = this.getItem(elem);\n\n if (item) {\n delete item.isIgnored;\n }\n };\n /**\n * adds elements to stamps\n * @param {NodeList, Array, Element, or String} elems\n */\n\n\n proto.stamp = function (elems) {\n elems = this._find(elems);\n\n if (!elems) {\n return;\n }\n\n this.stamps = this.stamps.concat(elems); // ignore\n\n elems.forEach(this.ignore, this);\n };\n /**\n * removes elements to stamps\n * @param {NodeList, Array, or Element} elems\n */\n\n\n proto.unstamp = function (elems) {\n elems = this._find(elems);\n\n if (!elems) {\n return;\n }\n\n elems.forEach(function (elem) {\n // filter out removed stamp elements\n utils.removeFrom(this.stamps, elem);\n this.unignore(elem);\n }, this);\n };\n /**\n * finds child elements\n * @param {NodeList, Array, Element, or String} elems\n * @returns {Array} elems\n */\n\n\n proto._find = function (elems) {\n if (!elems) {\n return;\n } // if string, use argument as selector string\n\n\n if (typeof elems == 'string') {\n elems = this.element.querySelectorAll(elems);\n }\n\n elems = utils.makeArray(elems);\n return elems;\n };\n\n proto._manageStamps = function () {\n if (!this.stamps || !this.stamps.length) {\n return;\n }\n\n this._getBoundingRect();\n\n this.stamps.forEach(this._manageStamp, this);\n }; // update boundingLeft / Top\n\n\n proto._getBoundingRect = function () {\n // get bounding rect for container element\n var boundingRect = this.element.getBoundingClientRect();\n var size = this.size;\n this._boundingRect = {\n left: boundingRect.left + size.paddingLeft + size.borderLeftWidth,\n top: boundingRect.top + size.paddingTop + size.borderTopWidth,\n right: boundingRect.right - (size.paddingRight + size.borderRightWidth),\n bottom: boundingRect.bottom - (size.paddingBottom + size.borderBottomWidth)\n };\n };\n /**\n * @param {Element} stamp\n **/\n\n\n proto._manageStamp = noop;\n /**\n * get x/y position of element relative to container element\n * @param {Element} elem\n * @returns {Object} offset - has left, top, right, bottom\n */\n\n proto._getElementOffset = function (elem) {\n var boundingRect = elem.getBoundingClientRect();\n var thisRect = this._boundingRect;\n var size = getSize(elem);\n var offset = {\n left: boundingRect.left - thisRect.left - size.marginLeft,\n top: boundingRect.top - thisRect.top - size.marginTop,\n right: thisRect.right - boundingRect.right - size.marginRight,\n bottom: thisRect.bottom - boundingRect.bottom - size.marginBottom\n };\n return offset;\n }; // -------------------------- resize -------------------------- //\n // enable event handlers for listeners\n // i.e. resize -> onresize\n\n\n proto.handleEvent = utils.handleEvent;\n /**\n * Bind layout to window resizing\n */\n\n proto.bindResize = function () {\n window.addEventListener('resize', this);\n this.isResizeBound = true;\n };\n /**\n * Unbind layout to window resizing\n */\n\n\n proto.unbindResize = function () {\n window.removeEventListener('resize', this);\n this.isResizeBound = false;\n };\n\n proto.onresize = function () {\n this.resize();\n };\n\n utils.debounceMethod(Outlayer, 'onresize', 100);\n\n proto.resize = function () {\n // don't trigger if size did not change\n // or if resize was unbound. See #9\n if (!this.isResizeBound || !this.needsResizeLayout()) {\n return;\n }\n\n this.layout();\n };\n /**\n * check if layout is needed post layout\n * @returns Boolean\n */\n\n\n proto.needsResizeLayout = function () {\n var size = getSize(this.element); // check that this.size and size are there\n // IE8 triggers resize on body size change, so they might not be\n\n var hasSizes = this.size && size;\n return hasSizes && size.innerWidth !== this.size.innerWidth;\n }; // -------------------------- methods -------------------------- //\n\n /**\n * add items to Outlayer instance\n * @param {Array or NodeList or Element} elems\n * @returns {Array} items - Outlayer.Items\n **/\n\n\n proto.addItems = function (elems) {\n var items = this._itemize(elems); // add items to collection\n\n\n if (items.length) {\n this.items = this.items.concat(items);\n }\n\n return items;\n };\n /**\n * Layout newly-appended item elements\n * @param {Array or NodeList or Element} elems\n */\n\n\n proto.appended = function (elems) {\n var items = this.addItems(elems);\n\n if (!items.length) {\n return;\n } // layout and reveal just the new items\n\n\n this.layoutItems(items, true);\n this.reveal(items);\n };\n /**\n * Layout prepended elements\n * @param {Array or NodeList or Element} elems\n */\n\n\n proto.prepended = function (elems) {\n var items = this._itemize(elems);\n\n if (!items.length) {\n return;\n } // add items to beginning of collection\n\n\n var previousItems = this.items.slice(0);\n this.items = items.concat(previousItems); // start new layout\n\n this._resetLayout();\n\n this._manageStamps(); // layout new stuff without transition\n\n\n this.layoutItems(items, true);\n this.reveal(items); // layout previous items\n\n this.layoutItems(previousItems);\n };\n /**\n * reveal a collection of items\n * @param {Array of Outlayer.Items} items\n */\n\n\n proto.reveal = function (items) {\n this._emitCompleteOnItems('reveal', items);\n\n if (!items || !items.length) {\n return;\n }\n\n var stagger = this.updateStagger();\n items.forEach(function (item, i) {\n item.stagger(i * stagger);\n item.reveal();\n });\n };\n /**\n * hide a collection of items\n * @param {Array of Outlayer.Items} items\n */\n\n\n proto.hide = function (items) {\n this._emitCompleteOnItems('hide', items);\n\n if (!items || !items.length) {\n return;\n }\n\n var stagger = this.updateStagger();\n items.forEach(function (item, i) {\n item.stagger(i * stagger);\n item.hide();\n });\n };\n /**\n * reveal item elements\n * @param {Array}, {Element}, {NodeList} items\n */\n\n\n proto.revealItemElements = function (elems) {\n var items = this.getItems(elems);\n this.reveal(items);\n };\n /**\n * hide item elements\n * @param {Array}, {Element}, {NodeList} items\n */\n\n\n proto.hideItemElements = function (elems) {\n var items = this.getItems(elems);\n this.hide(items);\n };\n /**\n * get Outlayer.Item, given an Element\n * @param {Element} elem\n * @param {Function} callback\n * @returns {Outlayer.Item} item\n */\n\n\n proto.getItem = function (elem) {\n // loop through items to get the one that matches\n for (var i = 0; i < this.items.length; i++) {\n var item = this.items[i];\n\n if (item.element == elem) {\n // return item\n return item;\n }\n }\n };\n /**\n * get collection of Outlayer.Items, given Elements\n * @param {Array} elems\n * @returns {Array} items - Outlayer.Items\n */\n\n\n proto.getItems = function (elems) {\n elems = utils.makeArray(elems);\n var items = [];\n elems.forEach(function (elem) {\n var item = this.getItem(elem);\n\n if (item) {\n items.push(item);\n }\n }, this);\n return items;\n };\n /**\n * remove element(s) from instance and DOM\n * @param {Array or NodeList or Element} elems\n */\n\n\n proto.remove = function (elems) {\n var removeItems = this.getItems(elems);\n\n this._emitCompleteOnItems('remove', removeItems); // bail if no items to remove\n\n\n if (!removeItems || !removeItems.length) {\n return;\n }\n\n removeItems.forEach(function (item) {\n item.remove(); // remove item from collection\n\n utils.removeFrom(this.items, item);\n }, this);\n }; // ----- destroy ----- //\n // remove and disable Outlayer instance\n\n\n proto.destroy = function () {\n // clean up dynamic styles\n var style = this.element.style;\n style.height = '';\n style.position = '';\n style.width = ''; // destroy items\n\n this.items.forEach(function (item) {\n item.destroy();\n });\n this.unbindResize();\n var id = this.element.outlayerGUID;\n delete instances[id]; // remove reference to instance by id\n\n delete this.element.outlayerGUID; // remove data for jQuery\n\n if (jQuery) {\n jQuery.removeData(this.element, this.constructor.namespace);\n }\n }; // -------------------------- data -------------------------- //\n\n /**\n * get Outlayer instance from element\n * @param {Element} elem\n * @returns {Outlayer}\n */\n\n\n Outlayer.data = function (elem) {\n elem = utils.getQueryElement(elem);\n var id = elem && elem.outlayerGUID;\n return id && instances[id];\n }; // -------------------------- create Outlayer class -------------------------- //\n\n /**\n * create a layout class\n * @param {String} namespace\n */\n\n\n Outlayer.create = function (namespace, options) {\n // sub-class Outlayer\n var Layout = subclass(Outlayer); // apply new options and compatOptions\n\n Layout.defaults = utils.extend({}, Outlayer.defaults);\n utils.extend(Layout.defaults, options);\n Layout.compatOptions = utils.extend({}, Outlayer.compatOptions);\n Layout.namespace = namespace;\n Layout.data = Outlayer.data; // sub-class Item\n\n Layout.Item = subclass(Item); // -------------------------- declarative -------------------------- //\n\n utils.htmlInit(Layout, namespace); // -------------------------- jQuery bridge -------------------------- //\n // make into jQuery plugin\n\n if (jQuery && jQuery.bridget) {\n jQuery.bridget(namespace, Layout);\n }\n\n return Layout;\n };\n\n function subclass(Parent) {\n function SubClass() {\n Parent.apply(this, arguments);\n }\n\n SubClass.prototype = Object.create(Parent.prototype);\n SubClass.prototype.constructor = SubClass;\n return SubClass;\n } // ----- helpers ----- //\n // how many milliseconds are in each unit\n\n\n var msUnits = {\n ms: 1,\n s: 1000\n }; // munge time-like parameter into millisecond number\n // '0.4s' -> 40\n\n function getMilliseconds(time) {\n if (typeof time == 'number') {\n return time;\n }\n\n var matches = time.match(/(^\\d*\\.?\\d*)(\\w*)/);\n var num = matches && matches[1];\n var unit = matches && matches[2];\n\n if (!num.length) {\n return 0;\n }\n\n num = parseFloat(num);\n var mult = msUnits[unit] || 1;\n return num * mult;\n } // ----- fin ----- //\n // back in global\n\n\n Outlayer.Item = Item;\n return Outlayer;\n});","(function (global, factory) {\n if (typeof define === \"function\" && define.amd) {\n define(['exports', './react-swipe'], factory);\n } else if (typeof exports !== \"undefined\") {\n factory(exports, require('./react-swipe'));\n } else {\n var mod = {\n exports: {}\n };\n factory(mod.exports, global.reactSwipe);\n global.index = mod.exports;\n }\n})(this, function (exports, _reactSwipe) {\n 'use strict';\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n\n var _reactSwipe2 = _interopRequireDefault(_reactSwipe);\n\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n\n exports.default = _reactSwipe2.default;\n});","(function (global, factory) {\n if (typeof define === \"function\" && define.amd) {\n define(['exports', 'react', 'prop-types'], factory);\n } else if (typeof exports !== \"undefined\") {\n factory(exports, require('react'), require('prop-types'));\n } else {\n var mod = {\n exports: {}\n };\n factory(mod.exports, global.react, global.propTypes);\n global.reactSwipe = mod.exports;\n }\n})(this, function (exports, _react, _propTypes) {\n 'use strict';\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.setHasSupportToCaptureOption = setHasSupportToCaptureOption;\n\n var _react2 = _interopRequireDefault(_react);\n\n var _propTypes2 = _interopRequireDefault(_propTypes);\n\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n\n var _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 function _objectWithoutProperties(obj, keys) {\n var target = {};\n\n for (var i in obj) {\n if (keys.indexOf(i) >= 0) continue;\n if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n target[i] = obj[i];\n }\n\n return target;\n }\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n var _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 function _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n }\n\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n }\n\n var supportsCaptureOption = false;\n\n function setHasSupportToCaptureOption(hasSupport) {\n supportsCaptureOption = hasSupport;\n }\n\n try {\n addEventListener('test', null, Object.defineProperty({}, 'capture', {\n get: function get() {\n setHasSupportToCaptureOption(true);\n }\n }));\n } catch (e) {} // eslint-disable-line no-empty\n\n\n function getSafeEventHandlerOpts() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {\n capture: true\n };\n return supportsCaptureOption ? options : options.capture;\n }\n /**\n * [getPosition returns a position element that works for mouse or touch events]\n * @param {[Event]} event [the received event]\n * @return {[Object]} [x and y coords]\n */\n\n\n function getPosition(event) {\n if ('touches' in event) {\n var _event$touches$ = event.touches[0],\n pageX = _event$touches$.pageX,\n pageY = _event$touches$.pageY;\n return {\n x: pageX,\n y: pageY\n };\n }\n\n var screenX = event.screenX,\n screenY = event.screenY;\n return {\n x: screenX,\n y: screenY\n };\n }\n\n var ReactSwipe = function (_Component) {\n _inherits(ReactSwipe, _Component);\n\n function ReactSwipe() {\n var _ref;\n\n _classCallCheck(this, ReactSwipe);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var _this = _possibleConstructorReturn(this, (_ref = ReactSwipe.__proto__ || Object.getPrototypeOf(ReactSwipe)).call.apply(_ref, [this].concat(args)));\n\n _this._handleSwipeStart = _this._handleSwipeStart.bind(_this);\n _this._handleSwipeMove = _this._handleSwipeMove.bind(_this);\n _this._handleSwipeEnd = _this._handleSwipeEnd.bind(_this);\n _this._onMouseDown = _this._onMouseDown.bind(_this);\n _this._onMouseMove = _this._onMouseMove.bind(_this);\n _this._onMouseUp = _this._onMouseUp.bind(_this);\n _this._setSwiperRef = _this._setSwiperRef.bind(_this);\n return _this;\n }\n\n _createClass(ReactSwipe, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n if (this.swiper) {\n this.swiper.addEventListener('touchmove', this._handleSwipeMove, getSafeEventHandlerOpts({\n capture: true,\n passive: false\n }));\n }\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n if (this.swiper) {\n this.swiper.removeEventListener('touchmove', this._handleSwipeMove, getSafeEventHandlerOpts({\n capture: true,\n passive: false\n }));\n }\n }\n }, {\n key: '_onMouseDown',\n value: function _onMouseDown(event) {\n if (!this.props.allowMouseEvents) {\n return;\n }\n\n this.mouseDown = true;\n document.addEventListener('mouseup', this._onMouseUp);\n document.addEventListener('mousemove', this._onMouseMove);\n\n this._handleSwipeStart(event);\n }\n }, {\n key: '_onMouseMove',\n value: function _onMouseMove(event) {\n if (!this.mouseDown) {\n return;\n }\n\n this._handleSwipeMove(event);\n }\n }, {\n key: '_onMouseUp',\n value: function _onMouseUp(event) {\n this.mouseDown = false;\n document.removeEventListener('mouseup', this._onMouseUp);\n document.removeEventListener('mousemove', this._onMouseMove);\n\n this._handleSwipeEnd(event);\n }\n }, {\n key: '_handleSwipeStart',\n value: function _handleSwipeStart(event) {\n var _getPosition = getPosition(event),\n x = _getPosition.x,\n y = _getPosition.y;\n\n this.moveStart = {\n x: x,\n y: y\n };\n this.props.onSwipeStart(event);\n }\n }, {\n key: '_handleSwipeMove',\n value: function _handleSwipeMove(event) {\n if (!this.moveStart) {\n return;\n }\n\n var _getPosition2 = getPosition(event),\n x = _getPosition2.x,\n y = _getPosition2.y;\n\n var deltaX = x - this.moveStart.x;\n var deltaY = y - this.moveStart.y;\n this.moving = true; // handling the responsability of cancelling the scroll to\n // the component handling the event\n\n var shouldPreventDefault = this.props.onSwipeMove({\n x: deltaX,\n y: deltaY\n }, event);\n\n if (shouldPreventDefault && event.cancelable) {\n event.preventDefault();\n }\n\n this.movePosition = {\n deltaX: deltaX,\n deltaY: deltaY\n };\n }\n }, {\n key: '_handleSwipeEnd',\n value: function _handleSwipeEnd(event) {\n this.props.onSwipeEnd(event);\n var tolerance = this.props.tolerance;\n\n if (this.moving && this.movePosition) {\n if (this.movePosition.deltaX < -tolerance) {\n this.props.onSwipeLeft(1, event);\n } else if (this.movePosition.deltaX > tolerance) {\n this.props.onSwipeRight(1, event);\n }\n\n if (this.movePosition.deltaY < -tolerance) {\n this.props.onSwipeUp(1, event);\n } else if (this.movePosition.deltaY > tolerance) {\n this.props.onSwipeDown(1, event);\n }\n }\n\n this.moveStart = null;\n this.moving = false;\n this.movePosition = null;\n }\n }, {\n key: '_setSwiperRef',\n value: function _setSwiperRef(node) {\n this.swiper = node;\n this.props.innerRef(node);\n }\n }, {\n key: 'render',\n value: function render() {\n var _props = this.props,\n tagName = _props.tagName,\n className = _props.className,\n style = _props.style,\n children = _props.children,\n allowMouseEvents = _props.allowMouseEvents,\n onSwipeUp = _props.onSwipeUp,\n onSwipeDown = _props.onSwipeDown,\n onSwipeLeft = _props.onSwipeLeft,\n onSwipeRight = _props.onSwipeRight,\n onSwipeStart = _props.onSwipeStart,\n onSwipeMove = _props.onSwipeMove,\n onSwipeEnd = _props.onSwipeEnd,\n innerRef = _props.innerRef,\n tolerance = _props.tolerance,\n props = _objectWithoutProperties(_props, ['tagName', 'className', 'style', 'children', 'allowMouseEvents', 'onSwipeUp', 'onSwipeDown', 'onSwipeLeft', 'onSwipeRight', 'onSwipeStart', 'onSwipeMove', 'onSwipeEnd', 'innerRef', 'tolerance']);\n\n return _react2.default.createElement(this.props.tagName, _extends({\n ref: this._setSwiperRef,\n onMouseDown: this._onMouseDown,\n onTouchStart: this._handleSwipeStart,\n onTouchEnd: this._handleSwipeEnd,\n className: className,\n style: style\n }, props), children);\n }\n }]);\n\n return ReactSwipe;\n }(_react.Component);\n\n ReactSwipe.displayName = 'ReactSwipe';\n ReactSwipe.propTypes = {\n tagName: _propTypes2.default.string,\n className: _propTypes2.default.string,\n style: _propTypes2.default.object,\n children: _propTypes2.default.node,\n allowMouseEvents: _propTypes2.default.bool,\n onSwipeUp: _propTypes2.default.func,\n onSwipeDown: _propTypes2.default.func,\n onSwipeLeft: _propTypes2.default.func,\n onSwipeRight: _propTypes2.default.func,\n onSwipeStart: _propTypes2.default.func,\n onSwipeMove: _propTypes2.default.func,\n onSwipeEnd: _propTypes2.default.func,\n innerRef: _propTypes2.default.func,\n tolerance: _propTypes2.default.number.isRequired\n };\n ReactSwipe.defaultProps = {\n tagName: 'div',\n allowMouseEvents: false,\n onSwipeUp: function onSwipeUp() {},\n onSwipeDown: function onSwipeDown() {},\n onSwipeLeft: function onSwipeLeft() {},\n onSwipeRight: function onSwipeRight() {},\n onSwipeStart: function onSwipeStart() {},\n onSwipeMove: function onSwipeMove() {},\n onSwipeEnd: function onSwipeEnd() {},\n innerRef: function innerRef() {},\n tolerance: 0\n };\n exports.default = ReactSwipe;\n});","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';\n\nvar b = \"function\" === typeof Symbol && Symbol.for,\n c = b ? Symbol.for(\"react.element\") : 60103,\n d = b ? Symbol.for(\"react.portal\") : 60106,\n e = b ? Symbol.for(\"react.fragment\") : 60107,\n f = b ? Symbol.for(\"react.strict_mode\") : 60108,\n g = b ? Symbol.for(\"react.profiler\") : 60114,\n h = b ? Symbol.for(\"react.provider\") : 60109,\n k = b ? Symbol.for(\"react.context\") : 60110,\n l = b ? Symbol.for(\"react.async_mode\") : 60111,\n m = b ? Symbol.for(\"react.concurrent_mode\") : 60111,\n n = b ? Symbol.for(\"react.forward_ref\") : 60112,\n p = b ? Symbol.for(\"react.suspense\") : 60113,\n q = b ? Symbol.for(\"react.suspense_list\") : 60120,\n r = b ? Symbol.for(\"react.memo\") : 60115,\n t = b ? Symbol.for(\"react.lazy\") : 60116,\n v = b ? Symbol.for(\"react.block\") : 60121,\n w = b ? Symbol.for(\"react.fundamental\") : 60117,\n x = b ? Symbol.for(\"react.responder\") : 60118,\n y = b ? Symbol.for(\"react.scope\") : 60119;\n\nfunction z(a) {\n if (\"object\" === typeof a && null !== a) {\n var u = a.$$typeof;\n\n switch (u) {\n case c:\n switch (a = a.type, a) {\n case l:\n case m:\n case e:\n case g:\n case f:\n case p:\n return a;\n\n default:\n switch (a = a && a.$$typeof, a) {\n case k:\n case n:\n case t:\n case r:\n case h:\n return a;\n\n default:\n return u;\n }\n\n }\n\n case d:\n return u;\n }\n }\n}\n\nfunction A(a) {\n return z(a) === m;\n}\n\nexports.AsyncMode = l;\nexports.ConcurrentMode = m;\nexports.ContextConsumer = k;\nexports.ContextProvider = h;\nexports.Element = c;\nexports.ForwardRef = n;\nexports.Fragment = e;\nexports.Lazy = t;\nexports.Memo = r;\nexports.Portal = d;\nexports.Profiler = g;\nexports.StrictMode = f;\nexports.Suspense = p;\n\nexports.isAsyncMode = function (a) {\n return A(a) || z(a) === l;\n};\n\nexports.isConcurrentMode = A;\n\nexports.isContextConsumer = function (a) {\n return z(a) === k;\n};\n\nexports.isContextProvider = function (a) {\n return z(a) === h;\n};\n\nexports.isElement = function (a) {\n return \"object\" === typeof a && null !== a && a.$$typeof === c;\n};\n\nexports.isForwardRef = function (a) {\n return z(a) === n;\n};\n\nexports.isFragment = function (a) {\n return z(a) === e;\n};\n\nexports.isLazy = function (a) {\n return z(a) === t;\n};\n\nexports.isMemo = function (a) {\n return z(a) === r;\n};\n\nexports.isPortal = function (a) {\n return z(a) === d;\n};\n\nexports.isProfiler = function (a) {\n return z(a) === g;\n};\n\nexports.isStrictMode = function (a) {\n return z(a) === f;\n};\n\nexports.isSuspense = function (a) {\n return z(a) === p;\n};\n\nexports.isValidElementType = function (a) {\n return \"string\" === typeof a || \"function\" === typeof a || a === e || a === m || a === g || a === f || a === p || a === q || \"object\" === typeof a && null !== a && (a.$$typeof === t || a.$$typeof === r || a.$$typeof === h || a.$$typeof === k || a.$$typeof === n || a.$$typeof === w || a.$$typeof === x || a.$$typeof === y || a.$$typeof === v);\n};\n\nexports.typeOf = z;","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}","var isBrowser = typeof window !== 'undefined';\nvar Masonry = isBrowser ? window.Masonry || require('masonry-layout') : null;\nvar imagesloaded = isBrowser ? require('imagesloaded') : null;\n\nvar assign = require('lodash/assign');\n\nvar elementResizeDetectorMaker = require('element-resize-detector');\n\nvar debounce = require('lodash/debounce');\n\nvar omit = require('lodash/omit');\n\nvar PropTypes = require('prop-types');\n\nvar React = require('react');\n\nvar createReactClass = require('create-react-class');\n\nvar propTypes = {\n enableResizableChildren: PropTypes.bool,\n disableImagesLoaded: PropTypes.bool,\n onImagesLoaded: PropTypes.func,\n updateOnEachImageLoad: PropTypes.bool,\n options: PropTypes.object,\n imagesLoadedOptions: PropTypes.object,\n elementType: PropTypes.string,\n onLayoutComplete: PropTypes.func,\n onRemoveComplete: PropTypes.func\n};\nvar MasonryComponent = createReactClass({\n masonry: false,\n erd: undefined,\n latestKnownDomChildren: [],\n displayName: 'MasonryComponent',\n imagesLoadedCancelRef: undefined,\n getDefaultProps: function getDefaultProps() {\n return {\n enableResizableChildren: false,\n disableImagesLoaded: false,\n updateOnEachImageLoad: false,\n options: {},\n imagesLoadedOptions: {},\n className: '',\n elementType: 'div',\n onLayoutComplete: function onLayoutComplete() {},\n onRemoveComplete: function onRemoveComplete() {}\n };\n },\n initializeMasonry: function initializeMasonry(force) {\n if (!this.masonry || force) {\n this.masonry = new Masonry(this.masonryContainer, this.props.options);\n\n if (this.props.onLayoutComplete) {\n this.masonry.on('layoutComplete', this.props.onLayoutComplete);\n }\n\n if (this.props.onRemoveComplete) {\n this.masonry.on('removeComplete', this.props.onRemoveComplete);\n }\n\n this.latestKnownDomChildren = this.getCurrentDomChildren();\n }\n },\n getCurrentDomChildren: function getCurrentDomChildren() {\n var node = this.masonryContainer;\n var children = this.props.options.itemSelector ? node.querySelectorAll(this.props.options.itemSelector) : node.children;\n return Array.prototype.slice.call(children);\n },\n diffDomChildren: function diffDomChildren() {\n var forceItemReload = false;\n var knownChildrenStillAttached = this.latestKnownDomChildren.filter(function (element) {\n /*\n * take only elements attached to DOM\n * (aka the parent is the masonry container, not null)\n * otherwise masonry would try to \"remove it\" again from the DOM\n */\n return !!element.parentNode;\n });\n /*\n * If not all known children are attached to the dom - we have no other way of notifying\n * masonry to remove the ones not still attached besides invoking a complete item reload.\n * basically all the rest of the code below does not matter in that case.\n */\n\n if (knownChildrenStillAttached.length !== this.latestKnownDomChildren.length) {\n forceItemReload = true;\n }\n\n var currentDomChildren = this.getCurrentDomChildren();\n /*\n * Since we are looking for a known child which is also attached to the dom AND\n * not attached to the dom at the same time - this would *always* produce an empty array.\n */\n\n var removed = knownChildrenStillAttached.filter(function (attachedKnownChild) {\n return !~currentDomChildren.indexOf(attachedKnownChild);\n });\n /*\n * This would get any children which are attached to the dom but are *unkown* to us\n * from previous renders\n */\n\n var newDomChildren = currentDomChildren.filter(function (currentChild) {\n return !~knownChildrenStillAttached.indexOf(currentChild);\n });\n var beginningIndex = 0; // get everything added to the beginning of the DOMNode list\n\n var prepended = newDomChildren.filter(function (newChild) {\n var prepend = beginningIndex === currentDomChildren.indexOf(newChild);\n\n if (prepend) {\n // increase the index\n beginningIndex++;\n }\n\n return prepend;\n }); // we assume that everything else is appended\n\n var appended = newDomChildren.filter(function (el) {\n return prepended.indexOf(el) === -1;\n });\n /*\n * otherwise we reverse it because so we're going through the list picking off the items that\n * have been added at the end of the list. this complex logic is preserved in case it needs to be\n * invoked\n *\n * var endingIndex = currentDomChildren.length - 1;\n *\n * newDomChildren.reverse().filter(function(newChild, i){\n * var append = endingIndex == currentDomChildren.indexOf(newChild);\n *\n * if (append) {\n * endingIndex--;\n * }\n *\n * return append;\n * });\n */\n // get everything added to the end of the DOMNode list\n\n var moved = [];\n /*\n * This would always be true (see above about the lofic for \"removed\")\n */\n\n if (removed.length === 0) {\n /*\n * 'moved' will contain some random elements (if any) since the \"knownChildrenStillAttached\" is a filter\n * of the \"known\" children which are still attached - All indexes could basically change. (for example\n * if the first element is not attached)\n * Don't trust this array.\n */\n moved = knownChildrenStillAttached.filter(function (child, index) {\n return index !== currentDomChildren.indexOf(child);\n });\n }\n\n this.latestKnownDomChildren = currentDomChildren;\n return {\n old: knownChildrenStillAttached,\n // Not used\n new: currentDomChildren,\n // Not used\n removed: removed,\n appended: appended,\n prepended: prepended,\n moved: moved,\n forceItemReload: forceItemReload\n };\n },\n performLayout: function performLayout() {\n var diff = this.diffDomChildren();\n var reloadItems = diff.forceItemReload || diff.moved.length > 0; // Would never be true. (see comments of 'diffDomChildren' about 'removed')\n\n if (diff.removed.length > 0) {\n if (this.props.enableResizableChildren) {\n diff.removed.forEach(this.erd.removeAllListeners, this.erd);\n }\n\n this.masonry.remove(diff.removed);\n reloadItems = true;\n }\n\n if (diff.appended.length > 0) {\n this.masonry.appended(diff.appended);\n\n if (diff.prepended.length === 0) {\n reloadItems = true;\n }\n\n if (this.props.enableResizableChildren) {\n diff.appended.forEach(this.listenToElementResize, this);\n }\n }\n\n if (diff.prepended.length > 0) {\n this.masonry.prepended(diff.prepended);\n\n if (this.props.enableResizableChildren) {\n diff.prepended.forEach(this.listenToElementResize, this);\n }\n }\n\n if (reloadItems) {\n this.masonry.reloadItems();\n }\n\n this.masonry.layout();\n },\n derefImagesLoaded: function derefImagesLoaded() {\n this.imagesLoadedCancelRef();\n this.imagesLoadedCancelRef = undefined;\n },\n imagesLoaded: function imagesLoaded() {\n if (this.props.disableImagesLoaded) {\n return;\n }\n\n if (this.imagesLoadedCancelRef) {\n this.derefImagesLoaded();\n }\n\n var event = this.props.updateOnEachImageLoad ? 'progress' : 'always';\n var handler = debounce(function (instance) {\n if (this.props.onImagesLoaded) {\n this.props.onImagesLoaded(instance);\n }\n\n this.masonry.layout();\n }.bind(this), 100);\n var imgLoad = imagesloaded(this.masonryContainer, this.props.imagesLoadedOptions).on(event, handler);\n\n this.imagesLoadedCancelRef = function () {\n imgLoad.off(event, handler);\n handler.cancel();\n };\n },\n initializeResizableChildren: function initializeResizableChildren() {\n if (!this.props.enableResizableChildren) {\n return;\n }\n\n this.erd = elementResizeDetectorMaker({\n strategy: 'scroll'\n });\n this.latestKnownDomChildren.forEach(this.listenToElementResize, this);\n },\n listenToElementResize: function listenToElementResize(el) {\n this.erd.listenTo(el, function () {\n this.masonry.layout();\n }.bind(this));\n },\n destroyErd: function destroyErd() {\n if (this.erd) {\n this.latestKnownDomChildren.forEach(this.erd.uninstall, this.erd);\n }\n },\n componentDidMount: function componentDidMount() {\n this.initializeMasonry();\n this.initializeResizableChildren();\n this.imagesLoaded();\n },\n componentDidUpdate: function componentDidUpdate() {\n this.performLayout();\n this.imagesLoaded();\n },\n componentWillUnmount: function componentWillUnmount() {\n this.destroyErd(); // unregister events\n\n if (this.props.onLayoutComplete) {\n this.masonry.off('layoutComplete', this.props.onLayoutComplete);\n }\n\n if (this.props.onRemoveComplete) {\n this.masonry.off('removeComplete', this.props.onRemoveComplete);\n }\n\n if (this.imagesLoadedCancelRef) {\n this.derefImagesLoaded();\n }\n\n this.masonry.destroy();\n },\n setRef: function setRef(n) {\n this.masonryContainer = n;\n },\n render: function render() {\n var props = omit(this.props, Object.keys(propTypes));\n return React.createElement(this.props.elementType, assign({}, props, {\n ref: this.setRef\n }), this.props.children);\n }\n});\nmodule.exports = MasonryComponent;\nmodule.exports.default = MasonryComponent;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _default = function _default(position, metric, axis) {\n var positionPercent = position === 0 ? position : position + metric;\n var positionCss = axis === 'horizontal' ? [positionPercent, 0, 0] : [0, positionPercent, 0];\n var transitionProp = 'translate3d';\n var translatedPosition = '(' + positionCss.join(',') + ')';\n return transitionProp + translatedPosition;\n};\n\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.fadeAnimationHandler = exports.slideStopSwipingHandler = exports.slideSwipeAnimationHandler = exports.slideAnimationHandler = void 0;\n\nvar _react = require(\"react\");\n\nvar _CSSTranslate = _interopRequireDefault(require(\"../../CSSTranslate\"));\n\nvar _utils = require(\"./utils\");\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\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 _objectSpread(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\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/**\n * Main animation handler for the default 'sliding' style animation\n * @param props\n * @param state\n */\n\n\nvar slideAnimationHandler = function slideAnimationHandler(props, state) {\n var returnStyles = {};\n var selectedItem = state.selectedItem;\n var previousItem = selectedItem;\n var lastPosition = _react.Children.count(props.children) - 1;\n var needClonedSlide = props.infiniteLoop && (selectedItem < 0 || selectedItem > lastPosition); // Handle list position if it needs a clone\n\n if (needClonedSlide) {\n if (previousItem < 0) {\n if (props.centerMode && props.centerSlidePercentage && props.axis === 'horizontal') {\n returnStyles.itemListStyle = (0, _utils.setPosition)(-(lastPosition + 2) * props.centerSlidePercentage - (100 - props.centerSlidePercentage) / 2, props.axis);\n } else {\n returnStyles.itemListStyle = (0, _utils.setPosition)(-(lastPosition + 2) * 100, props.axis);\n }\n } else if (previousItem > lastPosition) {\n returnStyles.itemListStyle = (0, _utils.setPosition)(0, props.axis);\n }\n\n return returnStyles;\n }\n\n var currentPosition = (0, _utils.getPosition)(selectedItem, props); // if 3d is available, let's take advantage of the performance of transform\n\n var transformProp = (0, _CSSTranslate.default)(currentPosition, '%', props.axis);\n var transitionTime = props.transitionTime + 'ms';\n returnStyles.itemListStyle = {\n WebkitTransform: transformProp,\n msTransform: transformProp,\n OTransform: transformProp,\n transform: transformProp\n };\n\n if (!state.swiping) {\n returnStyles.itemListStyle = _objectSpread(_objectSpread({}, returnStyles.itemListStyle), {}, {\n WebkitTransitionDuration: transitionTime,\n MozTransitionDuration: transitionTime,\n OTransitionDuration: transitionTime,\n transitionDuration: transitionTime,\n msTransitionDuration: transitionTime\n });\n }\n\n return returnStyles;\n};\n/**\n * Swiping animation handler for the default 'sliding' style animation\n * @param delta\n * @param props\n * @param state\n * @param setState\n */\n\n\nexports.slideAnimationHandler = slideAnimationHandler;\n\nvar slideSwipeAnimationHandler = function slideSwipeAnimationHandler(delta, props, state, setState) {\n var returnStyles = {};\n var isHorizontal = props.axis === 'horizontal';\n\n var childrenLength = _react.Children.count(props.children);\n\n var initialBoundry = 0;\n var currentPosition = (0, _utils.getPosition)(state.selectedItem, props);\n var finalBoundry = props.infiniteLoop ? (0, _utils.getPosition)(childrenLength - 1, props) - 100 : (0, _utils.getPosition)(childrenLength - 1, props);\n var axisDelta = isHorizontal ? delta.x : delta.y;\n var handledDelta = axisDelta; // prevent user from swiping left out of boundaries\n\n if (currentPosition === initialBoundry && axisDelta > 0) {\n handledDelta = 0;\n } // prevent user from swiping right out of boundaries\n\n\n if (currentPosition === finalBoundry && axisDelta < 0) {\n handledDelta = 0;\n }\n\n var position = currentPosition + 100 / (state.itemSize / handledDelta);\n var hasMoved = Math.abs(axisDelta) > props.swipeScrollTolerance;\n\n if (props.infiniteLoop && hasMoved) {\n // When allowing infinite loop, if we slide left from position 0 we reveal the cloned last slide that appears before it\n // if we slide even further we need to jump to other side so it can continue - and vice versa for the last slide\n if (state.selectedItem === 0 && position > -100) {\n position -= childrenLength * 100;\n } else if (state.selectedItem === childrenLength - 1 && position < -childrenLength * 100) {\n position += childrenLength * 100;\n }\n }\n\n if (!props.preventMovementUntilSwipeScrollTolerance || hasMoved || state.swipeMovementStarted) {\n if (!state.swipeMovementStarted) {\n setState({\n swipeMovementStarted: true\n });\n }\n\n returnStyles.itemListStyle = (0, _utils.setPosition)(position, props.axis);\n } //allows scroll if the swipe was within the tolerance\n\n\n if (hasMoved && !state.cancelClick) {\n setState({\n cancelClick: true\n });\n }\n\n return returnStyles;\n};\n/**\n * Default 'sliding' style animination handler for when a swipe action stops.\n * @param props\n * @param state\n */\n\n\nexports.slideSwipeAnimationHandler = slideSwipeAnimationHandler;\n\nvar slideStopSwipingHandler = function slideStopSwipingHandler(props, state) {\n var currentPosition = (0, _utils.getPosition)(state.selectedItem, props);\n var itemListStyle = (0, _utils.setPosition)(currentPosition, props.axis);\n return {\n itemListStyle: itemListStyle\n };\n};\n/**\n * Main animation handler for the default 'fade' style animation\n * @param props\n * @param state\n */\n\n\nexports.slideStopSwipingHandler = slideStopSwipingHandler;\n\nvar fadeAnimationHandler = function fadeAnimationHandler(props, state) {\n var transitionTime = props.transitionTime + 'ms';\n var transitionTimingFunction = 'ease-in-out';\n var slideStyle = {\n position: 'absolute',\n display: 'block',\n zIndex: -2,\n minHeight: '100%',\n opacity: 0,\n top: 0,\n right: 0,\n left: 0,\n bottom: 0,\n transitionTimingFunction: transitionTimingFunction,\n msTransitionTimingFunction: transitionTimingFunction,\n MozTransitionTimingFunction: transitionTimingFunction,\n WebkitTransitionTimingFunction: transitionTimingFunction,\n OTransitionTimingFunction: transitionTimingFunction\n };\n\n if (!state.swiping) {\n slideStyle = _objectSpread(_objectSpread({}, slideStyle), {}, {\n WebkitTransitionDuration: transitionTime,\n MozTransitionDuration: transitionTime,\n OTransitionDuration: transitionTime,\n transitionDuration: transitionTime,\n msTransitionDuration: transitionTime\n });\n }\n\n return {\n slideStyle: slideStyle,\n selectedStyle: _objectSpread(_objectSpread({}, slideStyle), {}, {\n opacity: 1,\n position: 'relative'\n }),\n prevStyle: _objectSpread({}, slideStyle)\n };\n};\n\nexports.fadeAnimationHandler = fadeAnimationHandler;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _reactEasySwipe = _interopRequireDefault(require(\"react-easy-swipe\"));\n\nvar _cssClasses = _interopRequireDefault(require(\"../../cssClasses\"));\n\nvar _Thumbs = _interopRequireDefault(require(\"../Thumbs\"));\n\nvar _document = _interopRequireDefault(require(\"../../shims/document\"));\n\nvar _window = _interopRequireDefault(require(\"../../shims/window\"));\n\nvar _utils = require(\"./utils\");\n\nvar _animations = require(\"./animations\");\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nfunction _getRequireWildcardCache() {\n if (typeof WeakMap !== \"function\") return null;\n var cache = new WeakMap();\n\n _getRequireWildcardCache = function _getRequireWildcardCache() {\n return cache;\n };\n\n return cache;\n}\n\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n }\n\n if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") {\n return {\n default: obj\n };\n }\n\n var cache = _getRequireWildcardCache();\n\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n\n var newObj = {};\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n\n newObj.default = obj;\n\n if (cache) {\n cache.set(obj, newObj);\n }\n\n return newObj;\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(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 _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 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 _objectSpread(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\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _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\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return _possibleConstructorReturn(this, result);\n };\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\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\nvar Carousel = /*#__PURE__*/function (_React$Component) {\n _inherits(Carousel, _React$Component);\n\n var _super = _createSuper(Carousel); // @ts-ignore\n\n\n function Carousel(props) {\n var _this;\n\n _classCallCheck(this, Carousel);\n\n _this = _super.call(this, props);\n\n _defineProperty(_assertThisInitialized(_this), \"thumbsRef\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"carouselWrapperRef\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"listRef\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"itemsRef\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"timer\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"animationHandler\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"setThumbsRef\", function (node) {\n _this.thumbsRef = node;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"setCarouselWrapperRef\", function (node) {\n _this.carouselWrapperRef = node;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"setListRef\", function (node) {\n _this.listRef = node;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"setItemsRef\", function (node, index) {\n if (!_this.itemsRef) {\n _this.itemsRef = [];\n }\n\n _this.itemsRef[index] = node;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"autoPlay\", function () {\n if (_react.Children.count(_this.props.children) <= 1) {\n return;\n }\n\n _this.clearAutoPlay();\n\n if (!_this.props.autoPlay) {\n return;\n }\n\n _this.timer = setTimeout(function () {\n _this.increment();\n }, _this.props.interval);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"clearAutoPlay\", function () {\n if (_this.timer) clearTimeout(_this.timer);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"resetAutoPlay\", function () {\n _this.clearAutoPlay();\n\n _this.autoPlay();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"stopOnHover\", function () {\n _this.setState({\n isMouseEntered: true\n }, _this.clearAutoPlay);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"startOnLeave\", function () {\n _this.setState({\n isMouseEntered: false\n }, _this.autoPlay);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"isFocusWithinTheCarousel\", function () {\n if (!_this.carouselWrapperRef) {\n return false;\n }\n\n if ((0, _document.default)().activeElement === _this.carouselWrapperRef || _this.carouselWrapperRef.contains((0, _document.default)().activeElement)) {\n return true;\n }\n\n return false;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"navigateWithKeyboard\", function (e) {\n if (!_this.isFocusWithinTheCarousel()) {\n return;\n }\n\n var axis = _this.props.axis;\n var isHorizontal = axis === 'horizontal';\n var keyNames = {\n ArrowUp: 38,\n ArrowRight: 39,\n ArrowDown: 40,\n ArrowLeft: 37\n };\n var nextKey = isHorizontal ? keyNames.ArrowRight : keyNames.ArrowDown;\n var prevKey = isHorizontal ? keyNames.ArrowLeft : keyNames.ArrowUp;\n\n if (nextKey === e.keyCode) {\n _this.increment();\n } else if (prevKey === e.keyCode) {\n _this.decrement();\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"updateSizes\", function () {\n if (!_this.state.initialized || !_this.itemsRef || _this.itemsRef.length === 0) {\n return;\n }\n\n var isHorizontal = _this.props.axis === 'horizontal';\n var firstItem = _this.itemsRef[0];\n\n if (!firstItem) {\n return;\n }\n\n var itemSize = isHorizontal ? firstItem.clientWidth : firstItem.clientHeight;\n\n _this.setState({\n itemSize: itemSize\n });\n\n if (_this.thumbsRef) {\n _this.thumbsRef.updateSizes();\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"setMountState\", function () {\n _this.setState({\n hasMount: true\n });\n\n _this.updateSizes();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleClickItem\", function (index, item) {\n if (_react.Children.count(_this.props.children) === 0) {\n return;\n }\n\n if (_this.state.cancelClick) {\n _this.setState({\n cancelClick: false\n });\n\n return;\n }\n\n _this.props.onClickItem(index, item);\n\n if (index !== _this.state.selectedItem) {\n _this.setState({\n selectedItem: index\n });\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleOnChange\", function (index, item) {\n if (_react.Children.count(_this.props.children) <= 1) {\n return;\n }\n\n _this.props.onChange(index, item);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleClickThumb\", function (index, item) {\n _this.props.onClickThumb(index, item);\n\n _this.moveTo(index);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onSwipeStart\", function (event) {\n _this.setState({\n swiping: true\n });\n\n _this.props.onSwipeStart(event);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onSwipeEnd\", function (event) {\n _this.setState({\n swiping: false,\n cancelClick: false,\n swipeMovementStarted: false\n });\n\n _this.props.onSwipeEnd(event);\n\n _this.clearAutoPlay();\n\n if (_this.state.autoPlay) {\n _this.autoPlay();\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onSwipeMove\", function (delta, event) {\n _this.props.onSwipeMove(event);\n\n var animationHandlerResponse = _this.props.swipeAnimationHandler(delta, _this.props, _this.state, _this.setState.bind(_assertThisInitialized(_this)));\n\n _this.setState(_objectSpread({}, animationHandlerResponse)); // If we have not moved, we should have an empty object returned\n // Return false to allow scrolling when not swiping\n\n\n return !!Object.keys(animationHandlerResponse).length;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"decrement\", function () {\n var positions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;\n\n _this.moveTo(_this.state.selectedItem - (typeof positions === 'number' ? positions : 1));\n });\n\n _defineProperty(_assertThisInitialized(_this), \"increment\", function () {\n var positions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;\n\n _this.moveTo(_this.state.selectedItem + (typeof positions === 'number' ? positions : 1));\n });\n\n _defineProperty(_assertThisInitialized(_this), \"moveTo\", function (position) {\n if (typeof position !== 'number') {\n return;\n }\n\n var lastPosition = _react.Children.count(_this.props.children) - 1;\n\n if (position < 0) {\n position = _this.props.infiniteLoop ? lastPosition : 0;\n }\n\n if (position > lastPosition) {\n position = _this.props.infiniteLoop ? 0 : lastPosition;\n }\n\n _this.selectItem({\n // if it's not a slider, we don't need to set position here\n selectedItem: position\n }); // don't reset auto play when stop on hover is enabled, doing so will trigger a call to auto play more than once\n // and will result in the interval function not being cleared correctly.\n\n\n if (_this.state.autoPlay && _this.state.isMouseEntered === false) {\n _this.resetAutoPlay();\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onClickNext\", function () {\n _this.increment(1);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onClickPrev\", function () {\n _this.decrement(1);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onSwipeForward\", function () {\n _this.increment(1);\n\n if (_this.props.emulateTouch) {\n _this.setState({\n cancelClick: true\n });\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onSwipeBackwards\", function () {\n _this.decrement(1);\n\n if (_this.props.emulateTouch) {\n _this.setState({\n cancelClick: true\n });\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"changeItem\", function (newIndex) {\n return function (e) {\n if (!(0, _utils.isKeyboardEvent)(e) || e.key === 'Enter') {\n _this.moveTo(newIndex);\n }\n };\n });\n\n _defineProperty(_assertThisInitialized(_this), \"selectItem\", function (state) {\n // Merge in the new state while updating updating previous item\n _this.setState(_objectSpread({\n previousItem: _this.state.selectedItem\n }, state), function () {\n // Run animation handler and update styles based on it\n _this.setState(_this.animationHandler(_this.props, _this.state));\n });\n\n _this.handleOnChange(state.selectedItem, _react.Children.toArray(_this.props.children)[state.selectedItem]);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"getInitialImage\", function () {\n var selectedItem = _this.props.selectedItem;\n var item = _this.itemsRef && _this.itemsRef[selectedItem];\n var images = item && item.getElementsByTagName('img') || [];\n return images[0];\n });\n\n _defineProperty(_assertThisInitialized(_this), \"getVariableItemHeight\", function (position) {\n var item = _this.itemsRef && _this.itemsRef[position];\n\n if (_this.state.hasMount && item && item.children.length) {\n var slideImages = item.children[0].getElementsByTagName('img') || [];\n\n if (slideImages.length > 0) {\n var image = slideImages[0];\n\n if (!image.complete) {\n // if the image is still loading, the size won't be available so we trigger a new render after it's done\n var onImageLoad = function onImageLoad() {\n _this.forceUpdate();\n\n image.removeEventListener('load', onImageLoad);\n };\n\n image.addEventListener('load', onImageLoad);\n }\n } // try to get img first, if img not there find first display tag\n\n\n var displayItem = slideImages[0] || item.children[0];\n var height = displayItem.clientHeight;\n return height > 0 ? height : null;\n }\n\n return null;\n });\n\n var initState = {\n initialized: false,\n previousItem: props.selectedItem,\n selectedItem: props.selectedItem,\n hasMount: false,\n isMouseEntered: false,\n autoPlay: props.autoPlay,\n swiping: false,\n swipeMovementStarted: false,\n cancelClick: false,\n itemSize: 1,\n itemListStyle: {},\n slideStyle: {},\n selectedStyle: {},\n prevStyle: {}\n };\n _this.animationHandler = typeof props.animationHandler === 'function' && props.animationHandler || props.animationHandler === 'fade' && _animations.fadeAnimationHandler || _animations.slideAnimationHandler;\n _this.state = _objectSpread(_objectSpread({}, initState), _this.animationHandler(props, initState));\n return _this;\n }\n\n _createClass(Carousel, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (!this.props.children) {\n return;\n }\n\n this.setupCarousel();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps, prevState) {\n if (!prevProps.children && this.props.children && !this.state.initialized) {\n this.setupCarousel();\n }\n\n if (!prevProps.autoFocus && this.props.autoFocus) {\n this.forceFocus();\n }\n\n if (prevState.swiping && !this.state.swiping) {\n // We stopped swiping, ensure we are heading to the new/current slide and not stuck\n this.setState(_objectSpread({}, this.props.stopSwipingHandler(this.props, this.state)));\n }\n\n if (prevProps.selectedItem !== this.props.selectedItem || prevProps.centerMode !== this.props.centerMode) {\n this.updateSizes();\n this.moveTo(this.props.selectedItem);\n }\n\n if (prevProps.autoPlay !== this.props.autoPlay) {\n if (this.props.autoPlay) {\n this.setupAutoPlay();\n } else {\n this.destroyAutoPlay();\n }\n\n this.setState({\n autoPlay: this.props.autoPlay\n });\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.destroyCarousel();\n }\n }, {\n key: \"setupCarousel\",\n value: function setupCarousel() {\n var _this2 = this;\n\n this.bindEvents();\n\n if (this.state.autoPlay && _react.Children.count(this.props.children) > 1) {\n this.setupAutoPlay();\n }\n\n if (this.props.autoFocus) {\n this.forceFocus();\n }\n\n this.setState({\n initialized: true\n }, function () {\n var initialImage = _this2.getInitialImage();\n\n if (initialImage && !initialImage.complete) {\n // if it's a carousel of images, we set the mount state after the first image is loaded\n initialImage.addEventListener('load', _this2.setMountState);\n } else {\n _this2.setMountState();\n }\n });\n }\n }, {\n key: \"destroyCarousel\",\n value: function destroyCarousel() {\n if (this.state.initialized) {\n this.unbindEvents();\n this.destroyAutoPlay();\n }\n }\n }, {\n key: \"setupAutoPlay\",\n value: function setupAutoPlay() {\n this.autoPlay();\n var carouselWrapper = this.carouselWrapperRef;\n\n if (this.props.stopOnHover && carouselWrapper) {\n carouselWrapper.addEventListener('mouseenter', this.stopOnHover);\n carouselWrapper.addEventListener('mouseleave', this.startOnLeave);\n }\n }\n }, {\n key: \"destroyAutoPlay\",\n value: function destroyAutoPlay() {\n this.clearAutoPlay();\n var carouselWrapper = this.carouselWrapperRef;\n\n if (this.props.stopOnHover && carouselWrapper) {\n carouselWrapper.removeEventListener('mouseenter', this.stopOnHover);\n carouselWrapper.removeEventListener('mouseleave', this.startOnLeave);\n }\n }\n }, {\n key: \"bindEvents\",\n value: function bindEvents() {\n // as the widths are calculated, we need to resize\n // the carousel when the window is resized\n (0, _window.default)().addEventListener('resize', this.updateSizes); // issue #2 - image loading smaller\n\n (0, _window.default)().addEventListener('DOMContentLoaded', this.updateSizes);\n\n if (this.props.useKeyboardArrows) {\n (0, _document.default)().addEventListener('keydown', this.navigateWithKeyboard);\n }\n }\n }, {\n key: \"unbindEvents\",\n value: function unbindEvents() {\n // removing listeners\n (0, _window.default)().removeEventListener('resize', this.updateSizes);\n (0, _window.default)().removeEventListener('DOMContentLoaded', this.updateSizes);\n var initialImage = this.getInitialImage();\n\n if (initialImage) {\n initialImage.removeEventListener('load', this.setMountState);\n }\n\n if (this.props.useKeyboardArrows) {\n (0, _document.default)().removeEventListener('keydown', this.navigateWithKeyboard);\n }\n }\n }, {\n key: \"forceFocus\",\n value: function forceFocus() {\n var _this$carouselWrapper;\n\n (_this$carouselWrapper = this.carouselWrapperRef) === null || _this$carouselWrapper === void 0 ? void 0 : _this$carouselWrapper.focus();\n }\n }, {\n key: \"renderItems\",\n value: function renderItems(isClone) {\n var _this3 = this;\n\n if (!this.props.children) {\n return [];\n }\n\n return _react.Children.map(this.props.children, function (item, index) {\n var isSelected = index === _this3.state.selectedItem;\n var isPrevious = index === _this3.state.previousItem;\n var style = isSelected && _this3.state.selectedStyle || isPrevious && _this3.state.prevStyle || _this3.state.slideStyle || {};\n\n if (_this3.props.centerMode && _this3.props.axis === 'horizontal') {\n style = _objectSpread(_objectSpread({}, style), {}, {\n minWidth: _this3.props.centerSlidePercentage + '%'\n });\n }\n\n if (_this3.state.swiping && _this3.state.swipeMovementStarted) {\n style = _objectSpread(_objectSpread({}, style), {}, {\n pointerEvents: 'none'\n });\n }\n\n var slideProps = {\n ref: function ref(e) {\n return _this3.setItemsRef(e, index);\n },\n key: 'itemKey' + index + (isClone ? 'clone' : ''),\n className: _cssClasses.default.ITEM(true, index === _this3.state.selectedItem, index === _this3.state.previousItem),\n onClick: _this3.handleClickItem.bind(_this3, index, item),\n style: style\n };\n return /*#__PURE__*/_react.default.createElement(\"li\", slideProps, _this3.props.renderItem(item, {\n isSelected: index === _this3.state.selectedItem,\n isPrevious: index === _this3.state.previousItem\n }));\n });\n }\n }, {\n key: \"renderControls\",\n value: function renderControls() {\n var _this4 = this;\n\n var _this$props = this.props,\n showIndicators = _this$props.showIndicators,\n labels = _this$props.labels,\n renderIndicator = _this$props.renderIndicator,\n children = _this$props.children;\n\n if (!showIndicators) {\n return null;\n }\n\n return /*#__PURE__*/_react.default.createElement(\"ul\", {\n className: \"control-dots\"\n }, _react.Children.map(children, function (_, index) {\n return renderIndicator && renderIndicator(_this4.changeItem(index), index === _this4.state.selectedItem, index, labels.item);\n }));\n }\n }, {\n key: \"renderStatus\",\n value: function renderStatus() {\n if (!this.props.showStatus) {\n return null;\n }\n\n return /*#__PURE__*/_react.default.createElement(\"p\", {\n className: \"carousel-status\"\n }, this.props.statusFormatter(this.state.selectedItem + 1, _react.Children.count(this.props.children)));\n }\n }, {\n key: \"renderThumbs\",\n value: function renderThumbs() {\n if (!this.props.showThumbs || !this.props.children || _react.Children.count(this.props.children) === 0) {\n return null;\n }\n\n return /*#__PURE__*/_react.default.createElement(_Thumbs.default, {\n ref: this.setThumbsRef,\n onSelectItem: this.handleClickThumb,\n selectedItem: this.state.selectedItem,\n transitionTime: this.props.transitionTime,\n thumbWidth: this.props.thumbWidth,\n labels: this.props.labels,\n emulateTouch: this.props.emulateTouch\n }, this.props.renderThumbs(this.props.children));\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this5 = this;\n\n if (!this.props.children || _react.Children.count(this.props.children) === 0) {\n return null;\n }\n\n var isSwipeable = this.props.swipeable && _react.Children.count(this.props.children) > 1;\n var isHorizontal = this.props.axis === 'horizontal';\n var canShowArrows = this.props.showArrows && _react.Children.count(this.props.children) > 1; // show left arrow?\n\n var hasPrev = canShowArrows && (this.state.selectedItem > 0 || this.props.infiniteLoop) || false; // show right arrow\n\n var hasNext = canShowArrows && (this.state.selectedItem < _react.Children.count(this.props.children) - 1 || this.props.infiniteLoop) || false;\n var itemsClone = this.renderItems(true);\n var firstClone = itemsClone.shift();\n var lastClone = itemsClone.pop();\n var swiperProps = {\n className: _cssClasses.default.SLIDER(true, this.state.swiping),\n onSwipeMove: this.onSwipeMove,\n onSwipeStart: this.onSwipeStart,\n onSwipeEnd: this.onSwipeEnd,\n style: this.state.itemListStyle,\n tolerance: this.props.swipeScrollTolerance\n };\n var containerStyles = {};\n\n if (isHorizontal) {\n swiperProps.onSwipeLeft = this.onSwipeForward;\n swiperProps.onSwipeRight = this.onSwipeBackwards;\n\n if (this.props.dynamicHeight) {\n var itemHeight = this.getVariableItemHeight(this.state.selectedItem); // swiperProps.style.height = itemHeight || 'auto';\n\n containerStyles.height = itemHeight || 'auto';\n }\n } else {\n swiperProps.onSwipeUp = this.props.verticalSwipe === 'natural' ? this.onSwipeBackwards : this.onSwipeForward;\n swiperProps.onSwipeDown = this.props.verticalSwipe === 'natural' ? this.onSwipeForward : this.onSwipeBackwards;\n swiperProps.style = _objectSpread(_objectSpread({}, swiperProps.style), {}, {\n height: this.state.itemSize\n });\n containerStyles.height = this.state.itemSize;\n }\n\n return /*#__PURE__*/_react.default.createElement(\"div\", {\n \"aria-label\": this.props.ariaLabel,\n className: _cssClasses.default.ROOT(this.props.className),\n ref: this.setCarouselWrapperRef,\n tabIndex: this.props.useKeyboardArrows ? 0 : undefined\n }, /*#__PURE__*/_react.default.createElement(\"div\", {\n className: _cssClasses.default.CAROUSEL(true),\n style: {\n width: this.props.width\n }\n }, this.renderControls(), this.props.renderArrowPrev(this.onClickPrev, hasPrev, this.props.labels.leftArrow), /*#__PURE__*/_react.default.createElement(\"div\", {\n className: _cssClasses.default.WRAPPER(true, this.props.axis),\n style: containerStyles\n }, isSwipeable ? /*#__PURE__*/_react.default.createElement(_reactEasySwipe.default, _extends({\n tagName: \"ul\",\n innerRef: this.setListRef\n }, swiperProps, {\n allowMouseEvents: this.props.emulateTouch\n }), this.props.infiniteLoop && lastClone, this.renderItems(), this.props.infiniteLoop && firstClone) : /*#__PURE__*/_react.default.createElement(\"ul\", {\n className: _cssClasses.default.SLIDER(true, this.state.swiping),\n ref: function ref(node) {\n return _this5.setListRef(node);\n },\n style: this.state.itemListStyle || {}\n }, this.props.infiniteLoop && lastClone, this.renderItems(), this.props.infiniteLoop && firstClone)), this.props.renderArrowNext(this.onClickNext, hasNext, this.props.labels.rightArrow), this.renderStatus()), this.renderThumbs());\n }\n }]);\n\n return Carousel;\n}(_react.default.Component);\n\nexports.default = Carousel;\n\n_defineProperty(Carousel, \"displayName\", 'Carousel');\n\n_defineProperty(Carousel, \"defaultProps\", {\n ariaLabel: undefined,\n axis: 'horizontal',\n centerSlidePercentage: 80,\n interval: 3000,\n labels: {\n leftArrow: 'previous slide / item',\n rightArrow: 'next slide / item',\n item: 'slide item'\n },\n onClickItem: _utils.noop,\n onClickThumb: _utils.noop,\n onChange: _utils.noop,\n onSwipeStart: function onSwipeStart() {},\n onSwipeEnd: function onSwipeEnd() {},\n onSwipeMove: function onSwipeMove() {\n return false;\n },\n preventMovementUntilSwipeScrollTolerance: false,\n renderArrowPrev: function renderArrowPrev(onClickHandler, hasPrev, label) {\n return /*#__PURE__*/_react.default.createElement(\"button\", {\n type: \"button\",\n \"aria-label\": label,\n className: _cssClasses.default.ARROW_PREV(!hasPrev),\n onClick: onClickHandler\n });\n },\n renderArrowNext: function renderArrowNext(onClickHandler, hasNext, label) {\n return /*#__PURE__*/_react.default.createElement(\"button\", {\n type: \"button\",\n \"aria-label\": label,\n className: _cssClasses.default.ARROW_NEXT(!hasNext),\n onClick: onClickHandler\n });\n },\n renderIndicator: function renderIndicator(onClickHandler, isSelected, index, label) {\n return /*#__PURE__*/_react.default.createElement(\"li\", {\n className: _cssClasses.default.DOT(isSelected),\n onClick: onClickHandler,\n onKeyDown: onClickHandler,\n value: index,\n key: index,\n role: \"button\",\n tabIndex: 0,\n \"aria-label\": \"\".concat(label, \" \").concat(index + 1)\n });\n },\n renderItem: function renderItem(item) {\n return item;\n },\n renderThumbs: function renderThumbs(children) {\n var images = _react.Children.map(children, function (item) {\n var img = item; // if the item is not an image, try to find the first image in the item's children.\n\n if (item.type !== 'img') {\n img = _react.Children.toArray(item.props.children).find(function (children) {\n return children.type === 'img';\n });\n }\n\n if (!img) {\n return undefined;\n }\n\n return img;\n });\n\n if (images.filter(function (image) {\n return image;\n }).length === 0) {\n console.warn(\"No images found! Can't build the thumb list without images. If you don't need thumbs, set showThumbs={false} in the Carousel. Note that it's not possible to get images rendered inside custom components. More info at https://github.com/leandrowd/react-responsive-carousel/blob/master/TROUBLESHOOTING.md\");\n return [];\n }\n\n return images;\n },\n statusFormatter: _utils.defaultStatusFormatter,\n selectedItem: 0,\n showArrows: true,\n showIndicators: true,\n showStatus: true,\n showThumbs: true,\n stopOnHover: true,\n swipeScrollTolerance: 5,\n swipeable: true,\n transitionTime: 350,\n verticalSwipe: 'standard',\n width: '100%',\n animationHandler: 'slide',\n swipeAnimationHandler: _animations.slideSwipeAnimationHandler,\n stopSwipingHandler: _animations.slideStopSwipingHandler\n});","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.setPosition = exports.getPosition = exports.isKeyboardEvent = exports.defaultStatusFormatter = exports.noop = void 0;\n\nvar _react = require(\"react\");\n\nvar _CSSTranslate = _interopRequireDefault(require(\"../../CSSTranslate\"));\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nvar noop = function noop() {};\n\nexports.noop = noop;\n\nvar defaultStatusFormatter = function defaultStatusFormatter(current, total) {\n return \"\".concat(current, \" of \").concat(total);\n};\n\nexports.defaultStatusFormatter = defaultStatusFormatter;\n\nvar isKeyboardEvent = function isKeyboardEvent(e) {\n return e ? e.hasOwnProperty('key') : false;\n};\n/**\n * Gets the list 'position' relative to a current index\n * @param index\n */\n\n\nexports.isKeyboardEvent = isKeyboardEvent;\n\nvar getPosition = function getPosition(index, props) {\n if (props.infiniteLoop) {\n // index has to be added by 1 because of the first cloned slide\n ++index;\n }\n\n if (index === 0) {\n return 0;\n }\n\n var childrenLength = _react.Children.count(props.children);\n\n if (props.centerMode && props.axis === 'horizontal') {\n var currentPosition = -index * props.centerSlidePercentage;\n var lastPosition = childrenLength - 1;\n\n if (index && (index !== lastPosition || props.infiniteLoop)) {\n currentPosition += (100 - props.centerSlidePercentage) / 2;\n } else if (index === lastPosition) {\n currentPosition += 100 - props.centerSlidePercentage;\n }\n\n return currentPosition;\n }\n\n return -index * 100;\n};\n/**\n * Sets the 'position' transform for sliding animations\n * @param position\n * @param forceReflow\n */\n\n\nexports.getPosition = getPosition;\n\nvar setPosition = function setPosition(position, axis) {\n var style = {};\n ['WebkitTransform', 'MozTransform', 'MsTransform', 'OTransform', 'transform', 'msTransform'].forEach(function (prop) {\n // @ts-ignore\n style[prop] = (0, _CSSTranslate.default)(position, '%', axis);\n });\n return style;\n};\n\nexports.setPosition = setPosition;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _cssClasses = _interopRequireDefault(require(\"../cssClasses\"));\n\nvar _dimensions = require(\"../dimensions\");\n\nvar _CSSTranslate = _interopRequireDefault(require(\"../CSSTranslate\"));\n\nvar _reactEasySwipe = _interopRequireDefault(require(\"react-easy-swipe\"));\n\nvar _window = _interopRequireDefault(require(\"../shims/window\"));\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nfunction _getRequireWildcardCache() {\n if (typeof WeakMap !== \"function\") return null;\n var cache = new WeakMap();\n\n _getRequireWildcardCache = function _getRequireWildcardCache() {\n return cache;\n };\n\n return cache;\n}\n\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n }\n\n if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") {\n return {\n default: obj\n };\n }\n\n var cache = _getRequireWildcardCache();\n\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n\n var newObj = {};\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n\n newObj.default = obj;\n\n if (cache) {\n cache.set(obj, newObj);\n }\n\n return newObj;\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(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 _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 _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _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\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return _possibleConstructorReturn(this, result);\n };\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\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\nvar isKeyboardEvent = function isKeyboardEvent(e) {\n return e.hasOwnProperty('key');\n};\n\nvar Thumbs = /*#__PURE__*/function (_Component) {\n _inherits(Thumbs, _Component);\n\n var _super = _createSuper(Thumbs);\n\n function Thumbs(_props) {\n var _this;\n\n _classCallCheck(this, Thumbs);\n\n _this = _super.call(this, _props);\n\n _defineProperty(_assertThisInitialized(_this), \"itemsWrapperRef\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"itemsListRef\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"thumbsRef\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"setItemsWrapperRef\", function (node) {\n _this.itemsWrapperRef = node;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"setItemsListRef\", function (node) {\n _this.itemsListRef = node;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"setThumbsRef\", function (node, index) {\n if (!_this.thumbsRef) {\n _this.thumbsRef = [];\n }\n\n _this.thumbsRef[index] = node;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"updateSizes\", function () {\n if (!_this.props.children || !_this.itemsWrapperRef || !_this.thumbsRef) {\n return;\n }\n\n var total = _react.Children.count(_this.props.children);\n\n var wrapperSize = _this.itemsWrapperRef.clientWidth;\n var itemSize = _this.props.thumbWidth ? _this.props.thumbWidth : (0, _dimensions.outerWidth)(_this.thumbsRef[0]);\n var visibleItems = Math.floor(wrapperSize / itemSize);\n var showArrows = visibleItems < total;\n var lastPosition = showArrows ? total - visibleItems : 0;\n\n _this.setState(function (_state, props) {\n return {\n itemSize: itemSize,\n visibleItems: visibleItems,\n firstItem: showArrows ? _this.getFirstItem(props.selectedItem) : 0,\n lastPosition: lastPosition,\n showArrows: showArrows\n };\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleClickItem\", function (index, item, e) {\n if (!isKeyboardEvent(e) || e.key === 'Enter') {\n var handler = _this.props.onSelectItem;\n\n if (typeof handler === 'function') {\n handler(index, item);\n }\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onSwipeStart\", function () {\n _this.setState({\n swiping: true\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onSwipeEnd\", function () {\n _this.setState({\n swiping: false\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onSwipeMove\", function (delta) {\n var deltaX = delta.x;\n\n if (!_this.state.itemSize || !_this.itemsWrapperRef || !_this.state.visibleItems) {\n return false;\n }\n\n var leftBoundary = 0;\n\n var childrenLength = _react.Children.count(_this.props.children);\n\n var currentPosition = -(_this.state.firstItem * 100) / _this.state.visibleItems;\n var lastLeftItem = Math.max(childrenLength - _this.state.visibleItems, 0);\n var lastLeftBoundary = -lastLeftItem * 100 / _this.state.visibleItems; // prevent user from swiping left out of boundaries\n\n if (currentPosition === leftBoundary && deltaX > 0) {\n deltaX = 0;\n } // prevent user from swiping right out of boundaries\n\n\n if (currentPosition === lastLeftBoundary && deltaX < 0) {\n deltaX = 0;\n }\n\n var wrapperSize = _this.itemsWrapperRef.clientWidth;\n var position = currentPosition + 100 / (wrapperSize / deltaX); // if 3d isn't available we will use left to move\n\n if (_this.itemsListRef) {\n ['WebkitTransform', 'MozTransform', 'MsTransform', 'OTransform', 'transform', 'msTransform'].forEach(function (prop) {\n _this.itemsListRef.style[prop] = (0, _CSSTranslate.default)(position, '%', _this.props.axis);\n });\n }\n\n return true;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slideRight\", function (positions) {\n _this.moveTo(_this.state.firstItem - (typeof positions === 'number' ? positions : 1));\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slideLeft\", function (positions) {\n _this.moveTo(_this.state.firstItem + (typeof positions === 'number' ? positions : 1));\n });\n\n _defineProperty(_assertThisInitialized(_this), \"moveTo\", function (position) {\n // position can't be lower than 0\n position = position < 0 ? 0 : position; // position can't be higher than last postion\n\n position = position >= _this.state.lastPosition ? _this.state.lastPosition : position;\n\n _this.setState({\n firstItem: position\n });\n });\n\n _this.state = {\n selectedItem: _props.selectedItem,\n swiping: false,\n showArrows: false,\n firstItem: 0,\n visibleItems: 0,\n lastPosition: 0\n };\n return _this;\n }\n\n _createClass(Thumbs, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.setupThumbs();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n if (this.props.selectedItem !== this.state.selectedItem) {\n this.setState({\n selectedItem: this.props.selectedItem,\n firstItem: this.getFirstItem(this.props.selectedItem)\n });\n }\n\n if (this.props.children === prevProps.children) {\n return;\n } // This will capture any size changes for arrow adjustments etc.\n // usually in the same render cycle so we don't see any flickers\n\n\n this.updateSizes();\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.destroyThumbs();\n }\n }, {\n key: \"setupThumbs\",\n value: function setupThumbs() {\n // as the widths are calculated, we need to resize\n // the carousel when the window is resized\n (0, _window.default)().addEventListener('resize', this.updateSizes); // issue #2 - image loading smaller\n\n (0, _window.default)().addEventListener('DOMContentLoaded', this.updateSizes); // when the component is rendered we need to calculate\n // the container size to adjust the responsive behaviour\n\n this.updateSizes();\n }\n }, {\n key: \"destroyThumbs\",\n value: function destroyThumbs() {\n // removing listeners\n (0, _window.default)().removeEventListener('resize', this.updateSizes);\n (0, _window.default)().removeEventListener('DOMContentLoaded', this.updateSizes);\n }\n }, {\n key: \"getFirstItem\",\n value: function getFirstItem(selectedItem) {\n var firstItem = selectedItem;\n\n if (selectedItem >= this.state.lastPosition) {\n firstItem = this.state.lastPosition;\n }\n\n if (selectedItem < this.state.firstItem + this.state.visibleItems) {\n firstItem = this.state.firstItem;\n }\n\n if (selectedItem < this.state.firstItem) {\n firstItem = selectedItem;\n }\n\n return firstItem;\n }\n }, {\n key: \"renderItems\",\n value: function renderItems() {\n var _this2 = this;\n\n return this.props.children.map(function (img, index) {\n var itemClass = _cssClasses.default.ITEM(false, index === _this2.state.selectedItem);\n\n var thumbProps = {\n key: index,\n ref: function ref(e) {\n return _this2.setThumbsRef(e, index);\n },\n className: itemClass,\n onClick: _this2.handleClickItem.bind(_this2, index, _this2.props.children[index]),\n onKeyDown: _this2.handleClickItem.bind(_this2, index, _this2.props.children[index]),\n 'aria-label': \"\".concat(_this2.props.labels.item, \" \").concat(index + 1),\n style: {\n width: _this2.props.thumbWidth\n }\n };\n return /*#__PURE__*/_react.default.createElement(\"li\", _extends({}, thumbProps, {\n role: \"button\",\n tabIndex: 0\n }), img);\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this3 = this;\n\n if (!this.props.children) {\n return null;\n }\n\n var isSwipeable = _react.Children.count(this.props.children) > 1; // show left arrow?\n\n var hasPrev = this.state.showArrows && this.state.firstItem > 0; // show right arrow\n\n var hasNext = this.state.showArrows && this.state.firstItem < this.state.lastPosition; // obj to hold the transformations and styles\n\n var itemListStyles = {};\n var currentPosition = -this.state.firstItem * (this.state.itemSize || 0);\n var transformProp = (0, _CSSTranslate.default)(currentPosition, 'px', this.props.axis);\n var transitionTime = this.props.transitionTime + 'ms';\n itemListStyles = {\n WebkitTransform: transformProp,\n MozTransform: transformProp,\n MsTransform: transformProp,\n OTransform: transformProp,\n transform: transformProp,\n msTransform: transformProp,\n WebkitTransitionDuration: transitionTime,\n MozTransitionDuration: transitionTime,\n MsTransitionDuration: transitionTime,\n OTransitionDuration: transitionTime,\n transitionDuration: transitionTime,\n msTransitionDuration: transitionTime\n };\n return /*#__PURE__*/_react.default.createElement(\"div\", {\n className: _cssClasses.default.CAROUSEL(false)\n }, /*#__PURE__*/_react.default.createElement(\"div\", {\n className: _cssClasses.default.WRAPPER(false),\n ref: this.setItemsWrapperRef\n }, /*#__PURE__*/_react.default.createElement(\"button\", {\n type: \"button\",\n className: _cssClasses.default.ARROW_PREV(!hasPrev),\n onClick: function onClick() {\n return _this3.slideRight();\n },\n \"aria-label\": this.props.labels.leftArrow\n }), isSwipeable ? /*#__PURE__*/_react.default.createElement(_reactEasySwipe.default, {\n tagName: \"ul\",\n className: _cssClasses.default.SLIDER(false, this.state.swiping),\n onSwipeLeft: this.slideLeft,\n onSwipeRight: this.slideRight,\n onSwipeMove: this.onSwipeMove,\n onSwipeStart: this.onSwipeStart,\n onSwipeEnd: this.onSwipeEnd,\n style: itemListStyles,\n innerRef: this.setItemsListRef,\n allowMouseEvents: this.props.emulateTouch\n }, this.renderItems()) : /*#__PURE__*/_react.default.createElement(\"ul\", {\n className: _cssClasses.default.SLIDER(false, this.state.swiping),\n ref: function ref(node) {\n return _this3.setItemsListRef(node);\n },\n style: itemListStyles\n }, this.renderItems()), /*#__PURE__*/_react.default.createElement(\"button\", {\n type: \"button\",\n className: _cssClasses.default.ARROW_NEXT(!hasNext),\n onClick: function onClick() {\n return _this3.slideLeft();\n },\n \"aria-label\": this.props.labels.rightArrow\n })));\n }\n }]);\n\n return Thumbs;\n}(_react.Component);\n\nexports.default = Thumbs;\n\n_defineProperty(Thumbs, \"displayName\", 'Thumbs');\n\n_defineProperty(Thumbs, \"defaultProps\", {\n axis: 'horizontal',\n labels: {\n leftArrow: 'previous slide / item',\n rightArrow: 'next slide / item',\n item: 'slide item'\n },\n selectedItem: 0,\n thumbWidth: 80,\n transitionTime: 350\n});","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\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\nvar _default = {\n ROOT: function ROOT(customClassName) {\n return (0, _classnames.default)(_defineProperty({\n 'carousel-root': true\n }, customClassName || '', !!customClassName));\n },\n CAROUSEL: function CAROUSEL(isSlider) {\n return (0, _classnames.default)({\n carousel: true,\n 'carousel-slider': isSlider\n });\n },\n WRAPPER: function WRAPPER(isSlider, axis) {\n return (0, _classnames.default)({\n 'thumbs-wrapper': !isSlider,\n 'slider-wrapper': isSlider,\n 'axis-horizontal': axis === 'horizontal',\n 'axis-vertical': axis !== 'horizontal'\n });\n },\n SLIDER: function SLIDER(isSlider, isSwiping) {\n return (0, _classnames.default)({\n thumbs: !isSlider,\n slider: isSlider,\n animated: !isSwiping\n });\n },\n ITEM: function ITEM(isSlider, selected, previous) {\n return (0, _classnames.default)({\n thumb: !isSlider,\n slide: isSlider,\n selected: selected,\n previous: previous\n });\n },\n ARROW_PREV: function ARROW_PREV(disabled) {\n return (0, _classnames.default)({\n 'control-arrow control-prev': true,\n 'control-disabled': disabled\n });\n },\n ARROW_NEXT: function ARROW_NEXT(disabled) {\n return (0, _classnames.default)({\n 'control-arrow control-next': true,\n 'control-disabled': disabled\n });\n },\n DOT: function DOT(selected) {\n return (0, _classnames.default)({\n dot: true,\n selected: selected\n });\n }\n};\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.outerWidth = void 0;\n\nvar outerWidth = function outerWidth(el) {\n var width = el.offsetWidth;\n var style = getComputedStyle(el);\n width += parseInt(style.marginLeft) + parseInt(style.marginRight);\n return width;\n};\n\nexports.outerWidth = outerWidth;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"Carousel\", {\n enumerable: true,\n get: function get() {\n return _Carousel.default;\n }\n});\nObject.defineProperty(exports, \"CarouselProps\", {\n enumerable: true,\n get: function get() {\n return _types.CarouselProps;\n }\n});\nObject.defineProperty(exports, \"Thumbs\", {\n enumerable: true,\n get: function get() {\n return _Thumbs.default;\n }\n});\n\nvar _Carousel = _interopRequireDefault(require(\"./components/Carousel\"));\n\nvar _types = require(\"./components/Carousel/types\");\n\nvar _Thumbs = _interopRequireDefault(require(\"./components/Thumbs\"));\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _default = function _default() {\n return document;\n};\n\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _default = function _default() {\n return window;\n};\n\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.NextArrow = exports.PrevArrow = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _innerSliderUtils = require(\"./utils/innerSliderUtils\");\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(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 _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 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 _objectSpread(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\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 _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _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\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return _possibleConstructorReturn(this, result);\n };\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nvar PrevArrow = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(PrevArrow, _React$PureComponent);\n\n var _super = _createSuper(PrevArrow);\n\n function PrevArrow() {\n _classCallCheck(this, PrevArrow);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(PrevArrow, [{\n key: \"clickHandler\",\n value: function clickHandler(options, e) {\n if (e) {\n e.preventDefault();\n }\n\n this.props.clickHandler(options, e);\n }\n }, {\n key: \"render\",\n value: function render() {\n var prevClasses = {\n \"slick-arrow\": true,\n \"slick-prev\": true\n };\n var prevHandler = this.clickHandler.bind(this, {\n message: \"previous\"\n });\n\n if (!this.props.infinite && (this.props.currentSlide === 0 || this.props.slideCount <= this.props.slidesToShow)) {\n prevClasses[\"slick-disabled\"] = true;\n prevHandler = null;\n }\n\n var prevArrowProps = {\n key: \"0\",\n \"data-role\": \"none\",\n className: (0, _classnames[\"default\"])(prevClasses),\n style: {\n display: \"block\"\n },\n onClick: prevHandler\n };\n var customProps = {\n currentSlide: this.props.currentSlide,\n slideCount: this.props.slideCount\n };\n var prevArrow;\n\n if (this.props.prevArrow) {\n prevArrow = /*#__PURE__*/_react[\"default\"].cloneElement(this.props.prevArrow, _objectSpread(_objectSpread({}, prevArrowProps), customProps));\n } else {\n prevArrow = /*#__PURE__*/_react[\"default\"].createElement(\"button\", _extends({\n key: \"0\",\n type: \"button\"\n }, prevArrowProps), \" \", \"Previous\");\n }\n\n return prevArrow;\n }\n }]);\n\n return PrevArrow;\n}(_react[\"default\"].PureComponent);\n\nexports.PrevArrow = PrevArrow;\n\nvar NextArrow = /*#__PURE__*/function (_React$PureComponent2) {\n _inherits(NextArrow, _React$PureComponent2);\n\n var _super2 = _createSuper(NextArrow);\n\n function NextArrow() {\n _classCallCheck(this, NextArrow);\n\n return _super2.apply(this, arguments);\n }\n\n _createClass(NextArrow, [{\n key: \"clickHandler\",\n value: function clickHandler(options, e) {\n if (e) {\n e.preventDefault();\n }\n\n this.props.clickHandler(options, e);\n }\n }, {\n key: \"render\",\n value: function render() {\n var nextClasses = {\n \"slick-arrow\": true,\n \"slick-next\": true\n };\n var nextHandler = this.clickHandler.bind(this, {\n message: \"next\"\n });\n\n if (!(0, _innerSliderUtils.canGoNext)(this.props)) {\n nextClasses[\"slick-disabled\"] = true;\n nextHandler = null;\n }\n\n var nextArrowProps = {\n key: \"1\",\n \"data-role\": \"none\",\n className: (0, _classnames[\"default\"])(nextClasses),\n style: {\n display: \"block\"\n },\n onClick: nextHandler\n };\n var customProps = {\n currentSlide: this.props.currentSlide,\n slideCount: this.props.slideCount\n };\n var nextArrow;\n\n if (this.props.nextArrow) {\n nextArrow = /*#__PURE__*/_react[\"default\"].cloneElement(this.props.nextArrow, _objectSpread(_objectSpread({}, nextArrowProps), customProps));\n } else {\n nextArrow = /*#__PURE__*/_react[\"default\"].createElement(\"button\", _extends({\n key: \"1\",\n type: \"button\"\n }, nextArrowProps), \" \", \"Next\");\n }\n\n return nextArrow;\n }\n }]);\n\n return NextArrow;\n}(_react[\"default\"].PureComponent);\n\nexports.NextArrow = NextArrow;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nvar defaultProps = {\n accessibility: true,\n adaptiveHeight: false,\n afterChange: null,\n appendDots: function appendDots(dots) {\n return /*#__PURE__*/_react[\"default\"].createElement(\"ul\", {\n style: {\n display: \"block\"\n }\n }, dots);\n },\n arrows: true,\n autoplay: false,\n autoplaySpeed: 3000,\n beforeChange: null,\n centerMode: false,\n centerPadding: \"50px\",\n className: \"\",\n cssEase: \"ease\",\n customPaging: function customPaging(i) {\n return /*#__PURE__*/_react[\"default\"].createElement(\"button\", null, i + 1);\n },\n dots: false,\n dotsClass: \"slick-dots\",\n draggable: true,\n easing: \"linear\",\n edgeFriction: 0.35,\n fade: false,\n focusOnSelect: false,\n infinite: true,\n initialSlide: 0,\n lazyLoad: null,\n nextArrow: null,\n onEdge: null,\n onInit: null,\n onLazyLoadError: null,\n onReInit: null,\n pauseOnDotsHover: false,\n pauseOnFocus: false,\n pauseOnHover: true,\n prevArrow: null,\n responsive: null,\n rows: 1,\n rtl: false,\n slide: \"div\",\n slidesPerRow: 1,\n slidesToScroll: 1,\n slidesToShow: 1,\n speed: 500,\n swipe: true,\n swipeEvent: null,\n swipeToSlide: false,\n touchMove: true,\n touchThreshold: 5,\n useCSS: true,\n useTransform: true,\n variableWidth: false,\n vertical: false,\n waitForAnimate: true\n};\nvar _default = defaultProps;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Dots = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _innerSliderUtils = require(\"./utils/innerSliderUtils\");\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(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 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 _objectSpread(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\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 _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _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\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return _possibleConstructorReturn(this, result);\n };\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nvar getDotCount = function getDotCount(spec) {\n var dots;\n\n if (spec.infinite) {\n dots = Math.ceil(spec.slideCount / spec.slidesToScroll);\n } else {\n dots = Math.ceil((spec.slideCount - spec.slidesToShow) / spec.slidesToScroll) + 1;\n }\n\n return dots;\n};\n\nvar Dots = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(Dots, _React$PureComponent);\n\n var _super = _createSuper(Dots);\n\n function Dots() {\n _classCallCheck(this, Dots);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(Dots, [{\n key: \"clickHandler\",\n value: function clickHandler(options, e) {\n // In Autoplay the focus stays on clicked button even after transition\n // to next slide. That only goes away by click somewhere outside\n e.preventDefault();\n this.props.clickHandler(options);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n onMouseEnter = _this$props.onMouseEnter,\n onMouseOver = _this$props.onMouseOver,\n onMouseLeave = _this$props.onMouseLeave,\n infinite = _this$props.infinite,\n slidesToScroll = _this$props.slidesToScroll,\n slidesToShow = _this$props.slidesToShow,\n slideCount = _this$props.slideCount,\n currentSlide = _this$props.currentSlide;\n var dotCount = getDotCount({\n slideCount: slideCount,\n slidesToScroll: slidesToScroll,\n slidesToShow: slidesToShow,\n infinite: infinite\n });\n var mouseEvents = {\n onMouseEnter: onMouseEnter,\n onMouseOver: onMouseOver,\n onMouseLeave: onMouseLeave\n };\n var dots = [];\n\n for (var i = 0; i < dotCount; i++) {\n var _rightBound = (i + 1) * slidesToScroll - 1;\n\n var rightBound = infinite ? _rightBound : (0, _innerSliderUtils.clamp)(_rightBound, 0, slideCount - 1);\n\n var _leftBound = rightBound - (slidesToScroll - 1);\n\n var leftBound = infinite ? _leftBound : (0, _innerSliderUtils.clamp)(_leftBound, 0, slideCount - 1);\n var className = (0, _classnames[\"default\"])({\n \"slick-active\": infinite ? currentSlide >= leftBound && currentSlide <= rightBound : currentSlide === leftBound\n });\n var dotOptions = {\n message: \"dots\",\n index: i,\n slidesToScroll: slidesToScroll,\n currentSlide: currentSlide\n };\n var onClick = this.clickHandler.bind(this, dotOptions);\n dots = dots.concat( /*#__PURE__*/_react[\"default\"].createElement(\"li\", {\n key: i,\n className: className\n }, /*#__PURE__*/_react[\"default\"].cloneElement(this.props.customPaging(i), {\n onClick: onClick\n })));\n }\n\n return /*#__PURE__*/_react[\"default\"].cloneElement(this.props.appendDots(dots), _objectSpread({\n className: this.props.dotsClass\n }, mouseEvents));\n }\n }]);\n\n return Dots;\n}(_react[\"default\"].PureComponent);\n\nexports.Dots = Dots;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _slider = _interopRequireDefault(require(\"./slider\"));\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nvar _default = _slider[\"default\"];\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nvar initialState = {\n animating: false,\n autoplaying: null,\n currentDirection: 0,\n currentLeft: null,\n currentSlide: 0,\n direction: 1,\n dragging: false,\n edgeDragged: false,\n initialized: false,\n lazyLoadedList: [],\n listHeight: null,\n listWidth: null,\n scrolling: false,\n slideCount: null,\n slideHeight: null,\n slideWidth: null,\n swipeLeft: null,\n swiped: false,\n // used by swipeEvent. differentites between touch and swipe.\n swiping: false,\n touchObject: {\n startX: 0,\n startY: 0,\n curX: 0,\n curY: 0\n },\n trackStyle: {},\n trackWidth: 0,\n targetSlide: 0\n};\nvar _default = initialState;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.InnerSlider = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _initialState = _interopRequireDefault(require(\"./initial-state\"));\n\nvar _lodash = _interopRequireDefault(require(\"lodash.debounce\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _innerSliderUtils = require(\"./utils/innerSliderUtils\");\n\nvar _track = require(\"./track\");\n\nvar _dots = require(\"./dots\");\n\nvar _arrows = require(\"./arrows\");\n\nvar _resizeObserverPolyfill = _interopRequireDefault(require(\"resize-observer-polyfill\"));\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(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 _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 _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 _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 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 _objectSpread(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\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _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\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return _possibleConstructorReturn(this, result);\n };\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\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\nvar InnerSlider = /*#__PURE__*/function (_React$Component) {\n _inherits(InnerSlider, _React$Component);\n\n var _super = _createSuper(InnerSlider);\n\n function InnerSlider(props) {\n var _this;\n\n _classCallCheck(this, InnerSlider);\n\n _this = _super.call(this, props);\n\n _defineProperty(_assertThisInitialized(_this), \"listRefHandler\", function (ref) {\n return _this.list = ref;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"trackRefHandler\", function (ref) {\n return _this.track = ref;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"adaptHeight\", function () {\n if (_this.props.adaptiveHeight && _this.list) {\n var elem = _this.list.querySelector(\"[data-index=\\\"\".concat(_this.state.currentSlide, \"\\\"]\"));\n\n _this.list.style.height = (0, _innerSliderUtils.getHeight)(elem) + \"px\";\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"componentDidMount\", function () {\n _this.props.onInit && _this.props.onInit();\n\n if (_this.props.lazyLoad) {\n var slidesToLoad = (0, _innerSliderUtils.getOnDemandLazySlides)(_objectSpread(_objectSpread({}, _this.props), _this.state));\n\n if (slidesToLoad.length > 0) {\n _this.setState(function (prevState) {\n return {\n lazyLoadedList: prevState.lazyLoadedList.concat(slidesToLoad)\n };\n });\n\n if (_this.props.onLazyLoad) {\n _this.props.onLazyLoad(slidesToLoad);\n }\n }\n }\n\n var spec = _objectSpread({\n listRef: _this.list,\n trackRef: _this.track\n }, _this.props);\n\n _this.updateState(spec, true, function () {\n _this.adaptHeight();\n\n _this.props.autoplay && _this.autoPlay(\"update\");\n });\n\n if (_this.props.lazyLoad === \"progressive\") {\n _this.lazyLoadTimer = setInterval(_this.progressiveLazyLoad, 1000);\n }\n\n _this.ro = new _resizeObserverPolyfill[\"default\"](function () {\n if (_this.state.animating) {\n _this.onWindowResized(false); // don't set trackStyle hence don't break animation\n\n\n _this.callbackTimers.push(setTimeout(function () {\n return _this.onWindowResized();\n }, _this.props.speed));\n } else {\n _this.onWindowResized();\n }\n });\n\n _this.ro.observe(_this.list);\n\n document.querySelectorAll && Array.prototype.forEach.call(document.querySelectorAll(\".slick-slide\"), function (slide) {\n slide.onfocus = _this.props.pauseOnFocus ? _this.onSlideFocus : null;\n slide.onblur = _this.props.pauseOnFocus ? _this.onSlideBlur : null;\n });\n\n if (window.addEventListener) {\n window.addEventListener(\"resize\", _this.onWindowResized);\n } else {\n window.attachEvent(\"onresize\", _this.onWindowResized);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"componentWillUnmount\", function () {\n if (_this.animationEndCallback) {\n clearTimeout(_this.animationEndCallback);\n }\n\n if (_this.lazyLoadTimer) {\n clearInterval(_this.lazyLoadTimer);\n }\n\n if (_this.callbackTimers.length) {\n _this.callbackTimers.forEach(function (timer) {\n return clearTimeout(timer);\n });\n\n _this.callbackTimers = [];\n }\n\n if (window.addEventListener) {\n window.removeEventListener(\"resize\", _this.onWindowResized);\n } else {\n window.detachEvent(\"onresize\", _this.onWindowResized);\n }\n\n if (_this.autoplayTimer) {\n clearInterval(_this.autoplayTimer);\n }\n\n _this.ro.disconnect();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"componentDidUpdate\", function (prevProps) {\n _this.checkImagesLoad();\n\n _this.props.onReInit && _this.props.onReInit();\n\n if (_this.props.lazyLoad) {\n var slidesToLoad = (0, _innerSliderUtils.getOnDemandLazySlides)(_objectSpread(_objectSpread({}, _this.props), _this.state));\n\n if (slidesToLoad.length > 0) {\n _this.setState(function (prevState) {\n return {\n lazyLoadedList: prevState.lazyLoadedList.concat(slidesToLoad)\n };\n });\n\n if (_this.props.onLazyLoad) {\n _this.props.onLazyLoad(slidesToLoad);\n }\n }\n } // if (this.props.onLazyLoad) {\n // this.props.onLazyLoad([leftMostSlide])\n // }\n\n\n _this.adaptHeight();\n\n var spec = _objectSpread(_objectSpread({\n listRef: _this.list,\n trackRef: _this.track\n }, _this.props), _this.state);\n\n var setTrackStyle = _this.didPropsChange(prevProps);\n\n setTrackStyle && _this.updateState(spec, setTrackStyle, function () {\n if (_this.state.currentSlide >= _react[\"default\"].Children.count(_this.props.children)) {\n _this.changeSlide({\n message: \"index\",\n index: _react[\"default\"].Children.count(_this.props.children) - _this.props.slidesToShow,\n currentSlide: _this.state.currentSlide\n });\n }\n\n if (_this.props.autoplay) {\n _this.autoPlay(\"update\");\n } else {\n _this.pause(\"paused\");\n }\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onWindowResized\", function (setTrackStyle) {\n if (_this.debouncedResize) _this.debouncedResize.cancel();\n _this.debouncedResize = (0, _lodash[\"default\"])(function () {\n return _this.resizeWindow(setTrackStyle);\n }, 50);\n\n _this.debouncedResize();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"resizeWindow\", function () {\n var setTrackStyle = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n var isTrackMounted = Boolean(_this.track && _this.track.node); // prevent warning: setting state on unmounted component (server side rendering)\n\n if (!isTrackMounted) return;\n\n var spec = _objectSpread(_objectSpread({\n listRef: _this.list,\n trackRef: _this.track\n }, _this.props), _this.state);\n\n _this.updateState(spec, setTrackStyle, function () {\n if (_this.props.autoplay) _this.autoPlay(\"update\");else _this.pause(\"paused\");\n }); // animating state should be cleared while resizing, otherwise autoplay stops working\n\n\n _this.setState({\n animating: false\n });\n\n clearTimeout(_this.animationEndCallback);\n delete _this.animationEndCallback;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"updateState\", function (spec, setTrackStyle, callback) {\n var updatedState = (0, _innerSliderUtils.initializedState)(spec);\n spec = _objectSpread(_objectSpread(_objectSpread({}, spec), updatedState), {}, {\n slideIndex: updatedState.currentSlide\n });\n var targetLeft = (0, _innerSliderUtils.getTrackLeft)(spec);\n spec = _objectSpread(_objectSpread({}, spec), {}, {\n left: targetLeft\n });\n var trackStyle = (0, _innerSliderUtils.getTrackCSS)(spec);\n\n if (setTrackStyle || _react[\"default\"].Children.count(_this.props.children) !== _react[\"default\"].Children.count(spec.children)) {\n updatedState[\"trackStyle\"] = trackStyle;\n }\n\n _this.setState(updatedState, callback);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"ssrInit\", function () {\n if (_this.props.variableWidth) {\n var _trackWidth = 0,\n _trackLeft = 0;\n var childrenWidths = [];\n var preClones = (0, _innerSliderUtils.getPreClones)(_objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.state), {}, {\n slideCount: _this.props.children.length\n }));\n var postClones = (0, _innerSliderUtils.getPostClones)(_objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.state), {}, {\n slideCount: _this.props.children.length\n }));\n\n _this.props.children.forEach(function (child) {\n childrenWidths.push(child.props.style.width);\n _trackWidth += child.props.style.width;\n });\n\n for (var i = 0; i < preClones; i++) {\n _trackLeft += childrenWidths[childrenWidths.length - 1 - i];\n _trackWidth += childrenWidths[childrenWidths.length - 1 - i];\n }\n\n for (var _i = 0; _i < postClones; _i++) {\n _trackWidth += childrenWidths[_i];\n }\n\n for (var _i2 = 0; _i2 < _this.state.currentSlide; _i2++) {\n _trackLeft += childrenWidths[_i2];\n }\n\n var _trackStyle = {\n width: _trackWidth + \"px\",\n left: -_trackLeft + \"px\"\n };\n\n if (_this.props.centerMode) {\n var currentWidth = \"\".concat(childrenWidths[_this.state.currentSlide], \"px\");\n _trackStyle.left = \"calc(\".concat(_trackStyle.left, \" + (100% - \").concat(currentWidth, \") / 2 ) \");\n }\n\n return {\n trackStyle: _trackStyle\n };\n }\n\n var childrenCount = _react[\"default\"].Children.count(_this.props.children);\n\n var spec = _objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.state), {}, {\n slideCount: childrenCount\n });\n\n var slideCount = (0, _innerSliderUtils.getPreClones)(spec) + (0, _innerSliderUtils.getPostClones)(spec) + childrenCount;\n var trackWidth = 100 / _this.props.slidesToShow * slideCount;\n var slideWidth = 100 / slideCount;\n var trackLeft = -slideWidth * ((0, _innerSliderUtils.getPreClones)(spec) + _this.state.currentSlide) * trackWidth / 100;\n\n if (_this.props.centerMode) {\n trackLeft += (100 - slideWidth * trackWidth / 100) / 2;\n }\n\n var trackStyle = {\n width: trackWidth + \"%\",\n left: trackLeft + \"%\"\n };\n return {\n slideWidth: slideWidth + \"%\",\n trackStyle: trackStyle\n };\n });\n\n _defineProperty(_assertThisInitialized(_this), \"checkImagesLoad\", function () {\n var images = _this.list && _this.list.querySelectorAll && _this.list.querySelectorAll(\".slick-slide img\") || [];\n var imagesCount = images.length,\n loadedCount = 0;\n Array.prototype.forEach.call(images, function (image) {\n var handler = function handler() {\n return ++loadedCount && loadedCount >= imagesCount && _this.onWindowResized();\n };\n\n if (!image.onclick) {\n image.onclick = function () {\n return image.parentNode.focus();\n };\n } else {\n var prevClickHandler = image.onclick;\n\n image.onclick = function () {\n prevClickHandler();\n image.parentNode.focus();\n };\n }\n\n if (!image.onload) {\n if (_this.props.lazyLoad) {\n image.onload = function () {\n _this.adaptHeight();\n\n _this.callbackTimers.push(setTimeout(_this.onWindowResized, _this.props.speed));\n };\n } else {\n image.onload = handler;\n\n image.onerror = function () {\n handler();\n _this.props.onLazyLoadError && _this.props.onLazyLoadError();\n };\n }\n }\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"progressiveLazyLoad\", function () {\n var slidesToLoad = [];\n\n var spec = _objectSpread(_objectSpread({}, _this.props), _this.state);\n\n for (var index = _this.state.currentSlide; index < _this.state.slideCount + (0, _innerSliderUtils.getPostClones)(spec); index++) {\n if (_this.state.lazyLoadedList.indexOf(index) < 0) {\n slidesToLoad.push(index);\n break;\n }\n }\n\n for (var _index = _this.state.currentSlide - 1; _index >= -(0, _innerSliderUtils.getPreClones)(spec); _index--) {\n if (_this.state.lazyLoadedList.indexOf(_index) < 0) {\n slidesToLoad.push(_index);\n break;\n }\n }\n\n if (slidesToLoad.length > 0) {\n _this.setState(function (state) {\n return {\n lazyLoadedList: state.lazyLoadedList.concat(slidesToLoad)\n };\n });\n\n if (_this.props.onLazyLoad) {\n _this.props.onLazyLoad(slidesToLoad);\n }\n } else {\n if (_this.lazyLoadTimer) {\n clearInterval(_this.lazyLoadTimer);\n delete _this.lazyLoadTimer;\n }\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slideHandler\", function (index) {\n var dontAnimate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var _this$props = _this.props,\n asNavFor = _this$props.asNavFor,\n beforeChange = _this$props.beforeChange,\n onLazyLoad = _this$props.onLazyLoad,\n speed = _this$props.speed,\n afterChange = _this$props.afterChange; // capture currentslide before state is updated\n\n var currentSlide = _this.state.currentSlide;\n\n var _slideHandler = (0, _innerSliderUtils.slideHandler)(_objectSpread(_objectSpread(_objectSpread({\n index: index\n }, _this.props), _this.state), {}, {\n trackRef: _this.track,\n useCSS: _this.props.useCSS && !dontAnimate\n })),\n state = _slideHandler.state,\n nextState = _slideHandler.nextState;\n\n if (!state) return;\n beforeChange && beforeChange(currentSlide, state.currentSlide);\n var slidesToLoad = state.lazyLoadedList.filter(function (value) {\n return _this.state.lazyLoadedList.indexOf(value) < 0;\n });\n onLazyLoad && slidesToLoad.length > 0 && onLazyLoad(slidesToLoad);\n\n if (!_this.props.waitForAnimate && _this.animationEndCallback) {\n clearTimeout(_this.animationEndCallback);\n afterChange && afterChange(currentSlide);\n delete _this.animationEndCallback;\n }\n\n _this.setState(state, function () {\n // asNavForIndex check is to avoid recursive calls of slideHandler in waitForAnimate=false mode\n if (asNavFor && _this.asNavForIndex !== index) {\n _this.asNavForIndex = index;\n asNavFor.innerSlider.slideHandler(index);\n }\n\n if (!nextState) return;\n _this.animationEndCallback = setTimeout(function () {\n var animating = nextState.animating,\n firstBatch = _objectWithoutProperties(nextState, [\"animating\"]);\n\n _this.setState(firstBatch, function () {\n _this.callbackTimers.push(setTimeout(function () {\n return _this.setState({\n animating: animating\n });\n }, 10));\n\n afterChange && afterChange(state.currentSlide);\n delete _this.animationEndCallback;\n });\n }, speed);\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"changeSlide\", function (options) {\n var dontAnimate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var spec = _objectSpread(_objectSpread({}, _this.props), _this.state);\n\n var targetSlide = (0, _innerSliderUtils.changeSlide)(spec, options);\n if (targetSlide !== 0 && !targetSlide) return;\n\n if (dontAnimate === true) {\n _this.slideHandler(targetSlide, dontAnimate);\n } else {\n _this.slideHandler(targetSlide);\n }\n\n _this.props.autoplay && _this.autoPlay(\"update\");\n\n if (_this.props.focusOnSelect) {\n var nodes = _this.list.querySelectorAll(\".slick-current\");\n\n nodes[0] && nodes[0].focus();\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"clickHandler\", function (e) {\n if (_this.clickable === false) {\n e.stopPropagation();\n e.preventDefault();\n }\n\n _this.clickable = true;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"keyHandler\", function (e) {\n var dir = (0, _innerSliderUtils.keyHandler)(e, _this.props.accessibility, _this.props.rtl);\n dir !== \"\" && _this.changeSlide({\n message: dir\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"selectHandler\", function (options) {\n _this.changeSlide(options);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"disableBodyScroll\", function () {\n var preventDefault = function preventDefault(e) {\n e = e || window.event;\n if (e.preventDefault) e.preventDefault();\n e.returnValue = false;\n };\n\n window.ontouchmove = preventDefault;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"enableBodyScroll\", function () {\n window.ontouchmove = null;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"swipeStart\", function (e) {\n if (_this.props.verticalSwiping) {\n _this.disableBodyScroll();\n }\n\n var state = (0, _innerSliderUtils.swipeStart)(e, _this.props.swipe, _this.props.draggable);\n state !== \"\" && _this.setState(state);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"swipeMove\", function (e) {\n var state = (0, _innerSliderUtils.swipeMove)(e, _objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.state), {}, {\n trackRef: _this.track,\n listRef: _this.list,\n slideIndex: _this.state.currentSlide\n }));\n if (!state) return;\n\n if (state[\"swiping\"]) {\n _this.clickable = false;\n }\n\n _this.setState(state);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"swipeEnd\", function (e) {\n var state = (0, _innerSliderUtils.swipeEnd)(e, _objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.state), {}, {\n trackRef: _this.track,\n listRef: _this.list,\n slideIndex: _this.state.currentSlide\n }));\n if (!state) return;\n var triggerSlideHandler = state[\"triggerSlideHandler\"];\n delete state[\"triggerSlideHandler\"];\n\n _this.setState(state);\n\n if (triggerSlideHandler === undefined) return;\n\n _this.slideHandler(triggerSlideHandler);\n\n if (_this.props.verticalSwiping) {\n _this.enableBodyScroll();\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"touchEnd\", function (e) {\n _this.swipeEnd(e);\n\n _this.clickable = true;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickPrev\", function () {\n // this and fellow methods are wrapped in setTimeout\n // to make sure initialize setState has happened before\n // any of such methods are called\n _this.callbackTimers.push(setTimeout(function () {\n return _this.changeSlide({\n message: \"previous\"\n });\n }, 0));\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickNext\", function () {\n _this.callbackTimers.push(setTimeout(function () {\n return _this.changeSlide({\n message: \"next\"\n });\n }, 0));\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickGoTo\", function (slide) {\n var dontAnimate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n slide = Number(slide);\n if (isNaN(slide)) return \"\";\n\n _this.callbackTimers.push(setTimeout(function () {\n return _this.changeSlide({\n message: \"index\",\n index: slide,\n currentSlide: _this.state.currentSlide\n }, dontAnimate);\n }, 0));\n });\n\n _defineProperty(_assertThisInitialized(_this), \"play\", function () {\n var nextIndex;\n\n if (_this.props.rtl) {\n nextIndex = _this.state.currentSlide - _this.props.slidesToScroll;\n } else {\n if ((0, _innerSliderUtils.canGoNext)(_objectSpread(_objectSpread({}, _this.props), _this.state))) {\n nextIndex = _this.state.currentSlide + _this.props.slidesToScroll;\n } else {\n return false;\n }\n }\n\n _this.slideHandler(nextIndex);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"autoPlay\", function (playType) {\n if (_this.autoplayTimer) {\n clearInterval(_this.autoplayTimer);\n }\n\n var autoplaying = _this.state.autoplaying;\n\n if (playType === \"update\") {\n if (autoplaying === \"hovered\" || autoplaying === \"focused\" || autoplaying === \"paused\") {\n return;\n }\n } else if (playType === \"leave\") {\n if (autoplaying === \"paused\" || autoplaying === \"focused\") {\n return;\n }\n } else if (playType === \"blur\") {\n if (autoplaying === \"paused\" || autoplaying === \"hovered\") {\n return;\n }\n }\n\n _this.autoplayTimer = setInterval(_this.play, _this.props.autoplaySpeed + 50);\n\n _this.setState({\n autoplaying: \"playing\"\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"pause\", function (pauseType) {\n if (_this.autoplayTimer) {\n clearInterval(_this.autoplayTimer);\n _this.autoplayTimer = null;\n }\n\n var autoplaying = _this.state.autoplaying;\n\n if (pauseType === \"paused\") {\n _this.setState({\n autoplaying: \"paused\"\n });\n } else if (pauseType === \"focused\") {\n if (autoplaying === \"hovered\" || autoplaying === \"playing\") {\n _this.setState({\n autoplaying: \"focused\"\n });\n }\n } else {\n // pauseType is 'hovered'\n if (autoplaying === \"playing\") {\n _this.setState({\n autoplaying: \"hovered\"\n });\n }\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onDotsOver\", function () {\n return _this.props.autoplay && _this.pause(\"hovered\");\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onDotsLeave\", function () {\n return _this.props.autoplay && _this.state.autoplaying === \"hovered\" && _this.autoPlay(\"leave\");\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onTrackOver\", function () {\n return _this.props.autoplay && _this.pause(\"hovered\");\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onTrackLeave\", function () {\n return _this.props.autoplay && _this.state.autoplaying === \"hovered\" && _this.autoPlay(\"leave\");\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onSlideFocus\", function () {\n return _this.props.autoplay && _this.pause(\"focused\");\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onSlideBlur\", function () {\n return _this.props.autoplay && _this.state.autoplaying === \"focused\" && _this.autoPlay(\"blur\");\n });\n\n _defineProperty(_assertThisInitialized(_this), \"render\", function () {\n var className = (0, _classnames[\"default\"])(\"slick-slider\", _this.props.className, {\n \"slick-vertical\": _this.props.vertical,\n \"slick-initialized\": true\n });\n\n var spec = _objectSpread(_objectSpread({}, _this.props), _this.state);\n\n var trackProps = (0, _innerSliderUtils.extractObject)(spec, [\"fade\", \"cssEase\", \"speed\", \"infinite\", \"centerMode\", \"focusOnSelect\", \"currentSlide\", \"lazyLoad\", \"lazyLoadedList\", \"rtl\", \"slideWidth\", \"slideHeight\", \"listHeight\", \"vertical\", \"slidesToShow\", \"slidesToScroll\", \"slideCount\", \"trackStyle\", \"variableWidth\", \"unslick\", \"centerPadding\", \"targetSlide\", \"useCSS\"]);\n var pauseOnHover = _this.props.pauseOnHover;\n trackProps = _objectSpread(_objectSpread({}, trackProps), {}, {\n onMouseEnter: pauseOnHover ? _this.onTrackOver : null,\n onMouseLeave: pauseOnHover ? _this.onTrackLeave : null,\n onMouseOver: pauseOnHover ? _this.onTrackOver : null,\n focusOnSelect: _this.props.focusOnSelect && _this.clickable ? _this.selectHandler : null\n });\n var dots;\n\n if (_this.props.dots === true && _this.state.slideCount >= _this.props.slidesToShow) {\n var dotProps = (0, _innerSliderUtils.extractObject)(spec, [\"dotsClass\", \"slideCount\", \"slidesToShow\", \"currentSlide\", \"slidesToScroll\", \"clickHandler\", \"children\", \"customPaging\", \"infinite\", \"appendDots\"]);\n var pauseOnDotsHover = _this.props.pauseOnDotsHover;\n dotProps = _objectSpread(_objectSpread({}, dotProps), {}, {\n clickHandler: _this.changeSlide,\n onMouseEnter: pauseOnDotsHover ? _this.onDotsLeave : null,\n onMouseOver: pauseOnDotsHover ? _this.onDotsOver : null,\n onMouseLeave: pauseOnDotsHover ? _this.onDotsLeave : null\n });\n dots = /*#__PURE__*/_react[\"default\"].createElement(_dots.Dots, dotProps);\n }\n\n var prevArrow, nextArrow;\n var arrowProps = (0, _innerSliderUtils.extractObject)(spec, [\"infinite\", \"centerMode\", \"currentSlide\", \"slideCount\", \"slidesToShow\", \"prevArrow\", \"nextArrow\"]);\n arrowProps.clickHandler = _this.changeSlide;\n\n if (_this.props.arrows) {\n prevArrow = /*#__PURE__*/_react[\"default\"].createElement(_arrows.PrevArrow, arrowProps);\n nextArrow = /*#__PURE__*/_react[\"default\"].createElement(_arrows.NextArrow, arrowProps);\n }\n\n var verticalHeightStyle = null;\n\n if (_this.props.vertical) {\n verticalHeightStyle = {\n height: _this.state.listHeight\n };\n }\n\n var centerPaddingStyle = null;\n\n if (_this.props.vertical === false) {\n if (_this.props.centerMode === true) {\n centerPaddingStyle = {\n padding: \"0px \" + _this.props.centerPadding\n };\n }\n } else {\n if (_this.props.centerMode === true) {\n centerPaddingStyle = {\n padding: _this.props.centerPadding + \" 0px\"\n };\n }\n }\n\n var listStyle = _objectSpread(_objectSpread({}, verticalHeightStyle), centerPaddingStyle);\n\n var touchMove = _this.props.touchMove;\n var listProps = {\n className: \"slick-list\",\n style: listStyle,\n onClick: _this.clickHandler,\n onMouseDown: touchMove ? _this.swipeStart : null,\n onMouseMove: _this.state.dragging && touchMove ? _this.swipeMove : null,\n onMouseUp: touchMove ? _this.swipeEnd : null,\n onMouseLeave: _this.state.dragging && touchMove ? _this.swipeEnd : null,\n onTouchStart: touchMove ? _this.swipeStart : null,\n onTouchMove: _this.state.dragging && touchMove ? _this.swipeMove : null,\n onTouchEnd: touchMove ? _this.touchEnd : null,\n onTouchCancel: _this.state.dragging && touchMove ? _this.swipeEnd : null,\n onKeyDown: _this.props.accessibility ? _this.keyHandler : null\n };\n var innerSliderProps = {\n className: className,\n dir: \"ltr\",\n style: _this.props.style\n };\n\n if (_this.props.unslick) {\n listProps = {\n className: \"slick-list\"\n };\n innerSliderProps = {\n className: className\n };\n }\n\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", innerSliderProps, !_this.props.unslick ? prevArrow : \"\", /*#__PURE__*/_react[\"default\"].createElement(\"div\", _extends({\n ref: _this.listRefHandler\n }, listProps), /*#__PURE__*/_react[\"default\"].createElement(_track.Track, _extends({\n ref: _this.trackRefHandler\n }, trackProps), _this.props.children)), !_this.props.unslick ? nextArrow : \"\", !_this.props.unslick ? dots : \"\");\n });\n\n _this.list = null;\n _this.track = null;\n _this.state = _objectSpread(_objectSpread({}, _initialState[\"default\"]), {}, {\n currentSlide: _this.props.initialSlide,\n slideCount: _react[\"default\"].Children.count(_this.props.children)\n });\n _this.callbackTimers = [];\n _this.clickable = true;\n _this.debouncedResize = null;\n\n var ssrState = _this.ssrInit();\n\n _this.state = _objectSpread(_objectSpread({}, _this.state), ssrState);\n return _this;\n }\n\n _createClass(InnerSlider, [{\n key: \"didPropsChange\",\n value: function didPropsChange(prevProps) {\n var setTrackStyle = false;\n\n for (var _i3 = 0, _Object$keys = Object.keys(this.props); _i3 < _Object$keys.length; _i3++) {\n var key = _Object$keys[_i3];\n\n if (!prevProps.hasOwnProperty(key)) {\n setTrackStyle = true;\n break;\n }\n\n if (_typeof(prevProps[key]) === \"object\" || typeof prevProps[key] === \"function\") {\n continue;\n }\n\n if (prevProps[key] !== this.props[key]) {\n setTrackStyle = true;\n break;\n }\n }\n\n return setTrackStyle || _react[\"default\"].Children.count(this.props.children) !== _react[\"default\"].Children.count(prevProps.children);\n }\n }]);\n\n return InnerSlider;\n}(_react[\"default\"].Component);\n\nexports.InnerSlider = InnerSlider;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _innerSlider = require(\"./inner-slider\");\n\nvar _json2mq = _interopRequireDefault(require(\"json2mq\"));\n\nvar _defaultProps = _interopRequireDefault(require(\"./default-props\"));\n\nvar _innerSliderUtils = require(\"./utils/innerSliderUtils\");\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(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 _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 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 _objectSpread(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\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _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\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return _possibleConstructorReturn(this, result);\n };\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\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\nvar enquire = (0, _innerSliderUtils.canUseDOM)() && require(\"enquire.js\");\n\nvar Slider = /*#__PURE__*/function (_React$Component) {\n _inherits(Slider, _React$Component);\n\n var _super = _createSuper(Slider);\n\n function Slider(props) {\n var _this;\n\n _classCallCheck(this, Slider);\n\n _this = _super.call(this, props);\n\n _defineProperty(_assertThisInitialized(_this), \"innerSliderRefHandler\", function (ref) {\n return _this.innerSlider = ref;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickPrev\", function () {\n return _this.innerSlider.slickPrev();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickNext\", function () {\n return _this.innerSlider.slickNext();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickGoTo\", function (slide) {\n var dontAnimate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n return _this.innerSlider.slickGoTo(slide, dontAnimate);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickPause\", function () {\n return _this.innerSlider.pause(\"paused\");\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickPlay\", function () {\n return _this.innerSlider.autoPlay(\"play\");\n });\n\n _this.state = {\n breakpoint: null\n };\n _this._responsiveMediaHandlers = [];\n return _this;\n }\n\n _createClass(Slider, [{\n key: \"media\",\n value: function media(query, handler) {\n // javascript handler for css media query\n enquire.register(query, handler);\n\n this._responsiveMediaHandlers.push({\n query: query,\n handler: handler\n });\n } // handles responsive breakpoints\n\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this2 = this; // performance monitoring\n //if (process.env.NODE_ENV !== 'production') {\n //const { whyDidYouUpdate } = require('why-did-you-update')\n //whyDidYouUpdate(React)\n //}\n\n\n if (this.props.responsive) {\n var breakpoints = this.props.responsive.map(function (breakpt) {\n return breakpt.breakpoint;\n }); // sort them in increasing order of their numerical value\n\n breakpoints.sort(function (x, y) {\n return x - y;\n });\n breakpoints.forEach(function (breakpoint, index) {\n // media query for each breakpoint\n var bQuery;\n\n if (index === 0) {\n bQuery = (0, _json2mq[\"default\"])({\n minWidth: 0,\n maxWidth: breakpoint\n });\n } else {\n bQuery = (0, _json2mq[\"default\"])({\n minWidth: breakpoints[index - 1] + 1,\n maxWidth: breakpoint\n });\n } // when not using server side rendering\n\n\n (0, _innerSliderUtils.canUseDOM)() && _this2.media(bQuery, function () {\n _this2.setState({\n breakpoint: breakpoint\n });\n });\n }); // Register media query for full screen. Need to support resize from small to large\n // convert javascript object to media query string\n\n var query = (0, _json2mq[\"default\"])({\n minWidth: breakpoints.slice(-1)[0]\n });\n (0, _innerSliderUtils.canUseDOM)() && this.media(query, function () {\n _this2.setState({\n breakpoint: null\n });\n });\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this._responsiveMediaHandlers.forEach(function (obj) {\n enquire.unregister(obj.query, obj.handler);\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this3 = this;\n\n var settings;\n var newProps;\n\n if (this.state.breakpoint) {\n newProps = this.props.responsive.filter(function (resp) {\n return resp.breakpoint === _this3.state.breakpoint;\n });\n settings = newProps[0].settings === \"unslick\" ? \"unslick\" : _objectSpread(_objectSpread(_objectSpread({}, _defaultProps[\"default\"]), this.props), newProps[0].settings);\n } else {\n settings = _objectSpread(_objectSpread({}, _defaultProps[\"default\"]), this.props);\n } // force scrolling by one if centerMode is on\n\n\n if (settings.centerMode) {\n if (settings.slidesToScroll > 1 && process.env.NODE_ENV !== \"production\") {\n console.warn(\"slidesToScroll should be equal to 1 in centerMode, you are using \".concat(settings.slidesToScroll));\n }\n\n settings.slidesToScroll = 1;\n } // force showing one slide and scrolling by one if the fade mode is on\n\n\n if (settings.fade) {\n if (settings.slidesToShow > 1 && process.env.NODE_ENV !== \"production\") {\n console.warn(\"slidesToShow should be equal to 1 when fade is true, you're using \".concat(settings.slidesToShow));\n }\n\n if (settings.slidesToScroll > 1 && process.env.NODE_ENV !== \"production\") {\n console.warn(\"slidesToScroll should be equal to 1 when fade is true, you're using \".concat(settings.slidesToScroll));\n }\n\n settings.slidesToShow = 1;\n settings.slidesToScroll = 1;\n } // makes sure that children is an array, even when there is only 1 child\n\n\n var children = _react[\"default\"].Children.toArray(this.props.children); // Children may contain false or null, so we should filter them\n // children may also contain string filled with spaces (in certain cases where we use jsx strings)\n\n\n children = children.filter(function (child) {\n if (typeof child === \"string\") {\n return !!child.trim();\n }\n\n return !!child;\n }); // rows and slidesPerRow logic is handled here\n\n if (settings.variableWidth && (settings.rows > 1 || settings.slidesPerRow > 1)) {\n console.warn(\"variableWidth is not supported in case of rows > 1 or slidesPerRow > 1\");\n settings.variableWidth = false;\n }\n\n var newChildren = [];\n var currentWidth = null;\n\n for (var i = 0; i < children.length; i += settings.rows * settings.slidesPerRow) {\n var newSlide = [];\n\n for (var j = i; j < i + settings.rows * settings.slidesPerRow; j += settings.slidesPerRow) {\n var row = [];\n\n for (var k = j; k < j + settings.slidesPerRow; k += 1) {\n if (settings.variableWidth && children[k].props.style) {\n currentWidth = children[k].props.style.width;\n }\n\n if (k >= children.length) break;\n row.push( /*#__PURE__*/_react[\"default\"].cloneElement(children[k], {\n key: 100 * i + 10 * j + k,\n tabIndex: -1,\n style: {\n width: \"\".concat(100 / settings.slidesPerRow, \"%\"),\n display: \"inline-block\"\n }\n }));\n }\n\n newSlide.push( /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n key: 10 * i + j\n }, row));\n }\n\n if (settings.variableWidth) {\n newChildren.push( /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n key: i,\n style: {\n width: currentWidth\n }\n }, newSlide));\n } else {\n newChildren.push( /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n key: i\n }, newSlide));\n }\n }\n\n if (settings === \"unslick\") {\n var className = \"regular slider \" + (this.props.className || \"\");\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: className\n }, children);\n } else if (newChildren.length <= settings.slidesToShow) {\n settings.unslick = true;\n }\n\n return /*#__PURE__*/_react[\"default\"].createElement(_innerSlider.InnerSlider, _extends({\n style: this.props.style,\n ref: this.innerSliderRefHandler\n }, settings), newChildren);\n }\n }]);\n\n return Slider;\n}(_react[\"default\"].Component);\n\nexports[\"default\"] = Slider;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Track = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _innerSliderUtils = require(\"./utils/innerSliderUtils\");\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(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 _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 _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _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\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return _possibleConstructorReturn(this, result);\n };\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\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 _objectSpread(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\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} // given specifications/props for a slide, fetch all the classes that need to be applied to the slide\n\n\nvar getSlideClasses = function getSlideClasses(spec) {\n var slickActive, slickCenter, slickCloned;\n var centerOffset, index;\n\n if (spec.rtl) {\n index = spec.slideCount - 1 - spec.index;\n } else {\n index = spec.index;\n }\n\n slickCloned = index < 0 || index >= spec.slideCount;\n\n if (spec.centerMode) {\n centerOffset = Math.floor(spec.slidesToShow / 2);\n slickCenter = (index - spec.currentSlide) % spec.slideCount === 0;\n\n if (index > spec.currentSlide - centerOffset - 1 && index <= spec.currentSlide + centerOffset) {\n slickActive = true;\n }\n } else {\n slickActive = spec.currentSlide <= index && index < spec.currentSlide + spec.slidesToShow;\n }\n\n var focusedSlide;\n\n if (spec.targetSlide < 0) {\n focusedSlide = spec.targetSlide + spec.slideCount;\n } else if (spec.targetSlide >= spec.slideCount) {\n focusedSlide = spec.targetSlide - spec.slideCount;\n } else {\n focusedSlide = spec.targetSlide;\n }\n\n var slickCurrent = index === focusedSlide;\n return {\n \"slick-slide\": true,\n \"slick-active\": slickActive,\n \"slick-center\": slickCenter,\n \"slick-cloned\": slickCloned,\n \"slick-current\": slickCurrent // dubious in case of RTL\n\n };\n};\n\nvar getSlideStyle = function getSlideStyle(spec) {\n var style = {};\n\n if (spec.variableWidth === undefined || spec.variableWidth === false) {\n style.width = spec.slideWidth;\n }\n\n if (spec.fade) {\n style.position = \"relative\";\n\n if (spec.vertical) {\n style.top = -spec.index * parseInt(spec.slideHeight);\n } else {\n style.left = -spec.index * parseInt(spec.slideWidth);\n }\n\n style.opacity = spec.currentSlide === spec.index ? 1 : 0;\n\n if (spec.useCSS) {\n style.transition = \"opacity \" + spec.speed + \"ms \" + spec.cssEase + \", \" + \"visibility \" + spec.speed + \"ms \" + spec.cssEase;\n }\n }\n\n return style;\n};\n\nvar getKey = function getKey(child, fallbackKey) {\n return child.key || fallbackKey;\n};\n\nvar renderSlides = function renderSlides(spec) {\n var key;\n var slides = [];\n var preCloneSlides = [];\n var postCloneSlides = [];\n\n var childrenCount = _react[\"default\"].Children.count(spec.children);\n\n var startIndex = (0, _innerSliderUtils.lazyStartIndex)(spec);\n var endIndex = (0, _innerSliderUtils.lazyEndIndex)(spec);\n\n _react[\"default\"].Children.forEach(spec.children, function (elem, index) {\n var child;\n var childOnClickOptions = {\n message: \"children\",\n index: index,\n slidesToScroll: spec.slidesToScroll,\n currentSlide: spec.currentSlide\n }; // in case of lazyLoad, whether or not we want to fetch the slide\n\n if (!spec.lazyLoad || spec.lazyLoad && spec.lazyLoadedList.indexOf(index) >= 0) {\n child = elem;\n } else {\n child = /*#__PURE__*/_react[\"default\"].createElement(\"div\", null);\n }\n\n var childStyle = getSlideStyle(_objectSpread(_objectSpread({}, spec), {}, {\n index: index\n }));\n var slideClass = child.props.className || \"\";\n var slideClasses = getSlideClasses(_objectSpread(_objectSpread({}, spec), {}, {\n index: index\n })); // push a cloned element of the desired slide\n\n slides.push( /*#__PURE__*/_react[\"default\"].cloneElement(child, {\n key: \"original\" + getKey(child, index),\n \"data-index\": index,\n className: (0, _classnames[\"default\"])(slideClasses, slideClass),\n tabIndex: \"-1\",\n \"aria-hidden\": !slideClasses[\"slick-active\"],\n style: _objectSpread(_objectSpread({\n outline: \"none\"\n }, child.props.style || {}), childStyle),\n onClick: function onClick(e) {\n child.props && child.props.onClick && child.props.onClick(e);\n\n if (spec.focusOnSelect) {\n spec.focusOnSelect(childOnClickOptions);\n }\n }\n })); // if slide needs to be precloned or postcloned\n\n if (spec.infinite && spec.fade === false) {\n var preCloneNo = childrenCount - index;\n\n if (preCloneNo <= (0, _innerSliderUtils.getPreClones)(spec) && childrenCount !== spec.slidesToShow) {\n key = -preCloneNo;\n\n if (key >= startIndex) {\n child = elem;\n }\n\n slideClasses = getSlideClasses(_objectSpread(_objectSpread({}, spec), {}, {\n index: key\n }));\n preCloneSlides.push( /*#__PURE__*/_react[\"default\"].cloneElement(child, {\n key: \"precloned\" + getKey(child, key),\n \"data-index\": key,\n tabIndex: \"-1\",\n className: (0, _classnames[\"default\"])(slideClasses, slideClass),\n \"aria-hidden\": !slideClasses[\"slick-active\"],\n style: _objectSpread(_objectSpread({}, child.props.style || {}), childStyle),\n onClick: function onClick(e) {\n child.props && child.props.onClick && child.props.onClick(e);\n\n if (spec.focusOnSelect) {\n spec.focusOnSelect(childOnClickOptions);\n }\n }\n }));\n }\n\n if (childrenCount !== spec.slidesToShow) {\n key = childrenCount + index;\n\n if (key < endIndex) {\n child = elem;\n }\n\n slideClasses = getSlideClasses(_objectSpread(_objectSpread({}, spec), {}, {\n index: key\n }));\n postCloneSlides.push( /*#__PURE__*/_react[\"default\"].cloneElement(child, {\n key: \"postcloned\" + getKey(child, key),\n \"data-index\": key,\n tabIndex: \"-1\",\n className: (0, _classnames[\"default\"])(slideClasses, slideClass),\n \"aria-hidden\": !slideClasses[\"slick-active\"],\n style: _objectSpread(_objectSpread({}, child.props.style || {}), childStyle),\n onClick: function onClick(e) {\n child.props && child.props.onClick && child.props.onClick(e);\n\n if (spec.focusOnSelect) {\n spec.focusOnSelect(childOnClickOptions);\n }\n }\n }));\n }\n }\n });\n\n if (spec.rtl) {\n return preCloneSlides.concat(slides, postCloneSlides).reverse();\n } else {\n return preCloneSlides.concat(slides, postCloneSlides);\n }\n};\n\nvar Track = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(Track, _React$PureComponent);\n\n var _super = _createSuper(Track);\n\n function Track() {\n var _this;\n\n _classCallCheck(this, Track);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"node\", null);\n\n _defineProperty(_assertThisInitialized(_this), \"handleRef\", function (ref) {\n _this.node = ref;\n });\n\n return _this;\n }\n\n _createClass(Track, [{\n key: \"render\",\n value: function render() {\n var slides = renderSlides(this.props);\n var _this$props = this.props,\n onMouseEnter = _this$props.onMouseEnter,\n onMouseOver = _this$props.onMouseOver,\n onMouseLeave = _this$props.onMouseLeave;\n var mouseEvents = {\n onMouseEnter: onMouseEnter,\n onMouseOver: onMouseOver,\n onMouseLeave: onMouseLeave\n };\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", _extends({\n ref: this.handleRef,\n className: \"slick-track\",\n style: this.props.trackStyle\n }, mouseEvents), slides);\n }\n }]);\n\n return Track;\n}(_react[\"default\"].PureComponent);\n\nexports.Track = Track;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.clamp = clamp;\nexports.canUseDOM = exports.slidesOnLeft = exports.slidesOnRight = exports.siblingDirection = exports.getTotalSlides = exports.getPostClones = exports.getPreClones = exports.getTrackLeft = exports.getTrackAnimateCSS = exports.getTrackCSS = exports.checkSpecKeys = exports.getSlideCount = exports.checkNavigable = exports.getNavigableIndexes = exports.swipeEnd = exports.swipeMove = exports.swipeStart = exports.keyHandler = exports.changeSlide = exports.slideHandler = exports.initializedState = exports.extractObject = exports.canGoNext = exports.getSwipeDirection = exports.getHeight = exports.getWidth = exports.lazySlidesOnRight = exports.lazySlidesOnLeft = exports.lazyEndIndex = exports.lazyStartIndex = exports.getRequiredLazySlides = exports.getOnDemandLazySlides = exports.safePreventDefault = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\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 _objectSpread(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\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 clamp(number, lowerBound, upperBound) {\n return Math.max(lowerBound, Math.min(number, upperBound));\n}\n\nvar safePreventDefault = function safePreventDefault(event) {\n var passiveEvents = [\"onTouchStart\", \"onTouchMove\", \"onWheel\"];\n\n if (!passiveEvents.includes(event._reactName)) {\n event.preventDefault();\n }\n};\n\nexports.safePreventDefault = safePreventDefault;\n\nvar getOnDemandLazySlides = function getOnDemandLazySlides(spec) {\n var onDemandSlides = [];\n var startIndex = lazyStartIndex(spec);\n var endIndex = lazyEndIndex(spec);\n\n for (var slideIndex = startIndex; slideIndex < endIndex; slideIndex++) {\n if (spec.lazyLoadedList.indexOf(slideIndex) < 0) {\n onDemandSlides.push(slideIndex);\n }\n }\n\n return onDemandSlides;\n}; // return list of slides that need to be present\n\n\nexports.getOnDemandLazySlides = getOnDemandLazySlides;\n\nvar getRequiredLazySlides = function getRequiredLazySlides(spec) {\n var requiredSlides = [];\n var startIndex = lazyStartIndex(spec);\n var endIndex = lazyEndIndex(spec);\n\n for (var slideIndex = startIndex; slideIndex < endIndex; slideIndex++) {\n requiredSlides.push(slideIndex);\n }\n\n return requiredSlides;\n}; // startIndex that needs to be present\n\n\nexports.getRequiredLazySlides = getRequiredLazySlides;\n\nvar lazyStartIndex = function lazyStartIndex(spec) {\n return spec.currentSlide - lazySlidesOnLeft(spec);\n};\n\nexports.lazyStartIndex = lazyStartIndex;\n\nvar lazyEndIndex = function lazyEndIndex(spec) {\n return spec.currentSlide + lazySlidesOnRight(spec);\n};\n\nexports.lazyEndIndex = lazyEndIndex;\n\nvar lazySlidesOnLeft = function lazySlidesOnLeft(spec) {\n return spec.centerMode ? Math.floor(spec.slidesToShow / 2) + (parseInt(spec.centerPadding) > 0 ? 1 : 0) : 0;\n};\n\nexports.lazySlidesOnLeft = lazySlidesOnLeft;\n\nvar lazySlidesOnRight = function lazySlidesOnRight(spec) {\n return spec.centerMode ? Math.floor((spec.slidesToShow - 1) / 2) + 1 + (parseInt(spec.centerPadding) > 0 ? 1 : 0) : spec.slidesToShow;\n}; // get width of an element\n\n\nexports.lazySlidesOnRight = lazySlidesOnRight;\n\nvar getWidth = function getWidth(elem) {\n return elem && elem.offsetWidth || 0;\n};\n\nexports.getWidth = getWidth;\n\nvar getHeight = function getHeight(elem) {\n return elem && elem.offsetHeight || 0;\n};\n\nexports.getHeight = getHeight;\n\nvar getSwipeDirection = function getSwipeDirection(touchObject) {\n var verticalSwiping = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var xDist, yDist, r, swipeAngle;\n xDist = touchObject.startX - touchObject.curX;\n yDist = touchObject.startY - touchObject.curY;\n r = Math.atan2(yDist, xDist);\n swipeAngle = Math.round(r * 180 / Math.PI);\n\n if (swipeAngle < 0) {\n swipeAngle = 360 - Math.abs(swipeAngle);\n }\n\n if (swipeAngle <= 45 && swipeAngle >= 0 || swipeAngle <= 360 && swipeAngle >= 315) {\n return \"left\";\n }\n\n if (swipeAngle >= 135 && swipeAngle <= 225) {\n return \"right\";\n }\n\n if (verticalSwiping === true) {\n if (swipeAngle >= 35 && swipeAngle <= 135) {\n return \"up\";\n } else {\n return \"down\";\n }\n }\n\n return \"vertical\";\n}; // whether or not we can go next\n\n\nexports.getSwipeDirection = getSwipeDirection;\n\nvar canGoNext = function canGoNext(spec) {\n var canGo = true;\n\n if (!spec.infinite) {\n if (spec.centerMode && spec.currentSlide >= spec.slideCount - 1) {\n canGo = false;\n } else if (spec.slideCount <= spec.slidesToShow || spec.currentSlide >= spec.slideCount - spec.slidesToShow) {\n canGo = false;\n }\n }\n\n return canGo;\n}; // given an object and a list of keys, return new object with given keys\n\n\nexports.canGoNext = canGoNext;\n\nvar extractObject = function extractObject(spec, keys) {\n var newObject = {};\n keys.forEach(function (key) {\n return newObject[key] = spec[key];\n });\n return newObject;\n}; // get initialized state\n\n\nexports.extractObject = extractObject;\n\nvar initializedState = function initializedState(spec) {\n // spec also contains listRef, trackRef\n var slideCount = _react[\"default\"].Children.count(spec.children);\n\n var listNode = spec.listRef;\n var listWidth = Math.ceil(getWidth(listNode));\n var trackNode = spec.trackRef && spec.trackRef.node;\n var trackWidth = Math.ceil(getWidth(trackNode));\n var slideWidth;\n\n if (!spec.vertical) {\n var centerPaddingAdj = spec.centerMode && parseInt(spec.centerPadding) * 2;\n\n if (typeof spec.centerPadding === \"string\" && spec.centerPadding.slice(-1) === \"%\") {\n centerPaddingAdj *= listWidth / 100;\n }\n\n slideWidth = Math.ceil((listWidth - centerPaddingAdj) / spec.slidesToShow);\n } else {\n slideWidth = listWidth;\n }\n\n var slideHeight = listNode && getHeight(listNode.querySelector('[data-index=\"0\"]'));\n var listHeight = slideHeight * spec.slidesToShow;\n var currentSlide = spec.currentSlide === undefined ? spec.initialSlide : spec.currentSlide;\n\n if (spec.rtl && spec.currentSlide === undefined) {\n currentSlide = slideCount - 1 - spec.initialSlide;\n }\n\n var lazyLoadedList = spec.lazyLoadedList || [];\n var slidesToLoad = getOnDemandLazySlides(_objectSpread(_objectSpread({}, spec), {}, {\n currentSlide: currentSlide,\n lazyLoadedList: lazyLoadedList\n }));\n lazyLoadedList = lazyLoadedList.concat(slidesToLoad);\n var state = {\n slideCount: slideCount,\n slideWidth: slideWidth,\n listWidth: listWidth,\n trackWidth: trackWidth,\n currentSlide: currentSlide,\n slideHeight: slideHeight,\n listHeight: listHeight,\n lazyLoadedList: lazyLoadedList\n };\n\n if (spec.autoplaying === null && spec.autoplay) {\n state[\"autoplaying\"] = \"playing\";\n }\n\n return state;\n};\n\nexports.initializedState = initializedState;\n\nvar slideHandler = function slideHandler(spec) {\n var waitForAnimate = spec.waitForAnimate,\n animating = spec.animating,\n fade = spec.fade,\n infinite = spec.infinite,\n index = spec.index,\n slideCount = spec.slideCount,\n lazyLoad = spec.lazyLoad,\n currentSlide = spec.currentSlide,\n centerMode = spec.centerMode,\n slidesToScroll = spec.slidesToScroll,\n slidesToShow = spec.slidesToShow,\n useCSS = spec.useCSS;\n var lazyLoadedList = spec.lazyLoadedList;\n if (waitForAnimate && animating) return {};\n var animationSlide = index,\n finalSlide,\n animationLeft,\n finalLeft;\n var state = {},\n nextState = {};\n var targetSlide = infinite ? index : clamp(index, 0, slideCount - 1);\n\n if (fade) {\n if (!infinite && (index < 0 || index >= slideCount)) return {};\n\n if (index < 0) {\n animationSlide = index + slideCount;\n } else if (index >= slideCount) {\n animationSlide = index - slideCount;\n }\n\n if (lazyLoad && lazyLoadedList.indexOf(animationSlide) < 0) {\n lazyLoadedList = lazyLoadedList.concat(animationSlide);\n }\n\n state = {\n animating: true,\n currentSlide: animationSlide,\n lazyLoadedList: lazyLoadedList,\n targetSlide: animationSlide\n };\n nextState = {\n animating: false,\n targetSlide: animationSlide\n };\n } else {\n finalSlide = animationSlide;\n\n if (animationSlide < 0) {\n finalSlide = animationSlide + slideCount;\n if (!infinite) finalSlide = 0;else if (slideCount % slidesToScroll !== 0) finalSlide = slideCount - slideCount % slidesToScroll;\n } else if (!canGoNext(spec) && animationSlide > currentSlide) {\n animationSlide = finalSlide = currentSlide;\n } else if (centerMode && animationSlide >= slideCount) {\n animationSlide = infinite ? slideCount : slideCount - 1;\n finalSlide = infinite ? 0 : slideCount - 1;\n } else if (animationSlide >= slideCount) {\n finalSlide = animationSlide - slideCount;\n if (!infinite) finalSlide = slideCount - slidesToShow;else if (slideCount % slidesToScroll !== 0) finalSlide = 0;\n }\n\n if (!infinite && animationSlide + slidesToShow >= slideCount) {\n finalSlide = slideCount - slidesToShow;\n }\n\n animationLeft = getTrackLeft(_objectSpread(_objectSpread({}, spec), {}, {\n slideIndex: animationSlide\n }));\n finalLeft = getTrackLeft(_objectSpread(_objectSpread({}, spec), {}, {\n slideIndex: finalSlide\n }));\n\n if (!infinite) {\n if (animationLeft === finalLeft) animationSlide = finalSlide;\n animationLeft = finalLeft;\n }\n\n if (lazyLoad) {\n lazyLoadedList = lazyLoadedList.concat(getOnDemandLazySlides(_objectSpread(_objectSpread({}, spec), {}, {\n currentSlide: animationSlide\n })));\n }\n\n if (!useCSS) {\n state = {\n currentSlide: finalSlide,\n trackStyle: getTrackCSS(_objectSpread(_objectSpread({}, spec), {}, {\n left: finalLeft\n })),\n lazyLoadedList: lazyLoadedList,\n targetSlide: targetSlide\n };\n } else {\n state = {\n animating: true,\n currentSlide: finalSlide,\n trackStyle: getTrackAnimateCSS(_objectSpread(_objectSpread({}, spec), {}, {\n left: animationLeft\n })),\n lazyLoadedList: lazyLoadedList,\n targetSlide: targetSlide\n };\n nextState = {\n animating: false,\n currentSlide: finalSlide,\n trackStyle: getTrackCSS(_objectSpread(_objectSpread({}, spec), {}, {\n left: finalLeft\n })),\n swipeLeft: null,\n targetSlide: targetSlide\n };\n }\n }\n\n return {\n state: state,\n nextState: nextState\n };\n};\n\nexports.slideHandler = slideHandler;\n\nvar changeSlide = function changeSlide(spec, options) {\n var indexOffset, previousInt, slideOffset, unevenOffset, targetSlide;\n var slidesToScroll = spec.slidesToScroll,\n slidesToShow = spec.slidesToShow,\n slideCount = spec.slideCount,\n currentSlide = spec.currentSlide,\n previousTargetSlide = spec.targetSlide,\n lazyLoad = spec.lazyLoad,\n infinite = spec.infinite;\n unevenOffset = slideCount % slidesToScroll !== 0;\n indexOffset = unevenOffset ? 0 : (slideCount - currentSlide) % slidesToScroll;\n\n if (options.message === \"previous\") {\n slideOffset = indexOffset === 0 ? slidesToScroll : slidesToShow - indexOffset;\n targetSlide = currentSlide - slideOffset;\n\n if (lazyLoad && !infinite) {\n previousInt = currentSlide - slideOffset;\n targetSlide = previousInt === -1 ? slideCount - 1 : previousInt;\n }\n\n if (!infinite) {\n targetSlide = previousTargetSlide - slidesToScroll;\n }\n } else if (options.message === \"next\") {\n slideOffset = indexOffset === 0 ? slidesToScroll : indexOffset;\n targetSlide = currentSlide + slideOffset;\n\n if (lazyLoad && !infinite) {\n targetSlide = (currentSlide + slidesToScroll) % slideCount + indexOffset;\n }\n\n if (!infinite) {\n targetSlide = previousTargetSlide + slidesToScroll;\n }\n } else if (options.message === \"dots\") {\n // Click on dots\n targetSlide = options.index * options.slidesToScroll;\n } else if (options.message === \"children\") {\n // Click on the slides\n targetSlide = options.index;\n\n if (infinite) {\n var direction = siblingDirection(_objectSpread(_objectSpread({}, spec), {}, {\n targetSlide: targetSlide\n }));\n\n if (targetSlide > options.currentSlide && direction === \"left\") {\n targetSlide = targetSlide - slideCount;\n } else if (targetSlide < options.currentSlide && direction === \"right\") {\n targetSlide = targetSlide + slideCount;\n }\n }\n } else if (options.message === \"index\") {\n targetSlide = Number(options.index);\n }\n\n return targetSlide;\n};\n\nexports.changeSlide = changeSlide;\n\nvar keyHandler = function keyHandler(e, accessibility, rtl) {\n if (e.target.tagName.match(\"TEXTAREA|INPUT|SELECT\") || !accessibility) return \"\";\n if (e.keyCode === 37) return rtl ? \"next\" : \"previous\";\n if (e.keyCode === 39) return rtl ? \"previous\" : \"next\";\n return \"\";\n};\n\nexports.keyHandler = keyHandler;\n\nvar swipeStart = function swipeStart(e, swipe, draggable) {\n e.target.tagName === \"IMG\" && safePreventDefault(e);\n if (!swipe || !draggable && e.type.indexOf(\"mouse\") !== -1) return \"\";\n return {\n dragging: true,\n touchObject: {\n startX: e.touches ? e.touches[0].pageX : e.clientX,\n startY: e.touches ? e.touches[0].pageY : e.clientY,\n curX: e.touches ? e.touches[0].pageX : e.clientX,\n curY: e.touches ? e.touches[0].pageY : e.clientY\n }\n };\n};\n\nexports.swipeStart = swipeStart;\n\nvar swipeMove = function swipeMove(e, spec) {\n // spec also contains, trackRef and slideIndex\n var scrolling = spec.scrolling,\n animating = spec.animating,\n vertical = spec.vertical,\n swipeToSlide = spec.swipeToSlide,\n verticalSwiping = spec.verticalSwiping,\n rtl = spec.rtl,\n currentSlide = spec.currentSlide,\n edgeFriction = spec.edgeFriction,\n edgeDragged = spec.edgeDragged,\n onEdge = spec.onEdge,\n swiped = spec.swiped,\n swiping = spec.swiping,\n slideCount = spec.slideCount,\n slidesToScroll = spec.slidesToScroll,\n infinite = spec.infinite,\n touchObject = spec.touchObject,\n swipeEvent = spec.swipeEvent,\n listHeight = spec.listHeight,\n listWidth = spec.listWidth;\n if (scrolling) return;\n if (animating) return safePreventDefault(e);\n if (vertical && swipeToSlide && verticalSwiping) safePreventDefault(e);\n var swipeLeft,\n state = {};\n var curLeft = getTrackLeft(spec);\n touchObject.curX = e.touches ? e.touches[0].pageX : e.clientX;\n touchObject.curY = e.touches ? e.touches[0].pageY : e.clientY;\n touchObject.swipeLength = Math.round(Math.sqrt(Math.pow(touchObject.curX - touchObject.startX, 2)));\n var verticalSwipeLength = Math.round(Math.sqrt(Math.pow(touchObject.curY - touchObject.startY, 2)));\n\n if (!verticalSwiping && !swiping && verticalSwipeLength > 10) {\n return {\n scrolling: true\n };\n }\n\n if (verticalSwiping) touchObject.swipeLength = verticalSwipeLength;\n var positionOffset = (!rtl ? 1 : -1) * (touchObject.curX > touchObject.startX ? 1 : -1);\n if (verticalSwiping) positionOffset = touchObject.curY > touchObject.startY ? 1 : -1;\n var dotCount = Math.ceil(slideCount / slidesToScroll);\n var swipeDirection = getSwipeDirection(spec.touchObject, verticalSwiping);\n var touchSwipeLength = touchObject.swipeLength;\n\n if (!infinite) {\n if (currentSlide === 0 && (swipeDirection === \"right\" || swipeDirection === \"down\") || currentSlide + 1 >= dotCount && (swipeDirection === \"left\" || swipeDirection === \"up\") || !canGoNext(spec) && (swipeDirection === \"left\" || swipeDirection === \"up\")) {\n touchSwipeLength = touchObject.swipeLength * edgeFriction;\n\n if (edgeDragged === false && onEdge) {\n onEdge(swipeDirection);\n state[\"edgeDragged\"] = true;\n }\n }\n }\n\n if (!swiped && swipeEvent) {\n swipeEvent(swipeDirection);\n state[\"swiped\"] = true;\n }\n\n if (!vertical) {\n if (!rtl) {\n swipeLeft = curLeft + touchSwipeLength * positionOffset;\n } else {\n swipeLeft = curLeft - touchSwipeLength * positionOffset;\n }\n } else {\n swipeLeft = curLeft + touchSwipeLength * (listHeight / listWidth) * positionOffset;\n }\n\n if (verticalSwiping) {\n swipeLeft = curLeft + touchSwipeLength * positionOffset;\n }\n\n state = _objectSpread(_objectSpread({}, state), {}, {\n touchObject: touchObject,\n swipeLeft: swipeLeft,\n trackStyle: getTrackCSS(_objectSpread(_objectSpread({}, spec), {}, {\n left: swipeLeft\n }))\n });\n\n if (Math.abs(touchObject.curX - touchObject.startX) < Math.abs(touchObject.curY - touchObject.startY) * 0.8) {\n return state;\n }\n\n if (touchObject.swipeLength > 10) {\n state[\"swiping\"] = true;\n safePreventDefault(e);\n }\n\n return state;\n};\n\nexports.swipeMove = swipeMove;\n\nvar swipeEnd = function swipeEnd(e, spec) {\n var dragging = spec.dragging,\n swipe = spec.swipe,\n touchObject = spec.touchObject,\n listWidth = spec.listWidth,\n touchThreshold = spec.touchThreshold,\n verticalSwiping = spec.verticalSwiping,\n listHeight = spec.listHeight,\n swipeToSlide = spec.swipeToSlide,\n scrolling = spec.scrolling,\n onSwipe = spec.onSwipe,\n targetSlide = spec.targetSlide,\n currentSlide = spec.currentSlide,\n infinite = spec.infinite;\n\n if (!dragging) {\n if (swipe) safePreventDefault(e);\n return {};\n }\n\n var minSwipe = verticalSwiping ? listHeight / touchThreshold : listWidth / touchThreshold;\n var swipeDirection = getSwipeDirection(touchObject, verticalSwiping); // reset the state of touch related state variables.\n\n var state = {\n dragging: false,\n edgeDragged: false,\n scrolling: false,\n swiping: false,\n swiped: false,\n swipeLeft: null,\n touchObject: {}\n };\n\n if (scrolling) {\n return state;\n }\n\n if (!touchObject.swipeLength) {\n return state;\n }\n\n if (touchObject.swipeLength > minSwipe) {\n safePreventDefault(e);\n\n if (onSwipe) {\n onSwipe(swipeDirection);\n }\n\n var slideCount, newSlide;\n var activeSlide = infinite ? currentSlide : targetSlide;\n\n switch (swipeDirection) {\n case \"left\":\n case \"up\":\n newSlide = activeSlide + getSlideCount(spec);\n slideCount = swipeToSlide ? checkNavigable(spec, newSlide) : newSlide;\n state[\"currentDirection\"] = 0;\n break;\n\n case \"right\":\n case \"down\":\n newSlide = activeSlide - getSlideCount(spec);\n slideCount = swipeToSlide ? checkNavigable(spec, newSlide) : newSlide;\n state[\"currentDirection\"] = 1;\n break;\n\n default:\n slideCount = activeSlide;\n }\n\n state[\"triggerSlideHandler\"] = slideCount;\n } else {\n // Adjust the track back to it's original position.\n var currentLeft = getTrackLeft(spec);\n state[\"trackStyle\"] = getTrackAnimateCSS(_objectSpread(_objectSpread({}, spec), {}, {\n left: currentLeft\n }));\n }\n\n return state;\n};\n\nexports.swipeEnd = swipeEnd;\n\nvar getNavigableIndexes = function getNavigableIndexes(spec) {\n var max = spec.infinite ? spec.slideCount * 2 : spec.slideCount;\n var breakpoint = spec.infinite ? spec.slidesToShow * -1 : 0;\n var counter = spec.infinite ? spec.slidesToShow * -1 : 0;\n var indexes = [];\n\n while (breakpoint < max) {\n indexes.push(breakpoint);\n breakpoint = counter + spec.slidesToScroll;\n counter += Math.min(spec.slidesToScroll, spec.slidesToShow);\n }\n\n return indexes;\n};\n\nexports.getNavigableIndexes = getNavigableIndexes;\n\nvar checkNavigable = function checkNavigable(spec, index) {\n var navigables = getNavigableIndexes(spec);\n var prevNavigable = 0;\n\n if (index > navigables[navigables.length - 1]) {\n index = navigables[navigables.length - 1];\n } else {\n for (var n in navigables) {\n if (index < navigables[n]) {\n index = prevNavigable;\n break;\n }\n\n prevNavigable = navigables[n];\n }\n }\n\n return index;\n};\n\nexports.checkNavigable = checkNavigable;\n\nvar getSlideCount = function getSlideCount(spec) {\n var centerOffset = spec.centerMode ? spec.slideWidth * Math.floor(spec.slidesToShow / 2) : 0;\n\n if (spec.swipeToSlide) {\n var swipedSlide;\n var slickList = spec.listRef;\n var slides = slickList.querySelectorAll && slickList.querySelectorAll(\".slick-slide\") || [];\n Array.from(slides).every(function (slide) {\n if (!spec.vertical) {\n if (slide.offsetLeft - centerOffset + getWidth(slide) / 2 > spec.swipeLeft * -1) {\n swipedSlide = slide;\n return false;\n }\n } else {\n if (slide.offsetTop + getHeight(slide) / 2 > spec.swipeLeft * -1) {\n swipedSlide = slide;\n return false;\n }\n }\n\n return true;\n });\n\n if (!swipedSlide) {\n return 0;\n }\n\n var currentIndex = spec.rtl === true ? spec.slideCount - spec.currentSlide : spec.currentSlide;\n var slidesTraversed = Math.abs(swipedSlide.dataset.index - currentIndex) || 1;\n return slidesTraversed;\n } else {\n return spec.slidesToScroll;\n }\n};\n\nexports.getSlideCount = getSlideCount;\n\nvar checkSpecKeys = function checkSpecKeys(spec, keysArray) {\n return keysArray.reduce(function (value, key) {\n return value && spec.hasOwnProperty(key);\n }, true) ? null : console.error(\"Keys Missing:\", spec);\n};\n\nexports.checkSpecKeys = checkSpecKeys;\n\nvar getTrackCSS = function getTrackCSS(spec) {\n checkSpecKeys(spec, [\"left\", \"variableWidth\", \"slideCount\", \"slidesToShow\", \"slideWidth\"]);\n var trackWidth, trackHeight;\n var trackChildren = spec.slideCount + 2 * spec.slidesToShow;\n\n if (!spec.vertical) {\n trackWidth = getTotalSlides(spec) * spec.slideWidth;\n } else {\n trackHeight = trackChildren * spec.slideHeight;\n }\n\n var style = {\n opacity: 1,\n transition: \"\",\n WebkitTransition: \"\"\n };\n\n if (spec.useTransform) {\n var WebkitTransform = !spec.vertical ? \"translate3d(\" + spec.left + \"px, 0px, 0px)\" : \"translate3d(0px, \" + spec.left + \"px, 0px)\";\n var transform = !spec.vertical ? \"translate3d(\" + spec.left + \"px, 0px, 0px)\" : \"translate3d(0px, \" + spec.left + \"px, 0px)\";\n var msTransform = !spec.vertical ? \"translateX(\" + spec.left + \"px)\" : \"translateY(\" + spec.left + \"px)\";\n style = _objectSpread(_objectSpread({}, style), {}, {\n WebkitTransform: WebkitTransform,\n transform: transform,\n msTransform: msTransform\n });\n } else {\n if (spec.vertical) {\n style[\"top\"] = spec.left;\n } else {\n style[\"left\"] = spec.left;\n }\n }\n\n if (spec.fade) style = {\n opacity: 1\n };\n if (trackWidth) style.width = trackWidth;\n if (trackHeight) style.height = trackHeight; // Fallback for IE8\n\n if (window && !window.addEventListener && window.attachEvent) {\n if (!spec.vertical) {\n style.marginLeft = spec.left + \"px\";\n } else {\n style.marginTop = spec.left + \"px\";\n }\n }\n\n return style;\n};\n\nexports.getTrackCSS = getTrackCSS;\n\nvar getTrackAnimateCSS = function getTrackAnimateCSS(spec) {\n checkSpecKeys(spec, [\"left\", \"variableWidth\", \"slideCount\", \"slidesToShow\", \"slideWidth\", \"speed\", \"cssEase\"]);\n var style = getTrackCSS(spec); // useCSS is true by default so it can be undefined\n\n if (spec.useTransform) {\n style.WebkitTransition = \"-webkit-transform \" + spec.speed + \"ms \" + spec.cssEase;\n style.transition = \"transform \" + spec.speed + \"ms \" + spec.cssEase;\n } else {\n if (spec.vertical) {\n style.transition = \"top \" + spec.speed + \"ms \" + spec.cssEase;\n } else {\n style.transition = \"left \" + spec.speed + \"ms \" + spec.cssEase;\n }\n }\n\n return style;\n};\n\nexports.getTrackAnimateCSS = getTrackAnimateCSS;\n\nvar getTrackLeft = function getTrackLeft(spec) {\n if (spec.unslick) {\n return 0;\n }\n\n checkSpecKeys(spec, [\"slideIndex\", \"trackRef\", \"infinite\", \"centerMode\", \"slideCount\", \"slidesToShow\", \"slidesToScroll\", \"slideWidth\", \"listWidth\", \"variableWidth\", \"slideHeight\"]);\n var slideIndex = spec.slideIndex,\n trackRef = spec.trackRef,\n infinite = spec.infinite,\n centerMode = spec.centerMode,\n slideCount = spec.slideCount,\n slidesToShow = spec.slidesToShow,\n slidesToScroll = spec.slidesToScroll,\n slideWidth = spec.slideWidth,\n listWidth = spec.listWidth,\n variableWidth = spec.variableWidth,\n slideHeight = spec.slideHeight,\n fade = spec.fade,\n vertical = spec.vertical;\n var slideOffset = 0;\n var targetLeft;\n var targetSlide;\n var verticalOffset = 0;\n\n if (fade || spec.slideCount === 1) {\n return 0;\n }\n\n var slidesToOffset = 0;\n\n if (infinite) {\n slidesToOffset = -getPreClones(spec); // bring active slide to the beginning of visual area\n // if next scroll doesn't have enough children, just reach till the end of original slides instead of shifting slidesToScroll children\n\n if (slideCount % slidesToScroll !== 0 && slideIndex + slidesToScroll > slideCount) {\n slidesToOffset = -(slideIndex > slideCount ? slidesToShow - (slideIndex - slideCount) : slideCount % slidesToScroll);\n } // shift current slide to center of the frame\n\n\n if (centerMode) {\n slidesToOffset += parseInt(slidesToShow / 2);\n }\n } else {\n if (slideCount % slidesToScroll !== 0 && slideIndex + slidesToScroll > slideCount) {\n slidesToOffset = slidesToShow - slideCount % slidesToScroll;\n }\n\n if (centerMode) {\n slidesToOffset = parseInt(slidesToShow / 2);\n }\n }\n\n slideOffset = slidesToOffset * slideWidth;\n verticalOffset = slidesToOffset * slideHeight;\n\n if (!vertical) {\n targetLeft = slideIndex * slideWidth * -1 + slideOffset;\n } else {\n targetLeft = slideIndex * slideHeight * -1 + verticalOffset;\n }\n\n if (variableWidth === true) {\n var targetSlideIndex;\n var trackElem = trackRef && trackRef.node;\n targetSlideIndex = slideIndex + getPreClones(spec);\n targetSlide = trackElem && trackElem.childNodes[targetSlideIndex];\n targetLeft = targetSlide ? targetSlide.offsetLeft * -1 : 0;\n\n if (centerMode === true) {\n targetSlideIndex = infinite ? slideIndex + getPreClones(spec) : slideIndex;\n targetSlide = trackElem && trackElem.children[targetSlideIndex];\n targetLeft = 0;\n\n for (var slide = 0; slide < targetSlideIndex; slide++) {\n targetLeft -= trackElem && trackElem.children[slide] && trackElem.children[slide].offsetWidth;\n }\n\n targetLeft -= parseInt(spec.centerPadding);\n targetLeft += targetSlide && (listWidth - targetSlide.offsetWidth) / 2;\n }\n }\n\n return targetLeft;\n};\n\nexports.getTrackLeft = getTrackLeft;\n\nvar getPreClones = function getPreClones(spec) {\n if (spec.unslick || !spec.infinite) {\n return 0;\n }\n\n if (spec.variableWidth) {\n return spec.slideCount;\n }\n\n return spec.slidesToShow + (spec.centerMode ? 1 : 0);\n};\n\nexports.getPreClones = getPreClones;\n\nvar getPostClones = function getPostClones(spec) {\n if (spec.unslick || !spec.infinite) {\n return 0;\n }\n\n return spec.slideCount;\n};\n\nexports.getPostClones = getPostClones;\n\nvar getTotalSlides = function getTotalSlides(spec) {\n return spec.slideCount === 1 ? 1 : getPreClones(spec) + spec.slideCount + getPostClones(spec);\n};\n\nexports.getTotalSlides = getTotalSlides;\n\nvar siblingDirection = function siblingDirection(spec) {\n if (spec.targetSlide > spec.currentSlide) {\n if (spec.targetSlide > spec.currentSlide + slidesOnRight(spec)) {\n return \"left\";\n }\n\n return \"right\";\n } else {\n if (spec.targetSlide < spec.currentSlide - slidesOnLeft(spec)) {\n return \"right\";\n }\n\n return \"left\";\n }\n};\n\nexports.siblingDirection = siblingDirection;\n\nvar slidesOnRight = function slidesOnRight(_ref) {\n var slidesToShow = _ref.slidesToShow,\n centerMode = _ref.centerMode,\n rtl = _ref.rtl,\n centerPadding = _ref.centerPadding; // returns no of slides on the right of active slide\n\n if (centerMode) {\n var right = (slidesToShow - 1) / 2 + 1;\n if (parseInt(centerPadding) > 0) right += 1;\n if (rtl && slidesToShow % 2 === 0) right += 1;\n return right;\n }\n\n if (rtl) {\n return 0;\n }\n\n return slidesToShow - 1;\n};\n\nexports.slidesOnRight = slidesOnRight;\n\nvar slidesOnLeft = function slidesOnLeft(_ref2) {\n var slidesToShow = _ref2.slidesToShow,\n centerMode = _ref2.centerMode,\n rtl = _ref2.rtl,\n centerPadding = _ref2.centerPadding; // returns no of slides on the left of active slide\n\n if (centerMode) {\n var left = (slidesToShow - 1) / 2 + 1;\n if (parseInt(centerPadding) > 0) left += 1;\n if (!rtl && slidesToShow % 2 === 0) left += 1;\n return left;\n }\n\n if (rtl) {\n return slidesToShow - 1;\n }\n\n return 0;\n};\n\nexports.slidesOnLeft = slidesOnLeft;\n\nvar canUseDOM = function canUseDOM() {\n return !!(typeof window !== \"undefined\" && window.document && window.document.createElement);\n};\n\nexports.canUseDOM = canUseDOM;","/**\r\n * A collection of shims that provide minimal functionality of the ES6 collections.\r\n *\r\n * These implementations are not meant to be used outside of the ResizeObserver\r\n * modules as they cover only a limited range of use cases.\r\n */\n\n/* eslint-disable require-jsdoc, valid-jsdoc */\nvar MapShim = function () {\n if (typeof Map !== 'undefined') {\n return Map;\n }\n /**\r\n * Returns index in provided array that matches the specified key.\r\n *\r\n * @param {Array} arr\r\n * @param {*} key\r\n * @returns {number}\r\n */\n\n\n function getIndex(arr, key) {\n var result = -1;\n arr.some(function (entry, index) {\n if (entry[0] === key) {\n result = index;\n return true;\n }\n\n return false;\n });\n return result;\n }\n\n return (\n /** @class */\n function () {\n function class_1() {\n this.__entries__ = [];\n }\n\n Object.defineProperty(class_1.prototype, \"size\", {\n /**\r\n * @returns {boolean}\r\n */\n get: function get() {\n return this.__entries__.length;\n },\n enumerable: true,\n configurable: true\n });\n /**\r\n * @param {*} key\r\n * @returns {*}\r\n */\n\n class_1.prototype.get = function (key) {\n var index = getIndex(this.__entries__, key);\n var entry = this.__entries__[index];\n return entry && entry[1];\n };\n /**\r\n * @param {*} key\r\n * @param {*} value\r\n * @returns {void}\r\n */\n\n\n class_1.prototype.set = function (key, value) {\n var index = getIndex(this.__entries__, key);\n\n if (~index) {\n this.__entries__[index][1] = value;\n } else {\n this.__entries__.push([key, value]);\n }\n };\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\n\n\n class_1.prototype.delete = function (key) {\n var entries = this.__entries__;\n var index = getIndex(entries, key);\n\n if (~index) {\n entries.splice(index, 1);\n }\n };\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\n\n\n class_1.prototype.has = function (key) {\n return !!~getIndex(this.__entries__, key);\n };\n /**\r\n * @returns {void}\r\n */\n\n\n class_1.prototype.clear = function () {\n this.__entries__.splice(0);\n };\n /**\r\n * @param {Function} callback\r\n * @param {*} [ctx=null]\r\n * @returns {void}\r\n */\n\n\n class_1.prototype.forEach = function (callback, ctx) {\n if (ctx === void 0) {\n ctx = null;\n }\n\n for (var _i = 0, _a = this.__entries__; _i < _a.length; _i++) {\n var entry = _a[_i];\n callback.call(ctx, entry[1], entry[0]);\n }\n };\n\n return class_1;\n }()\n );\n}();\n/**\r\n * Detects whether window and document objects are available in current environment.\r\n */\n\n\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && window.document === document; // Returns global object of a current environment.\n\nvar global$1 = function () {\n if (typeof global !== 'undefined' && global.Math === Math) {\n return global;\n }\n\n if (typeof self !== 'undefined' && self.Math === Math) {\n return self;\n }\n\n if (typeof window !== 'undefined' && window.Math === Math) {\n return window;\n } // eslint-disable-next-line no-new-func\n\n\n return Function('return this')();\n}();\n/**\r\n * A shim for the requestAnimationFrame which falls back to the setTimeout if\r\n * first one is not supported.\r\n *\r\n * @returns {number} Requests' identifier.\r\n */\n\n\nvar requestAnimationFrame$1 = function () {\n if (typeof requestAnimationFrame === 'function') {\n // It's required to use a bounded function because IE sometimes throws\n // an \"Invalid calling object\" error if rAF is invoked without the global\n // object on the left hand side.\n return requestAnimationFrame.bind(global$1);\n }\n\n return function (callback) {\n return setTimeout(function () {\n return callback(Date.now());\n }, 1000 / 60);\n };\n}(); // Defines minimum timeout before adding a trailing call.\n\n\nvar trailingTimeout = 2;\n/**\r\n * Creates a wrapper function which ensures that provided callback will be\r\n * invoked only once during the specified delay period.\r\n *\r\n * @param {Function} callback - Function to be invoked after the delay period.\r\n * @param {number} delay - Delay after which to invoke callback.\r\n * @returns {Function}\r\n */\n\nfunction throttle(callback, delay) {\n var leadingCall = false,\n trailingCall = false,\n lastCallTime = 0;\n /**\r\n * Invokes the original callback function and schedules new invocation if\r\n * the \"proxy\" was called during current request.\r\n *\r\n * @returns {void}\r\n */\n\n function resolvePending() {\n if (leadingCall) {\n leadingCall = false;\n callback();\n }\n\n if (trailingCall) {\n proxy();\n }\n }\n /**\r\n * Callback invoked after the specified delay. It will further postpone\r\n * invocation of the original function delegating it to the\r\n * requestAnimationFrame.\r\n *\r\n * @returns {void}\r\n */\n\n\n function timeoutCallback() {\n requestAnimationFrame$1(resolvePending);\n }\n /**\r\n * Schedules invocation of the original function.\r\n *\r\n * @returns {void}\r\n */\n\n\n function proxy() {\n var timeStamp = Date.now();\n\n if (leadingCall) {\n // Reject immediately following calls.\n if (timeStamp - lastCallTime < trailingTimeout) {\n return;\n } // Schedule new call to be in invoked when the pending one is resolved.\n // This is important for \"transitions\" which never actually start\n // immediately so there is a chance that we might miss one if change\n // happens amids the pending invocation.\n\n\n trailingCall = true;\n } else {\n leadingCall = true;\n trailingCall = false;\n setTimeout(timeoutCallback, delay);\n }\n\n lastCallTime = timeStamp;\n }\n\n return proxy;\n} // Minimum delay before invoking the update of observers.\n\n\nvar REFRESH_DELAY = 20; // A list of substrings of CSS properties used to find transition events that\n// might affect dimensions of observed elements.\n\nvar transitionKeys = ['top', 'right', 'bottom', 'left', 'width', 'height', 'size', 'weight']; // Check if MutationObserver is available.\n\nvar mutationObserverSupported = typeof MutationObserver !== 'undefined';\n/**\r\n * Singleton controller class which handles updates of ResizeObserver instances.\r\n */\n\nvar ResizeObserverController =\n/** @class */\nfunction () {\n /**\r\n * Creates a new instance of ResizeObserverController.\r\n *\r\n * @private\r\n */\n function ResizeObserverController() {\n /**\r\n * Indicates whether DOM listeners have been added.\r\n *\r\n * @private {boolean}\r\n */\n this.connected_ = false;\n /**\r\n * Tells that controller has subscribed for Mutation Events.\r\n *\r\n * @private {boolean}\r\n */\n\n this.mutationEventsAdded_ = false;\n /**\r\n * Keeps reference to the instance of MutationObserver.\r\n *\r\n * @private {MutationObserver}\r\n */\n\n this.mutationsObserver_ = null;\n /**\r\n * A list of connected observers.\r\n *\r\n * @private {Array}\r\n */\n\n this.observers_ = [];\n this.onTransitionEnd_ = this.onTransitionEnd_.bind(this);\n this.refresh = throttle(this.refresh.bind(this), REFRESH_DELAY);\n }\n /**\r\n * Adds observer to observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be added.\r\n * @returns {void}\r\n */\n\n\n ResizeObserverController.prototype.addObserver = function (observer) {\n if (!~this.observers_.indexOf(observer)) {\n this.observers_.push(observer);\n } // Add listeners if they haven't been added yet.\n\n\n if (!this.connected_) {\n this.connect_();\n }\n };\n /**\r\n * Removes observer from observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be removed.\r\n * @returns {void}\r\n */\n\n\n ResizeObserverController.prototype.removeObserver = function (observer) {\n var observers = this.observers_;\n var index = observers.indexOf(observer); // Remove observer if it's present in registry.\n\n if (~index) {\n observers.splice(index, 1);\n } // Remove listeners if controller has no connected observers.\n\n\n if (!observers.length && this.connected_) {\n this.disconnect_();\n }\n };\n /**\r\n * Invokes the update of observers. It will continue running updates insofar\r\n * it detects changes.\r\n *\r\n * @returns {void}\r\n */\n\n\n ResizeObserverController.prototype.refresh = function () {\n var changesDetected = this.updateObservers_(); // Continue running updates if changes have been detected as there might\n // be future ones caused by CSS transitions.\n\n if (changesDetected) {\n this.refresh();\n }\n };\n /**\r\n * Updates every observer from observers list and notifies them of queued\r\n * entries.\r\n *\r\n * @private\r\n * @returns {boolean} Returns \"true\" if any observer has detected changes in\r\n * dimensions of it's elements.\r\n */\n\n\n ResizeObserverController.prototype.updateObservers_ = function () {\n // Collect observers that have active observations.\n var activeObservers = this.observers_.filter(function (observer) {\n return observer.gatherActive(), observer.hasActive();\n }); // Deliver notifications in a separate cycle in order to avoid any\n // collisions between observers, e.g. when multiple instances of\n // ResizeObserver are tracking the same element and the callback of one\n // of them changes content dimensions of the observed target. Sometimes\n // this may result in notifications being blocked for the rest of observers.\n\n activeObservers.forEach(function (observer) {\n return observer.broadcastActive();\n });\n return activeObservers.length > 0;\n };\n /**\r\n * Initializes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\n\n\n ResizeObserverController.prototype.connect_ = function () {\n // Do nothing if running in a non-browser environment or if listeners\n // have been already added.\n if (!isBrowser || this.connected_) {\n return;\n } // Subscription to the \"Transitionend\" event is used as a workaround for\n // delayed transitions. This way it's possible to capture at least the\n // final state of an element.\n\n\n document.addEventListener('transitionend', this.onTransitionEnd_);\n window.addEventListener('resize', this.refresh);\n\n if (mutationObserverSupported) {\n this.mutationsObserver_ = new MutationObserver(this.refresh);\n this.mutationsObserver_.observe(document, {\n attributes: true,\n childList: true,\n characterData: true,\n subtree: true\n });\n } else {\n document.addEventListener('DOMSubtreeModified', this.refresh);\n this.mutationEventsAdded_ = true;\n }\n\n this.connected_ = true;\n };\n /**\r\n * Removes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\n\n\n ResizeObserverController.prototype.disconnect_ = function () {\n // Do nothing if running in a non-browser environment or if listeners\n // have been already removed.\n if (!isBrowser || !this.connected_) {\n return;\n }\n\n document.removeEventListener('transitionend', this.onTransitionEnd_);\n window.removeEventListener('resize', this.refresh);\n\n if (this.mutationsObserver_) {\n this.mutationsObserver_.disconnect();\n }\n\n if (this.mutationEventsAdded_) {\n document.removeEventListener('DOMSubtreeModified', this.refresh);\n }\n\n this.mutationsObserver_ = null;\n this.mutationEventsAdded_ = false;\n this.connected_ = false;\n };\n /**\r\n * \"Transitionend\" event handler.\r\n *\r\n * @private\r\n * @param {TransitionEvent} event\r\n * @returns {void}\r\n */\n\n\n ResizeObserverController.prototype.onTransitionEnd_ = function (_a) {\n var _b = _a.propertyName,\n propertyName = _b === void 0 ? '' : _b; // Detect whether transition may affect dimensions of an element.\n\n var isReflowProperty = transitionKeys.some(function (key) {\n return !!~propertyName.indexOf(key);\n });\n\n if (isReflowProperty) {\n this.refresh();\n }\n };\n /**\r\n * Returns instance of the ResizeObserverController.\r\n *\r\n * @returns {ResizeObserverController}\r\n */\n\n\n ResizeObserverController.getInstance = function () {\n if (!this.instance_) {\n this.instance_ = new ResizeObserverController();\n }\n\n return this.instance_;\n };\n /**\r\n * Holds reference to the controller's instance.\r\n *\r\n * @private {ResizeObserverController}\r\n */\n\n\n ResizeObserverController.instance_ = null;\n return ResizeObserverController;\n}();\n/**\r\n * Defines non-writable/enumerable properties of the provided target object.\r\n *\r\n * @param {Object} target - Object for which to define properties.\r\n * @param {Object} props - Properties to be defined.\r\n * @returns {Object} Target object.\r\n */\n\n\nvar defineConfigurable = function defineConfigurable(target, props) {\n for (var _i = 0, _a = Object.keys(props); _i < _a.length; _i++) {\n var key = _a[_i];\n Object.defineProperty(target, key, {\n value: props[key],\n enumerable: false,\n writable: false,\n configurable: true\n });\n }\n\n return target;\n};\n/**\r\n * Returns the global object associated with provided element.\r\n *\r\n * @param {Object} target\r\n * @returns {Object}\r\n */\n\n\nvar getWindowOf = function getWindowOf(target) {\n // Assume that the element is an instance of Node, which means that it\n // has the \"ownerDocument\" property from which we can retrieve a\n // corresponding global object.\n var ownerGlobal = target && target.ownerDocument && target.ownerDocument.defaultView; // Return the local global object if it's not possible extract one from\n // provided element.\n\n return ownerGlobal || global$1;\n}; // Placeholder of an empty content rectangle.\n\n\nvar emptyRect = createRectInit(0, 0, 0, 0);\n/**\r\n * Converts provided string to a number.\r\n *\r\n * @param {number|string} value\r\n * @returns {number}\r\n */\n\nfunction toFloat(value) {\n return parseFloat(value) || 0;\n}\n/**\r\n * Extracts borders size from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @param {...string} positions - Borders positions (top, right, ...)\r\n * @returns {number}\r\n */\n\n\nfunction getBordersSize(styles) {\n var positions = [];\n\n for (var _i = 1; _i < arguments.length; _i++) {\n positions[_i - 1] = arguments[_i];\n }\n\n return positions.reduce(function (size, position) {\n var value = styles['border-' + position + '-width'];\n return size + toFloat(value);\n }, 0);\n}\n/**\r\n * Extracts paddings sizes from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @returns {Object} Paddings box.\r\n */\n\n\nfunction getPaddings(styles) {\n var positions = ['top', 'right', 'bottom', 'left'];\n var paddings = {};\n\n for (var _i = 0, positions_1 = positions; _i < positions_1.length; _i++) {\n var position = positions_1[_i];\n var value = styles['padding-' + position];\n paddings[position] = toFloat(value);\n }\n\n return paddings;\n}\n/**\r\n * Calculates content rectangle of provided SVG element.\r\n *\r\n * @param {SVGGraphicsElement} target - Element content rectangle of which needs\r\n * to be calculated.\r\n * @returns {DOMRectInit}\r\n */\n\n\nfunction getSVGContentRect(target) {\n var bbox = target.getBBox();\n return createRectInit(0, 0, bbox.width, bbox.height);\n}\n/**\r\n * Calculates content rectangle of provided HTMLElement.\r\n *\r\n * @param {HTMLElement} target - Element for which to calculate the content rectangle.\r\n * @returns {DOMRectInit}\r\n */\n\n\nfunction getHTMLElementContentRect(target) {\n // Client width & height properties can't be\n // used exclusively as they provide rounded values.\n var clientWidth = target.clientWidth,\n clientHeight = target.clientHeight; // By this condition we can catch all non-replaced inline, hidden and\n // detached elements. Though elements with width & height properties less\n // than 0.5 will be discarded as well.\n //\n // Without it we would need to implement separate methods for each of\n // those cases and it's not possible to perform a precise and performance\n // effective test for hidden elements. E.g. even jQuery's ':visible' filter\n // gives wrong results for elements with width & height less than 0.5.\n\n if (!clientWidth && !clientHeight) {\n return emptyRect;\n }\n\n var styles = getWindowOf(target).getComputedStyle(target);\n var paddings = getPaddings(styles);\n var horizPad = paddings.left + paddings.right;\n var vertPad = paddings.top + paddings.bottom; // Computed styles of width & height are being used because they are the\n // only dimensions available to JS that contain non-rounded values. It could\n // be possible to utilize the getBoundingClientRect if only it's data wasn't\n // affected by CSS transformations let alone paddings, borders and scroll bars.\n\n var width = toFloat(styles.width),\n height = toFloat(styles.height); // Width & height include paddings and borders when the 'border-box' box\n // model is applied (except for IE).\n\n if (styles.boxSizing === 'border-box') {\n // Following conditions are required to handle Internet Explorer which\n // doesn't include paddings and borders to computed CSS dimensions.\n //\n // We can say that if CSS dimensions + paddings are equal to the \"client\"\n // properties then it's either IE, and thus we don't need to subtract\n // anything, or an element merely doesn't have paddings/borders styles.\n if (Math.round(width + horizPad) !== clientWidth) {\n width -= getBordersSize(styles, 'left', 'right') + horizPad;\n }\n\n if (Math.round(height + vertPad) !== clientHeight) {\n height -= getBordersSize(styles, 'top', 'bottom') + vertPad;\n }\n } // Following steps can't be applied to the document's root element as its\n // client[Width/Height] properties represent viewport area of the window.\n // Besides, it's as well not necessary as the itself neither has\n // rendered scroll bars nor it can be clipped.\n\n\n if (!isDocumentElement(target)) {\n // In some browsers (only in Firefox, actually) CSS width & height\n // include scroll bars size which can be removed at this step as scroll\n // bars are the only difference between rounded dimensions + paddings\n // and \"client\" properties, though that is not always true in Chrome.\n var vertScrollbar = Math.round(width + horizPad) - clientWidth;\n var horizScrollbar = Math.round(height + vertPad) - clientHeight; // Chrome has a rather weird rounding of \"client\" properties.\n // E.g. for an element with content width of 314.2px it sometimes gives\n // the client width of 315px and for the width of 314.7px it may give\n // 314px. And it doesn't happen all the time. So just ignore this delta\n // as a non-relevant.\n\n if (Math.abs(vertScrollbar) !== 1) {\n width -= vertScrollbar;\n }\n\n if (Math.abs(horizScrollbar) !== 1) {\n height -= horizScrollbar;\n }\n }\n\n return createRectInit(paddings.left, paddings.top, width, height);\n}\n/**\r\n * Checks whether provided element is an instance of the SVGGraphicsElement.\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\n\n\nvar isSVGGraphicsElement = function () {\n // Some browsers, namely IE and Edge, don't have the SVGGraphicsElement\n // interface.\n if (typeof SVGGraphicsElement !== 'undefined') {\n return function (target) {\n return target instanceof getWindowOf(target).SVGGraphicsElement;\n };\n } // If it's so, then check that element is at least an instance of the\n // SVGElement and that it has the \"getBBox\" method.\n // eslint-disable-next-line no-extra-parens\n\n\n return function (target) {\n return target instanceof getWindowOf(target).SVGElement && typeof target.getBBox === 'function';\n };\n}();\n/**\r\n * Checks whether provided element is a document element ().\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\n\n\nfunction isDocumentElement(target) {\n return target === getWindowOf(target).document.documentElement;\n}\n/**\r\n * Calculates an appropriate content rectangle for provided html or svg element.\r\n *\r\n * @param {Element} target - Element content rectangle of which needs to be calculated.\r\n * @returns {DOMRectInit}\r\n */\n\n\nfunction getContentRect(target) {\n if (!isBrowser) {\n return emptyRect;\n }\n\n if (isSVGGraphicsElement(target)) {\n return getSVGContentRect(target);\n }\n\n return getHTMLElementContentRect(target);\n}\n/**\r\n * Creates rectangle with an interface of the DOMRectReadOnly.\r\n * Spec: https://drafts.fxtf.org/geometry/#domrectreadonly\r\n *\r\n * @param {DOMRectInit} rectInit - Object with rectangle's x/y coordinates and dimensions.\r\n * @returns {DOMRectReadOnly}\r\n */\n\n\nfunction createReadOnlyRect(_a) {\n var x = _a.x,\n y = _a.y,\n width = _a.width,\n height = _a.height; // If DOMRectReadOnly is available use it as a prototype for the rectangle.\n\n var Constr = typeof DOMRectReadOnly !== 'undefined' ? DOMRectReadOnly : Object;\n var rect = Object.create(Constr.prototype); // Rectangle's properties are not writable and non-enumerable.\n\n defineConfigurable(rect, {\n x: x,\n y: y,\n width: width,\n height: height,\n top: y,\n right: x + width,\n bottom: height + y,\n left: x\n });\n return rect;\n}\n/**\r\n * Creates DOMRectInit object based on the provided dimensions and the x/y coordinates.\r\n * Spec: https://drafts.fxtf.org/geometry/#dictdef-domrectinit\r\n *\r\n * @param {number} x - X coordinate.\r\n * @param {number} y - Y coordinate.\r\n * @param {number} width - Rectangle's width.\r\n * @param {number} height - Rectangle's height.\r\n * @returns {DOMRectInit}\r\n */\n\n\nfunction createRectInit(x, y, width, height) {\n return {\n x: x,\n y: y,\n width: width,\n height: height\n };\n}\n/**\r\n * Class that is responsible for computations of the content rectangle of\r\n * provided DOM element and for keeping track of it's changes.\r\n */\n\n\nvar ResizeObservation =\n/** @class */\nfunction () {\n /**\r\n * Creates an instance of ResizeObservation.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n */\n function ResizeObservation(target) {\n /**\r\n * Broadcasted width of content rectangle.\r\n *\r\n * @type {number}\r\n */\n this.broadcastWidth = 0;\n /**\r\n * Broadcasted height of content rectangle.\r\n *\r\n * @type {number}\r\n */\n\n this.broadcastHeight = 0;\n /**\r\n * Reference to the last observed content rectangle.\r\n *\r\n * @private {DOMRectInit}\r\n */\n\n this.contentRect_ = createRectInit(0, 0, 0, 0);\n this.target = target;\n }\n /**\r\n * Updates content rectangle and tells whether it's width or height properties\r\n * have changed since the last broadcast.\r\n *\r\n * @returns {boolean}\r\n */\n\n\n ResizeObservation.prototype.isActive = function () {\n var rect = getContentRect(this.target);\n this.contentRect_ = rect;\n return rect.width !== this.broadcastWidth || rect.height !== this.broadcastHeight;\n };\n /**\r\n * Updates 'broadcastWidth' and 'broadcastHeight' properties with a data\r\n * from the corresponding properties of the last observed content rectangle.\r\n *\r\n * @returns {DOMRectInit} Last observed content rectangle.\r\n */\n\n\n ResizeObservation.prototype.broadcastRect = function () {\n var rect = this.contentRect_;\n this.broadcastWidth = rect.width;\n this.broadcastHeight = rect.height;\n return rect;\n };\n\n return ResizeObservation;\n}();\n\nvar ResizeObserverEntry =\n/** @class */\nfunction () {\n /**\r\n * Creates an instance of ResizeObserverEntry.\r\n *\r\n * @param {Element} target - Element that is being observed.\r\n * @param {DOMRectInit} rectInit - Data of the element's content rectangle.\r\n */\n function ResizeObserverEntry(target, rectInit) {\n var contentRect = createReadOnlyRect(rectInit); // According to the specification following properties are not writable\n // and are also not enumerable in the native implementation.\n //\n // Property accessors are not being used as they'd require to define a\n // private WeakMap storage which may cause memory leaks in browsers that\n // don't support this type of collections.\n\n defineConfigurable(this, {\n target: target,\n contentRect: contentRect\n });\n }\n\n return ResizeObserverEntry;\n}();\n\nvar ResizeObserverSPI =\n/** @class */\nfunction () {\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback function that is invoked\r\n * when one of the observed elements changes it's content dimensions.\r\n * @param {ResizeObserverController} controller - Controller instance which\r\n * is responsible for the updates of observer.\r\n * @param {ResizeObserver} callbackCtx - Reference to the public\r\n * ResizeObserver instance which will be passed to callback function.\r\n */\n function ResizeObserverSPI(callback, controller, callbackCtx) {\n /**\r\n * Collection of resize observations that have detected changes in dimensions\r\n * of elements.\r\n *\r\n * @private {Array}\r\n */\n this.activeObservations_ = [];\n /**\r\n * Registry of the ResizeObservation instances.\r\n *\r\n * @private {Map}\r\n */\n\n this.observations_ = new MapShim();\n\n if (typeof callback !== 'function') {\n throw new TypeError('The callback provided as parameter 1 is not a function.');\n }\n\n this.callback_ = callback;\n this.controller_ = controller;\n this.callbackCtx_ = callbackCtx;\n }\n /**\r\n * Starts observing provided element.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n * @returns {void}\r\n */\n\n\n ResizeObserverSPI.prototype.observe = function (target) {\n if (!arguments.length) {\n throw new TypeError('1 argument required, but only 0 present.');\n } // Do nothing if current environment doesn't have the Element interface.\n\n\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\n return;\n }\n\n if (!(target instanceof getWindowOf(target).Element)) {\n throw new TypeError('parameter 1 is not of type \"Element\".');\n }\n\n var observations = this.observations_; // Do nothing if element is already being observed.\n\n if (observations.has(target)) {\n return;\n }\n\n observations.set(target, new ResizeObservation(target));\n this.controller_.addObserver(this); // Force the update of observations.\n\n this.controller_.refresh();\n };\n /**\r\n * Stops observing provided element.\r\n *\r\n * @param {Element} target - Element to stop observing.\r\n * @returns {void}\r\n */\n\n\n ResizeObserverSPI.prototype.unobserve = function (target) {\n if (!arguments.length) {\n throw new TypeError('1 argument required, but only 0 present.');\n } // Do nothing if current environment doesn't have the Element interface.\n\n\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\n return;\n }\n\n if (!(target instanceof getWindowOf(target).Element)) {\n throw new TypeError('parameter 1 is not of type \"Element\".');\n }\n\n var observations = this.observations_; // Do nothing if element is not being observed.\n\n if (!observations.has(target)) {\n return;\n }\n\n observations.delete(target);\n\n if (!observations.size) {\n this.controller_.removeObserver(this);\n }\n };\n /**\r\n * Stops observing all elements.\r\n *\r\n * @returns {void}\r\n */\n\n\n ResizeObserverSPI.prototype.disconnect = function () {\n this.clearActive();\n this.observations_.clear();\n this.controller_.removeObserver(this);\n };\n /**\r\n * Collects observation instances the associated element of which has changed\r\n * it's content rectangle.\r\n *\r\n * @returns {void}\r\n */\n\n\n ResizeObserverSPI.prototype.gatherActive = function () {\n var _this = this;\n\n this.clearActive();\n this.observations_.forEach(function (observation) {\n if (observation.isActive()) {\n _this.activeObservations_.push(observation);\n }\n });\n };\n /**\r\n * Invokes initial callback function with a list of ResizeObserverEntry\r\n * instances collected from active resize observations.\r\n *\r\n * @returns {void}\r\n */\n\n\n ResizeObserverSPI.prototype.broadcastActive = function () {\n // Do nothing if observer doesn't have active observations.\n if (!this.hasActive()) {\n return;\n }\n\n var ctx = this.callbackCtx_; // Create ResizeObserverEntry instance for every active observation.\n\n var entries = this.activeObservations_.map(function (observation) {\n return new ResizeObserverEntry(observation.target, observation.broadcastRect());\n });\n this.callback_.call(ctx, entries, ctx);\n this.clearActive();\n };\n /**\r\n * Clears the collection of active observations.\r\n *\r\n * @returns {void}\r\n */\n\n\n ResizeObserverSPI.prototype.clearActive = function () {\n this.activeObservations_.splice(0);\n };\n /**\r\n * Tells whether observer has active observations.\r\n *\r\n * @returns {boolean}\r\n */\n\n\n ResizeObserverSPI.prototype.hasActive = function () {\n return this.activeObservations_.length > 0;\n };\n\n return ResizeObserverSPI;\n}(); // Registry of internal observers. If WeakMap is not available use current shim\n// for the Map collection as it has all required methods and because WeakMap\n// can't be fully polyfilled anyway.\n\n\nvar observers = typeof WeakMap !== 'undefined' ? new WeakMap() : new MapShim();\n/**\r\n * ResizeObserver API. Encapsulates the ResizeObserver SPI implementation\r\n * exposing only those methods and properties that are defined in the spec.\r\n */\n\nvar ResizeObserver =\n/** @class */\nfunction () {\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback that is invoked when\r\n * dimensions of the observed elements change.\r\n */\n function ResizeObserver(callback) {\n if (!(this instanceof ResizeObserver)) {\n throw new TypeError('Cannot call a class as a function.');\n }\n\n if (!arguments.length) {\n throw new TypeError('1 argument required, but only 0 present.');\n }\n\n var controller = ResizeObserverController.getInstance();\n var observer = new ResizeObserverSPI(callback, controller, this);\n observers.set(this, observer);\n }\n\n return ResizeObserver;\n}(); // Expose public methods of ResizeObserver.\n\n\n['observe', 'unobserve', 'disconnect'].forEach(function (method) {\n ResizeObserver.prototype[method] = function () {\n var _a;\n\n return (_a = observers.get(this))[method].apply(_a, arguments);\n };\n});\n\nvar index = function () {\n // Export existing implementation if available.\n if (typeof global$1.ResizeObserver !== 'undefined') {\n return global$1.ResizeObserver;\n }\n\n return ResizeObserver;\n}();\n\nexport default index;","//\nmodule.exports = function shallowEqual(objA, objB, compare, compareContext) {\n var ret = compare ? compare.call(compareContext, objA, objB) : void 0;\n\n if (ret !== void 0) {\n return !!ret;\n }\n\n if (objA === objB) {\n return true;\n }\n\n if (typeof objA !== \"object\" || !objA || typeof objB !== \"object\" || !objB) {\n return false;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n\n if (keysA.length !== keysB.length) {\n return false;\n }\n\n var bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB); // Test for A's keys different from B.\n\n for (var idx = 0; idx < keysA.length; idx++) {\n var key = keysA[idx];\n\n if (!bHasOwnProperty(key)) {\n return false;\n }\n\n var valueA = objA[key];\n var valueB = objB[key];\n ret = compare ? compare.call(compareContext, valueA, valueB, key) : void 0;\n\n if (ret === false || ret === void 0 && valueA !== valueB) {\n return false;\n }\n }\n\n return true;\n};","var camel2hyphen = function camel2hyphen(str) {\n return str.replace(/[A-Z]/g, function (match) {\n return '-' + match.toLowerCase();\n }).toLowerCase();\n};\n\nmodule.exports = camel2hyphen;","import memoize from '@emotion/memoize';\nvar reactPropsRegex = /^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|download|draggable|encType|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|inert|itemProp|itemScope|itemType|itemID|itemRef|on|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/; // https://esbench.com/bench/5bfee68a4cd7e6009ef61d23\n\nvar index = memoize(function (prop) {\n return reactPropsRegex.test(prop) || prop.charCodeAt(0) === 111\n /* o */\n && prop.charCodeAt(1) === 110\n /* n */\n && prop.charCodeAt(2) < 91;\n}\n/* Z+1 */\n);\nexport default index;","import { typeOf as e, isElement as t, isValidElementType as n } from \"react-is\";\nimport r, { useState as o, useContext as s, useMemo as i, useEffect as a, useRef as c, createElement as u, useDebugValue as l, useLayoutEffect as d } from \"react\";\nimport h from \"shallowequal\";\nimport p from \"@emotion/stylis\";\nimport f from \"@emotion/unitless\";\nimport m from \"@emotion/is-prop-valid\";\nimport y from \"hoist-non-react-statics\";\n\nfunction v() {\n return (v = Object.assign || function (e) {\n for (var t = 1; t < arguments.length; t++) {\n var n = arguments[t];\n\n for (var r in n) {\n Object.prototype.hasOwnProperty.call(n, r) && (e[r] = n[r]);\n }\n }\n\n return e;\n }).apply(this, arguments);\n}\n\nvar g = function g(e, t) {\n for (var n = [e[0]], r = 0, o = t.length; r < o; r += 1) {\n n.push(t[r], e[r + 1]);\n }\n\n return n;\n},\n S = function S(t) {\n return null !== t && \"object\" == typeof t && \"[object Object]\" === (t.toString ? t.toString() : Object.prototype.toString.call(t)) && !e(t);\n},\n w = Object.freeze([]),\n E = Object.freeze({});\n\nfunction b(e) {\n return \"function\" == typeof e;\n}\n\nfunction _(e) {\n return \"production\" !== process.env.NODE_ENV && \"string\" == typeof e && e || e.displayName || e.name || \"Component\";\n}\n\nfunction N(e) {\n return e && \"string\" == typeof e.styledComponentId;\n}\n\nvar A = \"undefined\" != typeof process && (process.env.REACT_APP_SC_ATTR || process.env.SC_ATTR) || \"data-styled\",\n C = \"5.3.3\",\n I = \"undefined\" != typeof window && \"HTMLElement\" in window,\n P = Boolean(\"boolean\" == typeof SC_DISABLE_SPEEDY ? SC_DISABLE_SPEEDY : \"undefined\" != typeof process && void 0 !== process.env.REACT_APP_SC_DISABLE_SPEEDY && \"\" !== process.env.REACT_APP_SC_DISABLE_SPEEDY ? \"false\" !== process.env.REACT_APP_SC_DISABLE_SPEEDY && process.env.REACT_APP_SC_DISABLE_SPEEDY : \"undefined\" != typeof process && void 0 !== process.env.SC_DISABLE_SPEEDY && \"\" !== process.env.SC_DISABLE_SPEEDY ? \"false\" !== process.env.SC_DISABLE_SPEEDY && process.env.SC_DISABLE_SPEEDY : \"production\" !== process.env.NODE_ENV),\n O = {},\n R = \"production\" !== process.env.NODE_ENV ? {\n 1: \"Cannot create styled-component for component: %s.\\n\\n\",\n 2: \"Can't collect styles once you've consumed a `ServerStyleSheet`'s styles! `ServerStyleSheet` is a one off instance for each server-side render cycle.\\n\\n- Are you trying to reuse it across renders?\\n- Are you accidentally calling collectStyles twice?\\n\\n\",\n 3: \"Streaming SSR is only supported in a Node.js environment; Please do not try to call this method in the browser.\\n\\n\",\n 4: \"The `StyleSheetManager` expects a valid target or sheet prop!\\n\\n- Does this error occur on the client and is your target falsy?\\n- Does this error occur on the server and is the sheet falsy?\\n\\n\",\n 5: \"The clone method cannot be used on the client!\\n\\n- Are you running in a client-like environment on the server?\\n- Are you trying to run SSR on the client?\\n\\n\",\n 6: \"Trying to insert a new style tag, but the given Node is unmounted!\\n\\n- Are you using a custom target that isn't mounted?\\n- Does your document not have a valid head element?\\n- Have you accidentally removed a style tag manually?\\n\\n\",\n 7: 'ThemeProvider: Please return an object from your \"theme\" prop function, e.g.\\n\\n```js\\ntheme={() => ({})}\\n```\\n\\n',\n 8: 'ThemeProvider: Please make your \"theme\" prop an object.\\n\\n',\n 9: \"Missing document ``\\n\\n\",\n 10: \"Cannot find a StyleSheet instance. Usually this happens if there are multiple copies of styled-components loaded at once. Check out this issue for how to troubleshoot and fix the common cases where this situation can happen: https://github.com/styled-components/styled-components/issues/1941#issuecomment-417862021\\n\\n\",\n 11: \"_This error was replaced with a dev-time warning, it will be deleted for v4 final._ [createGlobalStyle] received children which will not be rendered. Please use the component without passing children elements.\\n\\n\",\n 12: \"It seems you are interpolating a keyframe declaration (%s) into an untagged string. This was supported in styled-components v3, but is not longer supported in v4 as keyframes are now injected on-demand. Please wrap your string in the css\\\\`\\\\` helper which ensures the styles are injected correctly. See https://www.styled-components.com/docs/api#css\\n\\n\",\n 13: \"%s is not a styled component and cannot be referred to via component selector. See https://www.styled-components.com/docs/advanced#referring-to-other-components for more details.\\n\\n\",\n 14: 'ThemeProvider: \"theme\" prop is required.\\n\\n',\n 15: \"A stylis plugin has been supplied that is not named. We need a name for each plugin to be able to prevent styling collisions between different stylis configurations within the same app. Before you pass your plugin to ``, please make sure each plugin is uniquely-named, e.g.\\n\\n```js\\nObject.defineProperty(importedPlugin, 'name', { value: 'some-unique-name' });\\n```\\n\\n\",\n 16: \"Reached the limit of how many styled components may be created at group %s.\\nYou may only create up to 1,073,741,824 components. If you're creating components dynamically,\\nas for instance in your render method then you may be running into this limitation.\\n\\n\",\n 17: \"CSSStyleSheet could not be found on HTMLStyleElement.\\nHas styled-components' style tag been unmounted or altered by another script?\\n\"\n} : {};\n\nfunction D() {\n for (var e = arguments.length <= 0 ? void 0 : arguments[0], t = [], n = 1, r = arguments.length; n < r; n += 1) {\n t.push(n < 0 || arguments.length <= n ? void 0 : arguments[n]);\n }\n\n return t.forEach(function (t) {\n e = e.replace(/%[a-z]/, t);\n }), e;\n}\n\nfunction j(e) {\n for (var t = arguments.length, n = new Array(t > 1 ? t - 1 : 0), r = 1; r < t; r++) {\n n[r - 1] = arguments[r];\n }\n\n throw \"production\" === process.env.NODE_ENV ? new Error(\"An error occurred. See https://git.io/JUIaE#\" + e + \" for more information.\" + (n.length > 0 ? \" Args: \" + n.join(\", \") : \"\")) : new Error(D.apply(void 0, [R[e]].concat(n)).trim());\n}\n\nvar T = function () {\n function e(e) {\n this.groupSizes = new Uint32Array(512), this.length = 512, this.tag = e;\n }\n\n var t = e.prototype;\n return t.indexOfGroup = function (e) {\n for (var t = 0, n = 0; n < e; n++) {\n t += this.groupSizes[n];\n }\n\n return t;\n }, t.insertRules = function (e, t) {\n if (e >= this.groupSizes.length) {\n for (var n = this.groupSizes, r = n.length, o = r; e >= o;) {\n (o <<= 1) < 0 && j(16, \"\" + e);\n }\n\n this.groupSizes = new Uint32Array(o), this.groupSizes.set(n), this.length = o;\n\n for (var s = r; s < o; s++) {\n this.groupSizes[s] = 0;\n }\n }\n\n for (var i = this.indexOfGroup(e + 1), a = 0, c = t.length; a < c; a++) {\n this.tag.insertRule(i, t[a]) && (this.groupSizes[e]++, i++);\n }\n }, t.clearGroup = function (e) {\n if (e < this.length) {\n var t = this.groupSizes[e],\n n = this.indexOfGroup(e),\n r = n + t;\n this.groupSizes[e] = 0;\n\n for (var o = n; o < r; o++) {\n this.tag.deleteRule(n);\n }\n }\n }, t.getGroup = function (e) {\n var t = \"\";\n if (e >= this.length || 0 === this.groupSizes[e]) return t;\n\n for (var n = this.groupSizes[e], r = this.indexOfGroup(e), o = r + n, s = r; s < o; s++) {\n t += this.tag.getRule(s) + \"/*!sc*/\\n\";\n }\n\n return t;\n }, e;\n}(),\n x = new Map(),\n k = new Map(),\n V = 1,\n B = function B(e) {\n if (x.has(e)) return x.get(e);\n\n for (; k.has(V);) {\n V++;\n }\n\n var t = V++;\n return \"production\" !== process.env.NODE_ENV && ((0 | t) < 0 || t > 1 << 30) && j(16, \"\" + t), x.set(e, t), k.set(t, e), t;\n},\n z = function z(e) {\n return k.get(e);\n},\n M = function M(e, t) {\n t >= V && (V = t + 1), x.set(e, t), k.set(t, e);\n},\n G = \"style[\" + A + '][data-styled-version=\"5.3.3\"]',\n L = new RegExp(\"^\" + A + '\\\\.g(\\\\d+)\\\\[id=\"([\\\\w\\\\d-]+)\"\\\\].*?\"([^\"]*)'),\n F = function F(e, t, n) {\n for (var r, o = n.split(\",\"), s = 0, i = o.length; s < i; s++) {\n (r = o[s]) && e.registerName(t, r);\n }\n},\n Y = function Y(e, t) {\n for (var n = (t.textContent || \"\").split(\"/*!sc*/\\n\"), r = [], o = 0, s = n.length; o < s; o++) {\n var i = n[o].trim();\n\n if (i) {\n var a = i.match(L);\n\n if (a) {\n var c = 0 | parseInt(a[1], 10),\n u = a[2];\n 0 !== c && (M(u, c), F(e, u, a[3]), e.getTag().insertRules(c, r)), r.length = 0;\n } else r.push(i);\n }\n }\n},\n q = function q() {\n return \"undefined\" != typeof window && void 0 !== window.__webpack_nonce__ ? window.__webpack_nonce__ : null;\n},\n H = function H(e) {\n var t = document.head,\n n = e || t,\n r = document.createElement(\"style\"),\n o = function (e) {\n for (var t = e.childNodes, n = t.length; n >= 0; n--) {\n var r = t[n];\n if (r && 1 === r.nodeType && r.hasAttribute(A)) return r;\n }\n }(n),\n s = void 0 !== o ? o.nextSibling : null;\n\n r.setAttribute(A, \"active\"), r.setAttribute(\"data-styled-version\", \"5.3.3\");\n var i = q();\n return i && r.setAttribute(\"nonce\", i), n.insertBefore(r, s), r;\n},\n $ = function () {\n function e(e) {\n var t = this.element = H(e);\n t.appendChild(document.createTextNode(\"\")), this.sheet = function (e) {\n if (e.sheet) return e.sheet;\n\n for (var t = document.styleSheets, n = 0, r = t.length; n < r; n++) {\n var o = t[n];\n if (o.ownerNode === e) return o;\n }\n\n j(17);\n }(t), this.length = 0;\n }\n\n var t = e.prototype;\n return t.insertRule = function (e, t) {\n try {\n return this.sheet.insertRule(t, e), this.length++, !0;\n } catch (e) {\n return !1;\n }\n }, t.deleteRule = function (e) {\n this.sheet.deleteRule(e), this.length--;\n }, t.getRule = function (e) {\n var t = this.sheet.cssRules[e];\n return void 0 !== t && \"string\" == typeof t.cssText ? t.cssText : \"\";\n }, e;\n}(),\n W = function () {\n function e(e) {\n var t = this.element = H(e);\n this.nodes = t.childNodes, this.length = 0;\n }\n\n var t = e.prototype;\n return t.insertRule = function (e, t) {\n if (e <= this.length && e >= 0) {\n var n = document.createTextNode(t),\n r = this.nodes[e];\n return this.element.insertBefore(n, r || null), this.length++, !0;\n }\n\n return !1;\n }, t.deleteRule = function (e) {\n this.element.removeChild(this.nodes[e]), this.length--;\n }, t.getRule = function (e) {\n return e < this.length ? this.nodes[e].textContent : \"\";\n }, e;\n}(),\n U = function () {\n function e(e) {\n this.rules = [], this.length = 0;\n }\n\n var t = e.prototype;\n return t.insertRule = function (e, t) {\n return e <= this.length && (this.rules.splice(e, 0, t), this.length++, !0);\n }, t.deleteRule = function (e) {\n this.rules.splice(e, 1), this.length--;\n }, t.getRule = function (e) {\n return e < this.length ? this.rules[e] : \"\";\n }, e;\n}(),\n J = I,\n X = {\n isServer: !I,\n useCSSOMInjection: !P\n},\n Z = function () {\n function e(e, t, n) {\n void 0 === e && (e = E), void 0 === t && (t = {}), this.options = v({}, X, {}, e), this.gs = t, this.names = new Map(n), this.server = !!e.isServer, !this.server && I && J && (J = !1, function (e) {\n for (var t = document.querySelectorAll(G), n = 0, r = t.length; n < r; n++) {\n var o = t[n];\n o && \"active\" !== o.getAttribute(A) && (Y(e, o), o.parentNode && o.parentNode.removeChild(o));\n }\n }(this));\n }\n\n e.registerId = function (e) {\n return B(e);\n };\n\n var t = e.prototype;\n return t.reconstructWithOptions = function (t, n) {\n return void 0 === n && (n = !0), new e(v({}, this.options, {}, t), this.gs, n && this.names || void 0);\n }, t.allocateGSInstance = function (e) {\n return this.gs[e] = (this.gs[e] || 0) + 1;\n }, t.getTag = function () {\n return this.tag || (this.tag = (n = (t = this.options).isServer, r = t.useCSSOMInjection, o = t.target, e = n ? new U(o) : r ? new $(o) : new W(o), new T(e)));\n var e, t, n, r, o;\n }, t.hasNameForId = function (e, t) {\n return this.names.has(e) && this.names.get(e).has(t);\n }, t.registerName = function (e, t) {\n if (B(e), this.names.has(e)) this.names.get(e).add(t);else {\n var n = new Set();\n n.add(t), this.names.set(e, n);\n }\n }, t.insertRules = function (e, t, n) {\n this.registerName(e, t), this.getTag().insertRules(B(e), n);\n }, t.clearNames = function (e) {\n this.names.has(e) && this.names.get(e).clear();\n }, t.clearRules = function (e) {\n this.getTag().clearGroup(B(e)), this.clearNames(e);\n }, t.clearTag = function () {\n this.tag = void 0;\n }, t.toString = function () {\n return function (e) {\n for (var t = e.getTag(), n = t.length, r = \"\", o = 0; o < n; o++) {\n var s = z(o);\n\n if (void 0 !== s) {\n var i = e.names.get(s),\n a = t.getGroup(o);\n\n if (i && a && i.size) {\n var c = A + \".g\" + o + '[id=\"' + s + '\"]',\n u = \"\";\n void 0 !== i && i.forEach(function (e) {\n e.length > 0 && (u += e + \",\");\n }), r += \"\" + a + c + '{content:\"' + u + '\"}/*!sc*/\\n';\n }\n }\n }\n\n return r;\n }(this);\n }, e;\n}(),\n K = /(a)(d)/gi,\n Q = function Q(e) {\n return String.fromCharCode(e + (e > 25 ? 39 : 97));\n};\n\nfunction ee(e) {\n var t,\n n = \"\";\n\n for (t = Math.abs(e); t > 52; t = t / 52 | 0) {\n n = Q(t % 52) + n;\n }\n\n return (Q(t % 52) + n).replace(K, \"$1-$2\");\n}\n\nvar te = function te(e, t) {\n for (var n = t.length; n;) {\n e = 33 * e ^ t.charCodeAt(--n);\n }\n\n return e;\n},\n ne = function ne(e) {\n return te(5381, e);\n};\n\nfunction re(e) {\n for (var t = 0; t < e.length; t += 1) {\n var n = e[t];\n if (b(n) && !N(n)) return !1;\n }\n\n return !0;\n}\n\nvar oe = ne(\"5.3.3\"),\n se = function () {\n function e(e, t, n) {\n this.rules = e, this.staticRulesId = \"\", this.isStatic = \"production\" === process.env.NODE_ENV && (void 0 === n || n.isStatic) && re(e), this.componentId = t, this.baseHash = te(oe, t), this.baseStyle = n, Z.registerId(t);\n }\n\n return e.prototype.generateAndInjectStyles = function (e, t, n) {\n var r = this.componentId,\n o = [];\n if (this.baseStyle && o.push(this.baseStyle.generateAndInjectStyles(e, t, n)), this.isStatic && !n.hash) {\n if (this.staticRulesId && t.hasNameForId(r, this.staticRulesId)) o.push(this.staticRulesId);else {\n var s = Ne(this.rules, e, t, n).join(\"\"),\n i = ee(te(this.baseHash, s) >>> 0);\n\n if (!t.hasNameForId(r, i)) {\n var a = n(s, \".\" + i, void 0, r);\n t.insertRules(r, i, a);\n }\n\n o.push(i), this.staticRulesId = i;\n }\n } else {\n for (var c = this.rules.length, u = te(this.baseHash, n.hash), l = \"\", d = 0; d < c; d++) {\n var h = this.rules[d];\n if (\"string\" == typeof h) l += h, \"production\" !== process.env.NODE_ENV && (u = te(u, h + d));else if (h) {\n var p = Ne(h, e, t, n),\n f = Array.isArray(p) ? p.join(\"\") : p;\n u = te(u, f + d), l += f;\n }\n }\n\n if (l) {\n var m = ee(u >>> 0);\n\n if (!t.hasNameForId(r, m)) {\n var y = n(l, \".\" + m, void 0, r);\n t.insertRules(r, m, y);\n }\n\n o.push(m);\n }\n }\n return o.join(\" \");\n }, e;\n}(),\n ie = /^\\s*\\/\\/.*$/gm,\n ae = [\":\", \"[\", \".\", \"#\"];\n\nfunction ce(e) {\n var t,\n n,\n r,\n o,\n s = void 0 === e ? E : e,\n i = s.options,\n a = void 0 === i ? E : i,\n c = s.plugins,\n u = void 0 === c ? w : c,\n l = new p(a),\n d = [],\n h = function (e) {\n function t(t) {\n if (t) try {\n e(t + \"}\");\n } catch (e) {}\n }\n\n return function (n, r, o, s, i, a, c, u, l, d) {\n switch (n) {\n case 1:\n if (0 === l && 64 === r.charCodeAt(0)) return e(r + \";\"), \"\";\n break;\n\n case 2:\n if (0 === u) return r + \"/*|*/\";\n break;\n\n case 3:\n switch (u) {\n case 102:\n case 112:\n return e(o[0] + r), \"\";\n\n default:\n return r + (0 === d ? \"/*|*/\" : \"\");\n }\n\n case -2:\n r.split(\"/*|*/}\").forEach(t);\n }\n };\n }(function (e) {\n d.push(e);\n }),\n f = function f(e, r, s) {\n return 0 === r && -1 !== ae.indexOf(s[n.length]) || s.match(o) ? e : \".\" + t;\n };\n\n function m(e, s, i, a) {\n void 0 === a && (a = \"&\");\n var c = e.replace(ie, \"\"),\n u = s && i ? i + \" \" + s + \" { \" + c + \" }\" : c;\n return t = a, n = s, r = new RegExp(\"\\\\\" + n + \"\\\\b\", \"g\"), o = new RegExp(\"(\\\\\" + n + \"\\\\b){2,}\"), l(i || !s ? \"\" : s, u);\n }\n\n return l.use([].concat(u, [function (e, t, o) {\n 2 === e && o.length && o[0].lastIndexOf(n) > 0 && (o[0] = o[0].replace(r, f));\n }, h, function (e) {\n if (-2 === e) {\n var t = d;\n return d = [], t;\n }\n }])), m.hash = u.length ? u.reduce(function (e, t) {\n return t.name || j(15), te(e, t.name);\n }, 5381).toString() : \"\", m;\n}\n\nvar ue = r.createContext(),\n le = ue.Consumer,\n de = r.createContext(),\n he = (de.Consumer, new Z()),\n pe = ce();\n\nfunction fe() {\n return s(ue) || he;\n}\n\nfunction me() {\n return s(de) || pe;\n}\n\nfunction ye(e) {\n var t = o(e.stylisPlugins),\n n = t[0],\n s = t[1],\n c = fe(),\n u = i(function () {\n var t = c;\n return e.sheet ? t = e.sheet : e.target && (t = t.reconstructWithOptions({\n target: e.target\n }, !1)), e.disableCSSOMInjection && (t = t.reconstructWithOptions({\n useCSSOMInjection: !1\n })), t;\n }, [e.disableCSSOMInjection, e.sheet, e.target]),\n l = i(function () {\n return ce({\n options: {\n prefix: !e.disableVendorPrefixes\n },\n plugins: n\n });\n }, [e.disableVendorPrefixes, n]);\n return a(function () {\n h(n, e.stylisPlugins) || s(e.stylisPlugins);\n }, [e.stylisPlugins]), r.createElement(ue.Provider, {\n value: u\n }, r.createElement(de.Provider, {\n value: l\n }, \"production\" !== process.env.NODE_ENV ? r.Children.only(e.children) : e.children));\n}\n\nvar ve = function () {\n function e(e, t) {\n var n = this;\n this.inject = function (e, t) {\n void 0 === t && (t = pe);\n var r = n.name + t.hash;\n e.hasNameForId(n.id, r) || e.insertRules(n.id, r, t(n.rules, r, \"@keyframes\"));\n }, this.toString = function () {\n return j(12, String(n.name));\n }, this.name = e, this.id = \"sc-keyframes-\" + e, this.rules = t;\n }\n\n return e.prototype.getName = function (e) {\n return void 0 === e && (e = pe), this.name + e.hash;\n }, e;\n}(),\n ge = /([A-Z])/,\n Se = /([A-Z])/g,\n we = /^ms-/,\n Ee = function Ee(e) {\n return \"-\" + e.toLowerCase();\n};\n\nfunction be(e) {\n return ge.test(e) ? e.replace(Se, Ee).replace(we, \"-ms-\") : e;\n}\n\nvar _e = function _e(e) {\n return null == e || !1 === e || \"\" === e;\n};\n\nfunction Ne(e, n, r, o) {\n if (Array.isArray(e)) {\n for (var s, i = [], a = 0, c = e.length; a < c; a += 1) {\n \"\" !== (s = Ne(e[a], n, r, o)) && (Array.isArray(s) ? i.push.apply(i, s) : i.push(s));\n }\n\n return i;\n }\n\n if (_e(e)) return \"\";\n if (N(e)) return \".\" + e.styledComponentId;\n\n if (b(e)) {\n if (\"function\" != typeof (l = e) || l.prototype && l.prototype.isReactComponent || !n) return e;\n var u = e(n);\n return \"production\" !== process.env.NODE_ENV && t(u) && console.warn(_(e) + \" is not a styled component and cannot be referred to via component selector. See https://www.styled-components.com/docs/advanced#referring-to-other-components for more details.\"), Ne(u, n, r, o);\n }\n\n var l;\n return e instanceof ve ? r ? (e.inject(r, o), e.getName(o)) : e : S(e) ? function e(t, n) {\n var r,\n o,\n s = [];\n\n for (var i in t) {\n t.hasOwnProperty(i) && !_e(t[i]) && (Array.isArray(t[i]) && t[i].isCss || b(t[i]) ? s.push(be(i) + \":\", t[i], \";\") : S(t[i]) ? s.push.apply(s, e(t[i], i)) : s.push(be(i) + \": \" + (r = i, null == (o = t[i]) || \"boolean\" == typeof o || \"\" === o ? \"\" : \"number\" != typeof o || 0 === o || r in f ? String(o).trim() : o + \"px\") + \";\"));\n }\n\n return n ? [n + \" {\"].concat(s, [\"}\"]) : s;\n }(e) : e.toString();\n}\n\nvar Ae = function Ae(e) {\n return Array.isArray(e) && (e.isCss = !0), e;\n};\n\nfunction Ce(e) {\n for (var t = arguments.length, n = new Array(t > 1 ? t - 1 : 0), r = 1; r < t; r++) {\n n[r - 1] = arguments[r];\n }\n\n return b(e) || S(e) ? Ae(Ne(g(w, [e].concat(n)))) : 0 === n.length && 1 === e.length && \"string\" == typeof e[0] ? e : Ae(Ne(g(e, n)));\n}\n\nvar Ie = /invalid hook call/i,\n Pe = new Set(),\n Oe = function Oe(e, t) {\n if (\"production\" !== process.env.NODE_ENV) {\n var n = \"The component \" + e + (t ? ' with the id of \"' + t + '\"' : \"\") + \" has been created dynamically.\\nYou may see this warning because you've called styled inside another component.\\nTo resolve this only create new StyledComponents outside of any render method and function component.\",\n r = console.error;\n\n try {\n var o = !0;\n console.error = function (e) {\n if (Ie.test(e)) o = !1, Pe.delete(n);else {\n for (var t = arguments.length, s = new Array(t > 1 ? t - 1 : 0), i = 1; i < t; i++) {\n s[i - 1] = arguments[i];\n }\n\n r.apply(void 0, [e].concat(s));\n }\n }, c(), o && !Pe.has(n) && (console.warn(n), Pe.add(n));\n } catch (e) {\n Ie.test(e.message) && Pe.delete(n);\n } finally {\n console.error = r;\n }\n }\n},\n Re = function Re(e, t, n) {\n return void 0 === n && (n = E), e.theme !== n.theme && e.theme || t || n.theme;\n},\n De = /[!\"#$%&'()*+,./:;<=>?@[\\\\\\]^`{|}~-]+/g,\n je = /(^-|-$)/g;\n\nfunction Te(e) {\n return e.replace(De, \"-\").replace(je, \"\");\n}\n\nvar xe = function xe(e) {\n return ee(ne(e) >>> 0);\n};\n\nfunction ke(e) {\n return \"string\" == typeof e && (\"production\" === process.env.NODE_ENV || e.charAt(0) === e.charAt(0).toLowerCase());\n}\n\nvar Ve = function Ve(e) {\n return \"function\" == typeof e || \"object\" == typeof e && null !== e && !Array.isArray(e);\n},\n Be = function Be(e) {\n return \"__proto__\" !== e && \"constructor\" !== e && \"prototype\" !== e;\n};\n\nfunction ze(e, t, n) {\n var r = e[n];\n Ve(t) && Ve(r) ? Me(r, t) : e[n] = t;\n}\n\nfunction Me(e) {\n for (var t = arguments.length, n = new Array(t > 1 ? t - 1 : 0), r = 1; r < t; r++) {\n n[r - 1] = arguments[r];\n }\n\n for (var o = 0, s = n; o < s.length; o++) {\n var i = s[o];\n if (Ve(i)) for (var a in i) {\n Be(a) && ze(e, i[a], a);\n }\n }\n\n return e;\n}\n\nvar Ge = r.createContext(),\n Le = Ge.Consumer;\n\nfunction Fe(e) {\n var t = s(Ge),\n n = i(function () {\n return function (e, t) {\n if (!e) return j(14);\n\n if (b(e)) {\n var n = e(t);\n return \"production\" === process.env.NODE_ENV || null !== n && !Array.isArray(n) && \"object\" == typeof n ? n : j(7);\n }\n\n return Array.isArray(e) || \"object\" != typeof e ? j(8) : t ? v({}, t, {}, e) : e;\n }(e.theme, t);\n }, [e.theme, t]);\n return e.children ? r.createElement(Ge.Provider, {\n value: n\n }, e.children) : null;\n}\n\nvar Ye = {};\n\nfunction qe(e, t, n) {\n var o = N(e),\n i = !ke(e),\n a = t.attrs,\n c = void 0 === a ? w : a,\n d = t.componentId,\n h = void 0 === d ? function (e, t) {\n var n = \"string\" != typeof e ? \"sc\" : Te(e);\n Ye[n] = (Ye[n] || 0) + 1;\n var r = n + \"-\" + xe(\"5.3.3\" + n + Ye[n]);\n return t ? t + \"-\" + r : r;\n }(t.displayName, t.parentComponentId) : d,\n p = t.displayName,\n f = void 0 === p ? function (e) {\n return ke(e) ? \"styled.\" + e : \"Styled(\" + _(e) + \")\";\n }(e) : p,\n g = t.displayName && t.componentId ? Te(t.displayName) + \"-\" + t.componentId : t.componentId || h,\n S = o && e.attrs ? Array.prototype.concat(e.attrs, c).filter(Boolean) : c,\n A = t.shouldForwardProp;\n o && e.shouldForwardProp && (A = t.shouldForwardProp ? function (n, r, o) {\n return e.shouldForwardProp(n, r, o) && t.shouldForwardProp(n, r, o);\n } : e.shouldForwardProp);\n\n var C,\n I = new se(n, g, o ? e.componentStyle : void 0),\n P = I.isStatic && 0 === c.length,\n O = function O(e, t) {\n return function (e, t, n, r) {\n var o = e.attrs,\n i = e.componentStyle,\n a = e.defaultProps,\n c = e.foldedComponentIds,\n d = e.shouldForwardProp,\n h = e.styledComponentId,\n p = e.target;\n \"production\" !== process.env.NODE_ENV && l(h);\n\n var f = function (e, t, n) {\n void 0 === e && (e = E);\n var r = v({}, t, {\n theme: e\n }),\n o = {};\n return n.forEach(function (e) {\n var t,\n n,\n s,\n i = e;\n\n for (t in b(i) && (i = i(r)), i) {\n r[t] = o[t] = \"className\" === t ? (n = o[t], s = i[t], n && s ? n + \" \" + s : n || s) : i[t];\n }\n }), [r, o];\n }(Re(t, s(Ge), a) || E, t, o),\n y = f[0],\n g = f[1],\n S = function (e, t, n, r) {\n var o = fe(),\n s = me(),\n i = t ? e.generateAndInjectStyles(E, o, s) : e.generateAndInjectStyles(n, o, s);\n return \"production\" !== process.env.NODE_ENV && l(i), \"production\" !== process.env.NODE_ENV && !t && r && r(i), i;\n }(i, r, y, \"production\" !== process.env.NODE_ENV ? e.warnTooManyClasses : void 0),\n w = n,\n _ = g.$as || t.$as || g.as || t.as || p,\n N = ke(_),\n A = g !== t ? v({}, t, {}, g) : t,\n C = {};\n\n for (var I in A) {\n \"$\" !== I[0] && \"as\" !== I && (\"forwardedAs\" === I ? C.as = A[I] : (d ? d(I, m, _) : !N || m(I)) && (C[I] = A[I]));\n }\n\n return t.style && g.style !== t.style && (C.style = v({}, t.style, {}, g.style)), C.className = Array.prototype.concat(c, h, S !== h ? S : null, t.className, g.className).filter(Boolean).join(\" \"), C.ref = w, u(_, C);\n }(C, e, t, P);\n };\n\n return O.displayName = f, (C = r.forwardRef(O)).attrs = S, C.componentStyle = I, C.displayName = f, C.shouldForwardProp = A, C.foldedComponentIds = o ? Array.prototype.concat(e.foldedComponentIds, e.styledComponentId) : w, C.styledComponentId = g, C.target = o ? e.target : e, C.withComponent = function (e) {\n var r = t.componentId,\n o = function (e, t) {\n if (null == e) return {};\n var n,\n r,\n o = {},\n s = Object.keys(e);\n\n for (r = 0; r < s.length; r++) {\n n = s[r], t.indexOf(n) >= 0 || (o[n] = e[n]);\n }\n\n return o;\n }(t, [\"componentId\"]),\n s = r && r + \"-\" + (ke(e) ? e : Te(_(e)));\n\n return qe(e, v({}, o, {\n attrs: S,\n componentId: s\n }), n);\n }, Object.defineProperty(C, \"defaultProps\", {\n get: function get() {\n return this._foldedDefaultProps;\n },\n set: function set(t) {\n this._foldedDefaultProps = o ? Me({}, e.defaultProps, t) : t;\n }\n }), \"production\" !== process.env.NODE_ENV && (Oe(f, g), C.warnTooManyClasses = function (e, t) {\n var n = {},\n r = !1;\n return function (o) {\n if (!r && (n[o] = !0, Object.keys(n).length >= 200)) {\n var s = t ? ' with the id of \"' + t + '\"' : \"\";\n console.warn(\"Over 200 classes were generated for component \" + e + s + \".\\nConsider using the attrs method, together with a style object for frequently changed styles.\\nExample:\\n const Component = styled.div.attrs(props => ({\\n style: {\\n background: props.background,\\n },\\n }))`width: 100%;`\\n\\n \"), r = !0, n = {};\n }\n };\n }(f, g)), C.toString = function () {\n return \".\" + C.styledComponentId;\n }, i && y(C, e, {\n attrs: !0,\n componentStyle: !0,\n displayName: !0,\n foldedComponentIds: !0,\n shouldForwardProp: !0,\n styledComponentId: !0,\n target: !0,\n withComponent: !0\n }), C;\n}\n\nvar He = function He(e) {\n return function e(t, r, o) {\n if (void 0 === o && (o = E), !n(r)) return j(1, String(r));\n\n var s = function s() {\n return t(r, o, Ce.apply(void 0, arguments));\n };\n\n return s.withConfig = function (n) {\n return e(t, r, v({}, o, {}, n));\n }, s.attrs = function (n) {\n return e(t, r, v({}, o, {\n attrs: Array.prototype.concat(o.attrs, n).filter(Boolean)\n }));\n }, s;\n }(qe, e);\n};\n\n[\"a\", \"abbr\", \"address\", \"area\", \"article\", \"aside\", \"audio\", \"b\", \"base\", \"bdi\", \"bdo\", \"big\", \"blockquote\", \"body\", \"br\", \"button\", \"canvas\", \"caption\", \"cite\", \"code\", \"col\", \"colgroup\", \"data\", \"datalist\", \"dd\", \"del\", \"details\", \"dfn\", \"dialog\", \"div\", \"dl\", \"dt\", \"em\", \"embed\", \"fieldset\", \"figcaption\", \"figure\", \"footer\", \"form\", \"h1\", \"h2\", \"h3\", \"h4\", \"h5\", \"h6\", \"head\", \"header\", \"hgroup\", \"hr\", \"html\", \"i\", \"iframe\", \"img\", \"input\", \"ins\", \"kbd\", \"keygen\", \"label\", \"legend\", \"li\", \"link\", \"main\", \"map\", \"mark\", \"marquee\", \"menu\", \"menuitem\", \"meta\", \"meter\", \"nav\", \"noscript\", \"object\", \"ol\", \"optgroup\", \"option\", \"output\", \"p\", \"param\", \"picture\", \"pre\", \"progress\", \"q\", \"rp\", \"rt\", \"ruby\", \"s\", \"samp\", \"script\", \"section\", \"select\", \"small\", \"source\", \"span\", \"strong\", \"style\", \"sub\", \"summary\", \"sup\", \"table\", \"tbody\", \"td\", \"textarea\", \"tfoot\", \"th\", \"thead\", \"time\", \"title\", \"tr\", \"track\", \"u\", \"ul\", \"var\", \"video\", \"wbr\", \"circle\", \"clipPath\", \"defs\", \"ellipse\", \"foreignObject\", \"g\", \"image\", \"line\", \"linearGradient\", \"marker\", \"mask\", \"path\", \"pattern\", \"polygon\", \"polyline\", \"radialGradient\", \"rect\", \"stop\", \"svg\", \"text\", \"textPath\", \"tspan\"].forEach(function (e) {\n He[e] = He(e);\n});\n\nvar $e = function () {\n function e(e, t) {\n this.rules = e, this.componentId = t, this.isStatic = re(e), Z.registerId(this.componentId + 1);\n }\n\n var t = e.prototype;\n return t.createStyles = function (e, t, n, r) {\n var o = r(Ne(this.rules, t, n, r).join(\"\"), \"\"),\n s = this.componentId + e;\n n.insertRules(s, s, o);\n }, t.removeStyles = function (e, t) {\n t.clearRules(this.componentId + e);\n }, t.renderStyles = function (e, t, n, r) {\n e > 2 && Z.registerId(this.componentId + e), this.removeStyles(e, n), this.createStyles(e, t, n, r);\n }, e;\n}();\n\nfunction We(e) {\n for (var t = arguments.length, n = new Array(t > 1 ? t - 1 : 0), o = 1; o < t; o++) {\n n[o - 1] = arguments[o];\n }\n\n var i = Ce.apply(void 0, [e].concat(n)),\n a = \"sc-global-\" + xe(JSON.stringify(i)),\n u = new $e(i, a);\n\n function l(e) {\n var t = fe(),\n n = me(),\n o = s(Ge),\n l = c(t.allocateGSInstance(a)).current;\n return \"production\" !== process.env.NODE_ENV && r.Children.count(e.children) && console.warn(\"The global style component \" + a + \" was given child JSX. createGlobalStyle does not render children.\"), \"production\" !== process.env.NODE_ENV && i.some(function (e) {\n return \"string\" == typeof e && -1 !== e.indexOf(\"@import\");\n }) && console.warn(\"Please do not use @import CSS syntax in createGlobalStyle at this time, as the CSSOM APIs we use in production do not handle it well. Instead, we recommend using a library such as react-helmet to inject a typical meta tag to the stylesheet, or simply embedding it manually in your index.html section for a simpler app.\"), t.server && h(l, e, t, o, n), d(function () {\n if (!t.server) return h(l, e, t, o, n), function () {\n return u.removeStyles(l, t);\n };\n }, [l, e, t, o, n]), null;\n }\n\n function h(e, t, n, r, o) {\n if (u.isStatic) u.renderStyles(e, O, n, o);else {\n var s = v({}, t, {\n theme: Re(t, r, l.defaultProps)\n });\n u.renderStyles(e, s, n, o);\n }\n }\n\n return \"production\" !== process.env.NODE_ENV && Oe(a), r.memo(l);\n}\n\nfunction Ue(e) {\n \"production\" !== process.env.NODE_ENV && \"undefined\" != typeof navigator && \"ReactNative\" === navigator.product && console.warn(\"`keyframes` cannot be used on ReactNative, only on the web. To do animation in ReactNative please use Animated.\");\n\n for (var t = arguments.length, n = new Array(t > 1 ? t - 1 : 0), r = 1; r < t; r++) {\n n[r - 1] = arguments[r];\n }\n\n var o = Ce.apply(void 0, [e].concat(n)).join(\"\"),\n s = xe(o);\n return new ve(s, o);\n}\n\nvar Je = function () {\n function e() {\n var e = this;\n this._emitSheetCSS = function () {\n var t = e.instance.toString();\n if (!t) return \"\";\n var n = q();\n return \"\";\n }, this.getStyleTags = function () {\n return e.sealed ? j(2) : e._emitSheetCSS();\n }, this.getStyleElement = function () {\n var t;\n if (e.sealed) return j(2);\n var n = ((t = {})[A] = \"\", t[\"data-styled-version\"] = \"5.3.3\", t.dangerouslySetInnerHTML = {\n __html: e.instance.toString()\n }, t),\n o = q();\n return o && (n.nonce = o), [r.createElement(\"style\", v({}, n, {\n key: \"sc-0-0\"\n }))];\n }, this.seal = function () {\n e.sealed = !0;\n }, this.instance = new Z({\n isServer: !0\n }), this.sealed = !1;\n }\n\n var t = e.prototype;\n return t.collectStyles = function (e) {\n return this.sealed ? j(2) : r.createElement(ye, {\n sheet: this.instance\n }, e);\n }, t.interleaveWithNodeStream = function (e) {\n return j(3);\n }, e;\n}(),\n Xe = function Xe(e) {\n var t = r.forwardRef(function (t, n) {\n var o = s(Ge),\n i = e.defaultProps,\n a = Re(t, o, i);\n return \"production\" !== process.env.NODE_ENV && void 0 === a && console.warn('[withTheme] You are not using a ThemeProvider nor passing a theme prop or a theme in defaultProps in component class \"' + _(e) + '\"'), r.createElement(e, v({}, t, {\n theme: a,\n ref: n\n }));\n });\n return y(t, e), t.displayName = \"WithTheme(\" + _(e) + \")\", t;\n},\n Ze = function Ze() {\n return s(Ge);\n},\n Ke = {\n StyleSheet: Z,\n masterSheet: he\n};\n\n\"production\" !== process.env.NODE_ENV && \"undefined\" != typeof navigator && \"ReactNative\" === navigator.product && console.warn(\"It looks like you've imported 'styled-components' on React Native.\\nPerhaps you're looking to import 'styled-components/native'?\\nRead more about this at https://www.styled-components.com/docs/basics#react-native\"), \"production\" !== process.env.NODE_ENV && \"test\" !== process.env.NODE_ENV && \"undefined\" != typeof window && (window[\"__styled-components-init__\"] = window[\"__styled-components-init__\"] || 0, 1 === window[\"__styled-components-init__\"] && console.warn(\"It looks like there are several instances of 'styled-components' initialized in this application. This may cause dynamic styles to not render properly, errors during the rehydration process, a missing theme prop, and makes your application bigger without good reason.\\n\\nSee https://s-c.sh/2BAXzed for more info.\"), window[\"__styled-components-init__\"] += 1);\nexport default He;\nexport { Je as ServerStyleSheet, le as StyleSheetConsumer, ue as StyleSheetContext, ye as StyleSheetManager, Le as ThemeConsumer, Ge as ThemeContext, Fe as ThemeProvider, Ke as __PRIVATE__, We as createGlobalStyle, Ce as css, N as isStyledComponent, Ue as keyframes, Ze as useTheme, C as version, Xe as withTheme };","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar invariant = function(condition, format, a, b, c, d, e, f) {\n if (process.env.NODE_ENV !== 'production') {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error(\n 'Minified exception occurred; use the non-minified dev environment ' +\n 'for the full error message and additional helpful warnings.'\n );\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(\n format.replace(/%s/g, function() { return args[argIndex++]; })\n );\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n};\n\nmodule.exports = invariant;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nmodule.exports = DataView;\n","var hashClear = require('./_hashClear'),\n hashDelete = require('./_hashDelete'),\n hashGet = require('./_hashGet'),\n hashHas = require('./_hashHas'),\n hashSet = require('./_hashSet');\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nmodule.exports = Hash;\n","var listCacheClear = require('./_listCacheClear'),\n listCacheDelete = require('./_listCacheDelete'),\n listCacheGet = require('./_listCacheGet'),\n listCacheHas = require('./_listCacheHas'),\n listCacheSet = require('./_listCacheSet');\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nmodule.exports = ListCache;\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 mapCacheClear = require('./_mapCacheClear'),\n mapCacheDelete = require('./_mapCacheDelete'),\n mapCacheGet = require('./_mapCacheGet'),\n mapCacheHas = require('./_mapCacheHas'),\n mapCacheSet = require('./_mapCacheSet');\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\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 Promise = getNative(root, 'Promise');\n\nmodule.exports = Promise;\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 ListCache = require('./_ListCache'),\n 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 * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n// Add methods to `Stack`.\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","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nmodule.exports = WeakMap;\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 {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.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 == null ? 0 : 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 == null ? 0 : array.length,\n resIndex = 0,\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","var baseTimes = require('./_baseTimes'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isIndex = require('./_isIndex'),\n isTypedArray = require('./isTypedArray');\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 * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = arrayLikeKeys;\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 == null ? 0 : 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","var baseAssignValue = require('./_baseAssignValue'),\n eq = require('./eq');\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 * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nmodule.exports = assignValue;\n","var eq = require('./eq');\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\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 copyObject = require('./_copyObject'),\n keys = require('./keys');\n\n/**\n * The base implementation of `_.assign` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssign(object, source) {\n return object && copyObject(source, keys(source), object);\n}\n\nmodule.exports = baseAssign;\n","var copyObject = require('./_copyObject'),\n keysIn = require('./keysIn');\n\n/**\n * The base implementation of `_.assignIn` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssignIn(object, source) {\n return object && copyObject(source, keysIn(source), object);\n}\n\nmodule.exports = baseAssignIn;\n","var defineProperty = require('./_defineProperty');\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\nmodule.exports = baseAssignValue;\n","var Stack = require('./_Stack'),\n arrayEach = require('./_arrayEach'),\n assignValue = require('./_assignValue'),\n baseAssign = require('./_baseAssign'),\n baseAssignIn = require('./_baseAssignIn'),\n cloneBuffer = require('./_cloneBuffer'),\n copyArray = require('./_copyArray'),\n copySymbols = require('./_copySymbols'),\n copySymbolsIn = require('./_copySymbolsIn'),\n getAllKeys = require('./_getAllKeys'),\n getAllKeysIn = require('./_getAllKeysIn'),\n getTag = require('./_getTag'),\n initCloneArray = require('./_initCloneArray'),\n initCloneByTag = require('./_initCloneByTag'),\n initCloneObject = require('./_initCloneObject'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isMap = require('./isMap'),\n isObject = require('./isObject'),\n isSet = require('./isSet'),\n keys = require('./keys'),\n keysIn = require('./keysIn');\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_FLAT_FLAG = 2,\n CLONE_SYMBOLS_FLAG = 4;\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 genTag = '[object GeneratorFunction]',\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 symbolTag = '[object Symbol]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\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 supported by `_.clone`. */\nvar cloneableTags = {};\ncloneableTags[argsTag] = cloneableTags[arrayTag] =\ncloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\ncloneableTags[boolTag] = cloneableTags[dateTag] =\ncloneableTags[float32Tag] = cloneableTags[float64Tag] =\ncloneableTags[int8Tag] = cloneableTags[int16Tag] =\ncloneableTags[int32Tag] = cloneableTags[mapTag] =\ncloneableTags[numberTag] = cloneableTags[objectTag] =\ncloneableTags[regexpTag] = cloneableTags[setTag] =\ncloneableTags[stringTag] = cloneableTags[symbolTag] =\ncloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\ncloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\ncloneableTags[errorTag] = cloneableTags[funcTag] =\ncloneableTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Deep clone\n * 2 - Flatten inherited properties\n * 4 - Clone symbols\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\nfunction baseClone(value, bitmask, customizer, key, object, stack) {\n var result,\n isDeep = bitmask & CLONE_DEEP_FLAG,\n isFlat = bitmask & CLONE_FLAT_FLAG,\n isFull = bitmask & CLONE_SYMBOLS_FLAG;\n\n if (customizer) {\n result = object ? customizer(value, key, object, stack) : customizer(value);\n }\n if (result !== undefined) {\n return result;\n }\n if (!isObject(value)) {\n return value;\n }\n var isArr = isArray(value);\n if (isArr) {\n result = initCloneArray(value);\n if (!isDeep) {\n return copyArray(value, result);\n }\n } else {\n var tag = getTag(value),\n isFunc = tag == funcTag || tag == genTag;\n\n if (isBuffer(value)) {\n return cloneBuffer(value, isDeep);\n }\n if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n result = (isFlat || isFunc) ? {} : initCloneObject(value);\n if (!isDeep) {\n return isFlat\n ? copySymbolsIn(value, baseAssignIn(result, value))\n : copySymbols(value, baseAssign(result, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n result = initCloneByTag(value, tag, isDeep);\n }\n }\n // Check for circular references and return its corresponding clone.\n stack || (stack = new Stack);\n var stacked = stack.get(value);\n if (stacked) {\n return stacked;\n }\n stack.set(value, result);\n\n if (isSet(value)) {\n value.forEach(function(subValue) {\n result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));\n });\n } else if (isMap(value)) {\n value.forEach(function(subValue, key) {\n result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n }\n\n var keysFunc = isFull\n ? (isFlat ? getAllKeysIn : getAllKeys)\n : (isFlat ? keysIn : keys);\n\n var props = isArr ? undefined : keysFunc(value);\n arrayEach(props || value, function(subValue, key) {\n if (props) {\n key = subValue;\n subValue = value[key];\n }\n // Recursively populate clone (susceptible to call stack limits).\n assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n return result;\n}\n\nmodule.exports = baseClone;\n","var isObject = require('./isObject');\n\n/** Built-in value references. */\nvar objectCreate = Object.create;\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nvar baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n}());\n\nmodule.exports = baseCreate;\n","var arrayPush = require('./_arrayPush'),\n isFlattenable = require('./_isFlattenable');\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 {number} depth The maximum recursion depth.\n * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.\n * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.\n * @param {Array} [result=[]] The initial result value.\n * @returns {Array} Returns the new flattened array.\n */\nfunction baseFlatten(array, depth, predicate, isStrict, result) {\n var index = -1,\n length = array.length;\n\n predicate || (predicate = isFlattenable);\n result || (result = []);\n\n while (++index < length) {\n var value = array[index];\n if (depth > 0 && predicate(value)) {\n if (depth > 1) {\n // Recursively flatten arrays (susceptible to call stack limits).\n baseFlatten(value, depth - 1, predicate, 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 castPath = require('./_castPath'),\n toKey = require('./_toKey');\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 = castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\nmodule.exports = baseGet;\n","var arrayPush = require('./_arrayPush'),\n isArray = require('./isArray');\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nmodule.exports = baseGetAllKeys;\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nmodule.exports = baseIsArguments;\n","var getTag = require('./_getTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]';\n\n/**\n * The base implementation of `_.isMap` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n */\nfunction baseIsMap(value) {\n return isObjectLike(value) && getTag(value) == mapTag;\n}\n\nmodule.exports = baseIsMap;\n","var isFunction = require('./isFunction'),\n isMasked = require('./_isMasked'),\n isObject = require('./isObject'),\n toSource = require('./_toSource');\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.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 * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nmodule.exports = baseIsNative;\n","var getTag = require('./_getTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar setTag = '[object Set]';\n\n/**\n * The base implementation of `_.isSet` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n */\nfunction baseIsSet(value) {\n return isObjectLike(value) && getTag(value) == setTag;\n}\n\nmodule.exports = baseIsSet;\n","var baseGetTag = require('./_baseGetTag'),\n 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 dataViewTag = '[object DataView]',\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[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nmodule.exports = baseIsTypedArray;\n","var isPrototype = require('./_isPrototype'),\n nativeKeys = require('./_nativeKeys');\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 * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeys;\n","var isObject = require('./isObject'),\n isPrototype = require('./_isPrototype'),\n nativeKeysIn = require('./_nativeKeysIn');\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 * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeysIn;\n","var identity = require('./identity'),\n overRest = require('./_overRest'),\n setToString = require('./_setToString');\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\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 */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\nmodule.exports = baseRest;\n","var constant = require('./constant'),\n defineProperty = require('./_defineProperty'),\n identity = require('./identity');\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\n\nmodule.exports = baseSetToString;\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 `_.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 Symbol = require('./_Symbol'),\n arrayMap = require('./_arrayMap'),\n isArray = require('./isArray'),\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 = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(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 (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = baseToString;\n","var trimmedEndIndex = require('./_trimmedEndIndex');\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nmodule.exports = baseTrim;\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nmodule.exports = baseUnary;\n","var castPath = require('./_castPath'),\n last = require('./last'),\n parent = require('./_parent'),\n toKey = require('./_toKey');\n\n/**\n * The base implementation of `_.unset`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The property path to unset.\n * @returns {boolean} Returns `true` if the property is deleted, else `false`.\n */\nfunction baseUnset(object, path) {\n path = castPath(path, object);\n object = parent(object, path);\n return object == null || delete object[toKey(last(path))];\n}\n\nmodule.exports = baseUnset;\n","var isArray = require('./isArray'),\n isKey = require('./_isKey'),\n stringToPath = require('./_stringToPath'),\n toString = require('./toString');\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n}\n\nmodule.exports = castPath;\n","var Uint8Array = require('./_Uint8Array');\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\nmodule.exports = cloneArrayBuffer;\n","var root = require('./_root');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined;\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n}\n\nmodule.exports = cloneBuffer;\n","var cloneArrayBuffer = require('./_cloneArrayBuffer');\n\n/**\n * Creates a clone of `dataView`.\n *\n * @private\n * @param {Object} dataView The data view to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned data view.\n */\nfunction cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n}\n\nmodule.exports = cloneDataView;\n","/** Used to match `RegExp` flags from their coerced string values. */\nvar reFlags = /\\w*$/;\n\n/**\n * Creates a clone of `regexp`.\n *\n * @private\n * @param {Object} regexp The regexp to clone.\n * @returns {Object} Returns the cloned regexp.\n */\nfunction cloneRegExp(regexp) {\n var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result.lastIndex = regexp.lastIndex;\n return result;\n}\n\nmodule.exports = cloneRegExp;\n","var Symbol = require('./_Symbol');\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * Creates a clone of the `symbol` object.\n *\n * @private\n * @param {Object} symbol The symbol object to clone.\n * @returns {Object} Returns the cloned symbol object.\n */\nfunction cloneSymbol(symbol) {\n return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n}\n\nmodule.exports = cloneSymbol;\n","var cloneArrayBuffer = require('./_cloneArrayBuffer');\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\nmodule.exports = cloneTypedArray;\n","/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\nmodule.exports = copyArray;\n","var assignValue = require('./_assignValue'),\n baseAssignValue = require('./_baseAssignValue');\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\nmodule.exports = copyObject;\n","var copyObject = require('./_copyObject'),\n getSymbols = require('./_getSymbols');\n\n/**\n * Copies own symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbols(source, object) {\n return copyObject(source, getSymbols(source), object);\n}\n\nmodule.exports = copySymbols;\n","var copyObject = require('./_copyObject'),\n getSymbolsIn = require('./_getSymbolsIn');\n\n/**\n * Copies own and inherited symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbolsIn(source, object) {\n return copyObject(source, getSymbolsIn(source), object);\n}\n\nmodule.exports = copySymbolsIn;\n","var root = require('./_root');\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nmodule.exports = coreJsData;\n","var baseRest = require('./_baseRest'),\n isIterateeCall = require('./_isIterateeCall');\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n}\n\nmodule.exports = createAssigner;\n","var isPlainObject = require('./isPlainObject');\n\n/**\n * Used by `_.omit` to customize its `_.cloneDeep` use to only clone plain\n * objects.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {string} key The key of the property to inspect.\n * @returns {*} Returns the uncloned value or `undefined` to defer cloning to `_.cloneDeep`.\n */\nfunction customOmitClone(value) {\n return isPlainObject(value) ? undefined : value;\n}\n\nmodule.exports = customOmitClone;\n","var getNative = require('./_getNative');\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nmodule.exports = defineProperty;\n","var flatten = require('./flatten'),\n overRest = require('./_overRest'),\n setToString = require('./_setToString');\n\n/**\n * A specialized version of `baseRest` which flattens the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @returns {Function} Returns the new function.\n */\nfunction flatRest(func) {\n return setToString(overRest(func, undefined, flatten), func + '');\n}\n\nmodule.exports = flatRest;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","var baseGetAllKeys = require('./_baseGetAllKeys'),\n getSymbols = require('./_getSymbols'),\n keys = require('./keys');\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\nmodule.exports = getAllKeys;\n","var baseGetAllKeys = require('./_baseGetAllKeys'),\n getSymbolsIn = require('./_getSymbolsIn'),\n keysIn = require('./keysIn');\n\n/**\n * Creates an array of own and inherited enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeysIn(object) {\n return baseGetAllKeys(object, keysIn, getSymbolsIn);\n}\n\nmodule.exports = getAllKeysIn;\n","var isKeyable = require('./_isKeyable');\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nmodule.exports = getMapData;\n","var baseIsNative = require('./_baseIsNative'),\n getValue = require('./_getValue');\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 = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n","var overArg = require('./_overArg');\n\n/** Built-in value references. */\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\nmodule.exports = getPrototype;\n","var Symbol = require('./_Symbol');\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\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n","var arrayFilter = require('./_arrayFilter'),\n stubArray = require('./stubArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\nmodule.exports = getSymbols;\n","var arrayPush = require('./_arrayPush'),\n getPrototype = require('./_getPrototype'),\n getSymbols = require('./_getSymbols'),\n stubArray = require('./stubArray');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own and inherited enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) {\n var result = [];\n while (object) {\n arrayPush(result, getSymbols(object));\n object = getPrototype(object);\n }\n return result;\n};\n\nmodule.exports = getSymbolsIn;\n","var DataView = require('./_DataView'),\n Map = require('./_Map'),\n Promise = require('./_Promise'),\n Set = require('./_Set'),\n WeakMap = require('./_WeakMap'),\n baseGetTag = require('./_baseGetTag'),\n toSource = require('./_toSource');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\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 */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\nmodule.exports = getTag;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nmodule.exports = getValue;\n","var nativeCreate = require('./_nativeCreate');\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nmodule.exports = hashClear;\n","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\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(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\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 * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[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 * @name has\n * @memberOf Hash\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(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, 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 * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nmodule.exports = hashSet;\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 * Initializes an array clone.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the initialized clone.\n */\nfunction initCloneArray(array) {\n var length = array.length,\n result = new array.constructor(length);\n\n // Add properties assigned by `RegExp#exec`.\n if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n result.index = array.index;\n result.input = array.input;\n }\n return result;\n}\n\nmodule.exports = initCloneArray;\n","var cloneArrayBuffer = require('./_cloneArrayBuffer'),\n cloneDataView = require('./_cloneDataView'),\n cloneRegExp = require('./_cloneRegExp'),\n cloneSymbol = require('./_cloneSymbol'),\n cloneTypedArray = require('./_cloneTypedArray');\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\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 dataViewTag = '[object DataView]',\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/**\n * Initializes an object clone based on its `toStringTag`.\n *\n * **Note:** This function only supports cloning values with tags of\n * `Boolean`, `Date`, `Error`, `Map`, `Number`, `RegExp`, `Set`, or `String`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {string} tag The `toStringTag` of the object to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneByTag(object, tag, isDeep) {\n var Ctor = object.constructor;\n switch (tag) {\n case arrayBufferTag:\n return cloneArrayBuffer(object);\n\n case boolTag:\n case dateTag:\n return new Ctor(+object);\n\n case dataViewTag:\n return cloneDataView(object, isDeep);\n\n case float32Tag: case float64Tag:\n case int8Tag: case int16Tag: case int32Tag:\n case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n return cloneTypedArray(object, isDeep);\n\n case mapTag:\n return new Ctor;\n\n case numberTag:\n case stringTag:\n return new Ctor(object);\n\n case regexpTag:\n return cloneRegExp(object);\n\n case setTag:\n return new Ctor;\n\n case symbolTag:\n return cloneSymbol(object);\n }\n}\n\nmodule.exports = initCloneByTag;\n","var baseCreate = require('./_baseCreate'),\n getPrototype = require('./_getPrototype'),\n isPrototype = require('./_isPrototype');\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\nmodule.exports = initCloneObject;\n","var Symbol = require('./_Symbol'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray');\n\n/** Built-in value references. */\nvar spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined;\n\n/**\n * Checks if `value` is a flattenable `arguments` object or array.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.\n */\nfunction isFlattenable(value) {\n return isArray(value) || isArguments(value) ||\n !!(spreadableSymbol && value && value[spreadableSymbol]);\n}\n\nmodule.exports = isFlattenable;\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 var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (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 given 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,\n * 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 ) {\n return eq(object[index], value);\n }\n return false;\n}\n\nmodule.exports = isIterateeCall;\n","var isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\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 (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return 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 == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nmodule.exports = isKeyable;\n","var coreJsData = require('./_coreJsData');\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nmodule.exports = isMasked;\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","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nmodule.exports = listCacheClear;\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 list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\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 listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nmodule.exports = listCacheDelete;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nmodule.exports = listCacheGet;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\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 listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nmodule.exports = listCacheHas;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nmodule.exports = listCacheSet;\n","var Hash = require('./_Hash'),\n ListCache = require('./_ListCache'),\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 mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nmodule.exports = mapCacheClear;\n","var getMapData = require('./_getMapData');\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 mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = mapCacheDelete;\n","var getMapData = require('./_getMapData');\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 mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nmodule.exports = mapCacheGet;\n","var getMapData = require('./_getMapData');\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 mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nmodule.exports = mapCacheHas;\n","var getMapData = require('./_getMapData');\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 instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nmodule.exports = mapCacheSet;\n","var memoize = require('./memoize');\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n}\n\nmodule.exports = memoizeCapped;\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 overArg = require('./_overArg');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nmodule.exports = nativeKeys;\n","/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = nativeKeysIn;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nmodule.exports = nodeUtil;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nmodule.exports = overArg;\n","var apply = require('./_apply');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\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 * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : 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 index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n}\n\nmodule.exports = overRest;\n","var baseGet = require('./_baseGet'),\n baseSlice = require('./_baseSlice');\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 < 2 ? object : baseGet(object, baseSlice(path, 0, -1));\n}\n\nmodule.exports = parent;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","var baseSetToString = require('./_baseSetToString'),\n shortOut = require('./_shortOut');\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\nmodule.exports = setToString;\n","/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeNow = Date.now;\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n}\n\nmodule.exports = shortOut;\n","var ListCache = require('./_ListCache');\n\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__ = new ListCache;\n this.size = 0;\n}\n\nmodule.exports = stackClear;\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 result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\nmodule.exports = stackDelete;\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 return this.__data__.get(key);\n}\n\nmodule.exports = stackGet;\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 return this.__data__.has(key);\n}\n\nmodule.exports = stackHas;\n","var ListCache = require('./_ListCache'),\n Map = require('./_Map'),\n MapCache = require('./_MapCache');\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 instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\nmodule.exports = stackSet;\n","var memoizeCapped = require('./_memoizeCapped');\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 */\nvar stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\nmodule.exports = stringToPath;\n","var isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = toKey;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nmodule.exports = toSource;\n","/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\n\nmodule.exports = trimmedEndIndex;\n","var assignValue = require('./_assignValue'),\n copyObject = require('./_copyObject'),\n createAssigner = require('./_createAssigner'),\n isArrayLike = require('./isArrayLike'),\n isPrototype = require('./_isPrototype'),\n keys = require('./keys');\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 * Assigns own enumerable string keyed properties of source objects to the\n * destination object. Source objects are applied from left to right.\n * Subsequent sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object` and is loosely based on\n * [`Object.assign`](https://mdn.io/Object/assign).\n *\n * @static\n * @memberOf _\n * @since 0.10.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.assignIn\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * function Bar() {\n * this.c = 3;\n * }\n *\n * Foo.prototype.b = 2;\n * Bar.prototype.d = 4;\n *\n * _.assign({ 'a': 0 }, new Foo, new Bar);\n * // => { 'a': 1, 'c': 3 }\n */\nvar assign = createAssigner(function(object, source) {\n if (isPrototype(source) || isArrayLike(source)) {\n copyObject(source, keys(source), object);\n return;\n }\n for (var key in source) {\n if (hasOwnProperty.call(source, key)) {\n assignValue(object, key, source[key]);\n }\n }\n});\n\nmodule.exports = assign;\n","/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\nmodule.exports = constant;\n","var isObject = require('./isObject'),\n now = require('./now'),\n toNumber = require('./toNumber');\n\n/** Error message constants. */\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 nativeMin = Math.min;\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\nmodule.exports = debounce;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\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 = { 'a': 1 };\n * var other = { 'a': 1 };\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 baseFlatten = require('./_baseFlatten');\n\n/**\n * Flattens `array` a single level deep.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\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]], 5]]);\n * // => [1, 2, [3, [4]], 5]\n */\nfunction flatten(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseFlatten(array, 1) : [];\n}\n\nmodule.exports = flatten;\n","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;\n","var baseIsArguments = require('./_baseIsArguments'),\n isObjectLike = require('./isObjectLike');\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/** 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 * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nmodule.exports = isArguments;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, 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 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 * @since 4.0.0\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 && isLength(value.length) && !isFunction(value);\n}\n\nmodule.exports = isArrayLike;\n","var root = require('./_root'),\n stubFalse = require('./stubFalse');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nmodule.exports = isBuffer;\n","var baseGetTag = require('./_baseGetTag'),\n isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\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 method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\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' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n","var baseIsMap = require('./_baseIsMap'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsMap = nodeUtil && nodeUtil.isMap;\n\n/**\n * Checks if `value` is classified as a `Map` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n * @example\n *\n * _.isMap(new Map);\n * // => true\n *\n * _.isMap(new WeakMap);\n * // => false\n */\nvar isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap;\n\nmodule.exports = isMap;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\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 != null && (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 * @since 4.0.0\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 != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var baseGetTag = require('./_baseGetTag'),\n getPrototype = require('./_getPrototype'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n}\n\nmodule.exports = isPlainObject;\n","var baseIsSet = require('./_baseIsSet'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsSet = nodeUtil && nodeUtil.isSet;\n\n/**\n * Checks if `value` is classified as a `Set` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n * @example\n *\n * _.isSet(new Set);\n * // => true\n *\n * _.isSet(new WeakSet);\n * // => false\n */\nvar isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;\n\nmodule.exports = isSet;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, 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) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n","var baseIsTypedArray = require('./_baseIsTypedArray'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nmodule.exports = isTypedArray;\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeys = require('./_baseKeys'),\n isArrayLike = require('./isArrayLike');\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/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\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 return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nmodule.exports = keys;\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeysIn = require('./_baseKeysIn'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\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 * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\nmodule.exports = keysIn;\n","/**\n * Gets the last element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\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 == null ? 0 : array.length;\n return length ? array[length - 1] : undefined;\n}\n\nmodule.exports = last;\n","var MapCache = require('./_MapCache');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nmodule.exports = memoize;\n","var root = require('./_root');\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\nmodule.exports = now;\n","var arrayMap = require('./_arrayMap'),\n baseClone = require('./_baseClone'),\n baseUnset = require('./_baseUnset'),\n castPath = require('./_castPath'),\n copyObject = require('./_copyObject'),\n customOmitClone = require('./_customOmitClone'),\n flatRest = require('./_flatRest'),\n getAllKeysIn = require('./_getAllKeysIn');\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_FLAT_FLAG = 2,\n CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * The opposite of `_.pick`; this method creates an object composed of the\n * own and inherited enumerable property paths of `object` that are not omitted.\n *\n * **Note:** This method is considerably slower than `_.pick`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The source object.\n * @param {...(string|string[])} [paths] The property paths to omit.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.omit(object, ['a', 'c']);\n * // => { 'b': '2' }\n */\nvar omit = flatRest(function(object, paths) {\n var result = {};\n if (object == null) {\n return result;\n }\n var isDeep = false;\n paths = arrayMap(paths, function(path) {\n path = castPath(path, object);\n isDeep || (isDeep = path.length > 1);\n return path;\n });\n copyObject(object, getAllKeysIn(object), result);\n if (isDeep) {\n result = baseClone(result, CLONE_DEEP_FLAG | CLONE_FLAT_FLAG | CLONE_SYMBOLS_FLAG, customOmitClone);\n }\n var length = paths.length;\n while (length--) {\n baseUnset(result, paths[length]);\n }\n return result;\n});\n\nmodule.exports = omit;\n","/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\nmodule.exports = stubArray;\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = stubFalse;\n","var baseTrim = require('./_baseTrim'),\n isObject = require('./isObject'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\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 * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\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 baseToString = require('./_baseToString');\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted 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 return value == null ? '' : baseToString(value);\n}\n\nmodule.exports = toString;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nconst PartytownSnippet = \"/* Partytown 0.5.4 - MIT builder.io */\\n!function(t,e,n,i,r,o,a,d,s,c,p,l){function u(){l||(l=1,\\\"/\\\"==(a=(o.lib||\\\"/~partytown/\\\")+(o.debug?\\\"debug/\\\":\\\"\\\"))[0]&&(s=e.querySelectorAll('script[type=\\\"text/partytown\\\"]'),i!=t?i.dispatchEvent(new CustomEvent(\\\"pt1\\\",{detail:t})):(d=setTimeout(w,1e4),e.addEventListener(\\\"pt0\\\",f),r?h(1):n.serviceWorker?n.serviceWorker.register(a+(o.swPath||\\\"partytown-sw.js\\\"),{scope:a}).then((function(t){t.active?h():t.installing&&t.installing.addEventListener(\\\"statechange\\\",(function(t){\\\"activated\\\"==t.target.state&&h()}))}),console.error):w())))}function h(t){c=e.createElement(t?\\\"script\\\":\\\"iframe\\\"),t||(c.setAttribute(\\\"style\\\",\\\"display:block;width:0;height:0;border:0;visibility:hidden\\\"),c.setAttribute(\\\"aria-hidden\\\",!0)),c.src=a+\\\"partytown-\\\"+(t?\\\"atomics.js?v=0.5.4\\\":\\\"sandbox-sw.html?\\\"+Date.now()),e.body.appendChild(c)}function w(t,n){for(f(),t=0;t {\n const { forward = [], ...filteredConfig } = config || {};\n const configStr = JSON.stringify(filteredConfig, (k, v) => {\n if (typeof v === 'function') {\n v = String(v);\n if (v.startsWith(k + '(')) {\n v = 'function ' + v;\n }\n }\n return v;\n });\n return [\n `!(function(w,p,f,c){`,\n Object.keys(filteredConfig).length > 0\n ? `c=w[p]=Object.assign(w[p]||{},${configStr});`\n : `c=w[p]=w[p]||{};`,\n `c[f]=(c[f]||[])`,\n forward.length > 0 ? `.concat(${JSON.stringify(forward)})` : ``,\n `})(window,'partytown','forward');`,\n snippetCode,\n ].join('');\n};\n\n/**\n * The `type` attribute for Partytown scripts, which does two things:\n *\n * 1. Prevents the `