{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/core-js/modules/es.array.slice.js","webpack:///./public/js/components/FreeLayoutEditor/handlers/actions/updateActiveHandle.js","webpack:///./public/js/components/FreeLayoutEditor/content/Grid.css","webpack:///./public/js/app/freelayout_editor/components/renderThumbnailItemContents.js","webpack:///./node_modules/core-js/internals/bind-context.js","webpack:///./node_modules/liang-barsky/dist/liang-barsky.es5.js","webpack:///./node_modules/es5-ext/string/#/contains/shim.js","webpack:///./node_modules/es5-ext/string/#/contains/index.js","webpack:///./public/js/utils/jquery_shim.js","webpack:///./public/js/widgets/Reveal/Reveal.css?1e91","webpack:///./public/js/store/constants/template-preview.js","webpack:///./node_modules/scheduler/cjs/scheduler.production.min.js","webpack:///./node_modules/core-js/modules/es.typed-array.uint32-array.js","webpack:///./public/js/components/FreeLayoutEditor/handlers/actions/startResizing.js","webpack:///./node_modules/core-js/modules/es.math.cosh.js","webpack:///./public/js/common/chart_factory/update_flex_data.js","webpack:///./node_modules/core-js/internals/to-indexed-object.js","webpack:///./public/js/libs/jquery-migrate-1.4.1-modified.js","webpack:///./public/js/shared/runIgnoringErrors.js","webpack:///./node_modules/redux-devtools-extension/developmentOnly.js","webpack:///./node_modules/core-js/modules/es.typed-array.int8-array.js","webpack:///./public/js/shared/resolveParsedReferenceColor.js","webpack:///./node_modules/react-transition-group/esm/utils/PropTypes.js","webpack:///./node_modules/core-js/internals/dom-iterables.js","webpack:///./public/js/components/DataTable/actions/fetchChartLiveData.js","webpack:///./node_modules/draft-js/dist/Draft.css?4667","webpack:///./public/js/components/filters/utils.js","webpack:///./public/js/components/PageThumbnail/PageThumbnail.react.js","webpack:///./node_modules/slug/slug.js","webpack:///./node_modules/core-js/modules/es.object.to-string.js","webpack:///./node_modules/core-js/internals/hidden-keys.js","webpack:///./node_modules/core-js/internals/fails.js","webpack:///./node_modules/core-js/internals/get-built-in.js","webpack:///./public/js/app/download/utils/DownloadWebAPIUtils.js","webpack:///./public/js/components/filters/filters/HueRotate.react.js","webpack:///./public/js/app/connectors/modifier/cleanupConnectors.js","webpack:///./node_modules/react-transition-group/esm/TransitionGroupContext.js","webpack:///./node_modules/core-js/modules/es.typed-array.find.js","webpack:///./node_modules/core-js/internals/object-property-is-enumerable.js","webpack:///./public/js/app/callouts/components/CalloutItem.react.js","webpack:///./node_modules/core-js/modules/es.symbol.iterator.js","webpack:///./node_modules/core-js/internals/object-set-prototype-of.js","webpack:///./node_modules/@emotion/stylis/dist/stylis.browser.esm.js","webpack:///./glassbox/client_logger.js","webpack:///./public/js/web/ResponsiveInfographic/style.css","webpack:///./node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js","webpack:///./node_modules/prop-types/factoryWithThrowingShims.js","webpack:///./node_modules/prop-types/index.js","webpack:///./public/js/UserError.js","webpack:///./node_modules/core-js/internals/set-to-string-tag.js","webpack:///./public/js/components/FreeLayoutEditor/immutable/Selection.js","webpack:///./node_modules/@prezi/client-logger-module/lib/src/LogEntryFormatter.js","webpack:///./public/js/components/Dialogs/images/facebook.svg","webpack:///./node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack:///./node_modules/@prezi/client-logger-module/node_modules/axios/lib/defaults.js","webpack:///./node_modules/core-js/internals/array-reduce.js","webpack:///./node_modules/dom-helpers/esm/removeClass.js","webpack:///./node_modules/core-js/modules/es.typed-array.for-each.js","webpack:///./public/js/shared/chart_colors.js","webpack:///./public/js/web/constants.js","webpack:///./node_modules/core-js/modules/es.reflect.prevent-extensions.js","webpack:///./node_modules/draft-js/dist/Draft.css","webpack:///./public/js/app/freelayout_editor/components/LazyBlockWrapper.react.js","webpack:///./node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack:///./node_modules/core-js/modules/es.reflect.is-extensible.js","webpack:///./node_modules/core-js/modules/es.object.get-own-property-descriptors.js","webpack:///./node_modules/core-js/modules/es.string.raw.js","webpack:///./node_modules/core-js/modules/es.array.map.js","webpack:///./node_modules/@prezi/client-logger-module/node_modules/axios/lib/helpers/bind.js","webpack:///./node_modules/fbjs/lib/invariant.js","webpack:///./public/js/web/ResponsiveInfographic/Text.react.js","webpack:///./public/js/components/filters/filters/index.js","webpack:///./public/js/web/SearchForm/SearchForm.css?b817","webpack:///./public/js/components/filters/filters/Contrast.react.js","webpack:///./node_modules/core-js/internals/global.js","webpack:///./public/js/app/callouts/utils/getCalloutPaddings.js","webpack:///./public/js/app/freelayout_editor/components/contents/pageNumberByKey.js","webpack:///./node_modules/d3-dispatch/src/index.js","webpack:///./node_modules/core-js/internals/object-keys.js","webpack:///./public/js/components/FreeLayoutEditor/base/InfographicEditor.js","webpack:///./public/js/components/InfographicFooter/store.js","webpack:///./node_modules/core-js/modules/es.symbol.has-instance.js","webpack:///./public/js/components/FreeLayoutEditor/snapIndex.js","webpack:///./node_modules/core-js/modules/es.object.freeze.js","webpack:///./public/js/components/FreeLayoutEditor/immutable/Assets.js","webpack:///(webpack)/buildin/harmony-module.js","webpack:///./public/js/components/InspectorPanel/panels/ProjectSettings/constants.js","webpack:///./public/js/app/download/stores/ElementRecord.js","webpack:///./node_modules/core-js/modules/web.dom-collections.iterator.js","webpack:///./public/js/app/freelayout_editor/loadImage.js","webpack:///./public/js/app/freelayout_editor/components/contents/Link/LinkPreview.react.js","webpack:///./public/js/web/WebProfileView.css?0c42","webpack:///./public/js/app/main/stores/BrandStore.js","webpack:///./public/js/app/freelayout_editor/components/contents/Image/index.js","webpack:///./public/js/web/WebSearchView.css","webpack:///./node_modules/core-js/modules/es.symbol.description.js","webpack:///./node_modules/core-js/internals/forced-string-trim-method.js","webpack:///./public/js/components/FreeLayoutEditor/content/ContentBlockItems.js","webpack:///./public/js/app/freelayout_editor/components/contents/TooltipWrapper.css?3931","webpack:///./node_modules/core-js/internals/object-get-prototype-of.js","webpack:///./node_modules/core-js/internals/correct-prototype-getter.js","webpack:///./public/js/app/freelayout_editor/components/renderItemContents.react.js","webpack:///./node_modules/uuid/lib/rng-browser.js","webpack:///./node_modules/core-js/modules/es.object.is-frozen.js","webpack:///./node_modules/core-js/modules/es.parse-int.js","webpack:///./node_modules/core-js/modules/es.array.iterator.js","webpack:///./public/js/common/chart_factory/infogram-charts-tooltip.js","webpack:///./node_modules/core-js/internals/number-is-finite.js","webpack:///./node_modules/@emotion/memoize/dist/memoize.browser.esm.js","webpack:///./public/js/app/freelayout_editor/components/contents/linkIsSafe.js","webpack:///./node_modules/core-js/internals/redefine-all.js","webpack:///./public/js/app/download/stores/DownloadOutputSizeStore.js","webpack:///./node_modules/es5-ext/function/noop.js","webpack:///./public/js/components/FreeLayoutEditor/handlers/edit/editOnMouseMove.js","webpack:///./public/js/app/callouts/utils/getEntityChangesBasedOnRect.js","webpack:///./node_modules/core-js/modules/es.object.is-sealed.js","webpack:///./node_modules/core-js/modules/es.object.get-own-property-descriptor.js","webpack:///./public/js/app/callouts/utils/preloadCalloutImages.js","webpack:///./node_modules/@prezi/client-logger-module/lib/src/glassbox/WebWebgl.js","webpack:///./public/js/components/FreeLayoutEditor/immutable/Background.js","webpack:///./node_modules/@prezi/client-logger-module/lib/src/glassbox/WebPrezigram.js","webpack:///./node_modules/es-cookie/src/es-cookie.js","webpack:///./node_modules/core-js/internals/parse-int.js","webpack:///./node_modules/core-js/internals/array-last-index-of.js","webpack:///./node_modules/core-js/internals/perform.js","webpack:///./public/js/components/FreeLayoutEditor/handlers/callout/checkCalloutDeltaLimits.js","webpack:///./public/js/components/TextEditor/constants/TextEditorConstants.js","webpack:///./node_modules/core-js/modules/es.promise.js","webpack:///./node_modules/core-js/modules/es.number.min-safe-integer.js","webpack:///./node_modules/core-js/modules/es.object.define-setter.js","webpack:///./node_modules/@prezi/client-logger-module/node_modules/axios/lib/helpers/buildURL.js","webpack:///./public/js/app/freelayout_editor/components/contents/Group/ReadOnlyGroup.react.js","webpack:///./node_modules/core-js/internals/array-buffer-view-core.js","webpack:///./public/js/app/freelayout_editor/components/contents/Shape/index.js","webpack:///./public/js/components/InfographicSideButtons/constants.js","webpack:///./public/js/components/FreeLayoutEditor/util/bounds.js","webpack:///./node_modules/core-js/internals/copy-constructor-properties.js","webpack:///./node_modules/fbemitter/lib/BaseEventEmitter.js","webpack:///./public/js/common/helpers/InterlinkedCharts.js","webpack:///./node_modules/core-js/internals/is-array.js","webpack:///./node_modules/core-js/modules/es.typed-array.index-of.js","webpack:///./node_modules/core-js/internals/is-array-iterator-method.js","webpack:///./node_modules/core-js/internals/forced-string-html-method.js","webpack:///./public/js/web/ResponsiveInfographic/Media/AtlasImage.react.js","webpack:///./node_modules/core-js/modules/es.symbol.is-concat-spreadable.js","webpack:///./node_modules/core-js/modules/es.date.to-primitive.js","webpack:///./public/js/app/download/cleanupCustomSettings.js","webpack:///./public/js/app/freelayout_editor/FreeLayoutHelper.js","webpack:///./public/js/components/IntersectionObserver/common.js","webpack:///./node_modules/core-js/modules/es.typed-array.of.js","webpack:///./node_modules/classlist-polyfill/src/index.js","webpack:///./public/js/app/callouts/components/Callouts.react.js","webpack:///./node_modules/@prezi/client-logger-module/node_modules/axios/lib/core/mergeConfig.js","webpack:///./node_modules/es5-ext/object/keys/is-implemented.js","webpack:///./public/js/app/freelayout_editor/components/contents/Media/style.css","webpack:///./public/js/components/Dialogs/images/twitter.svg","webpack:///./public/js/components/InfographicFooter/actions.js","webpack:///./node_modules/@prezi/client-logger-module/node_modules/axios/index.js","webpack:///./public/js/components/FreeLayoutEditor/util/CompatibilityCoverImage.react.js","webpack:///./node_modules/core-js/modules/es.string.trim-start.js","webpack:///./public/js/app/callouts/utils/getCalloutStyle.js","webpack:///./node_modules/es5-ext/object/normalize-options.js","webpack:///./public/js/app/freelayout_editor/components/contents/TooltipWrapper.css","webpack:///./node_modules/core-js/modules/es.number.is-finite.js","webpack:///./node_modules/core-js/internals/new-promise-capability.js","webpack:///./public/js/components/FreeLayoutEditor/immutable/EditorState.js","webpack:///./node_modules/core-js/internals/internal-metadata.js","webpack:///./node_modules/@prezi/client-logger-module/node_modules/axios/lib/core/settle.js","webpack:///./public/js/app/freelayout_editor/components/Presentation/PresentationPage.react.js","webpack:///./node_modules/process/browser.js","webpack:///./public/js/app/connectors/components/contents/Connector/helper.js","webpack:///./public/js/components/FreeLayoutEditor/util/AnimationPreview.react.js","webpack:///./public/js/components/FreeLayoutEditor/immutable/Mask.js","webpack:///./node_modules/core-js/internals/math-sign.js","webpack:///./public/js/components/FreeLayoutEditor/handlers/constants.js","webpack:///./node_modules/core-js/internals/shared-key.js","webpack:///./node_modules/core-js/modules/es.array.species.js","webpack:///./public/js/web/Footer/Footer.css?63f2","webpack:///./public/js/components/FreeLayoutEditor/modifier/cleanupAssets.js","webpack:///./node_modules/core-js/modules/es.date.to-json.js","webpack:///./public/js/components/filters/filters/IntensityOf.react.js","webpack:///./node_modules/core-js/modules/es.array.reduce-right.js","webpack:///./node_modules/d/index.js","webpack:///./public/js/web/Footer/Footer.react.js","webpack:///./public/js/web/ResponsiveInfographic/Text/Subtitle.react.js","webpack:///./public/js/components/filters/filters/Saturation.react.js","webpack:///./node_modules/core-js/modules/es.string.code-point-at.js","webpack:///./node_modules/core-js/internals/classof.js","webpack:///./public/js/app/freelayout_editor/Scroll/constants.js","webpack:///./public/js/web/Header/Header.react.js","webpack:///./node_modules/es5-ext/object/assign/shim.js","webpack:///./node_modules/core-js/modules/es.math.fround.js","webpack:///./public/js/components/FreeLayoutEditor/base/EditorContext.js","webpack:///./public/js/components/FreeLayoutEditor/content/ContentItem.js","webpack:///./node_modules/style-loader/lib/urls.js","webpack:///./node_modules/core-js/modules/es.string.from-code-point.js","webpack:///./public/js/shared/chart_defaults.js","webpack:///./node_modules/@emotion/is-prop-valid/dist/is-prop-valid.browser.esm.js","webpack:///./public/js/app/freelayout_editor/components/contents/Shape/Path.react.js","webpack:///./public/js/app/freelayout_editor/components/contents/Group/utils/rearrangeEntitiesWithinGroup.js","webpack:///./public/js/components/filters/DynamicFiltersProvider.react.js","webpack:///./public/js/common/stylesheets.js","webpack:///./public/js/shared/chartColorsSync.js","webpack:///./public/js/app/callouts/utils/getCalloutScale.js","webpack:///./node_modules/@prezi/client-logger-module/node_modules/axios/lib/helpers/spread.js","webpack:///./public/js/app/freelayout_editor/components/contents/Media/index.js","webpack:///./node_modules/core-js/modules/es.math.sinh.js","webpack:///./public/js/utils/logger/logger.js","webpack:///./public/js/app/freelayout_editor/actions/pushBoundUndoStack.js","webpack:///./public/js/shared/chart_data.json5","webpack:///./public/js/components/Animation/animations.js","webpack:///./node_modules/core-js/modules/es.object.values.js","webpack:///./public/js/components/EngagementAnalytics/index.js","webpack:///./public/js/web/PasswordPrompt/PasswordPrompt.css?f4b5","webpack:///./node_modules/core-js/modules/es.array.flat.js","webpack:///./public/js/app/dialogs/index.js","webpack:///./node_modules/core-js/modules/es.string.blink.js","webpack:///./public/js/app/callouts/actions/cleanupCallouts.js","webpack:///./public/js/app/freelayout_editor/components/contents/Text/Text.react.js","webpack:///./node_modules/core-js/internals/function-bind.js","webpack:///./node_modules/core-js/internals/object-get-own-property-names-external.js","webpack:///./public/js/components/FreeLayoutEditor/handlers/callout/arrangeCalloutAfterTransformations.js","webpack:///./public/js/app/freelayout_editor/components/Presentation/Presentation.css","webpack:///./public/js/prezigram/upload/constants/action-types.js","webpack:///./node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack:///./public/js/widgets/dialog/DialogButtons.react.js","webpack:///./public/js/utils/dispatchEvent.js","webpack:///./public/js/app/freelayout_editor/components/Presentation/ProgressBarNavigation.react.js","webpack:///./public/js/components/FreeLayoutEditor/handlers/actions/startDragging.js","webpack:///./public/js/utils/elements.js","webpack:///./public/js/components/FreeLayoutEditor/overlay/SmartGuidesOverlay.css?140d","webpack:///./public/js/components/InfographicFooter/flexFooterFunctions.js","webpack:///./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","webpack:///./public/js/components/InfographicSideButtons/icon-download.svg","webpack:///./node_modules/core-js/modules/es.math.expm1.js","webpack:///./node_modules/core-js/internals/to-index.js","webpack:///./public/js/components/FreeLayoutEditor/util/getProjectIdFromUrl.js","webpack:///./node_modules/core-js/modules/es.json.to-string-tag.js","webpack:///./node_modules/@prezi/client-logger-module/node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack:///./public/js/components/FreeLayoutEditor/immutable/InfographicState.js","webpack:///./public/js/components/filters/filters/BlackAndWhite.react.js","webpack:///./node_modules/core-js/internals/string-pad.js","webpack:///./public/js/app/callouts/components/assets/icon-cancel.svg","webpack:///./node_modules/core-js/internals/ie8-dom-define.js","webpack:///./node_modules/core-js/modules/es.date.to-string.js","webpack:///./node_modules/path2d-polyfill/dist/index.esm.js","webpack:///./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","webpack:///./node_modules/core-js/internals/native-url.js","webpack:///./public/js/web/WebView.store.js","webpack:///./public/js/web/ResponsiveInfographic/Text/CaptionText.react.js","webpack:///./public/js/web/WebProfileView.react.js","webpack:///./node_modules/raf/polyfill.js","webpack:///./public/js/app/freelayout_editor/components/contents/Link/icon-link.svg","webpack:///./public/js/common/theme_helper.js","webpack:///./public/js/web/PasswordPrompt/PasswordPrompt.react.js","webpack:///./node_modules/es6-promise/dist/es6-promise.js","webpack:///./public/js/app/freelayout_editor/components/contents/elementForType.js","webpack:///./node_modules/core-js/modules/es.string.big.js","webpack:///./node_modules/core-js/modules/es.array.reduce.js","webpack:///./node_modules/@prezi/client-logger-module/node_modules/axios/lib/core/Axios.js","webpack:///./public/js/app/freelayout_editor/stores/EditorStateStore.js","webpack:///./node_modules/core-js/modules/es.weak-map.js","webpack:///./public/js/components/FreeLayoutEditor/handlers/handle/transformations.js","webpack:///./node_modules/core-js/internals/string-repeat.js","webpack:///./node_modules/uuid/index.js","webpack:///./public/js/components/FreeLayoutEditor/base/InfographicEditor.css?fcca","webpack:///./node_modules/core-js/modules/es.string.split.js","webpack:///./node_modules/core-js/internals/same-value.js","webpack:///./node_modules/core-js/modules/es.object.define-getter.js","webpack:///./node_modules/core-js/modules/web.immediate.js","webpack:///./node_modules/core-js/modules/es.object.set-prototype-of.js","webpack:///./node_modules/type/plain-function/is.js","webpack:///./node_modules/core-js/internals/array-for-each.js","webpack:///./node_modules/react-stickyfill/node_modules/prop-types/factoryWithThrowingShims.js","webpack:///./node_modules/core-js/modules/es.typed-array.int32-array.js","webpack:///./node_modules/core-js/internals/array-copy-within.js","webpack:///./public/js/dev/localization.js","webpack:///./node_modules/es5-ext/object/assign/is-implemented.js","webpack:///./node_modules/core-js/internals/regexp-exec-abstract.js","webpack:///./node_modules/core-js/modules/web.dom-collections.for-each.js","webpack:///./node_modules/d3-color/src/cubehelix.js","webpack:///./node_modules/@prezi/client-logger-module/node_modules/axios/lib/core/createError.js","webpack:///./node_modules/d3-color/src/color.js","webpack:///./node_modules/core-js/internals/typed-arrays-constructors-requires-wrappers.js","webpack:///./node_modules/react-transition-group/esm/SwitchTransition.js","webpack:///./node_modules/core-js/modules/es.typed-array.subarray.js","webpack:///./node_modules/core-js/web/index.js","webpack:///./node_modules/core-js/internals/html.js","webpack:///./node_modules/core-js/modules/es.reflect.own-keys.js","webpack:///./public/js/components/FreeLayoutEditor/handlers/actions/resetHandle.js","webpack:///./node_modules/core-js/internals/to-offset.js","webpack:///./public/js/app/freelayout_editor/components/contents/Shape/shape.css?eeb8","webpack:///./public/js/app/freelayout_editor/actions/animationPreview.js","webpack:///./node_modules/core-js/modules/es.string.anchor.js","webpack:///./node_modules/es5-ext/string/#/contains/is-implemented.js","webpack:///./node_modules/core-js/modules/es.string.fontsize.js","webpack:///./node_modules/core-js/modules/es.symbol.species.js","webpack:///./node_modules/core-js/internals/an-instance.js","webpack:///./node_modules/es5-ext/object/valid-callable.js","webpack:///./node_modules/@prezi/client-logger-module/node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack:///./node_modules/shallowequal/index.js","webpack:///./public/js/components/IntersectionObserver/LazyView.react.js","webpack:///./node_modules/core-js/modules/es.weak-set.js","webpack:///./public/js/components/IntersectionObserver/LazyWrapper.react.js","webpack:///./node_modules/core-js/internals/a-function.js","webpack:///./public/js/app/freelayout_editor/components/contents/Shape/PredefinedPath.react.js","webpack:///./node_modules/core-js/internals/check-correctness-of-iteration.js","webpack:///./public/js/app/callouts/utils/adjustCalloutOnItemChange.js","webpack:///./public/js/store/index.js","webpack:///./node_modules/core-js/modules/es.object.define-properties.js","webpack:///./node_modules/core-js/internals/require-object-coercible.js","webpack:///./node_modules/core-js/internals/array-method-has-species-support.js","webpack:///./public/js/app/callouts/components/animation.css","webpack:///./public/js/components/InfographicFooter/Logo.react.js","webpack:///./node_modules/core-js/modules/es.string.trim-end.js","webpack:///./node_modules/core-js/internals/math-log1p.js","webpack:///./node_modules/core-js/internals/export.js","webpack:///./node_modules/css-loader/lib/css-base.js","webpack:///./node_modules/core-js/modules/es.symbol.split.js","webpack:///./node_modules/uuid/lib/bytesToUuid.js","webpack:///./public/js/components/CoverImage/CoverImage.css?be97","webpack:///./node_modules/core-js/internals/to-absolute-index.js","webpack:///./node_modules/core-js/modules/es.math.to-string-tag.js","webpack:///./node_modules/es5-ext/object/assign/index.js","webpack:///./node_modules/react-dom/cjs/react-dom-server.browser.production.min.js","webpack:///./node_modules/core-js/modules/es.typed-array.from.js","webpack:///./node_modules/react-transition-group/esm/utils/ChildMapping.js","webpack:///./public/js/app/freelayout_editor/components/contents/Media/Slideshare.react.js","webpack:///./public/js/components/Animation/Animation.react.js","webpack:///./public/js/widgets/Reveal/icon-down.svg","webpack:///./node_modules/core-js/modules/es.typed-array.sort.js","webpack:///./node_modules/core-js/internals/iterate.js","webpack:///./node_modules/core-js/modules/es.string.strike.js","webpack:///./public/js/components/InspectorPanel/panels/Entity/Video/constants.js","webpack:///./public/js/common/chart_factory/chart_factory.js","webpack:///./node_modules/core-js/modules/es.array.is-array.js","webpack:///./public/js/app/freelayout_editor/components/contents/Group/utils/flatten.js","webpack:///./node_modules/webfontloader/webfontloader.js","webpack:///./public/js/app/library/constants/LibraryConstants.js","webpack:///./node_modules/core-js/internals/object-get-own-property-names.js","webpack:///./public/js/web/ResponsiveInfographic/Text/Quote.react.js","webpack:///./public/js/components/EngagementAnalytics/EngagementAnalytics.js","webpack:///./public/js/components/FreeLayoutEditor/handlers/navigation/index.js","webpack:///./public/js/app/download/helper.js","webpack:///./node_modules/core-js/modules/es.string.includes.js","webpack:///./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack:///./node_modules/core-js/modules/es.typed-array.reduce-right.js","webpack:///./node_modules/core-js/modules/es.number.parse-int.js","webpack:///./node_modules/core-js/modules/es.regexp.to-string.js","webpack:///./node_modules/@babel/runtime/helpers/esm/inherits.js","webpack:///./node_modules/core-js/internals/set-species.js","webpack:///./public/js/prezigram/watermark/Watermark.tsx","webpack:///./public/js/app/freelayout_editor/components/Presentation/ProgressBarNavigation.css","webpack:///./node_modules/core-js/modules/es.array.reverse.js","webpack:///./public/js/web/WebInfographicThumbnail/WebInfographicThumbnail.react.js","webpack:///./public/js/web/SearchForm/SearchForm.css","webpack:///./public/js/components/FreeLayoutEditor/handlers/edit/index.js","webpack:///./public/js/app/dialogs/showProgressDialog.js","webpack:///./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack:///./node_modules/core-js/modules/es.typed-array.slice.js","webpack:///./node_modules/dom-helpers/esm/hasClass.js","webpack:///./node_modules/core-js/modules/es.symbol.match.js","webpack:///./public/js/components/filters/filters/Vintage.react.js","webpack:///./node_modules/react-transition-group/esm/config.js","webpack:///./public/js/app/download/stores/ChartTabs.js","webpack:///./public/js/widgets/Reveal/Reveal.react.js","webpack:///./node_modules/core-js/modules/es.math.sign.js","webpack:///./node_modules/core-js/modules/es.object.is.js","webpack:///./node_modules/core-js/modules/web.url.js","webpack:///./public/js/components/FreeLayoutEditor/content/Grid.css?4072","webpack:///./public/js/web/WebInfographicView.css","webpack:///./node_modules/core-js/modules/es.string.starts-with.js","webpack:///./node_modules/core-js/internals/task.js","webpack:///./node_modules/core-js/stable/index.js","webpack:///./public/js/components/EngagementAnalytics/EngagementAnalytics.constants.js","webpack:///./public/js/app/callouts/components/Callouts.css?be1e","webpack:///./public/js/components/FreeLayoutEditor/immutable/resolveDesignProperty.js","webpack:///./public/js/app/freelayout_editor/components/AccessibilityDescriptionStyle.js","webpack:///./node_modules/fbemitter/lib/EventSubscriptionVendor.js","webpack:///./public/js/components/FreeLayoutEditor/content/ContentBlock.js","webpack:///./node_modules/bowser/es5.js","webpack:///./public/js/app/callouts/components/Callout.css?d462","webpack:///./public/js/web/RelatedInfographics/RelatedInfographics.css","webpack:///./node_modules/@emotion/unitless/dist/unitless.browser.esm.js","webpack:///./public/js/components/FreeLayoutEditor/handlers/callout/scaleCallout.js","webpack:///./node_modules/core-js/internals/forced-object-prototype-accessors-methods.js","webpack:///./node_modules/object-assign/index.js","webpack:///./public/js/web/ResponsiveInfographic/Media.react.js","webpack:///./node_modules/core-js/modules/es.typed-array.last-index-of.js","webpack:///./public/js/app/freelayout_editor/components/contents/Image/ClippedImage.react.js","webpack:///./public/js/app/progress_dialog/stores/progress_dialog_store.js","webpack:///./node_modules/core-js/internals/object-define-properties.js","webpack:///./public/js/common/loadAssetsForInfographic.js","webpack:///./node_modules/core-js/modules/es.object.get-prototype-of.js","webpack:///./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack:///./public/js/components/FreeLayoutEditor/content/ContentItem.css","webpack:///./node_modules/@prezi/client-logger-module/node_modules/axios/lib/core/buildFullPath.js","webpack:///./public/js/app/freelayout_editor/components/Presentation/Presentation.react.js","webpack:///./public/js/components/filters/filters/Riga.react.js","webpack:///./node_modules/core-js/internals/get-iterator-method.js","webpack:///./node_modules/core-js/modules/es.number.epsilon.js","webpack:///./public/js/prezigram/watermark/watermark.svg","webpack:///./public/js/components/FreeLayoutEditor/handlers/actions/setVisibleGuides.js","webpack:///./public/js/app/freelayout_editor/components/contents/Media/Iframe.react.js","webpack:///./public/js/app/freelayout_editor/components/contents/Group/utils/getEditorStateWithNewGroupBounds.js","webpack:///./node_modules/core-js/internals/a-possible-prototype.js","webpack:///./node_modules/@prezi/client-logger-module/node_modules/axios/lib/cancel/CancelToken.js","webpack:///./node_modules/@babel/runtime/helpers/esm/slicedToArray.js","webpack:///./node_modules/core-js/modules/es.string.repeat.js","webpack:///./public/js/components/InfographicFooter/FlexFooter.css","webpack:///./node_modules/core-js/modules/es.typed-array.find-index.js","webpack:///./public/js/components/FreeLayoutEditor/overlay/SmartGuidesOverlay.js","webpack:///./public/js/widgets/dialog/icon-cancel-dark.svg","webpack:///./node_modules/core-js/internals/iterators.js","webpack:///./public/js/app/callouts/utils/adjustCalloutToPaddings.js","webpack:///./node_modules/core-js/modules/es.typed-array.map.js","webpack:///./public/js/components/FreeLayoutEditor/handlers/handle/bulkTransform.js","webpack:///./public/js/components/InfographicSideButtons/InfographicSideButtons.react.js","webpack:///./node_modules/core-js/modules/es.typed-array.set.js","webpack:///./node_modules/core-js/modules/es.string.iterator.js","webpack:///./public/js/components/FreeLayoutEditor/immutable/InfographicEntity.js","webpack:///./node_modules/@prezi/client-logger-module/node_modules/axios/lib/adapters/xhr.js","webpack:///./public/js/components/InfographicSettings/InfographicSettings.constants.js","webpack:///./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","webpack:///./public/js/web/ResponsiveInfographic/Text/BodyText.react.js","webpack:///./public/js/components/filters/filters/Sepia.react.js","webpack:///./public/js/utils/invariant.js","webpack:///./node_modules/core-js/modules/es.math.cbrt.js","webpack:///./node_modules/core-js/modules/es.reflect.define-property.js","webpack:///./public/js/web/ResponsiveInfographic/ResponsiveInfographic.react.js","webpack:///./public/js/components/Avatar/Avatar.css?325e","webpack:///./public/js/components/FreeLayoutEditor/modifier/moveEntitiesWithSnapping.js","webpack:///./public/js/components/FreeLayoutEditor/overlay/MouseSelectionOverlay.css?085d","webpack:///./node_modules/scheduler/index.js","webpack:///./node_modules/core-js/modules/es.math.hypot.js","webpack:///./node_modules/core-js/modules/es.array.unscopables.flat.js","webpack:///./node_modules/core-js/internals/this-number-value.js","webpack:///./node_modules/core-js/modules/es.math.clz32.js","webpack:///./node_modules/core-js/modules/es.array.for-each.js","webpack:///./public/js/components/Avatar/Avatar.react.js","webpack:///./public/js/components/Avatar/Avatar.css","webpack:///./node_modules/core-js/internals/path.js","webpack:///./public/js/shared/slug.js","webpack:///./public/js/components/filters/filters/SanFrancisco.react.js","webpack:///./public/js/app/chart_options/constants/chart_settings.js","webpack:///./public/js/components/filters/filters/Blur.react.js","webpack:///./public/js/widgets/ProgressBar/style.css","webpack:///./public/js/app/freelayout_editor/components/contents/Image/Icon.react.js","webpack:///./public/js/store/constants/revisions.js","webpack:///./public/js/web/ResponsiveInfographic/Text/Headline.react.js","webpack:///./node_modules/core-js/modules/web.timers.js","webpack:///./public/js/utils/publicPath.js","webpack:///./node_modules/core-js/internals/indexed-object.js","webpack:///./node_modules/core-js/internals/host-report-errors.js","webpack:///./node_modules/core-js/internals/add-to-unscopables.js","webpack:///./node_modules/core-js/internals/is-regexp.js","webpack:///./public/js/components/FreeLayoutEditor/handlers/callout/index.js","webpack:///./node_modules/core-js/modules/es.array.some.js","webpack:///./public/js/components/SideMenuSettings/constants.js","webpack:///./node_modules/core-js/modules/es.string.match.js","webpack:///./public/js/components/InfographicFooter/FlexFooter.css?855c","webpack:///./public/js/app/download/stores/DownloadPageStore.js","webpack:///./node_modules/d3-color/src/index.js","webpack:///./node_modules/core-js/internals/species-constructor.js","webpack:///./public/js/components/filters/filters/HDR.react.js","webpack:///./node_modules/core-js/internals/native-symbol.js","webpack:///./node_modules/core-js/modules/es.string.trim.js","webpack:///./public/js/components/EngagementAnalytics/EngagementAnalytics.actions.js","webpack:///./public/js/app/freelayout_editor/components/contents/Group/utils/isPartOfGroup.js","webpack:///./node_modules/core-js/modules/es.typed-array.float64-array.js","webpack:///./public/js/app/download/stores/SelectionFrameStore.js","webpack:///./node_modules/@prezi/client-logger-module/node_modules/axios/lib/core/dispatchRequest.js","webpack:///./node_modules/core-js/modules/es.reflect.construct.js","webpack:///./public/js/app/download/stores/OutlineStore.js","webpack:///./public/js/shared/chart_constants_inverse.js","webpack:///./public/js/app/freelayout_editor/stores/SelectionStateStore.js","webpack:///./public/js/components/FreeLayoutEditor/handlers/actions/setCreatedConnector.js","webpack:///./public/js/components/FreeLayoutEditor/handlers/handle/index.js","webpack:///./public/js/components/FreeLayoutEditor/handlers/edit/editOnMouseDown.js","webpack:///./node_modules/core-js/modules/es.object.entries.js","webpack:///./public/js/web/WebInfographicThumbnail/WebInfographicThumbnail.css?a370","webpack:///./public/js/web/WebSearchView.react.js","webpack:///./public/js/web/ResponsiveInfographic/style.css?79f3","webpack:///./node_modules/core-js/modules/es.string.sub.js","webpack:///./public/js/components/FreeLayoutEditor/modifier/addEntitiesInternal.js","webpack:///./public/js/app/freelayout_editor/Scroll/store.js","webpack:///./node_modules/react-is/index.js","webpack:///./node_modules/classnames/index.js","webpack:///./public/js/app/freelayout_editor/components/contents/Media/Link.react.js","webpack:///./node_modules/core-js/modules/es.regexp.constructor.js","webpack:///./node_modules/core-js/internals/array-includes.js","webpack:///./public/js/components/DataTable/actions/fetchNewLiveData.js","webpack:///./node_modules/core-js/modules/es.string.pad-start.js","webpack:///./node_modules/core-js/modules/es.array.filter.js","webpack:///./node_modules/core-js/internals/array-from.js","webpack:///./public/js/components/FreeLayoutEditor/util/clippedEntity.js","webpack:///./node_modules/core-js/modules/es.array.sort.js","webpack:///./node_modules/core-js/modules/es.map.js","webpack:///./public/js/app/callouts/constants/config.js","webpack:///./node_modules/core-js/modules/es.regexp.flags.js","webpack:///./public/js/common/isIE.js","webpack:///./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack:///./public/js/app/freelayout_editor/components/contents/TooltipWrapper.react.js","webpack:///./public/js/app/freelayout_editor/components/contents/Shape/shape.css","webpack:///./node_modules/core-js/internals/to-length.js","webpack:///./public/js/contexts/theme/prezigram.js","webpack:///./node_modules/core-js/internals/has.js","webpack:///./public/js/app/download/stores/SeriesRecord.js","webpack:///./node_modules/core-js/internals/date-to-primitive.js","webpack:///./node_modules/d3-color/src/math.js","webpack:///./node_modules/@prezi/client-logger-module/lib/src/client.logger.js","webpack:///./node_modules/core-js/modules/es.string.replace.js","webpack:///./node_modules/core-js/modules/es.math.acosh.js","webpack:///./public/js/app/callouts/components/CalloutCloseButton.react.js","webpack:///./node_modules/react-transition-group/esm/ReplaceTransition.js","webpack:///./node_modules/core-js/modules/es.number.to-precision.js","webpack:///./public/js/components/FreeLayoutEditor/handlers/drag/index.js","webpack:///./public/js/web/ResponsiveInfographic/ResponsiveInfographic.css","webpack:///./public/js/app/freelayout_editor/components/Presentation/icon-left.svg","webpack:///./public/js/app/freelayout_editor/components/Presentation/PointerEventsCatcher.react.js","webpack:///./public/js/app/freelayout_editor/components/contents/Media/StyledMedia.js","webpack:///./public/js/prezigram/userInfo.ts","webpack:///./node_modules/react-transition-group/esm/TransitionGroup.js","webpack:///./public/js/app/freelayout_editor/components/contents/AccessibleWrapper.js","webpack:///./node_modules/core-js/internals/shared.js","webpack:///./node_modules/core-js/internals/own-keys.js","webpack:///./node_modules/core-js/modules/es.object.lookup-setter.js","webpack:///./public/js/app/freelayout_editor/components/contents/Group/utils/disassembleGroup.js","webpack:///./node_modules/@prezi/client-logger-module/node_modules/axios/lib/helpers/combineURLs.js","webpack:///./public/js/components/InfographicSideButtons/icon-share.svg","webpack:///./node_modules/core-js/modules/es.number.is-safe-integer.js","webpack:///./public/js/components/FreeLayoutEditor/modifier/removeEntities.js","webpack:///./node_modules/core-js/internals/whitespaces.js","webpack:///./node_modules/core-js/internals/string-trim.js","webpack:///./node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack:///./public/js/components/Dialogs/PublicDownloadDialog.react.js","webpack:///./public/js/app/freelayout_editor/actions/imageClipping.js","webpack:///./node_modules/@prezi/client-logger-module/lib/src/index.js","webpack:///./node_modules/core-js/internals/not-a-regexp.js","webpack:///./public/js/app/main/actions/loadInfographic.js","webpack:///./public/js/web/WebInfographicsGrid/WebInfographicsGrid.react.js","webpack:///./node_modules/core-js/internals/hide.js","webpack:///./node_modules/core-js/modules/es.typed-array.join.js","webpack:///./public/js/app/progress_dialog/constants.js","webpack:///./public/js/widgets/Reveal/Dropdown.react.js","webpack:///./public/js/components/ElementMenu/constants/ElementMenuConstants.js","webpack:///./node_modules/core-js/internals/create-property-descriptor.js","webpack:///./node_modules/@prezi/client-logger-module/node_modules/axios/lib/cancel/isCancel.js","webpack:///./node_modules/custom-event-polyfill/custom-event-polyfill.js","webpack:///./client/components/charts/tooltip.js","webpack:///./node_modules/core-js/modules/es.typed-array.uint8-array.js","webpack:///./node_modules/core-js/modules/es.reflect.get.js","webpack:///./node_modules/core-js/es/index.js","webpack:///./node_modules/core-js/modules/es.array.flat-map.js","webpack:///./public/js/web/RelatedInfographics/RelatedInfographics.react.js","webpack:///./node_modules/core-js/modules/es.array.of.js","webpack:///./public/js/components/FreeLayoutEditor/handlers/handle/utils.js","webpack:///./node_modules/core-js/internals/is-integer.js","webpack:///./node_modules/type/object/is.js","webpack:///./public/js/store/reducers/footer-settings.js","webpack:///./public/js/app/freelayout_editor/components/contents/Shape/Line.react.js","webpack:///./node_modules/i18next/dist/esm/i18next.js","webpack:///./node_modules/fbemitter/index.js","webpack:///./node_modules/d3-color/src/define.js","webpack:///./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack:///./node_modules/core-js/modules/es.set.js","webpack:///./node_modules/core-js/modules/es.typed-array.iterator.js","webpack:///./public/js/shared/fonts.js","webpack:///./node_modules/core-js/internals/object-assign.js","webpack:///./public/js/components/FreeLayoutEditor/modifier/blockAnimationSequence.js","webpack:///./public/js/web/WebInfographicThumbnail/WebInfographicThumbnail.css","webpack:///./node_modules/core-js/internals/array-buffer.js","webpack:///./node_modules/es5-ext/object/is-value.js","webpack:///./public/js/app/freelayout_editor/components/Presentation/icon-right.svg","webpack:///(webpack)/buildin/module.js","webpack:///./node_modules/d3-color/src/lab.js","webpack:///./node_modules/type/function/is.js","webpack:///./public/js/shared/freeLayoutVariablePlaceholders.js","webpack:///./public/js/common/GridHelpers.js","webpack:///./public/js/shared/mediaAssets.js","webpack:///./public/js/web/RelatedInfographics/RelatedInfographics.css?8931","webpack:///./public/js/app/freelayout_editor/actions/updateExternalChartData.js","webpack:///./public/js/app/constants.js","webpack:///./public/js/web/Header/Header.css","webpack:///./node_modules/core-js/modules/es.typed-array.some.js","webpack:///./public/js/web/SharePlaceholder/SharePlaceholder.react.js","webpack:///./node_modules/core-js/internals/date-to-iso-string.js","webpack:///./public/js/components/IntersectionObserver/PageIntersectionObserver.js","webpack:///./node_modules/react-transition-group/node_modules/prop-types/index.js","webpack:///./node_modules/core-js/internals/string-multibyte.js","webpack:///./node_modules/core-js/internals/collection-strong.js","webpack:///./public/js/components/Dialogs/ShareDialog.react.js","webpack:///./public/js/app/dispatcher.js","webpack:///./node_modules/core-js/internals/array-species-create.js","webpack:///./public/js/components/FreeLayoutEditor/handlers/allHandlers.js","webpack:///./node_modules/core-js/modules/es.string.sup.js","webpack:///./public/js/components/Dialogs/images/linkedin.svg","webpack:///./public/js/app/freelayout_editor/components/Presentation/icon-cancel.svg","webpack:///./public/js/shared/ImmutablePropertyReconciler.js","webpack:///./node_modules/core-js/modules/es.symbol.search.js","webpack:///./node_modules/core-js/modules/es.math.log10.js","webpack:///./public/js/components/CoverImage/CoverImage.react.js","webpack:///./public/js/web/ResponsiveInfographic/Media/Iframe.react.js","webpack:///./node_modules/style-loader/lib/addStyles.js","webpack:///./public/js/app/freelayout_editor/components/contents/Image/ImageMask.react.js","webpack:///./public/js/app/freelayout_editor/components/Presentation/ControlBox.css?bb53","webpack:///./public/js/store/constants/action-types.js","webpack:///./node_modules/core-js/internals/webkit-string-pad-bug.js","webpack:///./node_modules/core-js/internals/internal-state.js","webpack:///./public/js/web/Footer/Footer.css","webpack:///./public/js/prezigram/DialogContext.tsx","webpack:///./node_modules/@prezi/client-logger-module/node_modules/axios/lib/core/transformData.js","webpack:///./public/js/widgets/dialog/Dialog.react.js","webpack:///./node_modules/core-js/internals/parse-float.js","webpack:///./node_modules/core-js/internals/object-to-array.js","webpack:///./public/js/components/FreeLayoutEditor/content/InfographicContents.js","webpack:///./public/js/components/IntersectionObserver/Observer.js","webpack:///./node_modules/performance-now/lib/performance-now.js","webpack:///./public/js/app/freelayout_editor/components/contents/Shape/Polygon.react.js","webpack:///./public/js/app/download/constants/DownloadTypes.js","webpack:///./node_modules/core-js/internals/collection.js","webpack:///./public/js/app/freelayout_editor/components/MaybeRotate.react.js","webpack:///./public/js/web/Header/icon-download-dark.svg","webpack:///./node_modules/whatwg-fetch/fetch.js","webpack:///./public/js/views/account_logic.js","webpack:///./public/js/web/ResponsiveInfographic/Text/Separator.react.js","webpack:///./node_modules/core-js/modules/es.date.now.js","webpack:///./node_modules/core-js/internals/redefine.js","webpack:///./node_modules/core-js/modules/es.typed-array.fill.js","webpack:///./public/js/components/InfographicSideButtons/icon-presentation.svg","webpack:///./node_modules/es5-ext/object/keys/shim.js","webpack:///./node_modules/core-js/modules/es.array.unscopables.flat-map.js","webpack:///./public/js/components/filters/filters/Budapest.react.js","webpack:///./node_modules/core-js/modules/es.object.get-own-property-names.js","webpack:///./public/js/widgets/spinner/Spinner.react.js","webpack:///./public/js/components/InfographicFooter/Footer.react.js","webpack:///./node_modules/core-js/internals/inherit-if-required.js","webpack:///./node_modules/react-stickyfill/node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack:///./public/js/components/FreeLayoutEditor/handlers/callout/resizeCallout.js","webpack:///./public/js/components/InfographicSideButtons/InfographicSideButtons.css","webpack:///./node_modules/core-js/modules/es.typed-array.to-string.js","webpack:///./public/js/web/ResponsiveInfographic/ResponsiveInfographic.css?63da","webpack:///./node_modules/core-js/internals/object-get-own-property-symbols.js","webpack:///./node_modules/core-js/internals/define-well-known-symbol.js","webpack:///./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","webpack:///./node_modules/@prezi/client-logger-module/lib/src/glassbox/PreziAirWeb.js","webpack:///./node_modules/core-js/internals/typed-array-constructor.js","webpack:///./node_modules/react-transition-group/esm/Transition.js","webpack:///./node_modules/@prezi/client-logger-module/node_modules/axios/lib/utils.js","webpack:///./public/js/components/InfographicFooter/FlexFooter.react.js","webpack:///./node_modules/dom-helpers/esm/addClass.js","webpack:///./public/js/widgets/spinner/PrezigramSpinner.tsx","webpack:///./public/js/components/Dialogs/ShareDialog.css","webpack:///./public/js/components/FreeLayoutEditor/MouseSelection/store.js","webpack:///./public/js/utils/backlink.js","webpack:///./public/js/components/FreeLayoutEditor/MouseSelection/constants.js","webpack:///./node_modules/es5-ext/object/keys/index.js","webpack:///./node_modules/core-js/internals/enum-bug-keys.js","webpack:///./node_modules/core-js/modules/es.math.tanh.js","webpack:///./public/js/web/ResponsiveInfographic/Media/Icon.react.js","webpack:///./public/js/app/freelayout_editor/components/contents/Link/LinkPreview.css","webpack:///./public/js/components/DataTable/DataEditor.constants.js","webpack:///./public/js/components/FreeLayoutEditor/base/constants.js","webpack:///./public/js/components/Dialogs/PublicDownloadDialog.css","webpack:///./node_modules/core-js/modules/es.math.asinh.js","webpack:///./public/js/app/freelayout_editor/components/Presentation/animations.css?62b4","webpack:///./node_modules/react-transition-group/node_modules/prop-types/factoryWithThrowingShims.js","webpack:///./node_modules/core-js/modules/es.object.define-property.js","webpack:///./public/js/app/freelayout_editor/components/Presentation/store.js","webpack:///./public/js/components/InspectorPanel/panels/ProjectSettings/store.js","webpack:///./node_modules/core-js/internals/to-object.js","webpack:///./node_modules/core-js/modules/es.reflect.get-prototype-of.js","webpack:///./node_modules/@prezi/client-logger-module/lib/src/glassbox.client.logger.js","webpack:///./public/js/app/callouts/utils/getCalloutBounds.js","webpack:///./node_modules/core-js/internals/native-weak-map.js","webpack:///./public/js/components/FreeLayoutEditor/util/CompatibilityCoverImage.css","webpack:///./node_modules/@prezi/client-logger-module/node_modules/axios/lib/core/InterceptorManager.js","webpack:///./node_modules/core-js/internals/object-create.js","webpack:///./public/js/widgets/ProgressBar/index.js","webpack:///./public/js/app/freelayout_editor/components/Presentation/actions.js","webpack:///./public/js/app/freelayout_editor/components/Presentation/ControlBox.react.js","webpack:///./public/js/shared/createWebFontLoaderConfig.js","webpack:///./node_modules/core-js/modules/es.array.find.js","webpack:///./node_modules/core-js/internals/define-iterator.js","webpack:///./public/js/common/eventListenerOptions.js","webpack:///./public/js/common/keys.js","webpack:///./node_modules/node-libs-browser/node_modules/events/events.js","webpack:///./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","webpack:///./node_modules/react-stickyfill/lib/index.js","webpack:///./node_modules/core-js/modules/es.reflect.set.js","webpack:///./node_modules/core-js/internals/descriptors.js","webpack:///./public/js/web/Header/Header.css?4166","webpack:///./node_modules/core-js/modules/es.symbol.replace.js","webpack:///./public/js/components/FreeLayoutEditor/base/InfographicEditor.css","webpack:///./public/js/config.js","webpack:///./public/js/app/freelayout_editor/components/Presentation/ControlBox.css","webpack:///./node_modules/core-js/modules/es.symbol.to-primitive.js","webpack:///./node_modules/core-js/modules/es.symbol.unscopables.js","webpack:///./node_modules/core-js/internals/array-fill.js","webpack:///./node_modules/react-stickyfill/node_modules/stickyfill/dist/stickyfill.js","webpack:///./node_modules/core-js/internals/an-object.js","webpack:///./node_modules/core-js/modules/es.array-buffer.is-view.js","webpack:///./node_modules/core-js/modules/es.typed-array.includes.js","webpack:///./public/js/app/progress_dialog/components/progress_dialog.react.js","webpack:///./public/js/components/filters/filters/Bronze.react.js","webpack:///./public/js/common/chart_factory/entities.js","webpack:///./public/js/components/FreeLayoutEditor/base/CustomFontLoader.js","webpack:///./node_modules/core-js/internals/create-property.js","webpack:///./node_modules/core-js/modules/es.string.search.js","webpack:///./public/js/app/connectors/components/contents/Connector/index.js","webpack:///./node_modules/core-js/modules/es.string.pad-end.js","webpack:///./public/js/app/connectors/modifier/connectorBounds.js","webpack:///./node_modules/element-closest/element-closest.js","webpack:///./node_modules/core-js/modules/es.typed-array.uint16-array.js","webpack:///./node_modules/core-js/internals/create-html.js","webpack:///./node_modules/fbemitter/lib/EmitterSubscription.js","webpack:///./node_modules/core-js/internals/is-object.js","webpack:///./public/js/app/freelayout_editor/constants/EditorConstants.js","webpack:///./public/js/web/WebSearchView.css?f5b9","webpack:///./public/js/components/filters/DynamicFiltersProvider.css","webpack:///./public/js/app/freelayout_editor/actions/groupEditMode.js","webpack:///./public/js/components/Dialogs/ShareDialog.css?0844","webpack:///./public/js/components/IntersectionObserver/IntersectionObserverListener.js","webpack:///./public/js/components/InfographicSideButtons/icon-cancel.svg","webpack:///./node_modules/core-js/modules/es.reflect.set-prototype-of.js","webpack:///./node_modules/core-js/modules/es.number.is-integer.js","webpack:///./public/js/components/FreeLayoutEditor/overlay/MouseSelectionOverlay.js","webpack:///./public/js/models/infographic.js","webpack:///./node_modules/react-transition-group/esm/index.js","webpack:///./public/js/components/CoverImage/CoverImage.css","webpack:///./node_modules/core-js/modules/es.typed-array.uint8-clamped-array.js","webpack:///./node_modules/core-js/modules/es.string.ends-with.js","webpack:///./node_modules/core-js/internals/advance-string-index.js","webpack:///./node_modules/core-js/modules/es.typed-array.int16-array.js","webpack:///./node_modules/@prezi/client-logger-module/node_modules/axios/lib/core/enhanceError.js","webpack:///./public/js/web/ResponsiveInfographic/Chart.react.js","webpack:///./node_modules/core-js/internals/math-expm1.js","webpack:///./node_modules/core-js/modules/es.symbol.match-all.js","webpack:///./public/js/app/freelayout_editor/components/Presentation/constants.js","webpack:///./node_modules/type/value/is.js","webpack:///./node_modules/screenfull/dist/screenfull.js","webpack:///./node_modules/type/prototype/is.js","webpack:///./public/js/app/callouts/utils/shouldAdjustCalloutInnerPadding.js","webpack:///./public/js/components/FreeLayoutEditor/handlers/actions/setActiveHandle.js","webpack:///./node_modules/core-js/modules/es.math.log2.js","webpack:///./node_modules/core-js/internals/uid.js","webpack:///./public/js/components/FreeLayoutEditor/immutable/InfographicContentBlock.js","webpack:///./node_modules/core-js/modules/es.number.is-nan.js","webpack:///./node_modules/react-stickyfill/node_modules/prop-types/index.js","webpack:///./public/js/app/freelayout_editor/components/Presentation/Presentation.css?e3be","webpack:///./node_modules/core-js/internals/regexp-exec.js","webpack:///./public/js/app/callouts/components/animation.css?b375","webpack:///./public/js/components/FreeLayoutEditor/MouseSelection/actions.js","webpack:///./node_modules/core-js/modules/es.string.fontcolor.js","webpack:///./public/js/components/filters/filters/FakeVignette.js","webpack:///./node_modules/core-js/modules/es.symbol.to-string-tag.js","webpack:///./node_modules/core-js/internals/is-forced.js","webpack:///./node_modules/@prezi/client-logger-module/lib/src/glassbox/WebJs.js","webpack:///./public/js/components/InfographicSideButtons/InfographicSideButtons.css?9bbc","webpack:///./public/js/app/freelayout_editor/components/contents/Chart/Chart.react.js","webpack:///./public/js/app/freelayout_editor/components/contents/Shape/shapeDimensions.js","webpack:///./node_modules/es5-ext/object/valid-value.js","webpack:///./public/js/components/filters/filters/Brightness.react.js","webpack:///./node_modules/regenerator-runtime/runtime.js","webpack:///./public/js/models/theme.js","webpack:///./node_modules/core-js/internals/object-define-property.js","webpack:///./node_modules/@prezi/client-logger-module/node_modules/axios/lib/helpers/cookies.js","webpack:///./node_modules/core-js/internals/call-with-safe-iteration-closing.js","webpack:///./public/js/components/filters/DynamicFiltersProvider.css?d515","webpack:///./node_modules/core-js/modules/web.url-search-params.js","webpack:///./public/js/web/PasswordPrompt/PasswordPrompt.css","webpack:///./public/js/app/freelayout_editor/actions/updateEntity.js","webpack:///./public/js/app/connectors/modifier/connectorTransform.js","webpack:///./public/js/web/WebInfographicView.css?157a","webpack:///./public/js/web/ResponsiveInfographic/AccessibilityDescriptionStyle.js","webpack:///./node_modules/core-js/modules/es.string.link.js","webpack:///./public/js/app/freelayout_editor/components/contents/Link/LinkPreview.css?ff38","webpack:///./public/js/components/InfographicFooter/ShareButton.react.js","webpack:///./public/js/components/FreeLayoutEditor/immutable/Rectangle.js","webpack:///./node_modules/core-js/modules/es.array.concat.js","webpack:///./public/js/components/InfographicFooter/constants.js","webpack:///./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","webpack:///./node_modules/core-js/internals/get-iterator.js","webpack:///./node_modules/core-js/modules/es.typed-array.copy-within.js","webpack:///./public/js/app/callouts/components/Callouts.css","webpack:///./node_modules/core-js/modules/es.math.atanh.js","webpack:///./node_modules/core-js/modules/web.queue-microtask.js","webpack:///./public/js/components/FreeLayoutEditor/overlay/EntitySelectionOverlay.js","webpack:///./public/js/store/reducers/index.js","webpack:///./public/js/common/loadThemeAssets.js","webpack:///./node_modules/core-js/modules/es.reflect.get-own-property-descriptor.js","webpack:///./node_modules/core-js/internals/function-to-string.js","webpack:///./node_modules/core-js/internals/create-iterator-constructor.js","webpack:///./public/js/utils/UpdateLoop.js","webpack:///./public/js/components/FreeLayoutEditor/modifier/addEntities.js","webpack:///./public/js/widgets/Reveal/icon-up.svg","webpack:///./public/js/app/connectors/components/contents/Connector/utils.js","webpack:///./public/js/components/FreeLayoutEditor/handlers/edit/editOnMouseLeave.js","webpack:///./public/js/app/freelayout_editor/components/Presentation/ScrollPage.react.js","webpack:///./public/js/app/freelayout_editor/components/contents/Shape/constants.js","webpack:///./node_modules/core-js/internals/typed-array-from.js","webpack:///./public/js/shared/url.js","webpack:///./public/js/app/freelayout_editor/components/contents/Media/Flickr.react.js","webpack:///./public/js/components/FreeLayoutEditor/immutable/Transform.js","webpack:///./node_modules/core-js/modules/es.array.join.js","webpack:///./node_modules/core-js/modules/es.string.match-all.js","webpack:///./node_modules/fbjs/lib/emptyFunction.js","webpack:///./public/js/components/FreeLayoutEditor/modifier/InfographicEditorUtils.js","webpack:///./node_modules/core-js/internals/flatten-into-array.js","webpack:///./public/js/components/FreeLayoutEditor/util/CompatibilityCoverImage.css?ef62","webpack:///./node_modules/@prezi/client-logger-module/node_modules/axios/lib/helpers/parseHeaders.js","webpack:///./public/js/app/main/utils/createBackboneModelFromJSON.js","webpack:///./node_modules/core-js/modules/es.promise.finally.js","webpack:///./public/js/components/FreeLayoutEditor/handlers/handle/singleTransform.js","webpack:///./node_modules/core-js/modules/es.array.splice.js","webpack:///./node_modules/core-js/modules/es.symbol.js","webpack:///./node_modules/react-transition-group/esm/CSSTransition.js","webpack:///./public/js/web_viewer.js","webpack:///./public/js/components/Dialogs/PublicDownloadDialog.css?e28c","webpack:///./public/js/models/infographic/chart.js","webpack:///./public/js/shared/chart_constants.js","webpack:///./public/js/app/freelayout_editor/actions/updateEditorState.js","webpack:///./node_modules/core-js/modules/es.array.every.js","webpack:///./node_modules/core-js/modules/es.array.from.js","webpack:///./public/js/widgets/button/StyledButton.js","webpack:///./node_modules/core-js/internals/to-integer.js","webpack:///./public/js/components/Dialogs/images/icon-cancel.svg","webpack:///./public/js/components/FreeLayoutEditor/immutable/PageSize.js","webpack:///./node_modules/core-js/modules/es.reflect.apply.js","webpack:///./public/js/web/WebProfileView.css","webpack:///./public/js/app/freelayout_editor/components/contents/Group/utils/deleteEntitiesWithinGroup.js","webpack:///./public/js/app/callouts/components/Callout.css","webpack:///./node_modules/core-js/modules/es.array.copy-within.js","webpack:///./public/js/app/callouts/components/Callout.react.js","webpack:///./public/js/app/freelayout_editor/components/contents/Media/Youtube.react.js","webpack:///./public/js/components/FreeLayoutEditor/util/visibleGuidesFromMatches.js","webpack:///./node_modules/react-is/cjs/react-is.production.min.js","webpack:///./public/js/app/freelayout_editor/components/Presentation/ProgressBarNavigation.css?6b48","webpack:///./public/js/common/dom_utils.js","webpack:///./node_modules/core-js/modules/es.typed-array.every.js","webpack:///./node_modules/fbemitter/lib/EventSubscription.js","webpack:///./public/js/components/BaseImage/BaseImage.react.js","webpack:///./node_modules/core-js/modules/es.number.constructor.js","webpack:///./node_modules/@prezi/client-logger-module/lib/src/WebsiteLogger.js","webpack:///./node_modules/core-js/internals/correct-is-regexp-logic.js","webpack:///./public/js/web/ResponsiveInfographic/Text/Link.react.js","webpack:///./node_modules/core-js/modules/es.number.max-safe-integer.js","webpack:///./node_modules/core-js/modules/es.object.seal.js","webpack:///./public/js/widgets/spinner/index.js","webpack:///./webpack/setPublicPathFromScript.js","webpack:///./node_modules/core-js/modules/es.regexp.exec.js","webpack:///./node_modules/core-js/modules/es.reflect.delete-property.js","webpack:///./public/js/web/Header/icon-presentation-dark.svg","webpack:///./node_modules/core-js/internals/collection-weak.js","webpack:///./public/js/components/Avatar/index.js","webpack:///./node_modules/core-js/modules/es.date.to-iso-string.js","webpack:///./node_modules/core-js/modules/es.parse-float.js","webpack:///./node_modules/core-js/modules/es.array-buffer.slice.js","webpack:///./public/js/fluxContainer.ts","webpack:///./public/js/app/AppProvider.react.js","webpack:///./node_modules/core-js/internals/regexp-flags.js","webpack:///./node_modules/@prezi/client-logger-module/node_modules/axios/lib/helpers/normalizeHeaderName.js","webpack:///./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack:///./public/js/components/FreeLayoutEditor/util/compensateTransformOriginShift.js","webpack:///./node_modules/core-js/internals/iterators-core.js","webpack:///./public/js/components/BaseImage/SVGVignette.react.js","webpack:///./public/js/common/chart_factory/chart_reloader.js","webpack:///./node_modules/fbjs/lib/shallowEqual.js","webpack:///./public/js/app/main/actions/invalidateCurrentInfographic.js","webpack:///./public/js/app/download/extract_datasets.js","webpack:///./public/js/widgets/Reveal/icon-up-prezigram.svg","webpack:///./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack:///./node_modules/core-js/internals/user-agent.js","webpack:///./node_modules/core-js/modules/es.typed-array.to-locale-string.js","webpack:///./glassbox/logger_constants.js","webpack:///./public/js/app/download/constants/DownloadConstants.js","webpack:///./node_modules/core-js/internals/object-to-string.js","webpack:///./node_modules/css-loader/lib/url/escape.js","webpack:///./public/js/components/filters/filters/Seventies.react.js","webpack:///./node_modules/core-js/modules/es.function.name.js","webpack:///./public/js/app/download/stores/ToggleSettingsStore.js","webpack:///./public/js/web/ResponsiveInfographic/Media/Video.react.js","webpack:///./public/js/components/Dialogs/images/icon-cancel-dark.svg","webpack:///./node_modules/core-js/internals/sloppy-array-method.js","webpack:///./node_modules/perfect-scrollbar/dist/perfect-scrollbar.esm.js","webpack:///./node_modules/core-js/modules/es.data-view.js","webpack:///./public/js/app/freelayout_editor/components/contents/Shape/Ellipse.react.js","webpack:///./public/js/app/progress_dialog/actions/progress_dialog_actions.js","webpack:///./public/js/web/WebInfographicsGrid/WebInfographicsGrid.css?2f8d","webpack:///./public/js/web/ResponsiveInfographic/ResponsiveInfographic.store.js","webpack:///./public/js/components/FreeLayoutEditor/content/Grid.react.js","webpack:///./node_modules/core-js/modules/es.function.has-instance.js","webpack:///./node_modules/core-js/internals/microtask.js","webpack:///./public/js/widgets/ProgressBar/style.css?c066","webpack:///./node_modules/core-js/internals/well-known-symbol.js","webpack:///./node_modules/core-js/modules/es.symbol.async-iterator.js","webpack:///./node_modules/core-js/modules/es.object.keys.js","webpack:///./node_modules/core-js/modules/es.math.trunc.js","webpack:///./node_modules/core-js/modules/es.number.to-fixed.js","webpack:///./public/js/web/ResponsiveInfographic/ResponsiveInfographic.actions.js","webpack:///./public/js/components/FreeLayoutEditor/modifier/removeCallout.js","webpack:///./node_modules/core-js/internals/array-iteration.js","webpack:///./public/js/widgets/Reveal/icon-down-prezigram.svg","webpack:///./public/js/app/freelayout_editor/components/contents/Media/Video.react.js","webpack:///./public/js/components/BaseImage/BaseImage.css?6ddb","webpack:///./node_modules/core-js/modules/es.object.create.js","webpack:///./node_modules/react-transition-group/node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack:///./public/js/components/InspectorPanel/actions.js","webpack:///./public/js/app/freelayout_editor/components/contents/Text/createTextComponent.react.js","webpack:///./node_modules/core-js/modules/es.array.last-index-of.js","webpack:///./node_modules/core-js/internals/freezing.js","webpack:///./node_modules/core-js/modules/es.object.lookup-getter.js","webpack:///./public/js/widgets/Reveal/Reveal.css","webpack:///./public/js/components/FreeLayoutEditor/handlers/actions/setConnectorTargetEntity.js","webpack:///./node_modules/core-js/modules/es.math.imul.js","webpack:///./node_modules/core-js/internals/math-fround.js","webpack:///./node_modules/@babel/runtime/helpers/esm/objectSpread.js","webpack:///./public/js/components/FreeLayoutEditor/content/ContentItem.css?a494","webpack:///./node_modules/@babel/runtime/helpers/esm/createClass.js","webpack:///./node_modules/core-js/modules/web.url.to-json.js","webpack:///./public/js/app/freelayout_editor/types.js","webpack:///./node_modules/core-js/modules/es.number.parse-float.js","webpack:///./public/js/app/freelayout_editor/components/contents/Media/style.css?e482","webpack:///./public/js/widgets/button/Button.react.js","webpack:///./public/js/components/InfographicSideButtons/icon-more.svg","webpack:///./public/js/app/freelayout_editor/components/contents/Image/Image.react.js","webpack:///./node_modules/core-js/internals/wrapped-well-known-symbol.js","webpack:///./node_modules/core-js/internals/to-primitive.js","webpack:///./node_modules/core-js/modules/es.function.bind.js","webpack:///./public/js/app/freelayout_editor/components/contents/Link/Link.react.js","webpack:///./node_modules/core-js/modules/es.array-buffer.constructor.js","webpack:///./node_modules/core-js/modules/es.typed-array.filter.js","webpack:///./node_modules/core-js/modules/es.object.from-entries.js","webpack:///./public/js/app/freelayout_editor/components/Presentation/animations.css","webpack:///./node_modules/@prezi/client-logger-module/node_modules/axios/lib/axios.js","webpack:///./public/js/web/ResponsiveInfographic/Media/Url.react.js","webpack:///./public/js/app/freelayout_editor/components/contents/Media/Vimeo.react.js","webpack:///./node_modules/@babel/runtime/helpers/esm/extends.js","webpack:///./public/js/components/FreeLayoutEditor/overlay/MouseSelectionOverlay.css","webpack:///./node_modules/core-js/modules/es.array.find-index.js","webpack:///./node_modules/core-js/modules/es.reflect.has.js","webpack:///./public/js/app/main/stores/PaletteStore.js","webpack:///./node_modules/core-js/modules/es.string.fixed.js","webpack:///./node_modules/core-js/internals/is-pure.js","webpack:///./node_modules/uuid/v1.js","webpack:///./node_modules/raf/index.js","webpack:///../../src/index.tsx","webpack:///./public/js/components/FreeLayoutEditor/handlers/store.js","webpack:///./public/js/web/WebInfographicsGrid/WebInfographicsGrid.css","webpack:///./public/js/app/freelayout_editor/Scroll/actions.js","webpack:///./node_modules/core-js/modules/es.string.italics.js","webpack:///./public/js/components/InfographicFooter/Copyright.react.js","webpack:///./node_modules/uuid/v4.js","webpack:///./public/js/app/freelayout_editor/components/contents/Media/EditableVideo.react.js","webpack:///./node_modules/d3-dispatch/src/dispatch.js","webpack:///./node_modules/core-js/internals/classof-raw.js","webpack:///./public/js/components/BaseImage/BaseImage.css","webpack:///./public/js/components/FreeLayoutEditor/content/AccessibleReadingOrderUtils.js","webpack:///./public/js/web/WebView.actions.js","webpack:///./public/js/components/InspectorPanel/panels/PageAutoLayout/utils/autoLayoutBetaFlags.js","webpack:///(webpack)/buildin/global.js","webpack:///./public/js/components/FreeLayoutEditor/dom.js","webpack:///./node_modules/core-js/modules/es.object.is-extensible.js","webpack:///./public/js/web/SearchForm/SearchForm.react.js","webpack:///./public/js/components/InspectorPanel/constants.js","webpack:///./public/js/common/responsiveFooter.js","webpack:///./public/js/app/main/stores/CurrentInfographicStore.js","webpack:///./node_modules/core-js/modules/es.string.small.js","webpack:///./node_modules/core-js/modules/es.array.index-of.js","webpack:///./node_modules/core-js/internals/punycode-to-ascii.js","webpack:///./node_modules/react-immutable-proptypes/dist/ImmutablePropTypes.js","webpack:///./node_modules/event-emitter/index.js","webpack:///./node_modules/core-js/modules/es.math.log1p.js","webpack:///./node_modules/core-js/internals/object-keys-internal.js","webpack:///./node_modules/core-js/modules/es.typed-array.reduce.js","webpack:///./node_modules/core-js/modules/es.array.includes.js","webpack:///./public/js/components/FreeLayoutEditor/handlers/edit/editOnMouseUp.js","webpack:///./node_modules/core-js/modules/es.array.fill.js","webpack:///./node_modules/@prezi/client-logger-module/node_modules/axios/lib/cancel/Cancel.js","webpack:///./node_modules/core-js/modules/es.typed-array.float32-array.js","webpack:///./node_modules/core-js/internals/document-create-element.js","webpack:///./public/js/app/freelayout_editor/components/contents/Shape/Rectangle.react.js","webpack:///./node_modules/scroll/index.js","webpack:///./node_modules/core-js/modules/es.string.bold.js","webpack:///./node_modules/@prezi/client-logger-module/lib/src/utils.js","webpack:///./node_modules/core-js/modules/es.object.assign.js","webpack:///./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack:///./public/js/app/freelayout_editor/Scroll/events.js","webpack:///./node_modules/core-js/modules/es.typed-array.reverse.js","webpack:///./public/js/shared/backgroundTask/client.js","webpack:///./public/js/components/filters/types.js","webpack:///./node_modules/core-js/internals/promise-resolve.js","webpack:///./node_modules/core-js/internals/set-global.js","webpack:///./public/js/web/WebInfographicView.react.js","webpack:///./node_modules/core-js/modules/es.object.prevent-extensions.js","webpack:///./public/js/shared/tableChartCellRegex.js","webpack:///./public/js/components/FreeLayoutEditor/overlay/SmartGuidesOverlay.css"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","exports","module","l","e","promises","installedChunkData","promise","Promise","resolve","reject","onScriptComplete","script","document","createElement","charset","timeout","nc","setAttribute","src","p","jsonpScriptSrc","error","Error","event","onerror","onload","clearTimeout","chunk","errorType","type","realSrc","target","message","name","request","undefined","setTimeout","head","appendChild","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","err","console","jsonpArray","window","oldJsonpFunction","slice","$","isObject","isArray","toAbsoluteIndex","toLength","toIndexedObject","createProperty","arrayMethodHasSpeciesSupport","SPECIES","wellKnownSymbol","nativeSlice","max","Math","proto","forced","start","end","Constructor","O","this","k","fin","constructor","Array","updateActiveHandle","pointerLocation","Dispatcher","dispatch","UPDATE_ACTIVE_HANDLE","locals","renderThumbnailItemContents","entity","design","extraProps","containerProps","renderItemContentsFn","readOnly","getProperty","renderThumbnail","getType","renderItemContents","liveData","animateCharts","viewMode","aFunction","fn","that","a","b","arguments","clipT","num","denom","tE","tL","abs","box","da","db","x1","y1","dx","dy","indexOf","String","searchString","contains","jQuery","require","content","options","transform","TEMPLATE_PREVIEW_TEMPLATE_LOADING","TEMPLATE_PREVIEW_TEMPLATE_LOADED","TEMPLATE_PREVIEW_TEMPLATE_LOAD_FAILED","TEMPLATE_PREVIEW_THEME_LOADING","TEMPLATE_PREVIEW_THEME_LOADED","TEMPLATE_PREVIEW_THEME_LOAD_FAILED","TEMPLATE_PREVIEW_SET_ACTIVE_PAGE","TEMPLATE_PREVIEW_LOADED","TEMPLATE_PREVIEW_CLOSED","PREZIGRAM_TEMPLATE_PREVIEW_LOADED","f","g","h","MessageChannel","q","unstable_now","u","Date","now","unstable_forceFrameRate","w","performance","x","y","z","A","cancelAnimationFrame","requestAnimationFrame","B","C","D","E","F","G","floor","H","I","port2","port1","onmessage","postMessage","J","K","L","M","pop","v","sortIndex","id","N","P","Q","R","S","T","U","V","callback","startTime","expirationTime","W","X","priorityLevel","Y","Z","unstable_ImmediatePriority","unstable_UserBlockingPriority","unstable_NormalPriority","unstable_IdlePriority","unstable_LowPriority","unstable_runWithPriority","unstable_next","unstable_scheduleCallback","delay","unstable_cancelCallback","unstable_wrapCallback","unstable_getCurrentPriorityLevel","unstable_shouldYield","unstable_requestPaint","unstable_continueExecution","unstable_pauseExecution","unstable_getFirstCallbackNode","unstable_Profiling","typedArrayConstructor","init","byteOffset","startResizing","START_RESIZING","expm1","nativeCosh","cosh","stat","Infinity","updateFlexData","chart","fromJS","attributes","withMutations","map","delete","deleteIn","size","getIn","updateExternalChartData","IndexedObject","requireObjectCoercible","it","migrateVersion","warnedAbout","migrateWarn","msg","migrateWarnings","warn","migrateMute","migrateTrace","trace","migrateWarnProp","obj","prop","configurable","set","newValue","_definePropertyBroken","migrateReset","compatMode","attrFn","attr","oldAttr","valueAttrGet","attrHooks","valueAttrSet","rnoType","rnoAttrNodeType","rboolean","ruseDefault","elem","pass","lowerName","toLowerCase","nType","nodeType","test","isFunction","nodeName","parentNode","attrNode","getAttributeNode","nodeValue","propName","removeAttr","propFix","matched","browser","findProp","oldInit","oldFind","find","oldParseJSON","parseJSON","rspaceAngle","rattrHashTest","rattrHashGlob","rquickExpr","selector","context","rootjQuery","match","ret","isPlainObject","exec","trim","charAt","parseHTML","ownerDocument","args","querySelector","err1","replace","_","op","err2","json","uaMatch","ua","version","navigator","userAgent","chrome","webkit","safari","boxModel","support","sub","jQuerySub","extend","superclass","instance","rootjQuerySub","internalSwapCall","swap","each","oldHook","cssHooks","old","style","ajaxSetup","converters","oldFnData","evt","_data","rscriptType","clean","elems","fragment","scripts","handleScript","jsTags","merge","buildFragment","childNodes","removeChild","getElementsByTagName","grep","concat","eventAdd","add","eventRemove","remove","eventTrigger","trigger","oldToggle","toggle","oldLive","live","oldDie","die","oldLoad","load","ajaxEvents","rajaxEvent","RegExp","rhoverHack","hoverHack","events","special","hover","props","unshift","types","handler","mappedTypes","triggerHandler","fn2","guid","toggler","lastToggle","preventDefault","click","on","off","onlyHandlers","split","setup","teardown","ready","oldSelf","andSelf","addBack","oldFnFind","Callbacks","oldDeferred","Deferred","tuples","func","deferred","pipe","fns","newDefer","tuple","returned","done","fail","progress","notify","isResolved","state","isRejected","runIgnoringErrors","compose","composeWithDevTools","devToolsEnhancer","noop","parsedReference","colors","colorMatch","resolved","indexString","index","parseInt","isNaN","startsWith","timeoutsShape","classNamesShape","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","fetchChartLiveData","sheetIndex","force","custom","infographicId","CurrentInfographicStore","params","fetch","chartId","join","response","ok","i18n","sheetNames","refreshed","allSheetNames","reloadChart","CHART_SETTINGS_REFRESH","updated","isEqual","input","idx","output","amountOf","filters","StyledLazyWrapper","styled","LazyWrapper","theme","PrezigramTheme","white","thumbnailEditorContext","chartNamespace","PageThumbnail","fluxContainer","withProps","EditorStateStore","prevState","block","editorState","getCurrentContent","getBlock","pageId","pageSize","getPageSize","thumbSize","height","maxHeight","width","maxWidth","aspectRatio","scale","min","blockOverlay","ReadOnlyFooter","observer","blockOverlayComponent","assets","getAssets","scaleX","scaleY","registerDOMNode","interactive","Component","propTypes","PropTypes","string","isRequired","number","shape","observe","unobserve","_symbols","removelist","symbols","code","word","slug","opts","toString","replacement","defaults","modes","keys","lengths","multicharmap","len","unicode","char","some","str","substr","charmap","charCodeAt","rl","lower","rfc3986","pretty","redefine","ObjectPrototype","unsafe","path","global","variable","namespace","method","downloadImage","format","infographic","download","imageFormat","downloadPDF","downloadHTML","downloadSingleObject","objectId","SelectionFrameStore","getObjectId","objectType","getObjectType","dataSetIndexes","getChildIndex","downloadSinglePage","pageIndex","hiddenPages","pull","range","DownloadPageStore","pagesCount","downloadSelection","selectionBounds","blockId","entityKeys","invariant","settings","transparentBackground","InterlinkedCharts","sheetName","sheetIndexes","EntityStore","getAllEntities","forEach","ElementsUtil","getChartSheet","payload","downloadType","downloadFileAndShowProgress","AccountLogic","profile","csrfToken","fileFormat","toUpperCase","logDownloadProjectWebJs","project_id","file_format","noneSelected","isResponsiveLayout","isResponsive","isFreeLayout","isFlex","hiddenElements","OutlineStore","readHiddenElements","ToggleSettingsStore","hiddenPageIndexes","ChartTabs","imageWidth","DownloadOutputSizeStore","imageHeight","assign","printHeight","printWidth","printingMode","orientation","DownloadConstants","DEFAULT_PAGE_ORIENTATION","marginTop","DEFAULT_MARGIN_MILLIMETERS","marginBottom","marginLeft","marginRight","printSizeType","showObjects","parts","clone","downloadItem","saveType","itemId","logDownloadObjectWebJs","object_id","download_object_format","url","moreHeaders","cancelled","showProgress","interval","label","onCancel","title","credentials","headers","body","JSON","stringify","taskId","task","TaskProgressMonitor","finishProgress","location","href","crashProgress","downloadPublic","HueRotate","amount","in1","values","in","FilterElementPropTypes","default","modifyConnector","connectorKey","connector","getEntity","found","filter","getKey","currentContent","getBlockKey","connectionTypes","blockKey","positions","getPositions","setIn","transformEntityConnectorToBlock","connectorData","getRoundRectangleFromConnector","toJS","setEntity","cleanupConnectors","connectorKeys","getEntities","ent","isConnector","createContext","ArrayBufferViewCore","$find","aTypedArray","exportProto","predicate","nativePropertyIsEnumerable","propertyIsEnumerable","getOwnPropertyDescriptor","NASHORN_BUG","1","descriptor","CalloutItem","visibleRect","calculateClippedRectangle","itemStyle","left","top","accessibility","getAccessibility","ariaHidden","enabled","rotate","inEditMode","className","calloutItem","aria-hidden","role","PureComponent","ImmutablePropTypes","record","getURL","defineWellKnownSymbol","anObject","aPossiblePrototype","setPrototypeOf","setter","CORRECT_SETTER","__proto__","ia","substring","ja","ka","aa","ba","la","ma","na","ea","oa","prefix","ca","fa","ha","use","sendEvent","eventData","core","client_time","platform","browser_language","language","userLanguage","referer","referrer","config","apiBase","event_name","log","logLoadedEditorWebJs","event_type","schema_id","logProgressedOnboardingBackWebJs","logProgressedOnboardingNameWebJs","logProgressedOnboardingOrganizationWebJs","logProgressedOnboardingPlanWebJs","logProgressedOnboardingPlanPageWebJs","logProgressedOnboardingRoleWebJs","logProgressedOnboardingTemplateWebJs","logAddObjectChartWebJs","logAddObjectImageWebJs","logAddObjectMapWebJs","logAddObjectShapeWebJs","logAddObjectTextWebJs","logChangeProjectStatusWebJs","logCloseProjectInFullScreenWebJs","logCreatedNewProjectWebJs","logCreateNewProjectWebJs","logGenerateTrackingLinkWebJs","logModifyObjectWebJs","logModifyProjectWebJs","logOpenProjectInFullScreenWebJs","logRemoveObjectWebJs","logSelectEmbedCodeWebJs","logSendEmailWebJs","logSignedUpWebJs","logSocialShareWebJs","logViewProjectInWebViewWebJs","logAddIntegrationWebJs","logAddObjectMediaWebJs","logLoggedInWebJs","logContactSupportWebJs","logContinueSubscriptionWebJs","logKeepSubscriptionWebJs","logKeepSubscriptionMissingFeaturesWebJs","logManageSubscriptionWebJs","logManageSubscriptionDoneWebJs","logSubscriptionPausedWebJs","logUnsubscribeCancelReasonDoneWebJs","logUnsubscribeMissingFeaturesDoneWebJs","logNavigateSlideshowWebJs","logStartUpgradeWebJs","logUpgradedSuccessfullyWebJs","logCloseSlideshowWebJs","logChoosePlanWebJs","logClosePreviewWebJs","logTemplatePreviewWebJs","logTemplatePreviewLoadedWebJs","logAddObjectGroupWebJs","logAddCollaboratorWebJs","logChangeProjectAccessWebJs","logChangeUserRoleWebJs","logInviteNewCollaberatorWebJs","logJoinedTeamWebJs","logMoveProjectToFolderWebJs","logMoveProjectToPrivateWebJs","logMoveProjectToTeamWebJs","logRemoveProjectWebJs","logRemoveUserWebJs","logRestoreProjectWebJs","logCreatedNewTeamWebJs","logChangeAnalyticsDateRangeWebJs","logCloseGdprBannerWebJs","logCreateTemplateWebJs","logDeleteProjectWebJs","logExportCsvAnalyticsWebJs","logSelectApiFieldWebJs","logSetAccountSettingWebJs","logViewAnalyticsWebJs","logViewAnalyticsProjectWebJs","logViewLanguageSwitcherWebJs","logViewPrivacyPageWebJs","logViewProductUpdatesWebJs","logViewPublicProfileWebJs","logCloseNpsWebJs","logOpenHelpWidgetWebJs","logSubmitNpsWebJs","logAddBrandColorWebJs","logChangeTeamProfileDownloadWebJs","logChangeTeamProfileFullscreenWebJs","logChangeTeamProfileShareWebJs","logChangeTeamProfileStyleWebJs","logChangeTeamProfileTypeWebJs","logEnableTeamBrandWebJs","logModifyTextColorWebJs","logModifyTextFontWebJs","logOpenBrandingWebJs","logSetBrandingThemeWebJs","logSetBrandingThemeAllTemplatesWebJs","logUploadBrandFontWebJs","logUploadBrandGraphicWebJs","logUploadBrandLogoWebJs","logClosePaymentFormWebJs","logOpenContactFormWebJs","logSubmitContactFormWebJs","logTriggeredPaymentFormValidationErrorWebJs","logAddCommentWebJs","logDeleteCommentWebJs","logFileImportedWebJs","logKickedOutWebJs","logPostCommentWebJs","logReplyToCommentWebJs","logResolveCommentWebJs","logShowCommentMarkersWebJs","logShowConversationsWebJs","logStartImportWebJs","logTriggeredUploadValidationErrorWebJs","logViewCommentInDocumentWebJs","logFilterCommentsByWebJs","logAddObjectElementWebJs","logOpenPageTransitionsWebJs","logOpenPreviewAsWebJs","logOpenShareDialogWebJs","logOpenViewExperienceWebJs","logChangeSharePreviewWebJs","logChangeViewExperienceWebJs","logCloseShareDialogWebJs","logAddObjectConnectorWebJs","logCollaboratorConnectedWebJs","logChangeFilterAdjustmentWebJs","logChangeGalleryImageFormatWebJs","logChangeGalleryImageSortWebJs","logDownloadGalleryImageWebJs","logRenameGalleryImageWebJs","logSearchElementsWebJs","logSearchGalleryImageWebJs","logSearchTemplateChooserWebJs","logSelectFilterPresetWebJs","logResetFiltersWebJs","logViewVersionHistoryWebJs","logOpenComparePlansWebJs","logModifyAnimationSettingWebJs","logModifyAnimationTriggerWebJs","logAddCalloutImageWebJs","logChangeCalloutBehaviourWebJs","logModifyCalloutWebJs","logOpenObjectCalloutWebJs","logRemoveCalloutWebJs","logChangeCalloutPositionWebJs","logModifyContentEntryActionWebJs","logOpenContentLibraryWebJs","logOpenContentLibraryCategoryWebJs","logGenerateAutoLayoutWebJs","logModifyPageWebJs","hide","fails","regexpExec","REPLACE_SUPPORTS_NAMED_GROUPS","re","groups","SPLIT_WORKS_WITH_OVERWRITTEN_EXEC","originalExec","KEY","sham","SYMBOL","DELEGATES_TO_SYMBOL","DELEGATES_TO_EXEC","execCalled","nativeRegExpMethod","methods","nativeMethod","regexp","arg2","forceStringMethod","stringMethod","regexMethod","arg","emptyFunction","ReactPropTypesSecret","shim","componentName","propFullName","secret","getShim","ReactPropTypes","array","bool","symbol","any","arrayOf","element","instanceOf","node","objectOf","oneOf","oneOfType","checkPropTypes","UserError","stack","has","TO_STRING_TAG","TAG","STATIC","Selection","item","createFromEntityKeys","items","Set","blockKeys","blocks","isEmpty","getBlocks","paths","subtract","clear","Record","LogRecordFormatter","generateUUID","random","_classCallCheck","TypeError","utils","normalizeHeaderName","DEFAULT_CONTENT_TYPE","setContentTypeIfUnset","isUndefined","adapter","XMLHttpRequest","process","transformRequest","isFormData","isArrayBuffer","isBuffer","isStream","isFile","isBlob","isArrayBufferView","buffer","isURLSearchParams","transformResponse","parse","xsrfCookieName","xsrfHeaderName","maxContentLength","validateStatus","status","common","toObject","createMethod","IS_RIGHT","callbackfn","argumentsLength","memo","self","right","replaceClassName","origClass","classToRemove","removeClass","classList","baseVal","$forEach","colorsToArray","colorStr","color","chartHeatmap","tpl","template","defaultColors","chart_type_nr","chartDefaultColors","chartType","typeMod","modifier","themeColors","chartDefaults","headerColor","headerBackground","evenColor","evenBackground","cellColor","cellBackground","firstColumnColor","firstColumnBackground","shapeFill","colorArrToNoHashString","arr","RESPONSIVE_FULLSCREEN_ENTER","RESPONSIVE_FULLSCREEN_EXIT","RELATED_INFOGRAPHICS_RECEIVED","DISPLAY_HEADER","getBuiltIn","preventExtensions","objectPreventExtensions","LazyBlockWrapper","preloadImages","entities","assetId","Image","blockStyle","children","_iterableToArray","iter","iterator","from","objectIsExtensible","isExtensible","DESCRIPTORS","ownKeys","getOwnPropertyDescriptorModule","getOwnPropertyDescriptors","raw","rawTemplate","literalSegments","elements","$map","thisArg","condition","argIndex","framesToPop","Text","author","text","shrink","Headline","Subtitle","Quote","BodyText","CaptionText","Separator","cx","data-object-type","data-content-type","ref","onRendered","adjustments","blur","brightness","contrast","saturation","hueRotate","vignette","presets","blackAndWhite","hdr","riga","seventies","sanfrancisco","bronze","budapest","vintage","Contrast","slope","toFixed","intercept","check","globalThis","Function","getCalloutPaddings","callout","horizontal","vertical","CALLOUT_PADDING","between","bottom","firstRect","first","lastRect","last","getCalloutPaddingsByKey","calloutEntityKey","calloutEntity","getCallout","getEntitiesByKeys","orderByKeys","pageNumberByKey","getBlockIndex","blockOrder","findIndex","pageNumberHumanDescription","pageNumber","internalObjectKeys","enumBugKeys","StyledInfographicEditor","div","align","handlerMap","edit","EditHandler","drag","DragHandler","handle","HandleDragHandler","navigation","NavigationHandler","CalloutHandler","validateScaleValue","parseFloat","InfographicEditor","_onEntityMouseDown","_onEntityMouseUp","_onMouseDown","_createHandler","_onMouseMove","_onMouseUp","_onMouseLeave","updateLoop","UpdateLoop","exitCurrentMode","navigating","currentSelection","editorClassNames","_element","onMouseDown","onMouseMove","onMouseUp","onMouseLeave","onDragStart","fonts","customFonts","accessibleReadingOrder","onEntityMouseDown","onEntityMouseUp","groupsInEditMode","multiSelectionOverlayComponent","entityOverlayComponent","connectorEntityOverlays","entityBoundingBoxComponent","multiSelectionActive","blockWrapperComponent","onSelectionChange","initialBoundingBox","guideSettings","commentComponent","commentingTooltipComponent","commentingIsAvailable","onAddComment","thumbsView","pageUpgradeComponent","calloutsComponent","onChange","selectionState","rect","onSelectionBoundBoxChange","page","onDuplicateEntities","_handler","setMode","stopPropagation","selectedEntities","allHandlers","handlerForKey","eventName","handlerForElement","getTooltip","showGuides","snapObjects","defaultProps","createEmpty","allowDragAndDrop","EditorState","whitespacePercent","columnCount","rowSpacing","updateMousePosition","onMoveComment","onCommentPositionChanged","onToggleComment","onCloseConversations","commenting","scroll","onToggleCallout","appContentEl","InfographicFooterStore","Map","fontSizeOpen","selected","visibleShareDialog","shareDialogPage","action","INFOGRAPHIC_FOOTER_SELECT","SELECTION_STATE_CHANGE","INFOGRAPHIC_FOOTER_TOGGLE_FONT_SIZE","INFOGRAPHIC_FOOTER_SHOW_SHARE_DIALOG","INFOGRAPHIC_SET_FOOTER_SHARE_DIALOG_PAGE","getState","ReduceStore","formatHashKey","matchKey","direction","coordinate","Storage","_hash","hashKey","slotValue","threshold","EntityIndex","excludeEntityKeys","_threshold","_storage","getCalloutKey","entityKey","bounds","isLine","lineBounds","rectangle","addRect","xMiddle","round","yMiddle","edge","hits","matches","delta","matchKeys","hit","rectEdge","GridIndex","guides","baselines","_guides","_baselines","point","shouldSnapValue","snapValue","FREEZING","onFreeze","nativeFreeze","freeze","ABSOLUTE_AND_BLOB_URL_REGEX","Assets","immutable","_immutable","assetsCDN","mutable","assetIds","includes","toJSON","originalModule","webpackPolyfill","PROJECT_SETTINGS_SHOW_CUSTOM_PAGE_SIZE","PROJECT_SETTINGS_HIDE_CUSTOM_PAGE_SIZE","PROJECT_SETTINGS_SET_ACTIVE_SECTION","PROJECT_SETTINGS_FOOTER_SECTION","PROJECT_SETTINGS_PROJECT_VIEW_EXPERIENCE_SECTION","PROJECT_SETTINGS_TRANSITIONS_SECTION","PROJECT_SETTINGS_ACCESSIBILITY_SECTION","PROJECT_SETTINGS_NO_SECTION","Element","Immutable","checked","checkType","List","DOMIterables","ArrayIteratorMethods","ITERATOR","ArrayValues","COLLECTION_NAME","Collection","CollectionPrototype","METHOD_NAME","loadImage","anonymous","image","crossOrigin","LinkIcon","span","LinkPreview","_onClick","currentTarget","getAttribute","onClick","linkToPage","noLinkPresent","linkIsSafe","pageLink","standalone","linkProps","contentEditable","inline","link","rel","linkContent","data-page-number","container","Container","State","contents","Color","BrandStore","Constants","INFOGRAPHIC_LOADED","cached","branding","subTypeMap","atlasImage","icon","Icon","initialPropsForData","subType","iconInitialProps","imageInitialProps","ImageComponent","component","wrapperSize","onLinkPreviewClick","clip","Link","engagementEvent","LinkComponent","opacity","mask","crop","fill","pathWidth","pathHeight","getWidth","getHeight","getTransform","tooltipText","getFilters","copyConstructorProperties","NativeSymbol","description","EmptyStringDescriptionStore","SymbolWrapper","symbolPrototype","symbolToString","native","valueOf","desc","whitespaces","ContentBlockItems","getEntityPreview","preview","isPreviewGroup","isGroup","filterGroupPreviewItems","previewedGroupChildren","flattenBlockEntities","filterNot","flatEntitiesKeys","itemProps","isVisibleInEditMode","stackingOrder","groupMode","blockGroupIsInEdit","addCommentMarker","onDoubleClick","onMouseHover","Previews","inPreview","sharedKey","CORRECT_PROTOTYPE_GETTER","IE_PROTO","getPrototypeOf","entityType","elementForType","getRandomValues","crypto","msCrypto","rnds8","Uint8Array","rnds","nativeIsFrozen","isFrozen","parseIntImplementation","addToUnscopables","Iterators","InternalStateModule","defineIterator","setInternalState","getInternalState","getterFor","iterated","kind","Arguments","isChromium","winNav","vendorName","isOpera","isIEedge","ToolTip","parentElem","addClass","el","getComputedStyle","getOffset","getBoundingClientRect","isChrome","parent","innerWidth","screen","innerHeight","scrollTop","scrollLeft","assignStyle","removeAttribute","cssProp","limitMaxWidth","arrowHalfHeight","cursorOffset","vendor","createSelf","tt","innerHTML","escapeFn","escape","selfValue","selfText","leftArrow","rightArrow","ico","setValue","setText","setParent","pos","setPosition","visibility","setOptions","validKeys","position","setColor","destPosition","display","show","backgroundColor","sText","fontStyle","emptyCheck","sValue","globalIsFinite","isFinite","Number","cache","pixelsToMM","physicalWidth","physicalHeight","physicalAspectRatio","imageInputValid","printInputValid","sizeMultiplier","EXTERNAL_EDITOR_STATE_CHANGE","waitFor","getDispatchToken","updates","RESPONSIVE_INFOGRAPHIC_HEIGHT","actualHeight","ratio","ceil","CHANGE_TAB","SETTINGS_LOADED","getInitialState","setLockAspectRatio","IMAGE_SIZE_CHANGE","emptyValue","validValue","validInteger","changeImageSize","PRINT_SIZE_CHANGE","changePrintSize","RESET_IMAGE_SIZE","RESET_PRINT_SIZE","UPDATE_SIZE_MULTIPLIER","newWidth","newHeight","parsed","appRect","maxLimit","lastScaleX","lastPageSize","editOnMouseMove","clientX","clientY","pressedButtons","buttons","nativeEvent","which","HandlersStore","activeHandle","pointerDown","editorScroll","containerWidth","scrollbarXWidth","containerHeight","scrollbarYHeight","editorRect","pointerDownX","pointerDownY","mouseX","mouseY","mouseDirectionVec","movementSpeeds","velX","velY","running","stop","selectionMouseMove","shouldUpdate","canXUpdate","canYUpdate","scrollContainer","velVec","minLimit","currentScrollPositionVec","scrollbarXLeft","scrollbarYTop","canUpdate","scrollbarXActive","scrollbarYActive","getEntityChangesBasedOnRect","trueRect","calculateTrueRectangle","nativeIsSealed","isSealed","nativeGetOwnPropertyDescriptor","FAILS_ON_PRIMITIVES","preloadCalloutImages","glassbox_client_logger_1","_log","schemaId","eventType","logGlassboxHelper","logLeaveFullScreen","logLoadedViewerIdentificationForm","logLoadedViewer","logNavigatePrezi","logOpenEditor","logOpenToComment","logOpenToPresent","logPlayPrezi","logPresentInFullScreen","logRestartPrezi","logSubmittedViewerIdentificationForm","Background","galleryImageId","fromRawBackground","background","pick","logAdjustImageFilter","logBackFromTemplateChooser","logChangeGramCalloutBehaviour","logChangeGramCalloutPosition","logClickUseThisTemplate","logContactSupport","logDeleteGram","logDeleteObject","logDownloadGramObject","logDownloadGramProject","logDownloadImage","logDragObject","logGenerateGramAutoLayout","logGroupObjects","logInsertChart","logInsertConnector","logInsertGramElement","logInsertImage","logInsertIntegration","logInsertMap","logInsertMedia","logInsertShape","logInsertTextbox","logInsertVideo","logLoadedEditor","logModifyGramCallout","logModifyGramPage","logModifyGramProject","logModifyObjectAnimationSetting","logModifyObjectAnimationTrigger","logModifyObject","logOpenObjectGramCallout","logOpenTemplatePreview","logPasteObject","logRemoveGramCallout","logResetImageFilter","logSelectImageFilterPreset","logViewProjectInWebView","__assign","stringifyAttribute","stringified","encode","encodeURIComponent","decodeURIComponent","expires","setMilliseconds","getMilliseconds","toUTCString","domain","secure","sameSite","stringifyAttributes","cookieString","cookies","rdecode","cookie","getAll","nativeParseInt","hex","FORCED","radix","toInteger","sloppyArrayMethod","nativeLastIndexOf","lastIndexOf","NEGATIVE_ZERO","SLOPPY_METHOD","searchElement","checkCalloutDeltaLimits","minDeltaX","MIN_CALLOUT_WIDTH","minDeltaY","MIN_CALLOUT_HEIGHT","START_EDITING","END_EDITING","CHANGE_TEXT","UPDATE_TEXT_STYLE_SETTINGS","EXECUTE_COMMAND","KEY_COMMAND","UPDATE_OPACITY","UPDATE_LINK","RESET_DEFAULTS","UPDATE_TEXT_ELEMENT_SIZE","SELECTOR_HORIZONTAL_PADDING","Internal","OwnPromiseCapability","PromiseWrapper","IS_PURE","redefineAll","setToStringTag","setSpecies","anInstance","classof","iterate","checkCorrectnessOfIteration","speciesConstructor","microtask","promiseResolve","hostReportErrors","newPromiseCapabilityModule","perform","isForced","PROMISE","getInternalPromiseState","PromiseConstructor","$fetch","versions","v8","newPromiseCapability","newGenericPromiseCapability","IS_NODE","DISPATCH_EVENT","createEvent","dispatchEvent","empty","FakePromise","PromiseRejectionEvent","then","INCORRECT_ITERATION","iterable","isThenable","isReject","notified","chain","reactions","exited","reaction","rejection","onHandleUnhandled","enter","exit","onUnhandled","reason","initEvent","isUnhandled","emit","unwrap","internalReject","internalResolve","wrapper","executor","onFulfilled","onRejected","wrap","capability","$promiseResolve","counter","remaining","alreadyCalled","race","MIN_SAFE_INTEGER","definePropertyModule","__defineSetter__","val","paramsSerializer","serializedParams","isDate","toISOString","hashmarkIndex","calculateBlockWithAdjustedPositions","adjustedBlock","childEntityKeys","getChildrenKeys","adjustedEntity","originalEntity","adjustedEntityRectangle","getBackRotatedEntityRectangle","getLeft","getTop","logWarning","groupKey","childKey","getOrderedEntities","nextProps","newState","adjustedEntities","orderedEntities","wrapAndOrderEntities","ReadOnlyGroup","constructDerivedState","groupStyle","transformOrigin","childComponents","childEntity","adjustedExtraProps","groupScaleX","groupScaleY","adjustedStyle","WebkitTransform","flipHorizontal","flipVertical","readChildren","descriptionID","hiddenOffScreen","aria-label","aria-describedby","alt","tabIndex","NAME","uid","DataView","DataViewPrototype","Int8Array","Int8ArrayPrototype","Uint8ClampedArray","Uint8ClampedArrayPrototype","TypedArray","TypedArrayPrototype","isPrototypeOf","TYPED_ARRAY_TAG","NATIVE_ARRAY_BUFFER","ArrayBuffer","NATIVE_ARRAY_BUFFER_VIEWS","TYPED_ARRAY_TAG_REQIRED","TypedArrayConstructorsList","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array","isTypedArray","aTypedArrayConstructor","ARRAY","TypedArrayConstructor","exportStatic","isView","klass","shapeTypeMap","line","Line","arrow","Rectangle","rounded","ellipse","Ellipse","triangle","Polygon","polygon","Path","oval","hexagon","rhombus","trapeziumUp","trapeziumDown","parallelogramLeft","parallelogramRight","calloutCircle","PredefinedPath","cylinder","pointer","cloud","SHAPE_TYPE_LABELS","Shape","additionalProps","defaultShapeProps","elementWidth","ShapeComponent","isEditing","shapeType","shapeStyle","cursor","textContent","textComponent","editing","hideTooltip","INFOGRAPHIC_SIDE_BUTTON_DOWNLOADS","INFOGRAPHIC_SIDE_BUTTON_SHARE","INFOGRAPHIC_SIDE_BUTTON_FULLSCREEN","degreesToRadians","degrees","PI","centerPoint","roundRect","angle","rectToBounds","origin","angleRadians","cos","sin","boundsToRect","inverse","calculateBoundingBox","useLineBounds","boundingBox","entityBounds","source","EmitterSubscription","EventSubscriptionVendor","BaseEventEmitter","_subscriber","_currentSubscription","addListener","listener","addSubscription","once","emitter","removeCurrentListener","removeAllListeners","removeAllSubscriptions","removeSubscription","listeners","subscriptions","getSubscriptionsForType","thatReturnsTrue","subscription","ii","__emitToSubscription","qParams","dispatcher","busy","processEntities","searchInstanceTab","chartInstance","tabName","sheets","sheet","categories","updateDownloadsChartTab","CHANGE_CHART_TAB","processChange","reset","unsubscribeAll","subscribe","sheetIndexSearch","callerInstance","unsubscribe","addRenderQueue","previousIndex","tab","raf","instanceEvents","$indexOf","ArrayPrototype","AtlasImage","accessible","dateToPrimitive","TO_PRIMITIVE","DatePrototype","chartDefaultsInit","CUSTOM_SETTING_KEYS_TO_CHECK","cleanupCustomSettings","defaultsCustom","readInfographicData","model","hash","EmptyRect","getWindowSize","documentElement","clientWidth","clientHeight","checkIntersections","observed","viewportOffset","rootBounds","callbacks","inScreenBounds","intersection","boundingClientRect","intersectionRect","TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS","createElementNS","view","elemCtrProto","objCtr","strTrim","arrIndexOf","DOMEx","DOMException","checkTokenAndGetIndex","token","ClassList","trimmedClasses","classes","_updateClassName","classListProto","classListGetter","tokens","classListPropDesc","ex","__defineGetter__","testElement","original","_toggle","isDesktop","Bowser","getParser","isPlatform","PLATFORMS_MAP","desktop","Callouts","callouts","calloutTimers","_isMobileView","CALLOUTS_MOBILE_WIDTH","_showTimedCallout","timerId","setState","_hideCalloutOnTimeout","CALLOUT_HIDE_DELAY","_showCallout","prevEntity","isOverlay","_hideCallout","_closeCallout","onCalloutClose","prevProps","hoveredEntity","selectedEntity","showCalloutsAsOverlay","_container","valueSeq","calloutScale","getCalloutScale","forceOverlay","calloutBounds","getCalloutBounds","calloutEntities","onClose","config1","config2","valueFromConfig2Keys","mergeDeepPropertiesKeys","defaultToConfig2Keys","deepMerge","axiosKeys","otherKeys","saveCopyright","update_attribute","graphicID","invalidateCurrentInfographic","messageType","selectFooter","toggleFooterFontSize","showShareDialog","CompatibilityCoverImage","viewbox","containerRect","offscreenCanvas","setImage","img","downsample","getContext","drawImage","toDataURL","setFillContainerElement","styles","fillContainer","centerContent","xmlns","viewBox","preserveAspectRatio","cannotTouchThis","xlinkHref","$trimStart","forcedStringTrimMethod","trimStart","trimLeft","getCalloutStyle","resolveDesignProperty","shadow","boxShadow","isValue","opts1","PromiseCapability","$$resolve","$$reject","EditorStateRecord","undoStack","Stack","redoStack","getDesign","designDefaults","getDesignDefaults","getFonts","animationSequence","getAnimationSequence","toArray","rawEntity","layouts","getLayouts","createFromJSONObject","stateObject","contentObject","blockData","autoLayoutAdminEnabled","grid","gridSettings","InfographicContentBlock","PageSize","createFromObject","InfographicState","put","getImmutable","getUndoStack","newCurrentContent","peek","getRedoStack","font","family","newFonts","sortBy","blockOrKey","propValue","getDesignProperty","traverse","objectWithPlaceholderValues","other","pageSizeEquals","is","contentEquals","entitiyKeys","blockIndex","entityIndex","pushToUndoStack","overwrite","mergeDeepIn","fromEntries","entries","layoutName","nextContent","addAssets","updatedAssets","Iterable","isKeyed","isIndexed","hiddenKeys","METADATA","setMetadata","objectID","weakData","meta","REQUIRED","fastKey","getWeakData","createError","PageContainer","PresentationPage","animatedRef","React","createRef","transitionEnd","notifiyAboutCustomScroll","gotFocus","activePage","switchPage","PresentationStore","pageCount","buttonSpace","isFullscreen","wasActive","isActive","changedActiveState","current","addEventListener","removeEventListener","animationClass","animations","currentPage","pageAfter","pageBefore","pageTransform","shouldRenderContent","inactive","transitioning","onFocusCapture","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","currentQueue","queue","draining","queueIndex","cleanUpNextTick","drainQueue","run","marker","runClearTimeout","Item","nextTick","env","argv","removeListener","prependListener","prependOnceListener","binding","cwd","chdir","dir","umask","getTargetEntity","toCoords","currentGroup","collisionRect","rotateBack","rad","positiveDeg","rotatePoint","centerOf","getPointOnEntity","connection","fromPctPointOfRectangle","Point","getPosition","getPositionAgainstBlock","connectedEntityKey","getPositionAgainstEntity","to","getPositionGrouped","connectionType","entWidth","entHeight","getPositionAgainstBlockGrouped","cLeft","cTop","getPositionAgainstEntityGrouped","getPositionsGrouped","getConnectorProps","pctPoint","toPctPointOfRectangle","constrainPctValue","resize","connectionPt","snap","oppConnection","ptsOnBlock","oppConnectionPt","targetEntity","newConnectionPt","dist","distance","rotationStartPt","dAx","dAy","dBx","dBy","atan2","degree_angle","targetRotation","deltaRotation","changes","getRoundRectangleFromPoints","fromPt","toPt","anchors","getSnapPoints","fromPos","reduce","nearest","potential","entityLocalPct","toProps","rawConnector","stroke","strokeType","strokeWidth","markerStart","markerEnd","InfographicEntity","fromRawEntity","AnimationPreview","connect","resetAnimationPreview","getPreviewAnimation","resetAnimationOnComplete","animation","ANIMATION_ONCE","onComplete","rotation","getRotate","EditorPropTypes","MaskRecord","clipPathScale","pathTransform","translate","center","MaskPropShape","Mask","baseMask","entityRotation","transformX","transformY","BASE_SIZE","pathScaleX","sign","SET_VISIBLE_GUIDES","RESET_HANDLE","SET_ACTIVE_HANDLE","START_DRAGGING","START_NAVIGATING","SET_CONNECTOR_TARGET_ENTITY","SET_CREATED_CONNECTOR","shared","findUsedAssets","foundAssets","dataProp","row","cell","cellValue","IMG_ASSET_ID","cleanupAssets","backgroundAssetId","blockAssetId","filteredAssets","updatedContent","toPrimitive","NaN","pv","IntensityOf","$reduceRight","reduceRight","isPlainFunction","normalizeOpts","dscr","writable","gs","Footer","copyright","currentYear","getFullYear","trademark","dangerouslySetInnerHTML","__html","Saturation","codeAt","codePointAt","classofRaw","CORRECT_ARGUMENTS","tag","tryGet","callee","FREELAYOUT_ACTIVE_PAGE_CHANGED","FREELAYOUT_SCROLL_START","FREELAYOUT_SCROLL_END","FREELAYOUT_SCROLL_START_PROCESSING_EVENTS","FREELAYOUT_SCROLL_STOP_PROCESSING_EVENTS","HeaderButton","button","DownLoadButton","PresenationButton","Header","_toggleDownloadDialog","visibleDownloadDialog","_toggleShareDialog","_closeShareDialog","_closeDownloadDialog","_hideDialogs","getElementsByClassName","_downloadButton","onScroll","scrollY","lastScrollTop","hideHeader","getDocHeight","showHeader","throttle","avatar","registerButton","presentationButton","showAvatar","avatarLink","avatarImage","avatarURL","avatarClass","webProfileHeaderAvatar","fullName","avatarFullName","showRegisterButton","registerButtonMobile","showPresentationButton","onPresentationButtonClick","shareButton","downloadButton","shareDialog","publicDownloadDialog","displayClass","showShareButton","showDownloadButton","logoHolder","logoImage","customLogo","scrollHeight","offsetHeight","dest","fround","EditorContextProvider","Provider","withEditorContext","Consumer","editorContext","ContentItem","cachedContentNode","css","portalNode","createPortalNode","MaybePreview","Content","renderedContents","_handleMouseDown","_handleMouseUp","_handleMouseLeave","_handleMouseMove","_setEntityElement","_handleDoubleClick","zIndex","cssTransform","pointerEvents","withInteractivityHoverEffect","itemClassName","setElementForEntity","removeElementForEntity","baseUrl","protocol","host","currentDir","pathname","fullMatch","origUrl","newUrl","unquotedOrigUrl","$1","fromCharCode","nativeFromCodePoint","fromCodePoint","RangeError","LINE","LINE_ERROR_MARGIN","BAR","BAR_STACKED","BAR_GROUPED","BAR_STACKED_PERCENT","BAR_RADIAL","BAR_RACE","COLUMN","COLUMN_STACKED","COLUMN_GROUPED","COLUMN_STACKED_PERCENT","GANTT","PIE","DOUGHNUT","PIE_IRREGULAR","SEMI_CIRCLE","COLUMN_LINE","LINE_LINE","COMBO_GROUPED","COMBO_STACKED","AREA","AREA_STACKED","AREA_STACKED_PERCENT","STREAM_GRAPH","AREA_STEPPED","SCATTER","SCATTER_GROUPED","DOT_PLOT","BUBBLE","BUBBLE_PLOT","PICTORIAL_GRID","PICTORIAL_SIZE","PICTORIAL_BAR","PYRAMID","FUNNEL","TABLE","GAUGE","BAR_PROGRESS","WORDCLOUD","TREEMAP","CANDLESTICK","WATERFALL","TIMER","FACTS_AND_FIGURES","MAP","dummy","chartComponentMetaData","animated","codeName","class","books","dummySingleSheet","gdp2010","fullTitle","switchPossible","singleColor","absoluteDistribution","useAllColumns","enableHeight","axis","affix","alpha","labels","graph","tooltip","movies","literature","devices","percent","arrivals","new","books2","categoryWidthAuto","categoryLayout","movies2","lifeExpectancy","entertainment","area","showLabels","showInLineValues","showInLineName","showInLinePercent","elections","errorMargin","showPoints","powerSources","revenue","xlabel","ylabel","revenueTotal","galaxy","revenueTotalStores","weeks","population1950","populationArea","tasks","regularEdge","endType","maslowPyramid","companies","company","universities","verticalHeader","styleName","dynamicWidth","A1cell","searchFirstRow","goals","projects","dimensions","flex","brands","areaPopulation","labelPosition","stocks","dataInputFormat","date","tick","timeFormat","unitsInStock","dark","light","pencil","unemployment","useSIPrefixes","y2","decimalPlaces","decimalPlacesValue","project","sheets_settings","series","pro","population","reactPropsRegex","strokeDasharray","dashed","dotted","overflow","rearrangeEntitiesWithinGroup","group","childEntities","groupChildrenEntities","flatEntities","flattenEntities","unmovedEntities","groupIndex","sequence","sort","filterSequence","DynamicFiltersProvider","definition","FilterComponent","filtersLibrary","takeNoSpace","primitiveUnits","colorInterpolationFilters","entrySeq","mapOf","lastUnique","lastUniquePromise","removeUnique","loadUnique","onError","styleElementPresent","$styleElement","hasOnloadEvent","currentBrowserIsIE","performCallback","append","loadStylesheet","styleElement","catch","COLOR_REFS_TO_SYNC","AXIS_LABELS","AXIS_LABELS_REFS","overlayScale","OVERLAY_CALLOUT_SCALE","mediaTypeMap","flickr","Flickr","youtube","Youtube","vimeo","Vimeo","slideshare","Slideshare","video","Video","iframe","Iframe","editableMediaTypeMap","EditableVideo","mediaType","MediaComponent","entityData","imageAssetId","playback","exp","sinh","setLogger","logger","logError","logInfo","info","pushBoundUndoStack","AppDispatcher","PUSH_BOUND_UNDO_STACK","slopegraph","bounceSetup","bounceStartState","bounce","keyframes","flashStartState","flash","pulseStartState","pulse","rubberBandStartState","rubberBand","shakeStartState","shake","headShakeSetup","headShakeStartState","headShake","swingSetup","swingStartState","swingEndState","swing","tadaStartState","tada","wobbleStartState","wobble","jelloSetup","jelloStartState","jello","bounceInSetup","bounceInStartState","bounceInEndState","bounceIn","bounceInDownStartState","bounceInDownEndState","bounceInDown","bounceInLeftStartState","bounceInLeftEndState","bounceInLeft","bounceInRightStartState","bounceInRightEndState","bounceInRight","bounceInUpStartState","bounceInUpEndState","bounceInUp","bounceOutStartState","bounceOutEndState","bounceOut","bounceOutSetup","bounceOutDownStartState","bounceOutDownEndState","bounceOutDown","bounceOutLeftStartState","bounceOutLeftEndState","bounceOutLeft","bounceOutRightStartState","bounceOutRightEndState","bounceOutRight","bounceOutUpStartState","bounceOutUpEndState","bounceOutUp","fadeInStartState","fadeInEndState","fadeIn","fadeInDownStartState","fadeInDownEndState","fadeInDown","fadeInDownBigStartState","fadeInDownBigEndState","fadeInDownBig","fadeInLeftStartState","fadeInLeftEndState","fadeInLeft","fadeInLeftBigStartState","fadeInLeftBigEndState","fadeInLeftBig","fadeInRightStartState","fadeInRightEndState","fadeInRight","fadeInRightBigStartState","fadeInRightBigEndState","fadeInRightBig","fadeInUpStartState","fadeInUpEndState","fadeInUp","fadeInUpBigStartState","fadeInUpBigEndState","fadeInUpBig","fadeOutStartState","fadeOutEndState","fadeOut","fadeOutDownStartState","fadeOutDownEndState","fadeOutDown","fadeOutDownBigStartState","fadeOutDownBigEndState","fadeOutDownBig","fadeOutLeftStartState","fadeOutLeftEndState","fadeOutLeft","fadeOutLeftBigStartState","fadeOutLeftBigEndState","fadeOutLeftBig","fadeOutRightStartState","fadeOutRightEndState","fadeOutRight","fadeOutRightBigStartState","fadeOutRightBigEndState","fadeOutRightBig","fadeOutUpStartState","fadeOutUpEndState","fadeOutUp","fadeOutUpBigStartState","fadeOutUpBigEndState","fadeOutUpBig","flipSetup","flipStartState","flipEndState","flip","flipInXSetup","flipInXStartState","flipInXEndState","flipInX","flipInYSetup","flipInYStartState","flipInYEndState","flipInY","flipOutXSetup","flipOutXStartState","flipOutXEndState","flipOutX","flipOutYSetup","flipOutYStartState","flipOutYEndState","flipOutY","lightSpeedInSetup","lightSpeedInStartState","lightSpeedInEndState","lightSpeedIn","lightSpeedOutSetup","lightSpeedOutStartState","lightSpeedOutEndState","lightSpeedOut","rotateInStartState","rotateInEndState","rotateIn","rotateInDownLeftStartState","rotateInDownLeftEndState","rotateInDownLeft","rotateInDownRightStartState","rotateInDownRightEndState","rotateInDownRight","rotateInUpLeftStartState","rotateInUpLeftEndState","rotateInUpLeft","rotateInUpRightStartState","rotateInUpRightEndState","rotateInUpRight","rotateOutStartState","rotateOutEndState","rotateOut","rotateOutDownLeftStartState","rotateOutDownLeftEndState","rotateOutDownLeft","rotateOutDownRightStartState","rotateOutDownRightEndState","rotateOutDownRight","rotateOutUpLeftStartState","rotateOutUpLeftEndState","rotateOutUpLeft","rotateOutUpRightStartState","rotateOutUpRightEndState","rotateOutUpRight","hingeSetup","hingeStartState","hingeEndState","hinge","jackInTheBoxStartState","jackInTheBoxEndState","jackInTheBox","rollInStartState","rollInEndState","rollIn","rollOutStartState","rollOutEndState","rollOut","zoomInStartState","zoomInEndState","zoomIn","zoomInDownStartState","zoomInDownEndState","zoomInDown","zoomInLeftStartState","zoomInLeftEndState","zoomInLeft","zoomInRightStartState","zoomInRightEndState","zoomInRight","zoomInUpStartState","zoomInUpEndState","zoomInUp","zoomOutStartState","zoomOutEndState","zoomOut","zoomOutDownStartState","zoomOutDownEndState","zoomOutDown","zoomOutLeftStartState","zoomOutLeftEndState","zoomOutLeft","zoomOutRightStartState","zoomOutRightEndState","zoomOutRight","zoomOutUpStartState","zoomOutUpEndState","zoomOutUp","slideInDownStartState","slideInDownEndState","slideInDown","slideInLeftStartState","slideInLeftEndState","slideInLeft","slideInRightStartState","slideInRightEndState","slideInRight","slideInUpStartState","slideInUpEndState","slideInUp","slideOutDownStartState","slideOutDownEndState","slideOutDown","slideOutLeftStartState","slideOutLeftEndState","slideOutLeft","slideOutRightStartState","slideOutRightEndState","slideOutRight","slideOutUpStartState","slideOutUpEndState","slideOutUp","$values","flattenIntoArray","arraySpeciesCreate","flat","depthArg","sourceLen","getElementById","showDialog","componentProps","ReactDOM","unmountComponentAtNode","render","close","createHTML","forcedStringHTMLMethod","blink","cleanupCallouts","updatedState","originalState","removedCallouts","removedEntities","removeCalloutEntity","entityWithCallout","indexInCallout","paddings","minHorizontal","minVertical","adjustCalloutToPaddings","calloutChanges","contentChanges","createTextComponent","factories","construct","argsLength","list","partArgs","boundFunction","nativeGetOwnPropertyNames","windowNames","getOwnPropertyNames","getWindowNames","arrangeCalloutAfterTransformations","updatedEntities","PREZIGRAM_UPLOAD_NEW_ENTITIES","PREZIGRAM_UPLOAD_MEDIA","PREZIGRAM_UPLOAD_REQUEST","PREZIGRAM_UPLOAD_SUCCEDED","PREZIGRAM_UPLOAD_FAILED","PREZIGRAM_UPLOAD_FINISHED","propertyIsEnumerableModule","createPropertyDescriptor","IE8_DOM_DEFINE","Buttons","DialogButtons","Event","ProgressBarNavigation","progressBar","segment","stickyThumbnail","coordX","thumbWidth","thumbnailStyle","visibleThumbnail","onMouseOut","pageSwitchFunction","pageIds","segmentWidth","barWidth","segments","thumb","thumbnail","data-index","startDragging","PARTICLE_ELEMENT_PROPERTY_NAMES","shouldRenderElement","shouldRender","particleType","particle_type","getFooterSettings","backgroundOpacity","bold","buttonBackgroundColor","buttonText","buttonTextColor","customLink","prepareLink","customLinkOption","fontSize","footnoteText","footnoteType","footerLayout","italic","logoColor","logoLink","logoType","logoName","textColor","paginationFormat","paginationStartWith","showFooter","logoWidth","logoHeight","getFooterLayout","textType","singleItem","_iterableToArrayLimit","_arr","_n","_d","_e","_s","_i","next","findBlockByKey","OrderedMap","hideFooter","BlackAndWhite","repeat","IS_END","$this","maxLength","fillString","fillLen","stringFiller","stringLength","fillStr","intMaxLength","nativeDateToString","getTime","ARG_LENGTH","SEGMENT_PATTERN","NUMBER","command","numbers","parseValues","_defineProperties","_toConsumableArray","arr2","_arrayWithoutHoles","_nonIterableSpread","nx","ny","translatePoint","polyFillPath2D","CanvasRenderingContext2D","Path2D","strokeStyle","lineWidth","getImageData","supportsSvgPathArgument","_this$segments","protoProps","staticProps","_this$segments2","ccw","x2","cp1x","cp1y","cp2x","cp2y","cpx","cpy","cFill","cStroke","_len","_key","fillRule","buildPath","canvas","endAngle","startAngle","largeArcFlag","sweepFlag","endPoint","pathType","qcpx","qcpy","currentPoint","beginPath","moveTo","lineTo","sqrt","arc","bezierCurveTo","quadraticCurveTo","closePath","arcTo","_arrayWithHoles","URL","searchParams","URLSearchParams","username","WebViewStore","displayHeader","relatedInfographics","WebProfileView","onSearchFormSubmit","searchTerm","webView","metaBackground","pageBackground","pageStyle","headerStyle","emptyLibraryContent","profileName","infographics","authorImage","authorLink","authorName","imageURL","onSubmitForm","backgroundImageStyle","backgroundImage","user","header","isAuthenticated","profileHeader","heroImage","headerGradient","headerAvatar","webProfileAvatar","headerName","headerInfographicsCount","count","polyfill","shrink_margin","shrink_padding","setMargin","margin","setChartPadding","padding","getMargin","getChartPadding","SHRINK_MARGIN_CONSTANT","PasswordPrompt","onFormSubmit","password","infographicID","Infographic","block_id","loading","ajax","rawData","passwordProtected","loadInfographicFromRawData","infographicData","onSuccess","onInputFocus","sentinel","buttonClassName","buttonLoading","inputClassName","inputError","embedMode","transparent","lockIcon","heading","subheading","form","onSubmit","onFocus","placeholder","autoComplete","factory","vertxNext","customSchedulerFn","asap","flush","scheduleFlush","browserWindow","browserGlobal","BrowserMutationObserver","MutationObserver","WebKitMutationObserver","isNode","isWorker","importScripts","useSetTimeout","globalSetTimeout","channel","iterations","onFulfillment","onRejection","child","PROMISE_ID","makePromise","_state","invokeCallback","_result","resolve$1","createTextNode","characterData","vertx","runOnLoop","runOnContext","attemptVertx","handleMaybeThenable","maybeThenable","then$$1","thenable","fulfill","handleOwnThenable","sealed","fulfillmentHandler","rejectionHandler","tryThen","_label","handleForeignThenable","publishRejection","_onerror","publish","_subscribers","subscribers","settled","detail","hasCallback","succeeded","Enumerator","_instanceConstructor","_remaining","_enumerate","_eachEntry","entry","resolve$$1","_then","didError","_settledAt","Promise$1","_willSettleAt","enumerator","resolver","needsResolver","initializePromise","needsNew","finally","_setScheduler","scheduleFn","_setAsap","asapFn","_asap","local","promiseToString","cast","typeMap","MEDIA","TEXT","TextComponent","SHAPE","IMAGE","CHART","ChartComponent","GROUP","GroupComponent","CONNECTOR","ConnectorComponent","ELEMENT_TYPE_LABEL","big","$reduce","buildURL","InterceptorManager","dispatchRequest","mergeConfig","Axios","instanceConfig","interceptors","interceptor","rejected","getUri","removeFonts","existingFont","store","transition","themeId","interlinkedCharts","interactivityHint","isWhiteLabel","allowToShare","allowFullscreen","schemaVersion","currentLayout","groupKeysToExit","PROFILE_LOADED","EDITOR_STATE_CHANGE","EDITOR_STATE_UNDO","EDITOR_STATE_REDO","ADD_TEXT_TO_SHAPE","pasteElementStyle","hasText","nextEditorState","setLayout","INFOGRAPHIC_THEME_LOADED","ADD_BLOCK","ADD_ENTITY","ADD_RAW_ENTITY","REMOVE_ENTITIES","groupEntityKeys","unusedFonts","oldEditorState","removeEntities","deleteEntitiesWithinGroup","REMOVE_CALLOUT","removeCallout","FREELAYOUT_SET_ALLOW_TO_SHARE","FREELAYOUT_SET_ALLOW_FULLSCREEN","FREELAYOUT_SET_PROJECT_LANGUAGE","FREELAYOUT_SET_INTERACTIVITY_HINT","FREELAYOUT_SET_TRANSITION","RECEIVE_EXTRA_DATA","FREELAYOUT_SET_INTERLINKED_CHARTS","chartEntity","INFOGRAPHIC_PALETTE_CHANGE","INFOGRAPHIC_THEME_CHANGE","chartData","rawChartData","reconciler","ImmutablePropertyReconciler","reconcile","updatedChartData","defaultColorsHeatmap","setDesign","EDITOR_SET_CHART_EXTERNAL_DATA","APPLY_IMAGE_CLIP","clipProps","offset","patch","connectorTransformBySingleKey","getGroupKey","getEditorStateWithNewGroupBounds","REMOVE_IMAGE_CLIP","compensateTransformOriginShift","adjustCalloutOnItemChange","nextFlexEditorState","UPDATE_ENTITY_ANIMATION","param","oldAnimation","getAnimation","newAnimation","setAnimationDefaults","newEditorState","setBlockAnimationSequence","REMOVE_ENTITY_ANIMATION","SET_LAYOUT","layout","getLayout","resultingEditorState","change","layoutPageSize","setPageSize","applyLayoutToEditorState","InternalWeakMap","InternalMetadataModule","collection","collectionWeak","enforceIternalState","enforce","NATIVE_WEAK_MAP","IS_IE11","ActiveXObject","$WeakMap","getConstructor","WeakMapPrototype","nativeDelete","nativeHas","nativeGet","nativeSet","frozen","MOVE","RESIZE","ROTATE","RESIZE_SIDE","RESIZE_WIDTH","SCALE_TEXT","startPoint","boundingBoxSizeChange","lockAspectRatio","proportional","rotationOrigin","isMultiSelect","lockHeight","newRect","calculateRotation","rectTransformOrigin","startPointAngleToTransformOrigin","boundAngle","cosBound","sinBound","rectAngle","startPointAngleToBoundingBox","movement","cosO","sinO","resizeSide","adjustedEndPoint","movementForLockedAspectRatioByOrigin","sizeChange","minWidth","minHeight","realSizeChange","deg","newCenter","corner","rotatedBoundingBoxStartPoint","startPointAngleToRotatedBoundingBox","cosRotatedBound","sinRotatedBound","rotatedBoundTopLeft","rotatedBoundBottomRight","rotatedBoundTopRight","rotatedBoundBottomLeft","distanceFromCenterToCorner","distanceTraveled","angleOfVector","movePoint","realMovement","newOrigin","minifyRotation","v1","v4","uuid","fixRegExpWellKnownSymbolLogic","isRegExp","advanceStringIndex","callRegExpExec","arrayPush","SUPPORTS_Y","SPLIT","nativeSplit","maybeCallNative","internalSplit","separator","limit","lim","lastIndex","lastLength","flags","ignoreCase","multiline","sticky","lastLastIndex","separatorCopy","splitter","res","rx","unicodeMatching","setImmediate","clearImmediate","classRe","functionToString","emptyFunctionWithReset","resetWarningCache","elementType","exact","copyWithin","inc","localesConfig","useCookie","interpolation","suffix","escapeValue","fallbackLng","fallback","lng","resources","initImmediate","foo","bar","trzy","ED","EB","BC_DA","cubehelixConvert","Cubehelix","bl","cubehelix","brighter","pow","darker","rgb","enhanceError","reI","reN","reP","reHex3","reHex6","reRgbInteger","reRgbPercent","reRgbaInteger","reRgbaPercent","reHslPercent","reHslaPercent","named","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","whitesmoke","yellow","yellowgreen","Rgb","rgbn","rgba","hsla","rgbConvert","Hsl","hslConvert","hsl","hsl2rgb","m1","m2","displayable","_leaveRenders","_enterRenders","out","callHook","cb","_element$props","leaveRenders","_ref","changeState","cloneElement","onExited","_ref2","onEntered","enterRenders","_ref3","_ref4","SwitchTransition","_React$Component","_this","appeared","_proto","componentDidMount","getDerivedStateFromProps","oldChildren","newChildren","isValidElement","_this$props","_this$state","isMounting","begin","beginIndex","BYTES_PER_ELEMENT","resetHandle","BYTES","showAnimationPreview","entityId","SET_ANIMATION_PREVIEW","UNSET_ANIMATION_PREVIEW","previewAnimation","anchor","fontsize","isStandardBrowserEnv","originURL","msie","urlParsingNode","resolveURL","search","hostname","port","requestURL","isString","objA","objB","compare","compareContext","keysA","keysB","bHasOwnProperty","valueA","valueB","LazyViewReact","visible","setPlaceholderRef","getSmallerObjectVisibilityRatio","updateVisibility","setRef","withSpinner","SHAPE_TYPES_WITH_POINTER_EVENTS_ON_ALL_SVG","shapeData","forceDimensions","getPath","svgProps","strokeMiterlimit","SAFE_CLOSING","called","iteratorWithReturn","SKIP_CLOSING","ITERATION_SUPPORT","originalItem","originalPaddings","rootReducer","makeRootReducer","sagaMiddleware","createSagaMiddleware","applyMiddleware","createStore","createStoreWithMiddleware","originalDispatch","FluxDispatcher","runSaga","saga","cancel","additionalReducers","addReducers","reducers","replaceReducer","defineProperties","Boolean","Logo","responsive","textStyle","infogramLogo","imageStyle","onLogoClick","$trimEnd","trimEnd","trimRight","log1p","setGlobal","targetProperty","sourceProperty","TARGET","GLOBAL","noTargetGet","useSourceMap","cssMapping","btoa","sourceMapping","sourceMap","unescape","sourceURLs","sources","sourceRoot","cssWithMappingToString","mediaQuery","alreadyImportedModules","byteToHex","buf","bth","integer","for","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","displayName","$$typeof","_status","ReactCurrentDispatcher","ReactCurrentBatchConfig","suspense","_threadCount","_currentValue2","pa","qa","ra","sa","ta","acceptsBooleans","attributeName","attributeNamespace","mustUseProperty","propertyName","sanitizeURL","wa","xa","va","za","Aa","memoizedState","Ba","Ca","Da","Ea","Fa","Ga","Ha","readContext","useContext","useMemo","useReducer","useRef","useState","useLayoutEffect","useCallback","useImperativeHandle","useEffect","useDebugValue","useResponder","responder","useDeferredValue","useTransition","Ia","Ja","Ka","base","br","col","embed","hr","keygen","track","wbr","La","menuitem","animationIterationCount","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columns","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridArea","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","fontWeight","lineClamp","lineHeight","order","orphans","tabSize","widows","zoom","fillOpacity","floodOpacity","stopOpacity","strokeDashoffset","strokeOpacity","Ma","Na","Oa","Children","Pa","Qa","listing","pre","textarea","Ra","Sa","Ta","Va","Wa","suppressContentEditableWarning","suppressHydrationWarning","Xa","Ya","isReactComponent","contextType","contextTypes","isMounted","enqueueForceUpdate","enqueueReplaceState","enqueueSetState","updater","UNSAFE_componentWillMount","componentWillMount","getChildContext","childContextTypes","Za","domNamespace","childIndex","footer","threadID","exhausted","currentSelectValue","previousWasTextNode","makeStaticMarkup","suspenseDepth","contextIndex","contextStack","contextValueStack","destroy","clearProviders","pushProvider","_context","popProvider","read","fallbackFrame","renderDOM","_ctor","defaultChecked","defaultValue","Ua","$a","renderToString","renderToStaticMarkup","renderToNodeStream","renderToStaticNodeStream","ab","bb","typedArrayFrom","getChildMapping","mapFn","mapper","mergeChildMappings","prev","getValueForKey","nextKeysPending","pendingKeys","prevKey","childMapping","nextKey","pendingNextKey","getProp","getInitialChildMapping","appear","getNextChildMapping","prevChildMapping","nextChildMapping","hasPrev","hasNext","prevChild","isLeaving","DEFAULT_DURATION","DEFAULT_DELAY","ANIMATION_PAUSED","ANIMATION_ON_VIEW","ANIMATION_ON_CLICK","ANIMATION_ON_SCROLL","ANIMATION_INFINITE","ANIMATION_NONE","AnimationTypeLabels","defaultAnimationDistance","defaultAnimationTemplate","regime","duration","startAt","endAt","setAnimation","animationSetup","Animator","attrs","animationDuration","animationDelay","animationPlayState","animationStartState","animationEndState","Animation","maxTopRatio","registerObserver","onAnimationComplete","getAnimationProps","triggered","complete","getObjectCenterVerticalRatio","getObjectTopRatio","getMaxObjectTopRatio","childObserver","onAnimationEnd","$sort","comparefn","isArrayIteratorMethod","getIteratorMethod","callWithSafeIterationClosing","Result","stopped","AS_ENTRIES","IS_ITERATOR","iterFn","step","strike","VIDEO_PLAYBACK_ONCE","VIDEO_PLAYBACK_LOOP","VIDEO_PLAYBACK_LABELS","DELAY_VISUAL_INITIALIZATION","prototypeMap","mapCache","loadChartModule","modulePromise","Chart","delayVisualInitialization","initialize","tooltipDummy","setTooltip","getTypeMod","map_json","isCustomMap","publicViewConfig","mapDataResponse","prototypes","_recursiveFlatten","FontFace","cssText","insertBefore","lastChild","media","onreadystatechange","readyState","tagName","ga","offsetWidth","serif","projectId","api","fontfamily","urls","families","testStrings","ya","latin","cyrillic","greek","khmer","Hanuman","thin","extralight","ultralight","regular","book","medium","semibold","demibold","extrabold","ultrabold","heavy","normal","Arimo","Cousine","Tinos","Typekit","async","__webfontfontdeckmodule__","weight","fontdeck","monotype","typekit","google","LOAD_INFOGRAPHICS","INFOGRAPHICS_LOAD_FAILED","INFOGRAPHICS_LOADED","CHANGE_FOLDER","CHANGE_SORT_ORDER","INFOGRAPHIC_SELECTION_CHANGED","SELECT_ALL_INFOGRAPHICS","ADD_FOLDER","FOLDER_SAVED","FOLDER_SAVE_FAILED","DELETE_FOLDER","FOLDER_DELETED","FOLDER_DELETE_FAILED","FOLDER_NAME_CHANGE","START_FOLDER_LIST_EDITING","END_FOLDER_LIST_EDITING","START_FOLDER_EDITING","END_FOLDER_EDITING","CANCEL_FOLDER_NAME_EDITING","MOVE_INFOGRAPHICS_TO_FOLDER","INFOGRAPHICS_MOVED_TO_FOLDER","INFOGRAPHICS_MOVE_TO_FOLDER_FAILED","MOVE_INFOGRAPHICS_TO_TEAM","INFOGRAPHICS_MOVED_TO_TEAM","INFOGRAPHICS_MOVE_TO_TEAM_FAILED","DUPLICATE_INFOGRAPHIC","INFOGRAPHIC_DUPLICATION_FAILED","INFOGRAPHIC_TEMPLATES_LOAD_FAILED","INFOGRAPHIC_TEMPLATE_CREATE_FAILED","INFOGRAPHIC_TEMPLATE_DELETE_FAILED","TRASH_INFOGRAPHICS","INFOGRAPHICS_TRASHED","INFOGRAPHICS_TRASH_FAILED","RESTORE_INFOGRAPHICS","INFOGRAPHICS_RESTORED","INFOGRAPHICS_RESTORE_FAILED","DELETE_INFOGRAPHICS","INFOGRAPHIC_DELETED","INFOGRAPHIC_DELETION_FAILED","LOAD_INFOGRAPHIC_MODEL","SHARE_DIALOG_FAILED","INFOGRAPHIC_PUBLISH_STATUS_CHANGE","INFOGRAPHIC_PUBLISH_PUBLIC","INFOGRAPHIC_PUBLISH_PRIVATE","INFOGRAPHIC_PUBLISH_PRIVATE_WITH_PASSWORD","VIEW_MODE_SWITCH","VIEW_MODE_SAVED","VIEW_MODE_SAVE_FAILED","FILTER","SEARCH","CANCEL_SEARCH","SET_TOOLBAR_TARGET_LIST_MENU_OPEN","SET_TOOLBAR_FOLDER_LIST_OPEN","SET_TOOLBAR_SORT_OPEN","SET_TOOLBAR_FILTER_OPEN","UPDATE_LIST_VIEWPORT","UNLOAD","SORTING_MODIFIED","SORTING_MODIFIED_BY_ME","SORTING_TITLE_ASC","SORTING_TITLE_DESC","FILTER_ALL","FILTER_DRAFTS","FILTER_PRIVATE","FILTER_PUBLIC","FILTER_CREATOR_ALL","FILTER_CREATOR_ME","FILTER_CREATOR","INFOGRAPHIC_LIMIT_REACHED","DISABLE_LIBRARY","ENABLE_LIBRARY","TOGGLE_TYPE_FILTER","TOGGLE_TYPE_FILTERS","TOGGLE_SEARCH_MODE","SEARCH_MODE_PROJECT","SEARCH_MODE_AUTHOR","SEARCH_ACTIVE_TEAM_MEMBERS","ADD_TAG","REMOVE_TAG","FILTER_TAG","CLEAR_FILTERED_TAGS","DELETE_INFOGRAPHIC_TAG","InfogramStats","reportInteraction","EngagementAnalyticsStore","PRESENTATION_SWITCH_PAGE","ENGAGEMENT_EVENT","ENGAGEMENT_INSCREEN","reportInscreen","initialScrollLeft","initialScrollTop","deltaX","deltaY","splitTypes","splitSingleSheet","helper","hasMultipleSheets","singleSheet","notARegExp","correctIsRegExpLogic","_assertThisInitialized","ReferenceError","RegExpPrototype","nativeToString","NOT_GENERIC","INCORRECT_NAME","rf","_inherits","subClass","superClass","CONSTRUCTOR_NAME","Paywall","lazy","WaterMarkContainer","WaterMarkImage","Watermark","PresentationWatermark","userInfo","features","publish_no_watermark","EditorWatermark","withDialogs","openDialog","feature","nativeReverse","reverse","WebInfographicThumbnail","itemImage","itemTitle","ProgressDialog","$slice","hasClass","Vintage","floodColor","in2","operator","k1","k2","k3","k4","disabled","ChartTabsStore","Reveal","_checkVerticalCutoff","innerContainerBounds","_innerContainer","viewportHeight","containerBounds","containerTop","isRepositioned","initialOffsetX","initialOffsetY","offsetX","offsetY","_clickToggle","_triggerOpen","_triggerClose","_adjustPosition","_closeIfNecessary","_checkReposition","_needsReposition","buttonProps","containerStyle","open","root","_root","alignRight","innerContainer","autoReposition","_addHoverListeners","_scrollParent","_removeHoverListeners","findScrollableParent","rootRect","innerContainerRect","isElementInViewport","closest","onToggle","getScrollPosition","_getScrollParent","nextState","willOpen","scrollX","EOF","USE_NATIVE_URL","arrayFrom","toASCII","URLSearchParamsModule","NativeURL","getInternalSearchParamsState","getInternalURLState","ALPHA","ALPHANUMERIC","DIGIT","HEX_START","OCT","DEC","HEX","FORBIDDEN_HOST_CODE_POINT","FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT","LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE","TAB_AND_NEW_LINE","parseHost","codePoints","parseIPv6","isSpecial","parseIPv4","percentEncode","C0ControlPercentEncodeSet","partsLength","part","ipv4","numbersSeen","ipv4Piece","swaps","address","pieceIndex","compress","serializeHost","ignore0","ipv6","maxIndex","currStart","currLength","findLongestZeroSequence","fragmentPercentEncodeSet","pathPercentEncodeSet","userinfoPercentEncodeSet","specialSchemes","ftp","file","gopher","http","https","ws","wss","scheme","includesCredentials","cannotHaveUsernamePasswordPort","cannotBeABaseURL","isWindowsDriveLetter","normalized","second","startsWithWindowsDriveLetter","third","shortenURLsPath","pathSize","isSingleDot","SCHEME_START","SCHEME","NO_SCHEME","SPECIAL_RELATIVE_OR_AUTHORITY","PATH_OR_AUTHORITY","RELATIVE","RELATIVE_SLASH","SPECIAL_AUTHORITY_SLASHES","SPECIAL_AUTHORITY_IGNORE_SLASHES","AUTHORITY","HOST","HOSTNAME","PORT","FILE","FILE_SLASH","FILE_HOST","PATH_START","PATH","CANNOT_BE_A_BASE_URL_PATH","QUERY","FRAGMENT","parseURL","stateOverride","bufferCodePoints","failure","seenAt","seenBracket","seenPasswordToken","query","codePoint","encodedCodePoints","URLConstructor","baseState","urlString","searchParamsState","updateSearchParams","updateURL","serializeURL","getOrigin","getProtocol","getUsername","getPassword","getHost","getHostname","getPort","getPathname","getSearch","getSearchParams","getHash","URLPrototype","accessorDescriptor","nativeCreateObjectURL","createObjectURL","nativeRevokeObjectURL","revokeObjectURL","blob","nativeStartsWith","defer","html","Dispatch","runner","post","placeholderPattern","legacyPlaceholderPattern","resolveParsedReferenceColor","normalizeGetPath","typeOrPath","elementTypeOrPath","matchedPattern","variableName","resolvedProp","notSetValue","keyPath","hasIn","refPath","queryDesignProperty","_subscriptionsForType","subscriber","subscriptionsForType","ContentBlockContainer","h1","ContentWrapper","ContentsBlock","ContentBlock","ownProps","externalSelection","users","union","conversations","comments","markersVisible","blockComments","comment","filteredKeys","entityRect","openCommentKey","activeCommentKey","toSingleView","ZOOM_SWITCH_TO_SINGLE_VIEW","subAction","areStatesEqual","areStatePropsEqual","_exitThumbsView","_onBlockMouseDown","_clearSelectedEntity","selectedEntityKey","hoveredEntityKey","_registerBlockHandlers","_handleEntityMouseDown","_handleEntityMouseUp","_handleEntityMouseLeave","_hoverEntity","_hoverCommentMarker","_unhoverCommentMarker","hoveredCommentKey","calloutKey","setElementForBlock","addHandler","_blockRef","removeElementForBlock","removeHandler","groupKeyBeingEdited","blockGroupBeingEdited","getBlockDesignProperty","displayFooter","backgroundImageContainer","pageHeaderText","handlerKey","activeEntities","blockHasSelectedEntities","multipleSelected","wrapperStyle","BlockOverlay","MultiSelectionOverlay","CommentMarker","CommentingTooltip","ConnectorEntityOverlays","CalloutsComponent","entitiesBeingEdited","mouseEventsEnabled","hovered","highlighted","boundingBoxComponent","active","onMarkerLeave","onMarkerEnter","getLocked","isPartOfGroup","entitiesInGroup","mouseCoords","blockRect","getElementForBlock","findOverlapingEntitiesInBlock","enterGroupEditMode","17","getFirstMatch","getSecondMatch","matchAndReturnConst","getWindowsVersionName","getMacOSVersionName","getAndroidVersionName","getVersionPrecision","compareVersions","getBrowserAlias","BROWSER_ALIASES_MAP","getBrowserTypeByAlias","BROWSER_MAP","18","ENGINE_MAP","OS_MAP","Bada","BlackBerry","Chrome","Chromium","Epiphany","Firefox","Focus","Generic","Googlebot","Maxthon","Opera","PhantomJS","Puffin","QupZilla","QQ","QQLite","Safari","Sailfish","SeaMonkey","Sleipnir","Swing","Tizen","Vivaldi","WeChat","Roku","amazon_silk","android","bada","blackberry","chromium","epiphany","firefox","focus","generic","googlebot","google_search","ie","k_meleon","maxthon","mz","naver","opera","opera_coast","phantomjs","puffin","qupzilla","qq","qqlite","sailfish","samsung_internet","seamonkey","sleipnir","tizen","uc","vivaldi","webos","wechat","yandex","tablet","mobile","tv","WindowsPhone","Windows","MacOS","iOS","Android","WebOS","Linux","ChromeOS","PlayStation4","EdgeHTML","Blink","Trident","Presto","Gecko","WebKit","90","getResult","91","_ua","parsedResult","getUA","parseBrowser","describe","getBrowser","getBrowserName","getBrowserVersion","getOS","os","parseOS","getOSName","getOSVersion","getPlatform","parsePlatform","getPlatformType","getEngine","engine","parseEngine","getEngineName","satisfies","isOS","isBrowser","compareVersion","isEngine","92","93","versionName","94","95","msGridRow","msGridRowSpan","msGridColumn","msGridColumnSpan","WebkitLineClamp","SCALE_POSITION_SLOPE_MULTIPLIERS","SCALE_ORIGIN_SLOPE_MULTIPLIERS","nw","ne","se","sw","SCALE_POSITION_ORIGIN_SLOPE_DELTA_MULTIPLIERS","SCALE_POSITION_ORIGIN_MOVEMENT_DELTA_MULTIPLIERS","scaleCallout","multipliers","movementForLockedAspectRatio","getCalloutScaleDelta","xPaddings","acc","yPaddings","minAllowedScale","entityScale","scaleWidth","scaleHeight","scaleCalloutItems","getOwnPropertySymbols","propIsEnumerable","test1","test2","test3","letter","shouldUseNative","Media","svgObj","Url","innerComponent","mediaComponent","$lastIndexOf","OuterContainer","parser","isPreV12Safari","isPreV12iOS","ios","requiresSVGTranslation","ClippedImage","imageMask","imageContainerStyle","clipPath","WebkitClipPath","pathSuffix","applyTranslation","maskProps","FiltersPropTypes","Filters","completed","PROGRESS_DIALOG_CRASH_PROGRESS","PROGRESS_DIALOG_RESET_PROGRESS","PROGRESS_DIALOG_SET_PROGRESS","PROGRESS_DIALOG_FINISH_PROGRESS","objectKeys","Properties","loadAssetsForInfographic","loadAllBrandAssets","customFontFamilies","customFontURLs","projectFonts","foundry","fontFamily","fontWeights","webfonts","collectUsedBrandFonts","loadingLog","loadThemeAssets","loadEditorFonts","loadFonts","makeJqElement","textItemsFromChartData","textItems","infographicModel","allBrandingFonts","usedFontFamilies","usedFontURLs","addFontsFromChart","fontsFromChart","labelLegendFontFamily","legend","collectFontsFromChartData","content_type","$text","nativeGetPrototypeOf","isAbsoluteURL","combineURLs","baseURL","requestedURL","scrollAnimationsNotSupported","bowser","msedge","SlidesContainer","ScrollContainer","ChartDefaults","animationTypeMap","animationNoAnimation","animationVerticalSlide","slide","animationSlide","animationScaleSlide","animationFade","animationRotate","none","fadeTransition","animationEnter","enterActive","animationEnterActive","animationExit","exitActive","animationExitActive","inputAreas","Fade","classNames","unmountOnExit","Presentation","footerSettings","lastTriggeredAnimationIdx","completedAnimations","mockObservers","_getActivePageBlock","_getNextAnimationIdx","lastIdx","getAnimationSequenceLength","_getPendingAnimationsCount","_triggerNextAnimation","_returnToPreviousAnimation","without","getAnimationEntityKey","_onCompleteAnimation","_getAllAnimationsOnPage","pageIdx","_stepForward","turnPageIfNoAnimationsPending","_stepToNextPage","_stepBack","_stepToPrevPage","_navigateToPage","allAnimationsOnPage","_navigateToNextPage","_navigateToPrevPage","nextPageIndex","prevPageIndex","prevPageBlock","_onInteract","_isSlidePresentation","isMobileWebView","resetScroll","scrollTo","_onKeyDown","_onScroll","_fullScreenScroll","_onFullScreenChange","_updateDimensions","_controlsTimer","_rootElement","Observer","ScrollStore","displayPagingControls","presentationTransition","displayControls","viewingBehavior","matchMedia","presentationDevice","isMobileView","screenWidth","screenHeight","MSStream","scaleW","scaleH","mobWidth","displayScrollProgress","firstVisiblePage","firstVisiblePageIndex","lastVisiblePage","lastVisiblePageIndex","showInteractivityHint","publicDownloads","parentElement","setPresentationSize","screenfull","fullscreenchange","navigateToPageLinkHandler","hideControls","updateObserverRoot","setRoot","firstElementChild","keyCode","LEFT_ARROW","UP_ARROW","KEY_P","PAGE_UP","BACKSPACE","RIGHT_ARROW","DOWN_ARROW","KEY_N","PAGE_DOWN","SPACE","showControls","showScrollProgress","_scrollProgressTimer","hideScrollProgress","exitFullscreen","forcedLiveDataInit","sideButtons","closeFullScreenButton","borderElement","renderWebViewItemContents","canBeAnimated","interactivityHintEnabled","onSheetClick","captureSheetIndex","getAnimationIdx","showChartsOnScroll","createMockObserver","animationProps","animationPropsOnActivePage","controlsWrapperStyle","sideButtonsArray","showSideBar","sideButtonClass","sideButton","notClickable","scrollProgress","pageStatus","mobilePagging","scrollProgressNoHeader","ScrollPage","showBorder","borderElementBottomBorder","borderElementWithControls","animationsPending","fullscreenWrapper","pageWrapper","onInteract","onSwipeForward","onSwipeBack","slidesContainer","editor","CONTROL_BUTTON_SPACE","controlsWrapper","controlBox","controlBoxShareDialog","switchToNextPage","switchToPrevPage","footnoteStyle","Riga","EPSILON","setVisibleGuides","visibleGuides","IFrame","_iframeLoaded","isLoading","embedProps","scrolling","onLoad","sandbox","allowFullScreen","referrerPolicy","mediaEntity","loadingWrapper","overlay","frameBorder","initiatorEntity","updateBounds","zeroedEditorState","entityRectangle","newBounds","parentGroup","Cancel","CancelToken","resolvePromise","throwIfRequested","_slicedToArray","$findIndex","GuideLine","inlineStyle","borderTop","borderLeft","dashedLine","SmartGuidesOverlay","guide","resizing","dragging","alignment","heightWithoutPaddings","widthWithoutPaddings","mapfn","bulkTransform","entitiesToTransform","boundingBoxRect","startCoordinates","newCoordinates","newEntityData","connectorEntityData","minSizeReached","minWidthReached","minHeightReached","shapeTextDimensions","isNil","connectorTransform","orphanConnectorEndsResult","transformOrphanConnectorEnds","connectors","startPt","endPt","hasEntityOutsideSelection","allEntityKeys","SideButton","prezigram","MoreButton","CloseButton","DownloadButton","ShareButton","PresentationButton","InfographicSideButtons","_toggleSideButtons","visibleSideButtons","_enterFullscreen","enterPresentationFullscreen","enterResponsiveInfographicFullscreen","sideButtonsContainer","notClickableContainer","singleButton","data-do-not-hide","respStyle","sideButtonContainer","fullscreenButton","toOffset","arrayLike","defaultRecord","Transform","locked","SHAPES_WITHOUT_TEXT","ACCESSIBILITY_RECORDS","generateUniqueIdentifier","fromRawTransform","getProps","unclipped","ignoreRotation","isMasked","isVideo","settle","buildFullPath","parseHeaders","isURLSameOrigin","requestData","requestHeaders","auth","Authorization","fullPath","responseURL","responseHeaders","getAllResponseHeaders","responseType","responseText","statusText","onabort","ontimeout","timeoutErrorMessage","xsrfValue","withCredentials","setRequestHeader","onDownloadProgress","onUploadProgress","upload","cancelToken","abort","send","INFOGRAPHIC_SETTINGS_SET_VALUE","INFOGRAPHIC_SETTINGS_SET_OPEN_SECTION","INFOGRAPHIC_SETTINGS_LOGO_SECTION","INFOGRAPHIC_SETTINGS_SHARE_BUTTON_SECTION","INFOGRAPHIC_SETTINGS_PROJECT_VIEW_EXPERIENCE_SECTION","INFOGRAPHIC_SETTINGS_ACCESSIBILITY_SECTION","_nonIterableRest","Sepia","cbrt","Reflect","propertyKey","ResponsiveInfographic","shareDialogVisible","setObserverRoot","elementsRenderedMap","shrinkMargin","onButtonClick","notClickableSideButtons","itemMayBeSecondInLine","isShrunk","willBeRendered","previousElementsRendered","getPreviousElementsRendered","media_type","image_width","zeropadding","zeroPadding","rtl","fullscreen","logo","copyrightNotice","footerStyle","moveEntitiesWithSnapping","initialEntityPositions","adjustedDx","adjustedDy","snapIndex","selectionBoundingBox","shouldShowObjectGuides","newSelectionBox","visibleGuidesFromMatches","GRID_SNAPPING_THRESHOLD","verticalSnapHit","horizontalSnapHit","hasConnector","connectorMoveResult","connectorMove","skip","newEntities","updateSelectionBoundBox","hypot","value1","value2","sum","aLen","larg","LOG2E","clz32","Avatar","actionColorIndicator","clickable","actionColor","showName","border","customCss","avatarTooltip","userName","userImage","tooltipClass","data-tooltip-position","data-tooltip","hasBorder","greyed","SanFrancisco","stdDeviation","CHART_SETTINGS_OPEN_SHEET","CHART_SETTINGS_OPEN_SETTINGS_SECTION","CHART_SETTINGS_CUSTOM_TYPE_STANDARD","CHART_SETTINGS_CUSTOM_TYPE_COLLAPSE_PANEL","CHART_SETTINGS_CUSTOM_TYPE_BAR_RACE","CHART_SETTINGS_SHAPE_SEARCH","CHART_SETTINGS_LOAD_SETTINGS_FILTER","CHART_SETTINGS_TAB_CHANGE","Blur","tableValues","transformW","transformH","svgStyle","REVISIONS_SHOW","REVISIONS_HIDE","REVISION_PREVIEW","REVISIONS_LOAD_REQUEST","REVISIONS_LOAD_SUCCEEDED","REVISIONS_LIST_READY","REVISIONS_DISPLAY_REVISION","REVISIONS_PAYWALL_HIT","data-tip","scheduler","boundArgs","setInterval","__webpack_public_path__","UNSCOPABLES","MATCH","SCALE_ORIGINS","handleType","CALLOUT_HANDLE","stopResizing","resetHandlers","originalContent","transformFunc","resizeCallout","update","$some","ZOOM_SWITCH_TO_THUMBS_VIEW","ZOOM_TO_THUMBS","ZOOM_TO_SINGLE","regExpExec","nativeMatch","matcher","fullUnicode","matchStr","allSelected","selectAllType","pages","mapEditorStateToPages","TOGGLE_PAGE_SELECTION","totalCount","checkedCount","TOGGLE_ALL_PAGE_SELECTION","UPDATE_PAGE_RESOLUTION_FLAGS","updatedPage","isLowResolution","defaultConstructor","HDR","$trim","engagementInscreen","EventEmitter","frameVisible","framePosition","isFrameVisible","getFramePosition","register","REVEAL_SELECTION_FRAME","HIDE_SELECTION_FRAME","TOGGLE_ALL_ELEMENTS_VISIBLE","SET_ELEMENT_VISIBLE","SET_ELEMENT_CHILD_VISIBLE","transformData","isCancel","throwIfCancellationRequested","nativeConstruct","NEW_TARGET_BUG","ARGS_BUG","Target","newTarget","$args","createElementCollection","allCheckedState","ignoredCharts","outlineVisible","getElements","toList","allElementsChecked","getAllCheckedType","childIndexes","filterHiddenChildren","hidden","elementIsVisible","elementId","mustFindElement","readHiddenChildren","isOutlineVisible","collectElements","allDataSeries","extractDataSets","titleNumbers","elementUtils","allJsSeries","particle_id","chart_id","objectIdFromElement","checkState","checkedChildrenCount","uncheckedChildrenCount","jsSeries","seriesChecked","SeriesElement","resolveParentCheckedState","elementTitle","particleKey","inferElementTitle","OutlineElement","collectOutlineElements","elementsChecked","emitChange","findElementByKey","nothrow","indexes","someAreChecked","someAreUnchecked","elementChecked","elementCheckType","unchecked","ignoredDataSets","COLLECT_ELEMENTS","elementState","uncheckedCount","elementChildrenChecked","DownloadTypes","TYPE_HTML","invert","chart_constants","VersioningData","selection","isMultiSelectionActive","eKey","adjustSelection","needsAdjustment","remainingContentKeys","containsEntity","remainingBlockKeys","createFromBlockAndEntityKeys","getBoundingBox","entitiesToMove","selectionStateStore","boundUndoStack","boundRedoStack","ENTER_GROUP_EDIT_MODE","EXIT_GROUP_EDIT_MODE","skipUntil","INITIAL_BOUNDING_BOX_CHANGE","SELECTION_BOUNDING_BOX_CHANGE","newSelection","ignoreGroups","removeLockedEntitiesFromSelection","newBound","nextBound","selectionChanged","setCreatedConnector","stopDragging","queryPoint","minDx","minDy","newEntity","GRID_SNAPPING_VISIBLE_THRESHOLD","objectAction","modify_object_action","OTHER","object_type","logActions","pointerDownLocation","setActiveHandle","convertPointToBlock","createdConnectorKey","setConnectorTargetEntity","addOptions","groupBeingEdited","addEntitiesResult","addEntities","shiftKey","bringToFrontOfEntity","updateOptions","transformedEditorState","lineHandleIndex","originCenter","sb","centerOfHandle","adjustedOriginCenter","_rotationOrigin","_rotationOriginAdjusted","adjustCalloutInnerPadding","shouldAdjustCalloutInnerPadding","altKey","singleTransform","rotationOriginAdjusted","entityOverrides","calloutPaddings","mergeDeep","nextEntity","diffObjects","diff","editOnMouseDown","updateSelection","clearBlocks","addBlocks","moveableEntityKeys","handlerEntity","CALLOUT_SIDE_HANDLES","innerEntity","moveableEntities","handleRect","mouseDownOn","getRelativeBlockRect","excludedEntityKeys","GridSettings","getGridLines","selectionMouseDown","$entries","WebSearchView","resultsCount","searchFrom","onSearchSubmitForm","total","debouncedOnScroll","leading","noResults","full_name","term","textAlign","debounce","addEntitiesInternal","insertIndex","defaultState","activePageId","activePageIndex","processingEvents","hasOwn","argType","inner","inheritIfRequired","getFlags","NativeRegExp","re1","re2","CORRECT_NEW","RegExpWrapper","pattern","thisIsRegExp","patternIsRegExp","flagsAreUndefined","proxy","IS_INCLUDES","fromIndex","fetchNewLiveData","DATA_UPLOAD_LOADING_START","DATA_UPLOAD_LOADING_END","$padStart","padStart","$filter","mapping","iteratorMethod","calculateVisibleRotation","maskBox","nativeSort","FAILS_ON_UNDEFINED","FAILS_ON_NULL","collectionStrong","MIN_CALLOUT_ENTITY_HEIGHT","MIN_CALLOUT_ENTITY_WIDTH","CALLOUT_MARGIN","CALLOUT_SHADOW","radius","spread","CALLOUT_CLOSE_BUTTON_SIZE","objectDefinePropertyModule","regExpFlags","_typeof","TooltipWrapper","_logEngagement","_isTooltipVisible","isVisible","_onTouchStart","showTooltip","transforming","changedTouches","pageX","pageY","updateTooltip","initTooltip","_wrapper","optionsSupported","capture","passive","onMouseEnter","argument","Theme","alpha8","alpha24","alpha32","alpha40","alpha80","neutral50","neutral60","neutral80","neutral90","neutral100","neutral200","neutral300","neutral400","neutral500","neutral600","neutral700","neutral800","blue50","blue100","blue200","blue300","blue400","blue500","blue600","teal50","teal100","teal200","teal300","teal400","teal500","teal600","green50","green100","green200","green300","green400","green500","green600","orange50","orange100","orange200","orange300","orange400","orange500","orange600","purple50","purple100","purple200","purple300","purple400","purple500","purple600","red50","red100","red200","red300","red400","red500","red600","ralewayRegular","ralewayMedium","ralewaySemiBold","ralewayBold","ralewayHeavy","colours","menus","Series","hint","deg2rad","rad2deg","LogLevel","es6_promise_1","axios_1","ClientLogger","isProduction","logApiEndpoint","sendLogRequest","logMessage","fillPayloadDefaults","preparedLogMessage","prepareLogMessage","currentDate","currentTime","current_time","created","msecs","client_datetime","_object","_action","_category","category","defaultSource","levelname","logLevel","defaultLogLevel","levelno","relativeCreated","session_id","prezi_id","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","REPLACE","nativeReplace","searchValue","replaceValue","replacer","functionalReplace","results","accumulatedResult","nextSourcePosition","captures","namedCaptures","replacerArgs","getSubstitution","tailPos","ch","nativeAcosh","acosh","LN2","MAX_VALUE","CalloutCloseButton","ReplaceTransition","_args","handleEnter","_len2","_key2","handleLifecycle","handleEntering","_len3","_key3","handleEntered","_len4","_key4","handleExit","_len5","_key5","handleExiting","_len6","_key6","handleExited","_len7","_key7","originalArgs","_child$props","findDOMNode","inProp","_React$Children$toArr","onEnter","onEntering","onExit","onExiting","thisNumberValue","nativeToPrecision","toPrecision","precision","firstEntity","flattenSelectionKeys","persist","duplicateEntities","ignoreOffset","lockAxis","connectorBoundsResult","connectorBounds","activeEntity","absX","absY","PointerEventsCatcher","containerRef","touchStart","xSwipe","ySwipe","touches","touchEnd","xUp","yUp","xDiff","yDiff","onTouchStart","onTouchEnd","StyledLink","StyledImage","StyledVideo","StyledIframe","setUserInfo","newUserInfo","TransitionGroup","contextValue","firstRender","mounted","componentWillUnmount","currentChildMapping","childFactory","AccessibleWrapper","descriptionTag","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","__lookupSetter__","disassembleGroup","entityKeysToSeparate","parentGroupChildren","groupsIndex","newSetOfKeys","toSet","groupKeyToExit","relativeURL","isInteger","isSafeInteger","keysToDelete","removedCalloutEntities","whitespace","ltrim","rtrim","TYPE","PublicDownloadDialog","_download","_onClose","publicDownloadDialogHolder","headerPublicDownloadDialogHolder","dialogHeader","dialogContainer","dialogButton","jpgFile","data-type","pngFile","pdfFile","startImageClipEditing","showImageMaskControls","isNew","showImageCropControls","DISPLAY_IMAGE_CROPPING_CONTROLS","DISPLAY_IMAGE_MASKING_CONTROLS","saveClip","saveMask","saveCrop","startClipResize","resizeOrigin","START_CLIP_RESIZE","startClipRotate","START_CLIP_ROTATE","startClipMove","START_CLIP_MOVE","transformImageMask","TRANSFORM_IMAGE_MASK","resizeImageCrop","RESIZE_IMAGE_CROP","moveImageMask","MOVE_IMAGE_MASK","moveImageCrop","MOVE_IMAGE_CROP","exitClippingMode","EXIT_CLIPPING_MODE","stopClipping","STOP_CLIPPING","removeImageClip","client_logger_1","WebsiteLogger_1","WebsiteLogger","logConfig","glassboxWebJs","glassboxWebPrezigram","glassboxWebWebgl","glassboxPreziAirWeb","additionalParameters","INFOGRAPHIC_LOADING","hasQueryString","nocache","paramsStr","loadInfographic","INFOGRAPHIC_LOAD_ERROR","app","router","navigate","loadAssets","createBackboneModelFromJSON","WebInfographicsGrid","lastRowPadding","times","$join","HeaderContents","Contents","Arrow","ArrowDown","ArrowUp","Dropdown","ELEMENT_MENU_TAB_CHANGE","ELEMENT_MENU_CLOSE","ELEMENT_MENU_DRAG_BEGIN","ELEMENT_MENU_DRAG_END","ELEMENT_MENU_DRAG_ENTER","ELEMENT_MENU_DRAG_LEAVE","ELEMENT_MENU_CHARTS_FILTER","ELEMENT_MENU_CHARTS_SORTMODE_TYPE","ELEMENT_MENU_CHARTS_SORTMODE_USECASE","ELEMENT_MENU_SHAPES_FILTER","ELEMENT_MENU_MAPS_FILTER","ELEMENT_MENU_MAPS_THUMBS","ELEMENT_MENU_MAPS_SHOW_PREVIEW","ELEMENT_MENU_MAPS_HIDE_PREVIEW","ELEMENT_MENU_CUSTOM_MAPS_LOADED","ELEMENT_MENU_PUSH_CUSTOM_MAP","ELEMENT_MENU_MAPS_LOADING","ELEMENT_MENU_IMAGES_RESET","ELEMENT_MENU_IMAGES_LOADED","ELEMENT_MENU_IMAGE_LOAD_FAILED","ELEMENT_MENU_IMAGES_ADDED","ELEMENT_MENU_IMAGE_UPLOAD_STARTED","ELEMENT_MENU_IMAGE_UPLOAD_FINISHED","ELEMENT_MENU_IMAGE_UPLOADED","ELEMENT_MENU_IMAGE_UPLOAD_FAILED","ELEMENT_MENU_IMAGE_DELETE_DIALOG","ELEMENT_MENU_IMAGE_DELETION_CONFIRMED","ELEMENT_MENU_IMAGE_DELETED","ELEMENT_MENU_IMAGE_DELETE_FAILED","ELEMENT_MENU_IMAGE_DELETE_DIALOG_CLOSE","ELEMENT_MENU_IMAGE_RENAMED","ELEMENT_MENU_MAP_LOAD_FAILED","FREE_MAP_GROUP","ELEMENT_MENU_MEDIA_LOADING","ELEMENT_MENU_MEDIA_RESULTS","ELEMENT_MENU_MEDIA_REFRESH","ELEMENT_MENU_MEDIA_SEARCH_FAILED","ELEMENT_MENU_MEDIA_SEARCH","ELEMENT_MENU_MEDIA_SOURCE_CHANGE","ELEMENT_MENU_MEDIA_SOURCE_YOUTUBE","ELEMENT_MENU_MEDIA_SOURCE_VIMEO","ELEMENT_MENU_MEDIA_SOURCE_SLIDESHARE","ELEMENT_MENU_MEDIA_SOURCE_FLICKR","ELEMENT_MENU_MEDIA_SOURCE_LINK","ELEMENT_MENU_MEDIA_SOURCE_GIPHY","ELEMENT_MENU_MEDIA_SOURCE_IFRAME","ELEMENT_MENU_GOOGLEANALYTICS_LOADING_STARTED","ELEMENT_MENU_GOOGLEANALYTICS_LOADED","ELEMENT_MENU_GOOGLEANALYTICS_SELECT_CHANGE","ELEMENT_MENU_INTEGRATION_SECTION_CHANGE","ELEMENT_MENU_TYPE_SELECTED","ELEMENT_MENU_GRAPHICS_SORTMODE_TYPE","ELEMENT_MENU_GRAPHICS_SORTMODE_PREVIEW_ALL","ELEMENT_MENU_GRAPHICS_SORTMODE_IMAGE","ELEMENT_MENU_GRAPHICS_SORTMODE_ICON","ELEMENT_MENU_GRAPHICS_SORTMODE_FLAG","ELEMENT_MENU_GRAPHICS_SORTMODE_STICKER","ELEMENT_MENU_GRAPHICS_SORTMODE_CUSTOM_ICON","ELEMENT_MENU_GRAPHICS_SORTMODE_MASKS","ELEMENT_MENU_GRAPHICS_SORTMODE_GIPHY","ELEMENT_MENU_GRAPHICS_SORTMODE_ELEMENT","ELEMENT_MENU_GRAPHICS_SORTMODE_VIDEOS","ELEMENT_MENU_GRAPHICS_RESULTS","ELEMENT_MENU_GRAPHICS_SEARCH_FAILED","ELEMENT_MENU_GRAPHICS_LOADING","ELEMENT_MENU_GRAPHICS_LOAD_MORE","ELEMENT_MENU_GRAPHICS_BASIC_USER_SEARCH","ELEMENT_MENU_GRAPHICS_BASIC_USER_TYPE_SEARCH","ELEMENT_MENU_GRAPHICS_TAB_CHANGE","ELEMENT_MENU_GRAPHICS_TAB_GRAPHICS","ELEMENT_MENU_GRAPHICS_TAB_IMAGE_GALLERY","ELEMENT_MENU_INTEGRATIONS_FILTER","ELEMENT_MENU_INTEGRATIONS_FORM_SET_ERROR","ELEMENT_MENU_INTEGRATIONS_FORM_UPDATE_FIELD","ELEMENT_MENU_INTEGRATIONS_FORM_DIALOG_OPENED","ELEMENT_MENU_INTEGRATIONS_FORM_DIALOG_CLOSED","ELEMENT_MENU_INTEGRATIONS_FORM_SET_LOADING","ELEMENT_MENU_INTEGRATIONS_SORTMODE_TYPE","ELEMENT_MENU_INTEGRATIONS_SORTMODE_DATA","ELEMENT_MENU_INTEGRATIONS_SORTMODE_MEDIA","ELEMENT_MENU_ELEMENTS_RESULTS","ELEMENT_MENU_IMAGE_GALLERY_FORMAT_ALL","ELEMENT_MENU_IMAGE_GALLERY_FORMAT_JPG","ELEMENT_MENU_IMAGE_GALLERY_FORMAT_PNG","ELEMENT_MENU_IMAGE_GALLERY_FORMAT_GIF","ELEMENT_MENU_IMAGE_GALLERY_FORMAT_SVG","ELEMENT_MENU_IMAGE_GALLERY_SORT_RECENTLY_UPLOADED","ELEMENT_MENU_IMAGE_GALLERY_SORT_RECENTLY_USED","ELEMENT_MENU_IMAGE_GALLERY_VIEW_MODE_GRID","ELEMENT_MENU_IMAGE_GALLERY_VIEW_MODE_LIST","bitmap","__CANCEL__","ce","CustomEvent","defaultPrevented","origPrevent","bubbles","cancelable","initCustomEvent","setBackground","interaction","inst","createStyledTooltip","createInteractionCaller","valueStyle","receiver","flatMap","_onSearchSubmit","searchInput","infographicsContainer","of","remainder","cells","snapped","startPointAngleToOrigin","delta1","delta2","p1","p2","rotatedP1","rotatedP2","aspectSlope","pSlope","px","py","pointA","pointB","roundRotation","forLine","pointOfContact","getPositionOnSizeChange","adjustmentEntity","possibleTypes","initialState","hasCustomLink","userLogoImage","getCurrentProfile","infographic_settings","logoValue","custom_logo","custom_logo_value","logoImages","footerOptions","newOptions","bg","FOOTER_SETTINGS_SET_PAGINATION_STARTING_NUMBER","FOOTER_SETTINGS_SET_FOOTER_VISIBILITY","FOOTER_SETTINGS_SET_PAGINATION_FORMAT","FOOTER_SETTINGS_SET_BACKGROUND_COLOR","FOOTER_SETTINGS_SET_BACKGROUND_OPACITY","FOOTER_SETTINGS_SET_FOOTER_LAYOUT","FOOTER_SETTINGS_SET_FOOTNOTE_TYPE","FOOTER_SETTINGS_SET_LOGO_TYPE","FOOTER_SETTINGS_SET_LOGO_NAME","FOOTER_SETTINGS_SET_LOGO_LINK","FOOTER_SETTINGS_SET_CUSTOM_LINK","FOOTER_SETTINGS_SET_CUSTOM_LINK_OPTION","FOOTER_SETTINGS_SET_FOOTNOTE_TEXT","FOOTER_SETTINGS_SET_TEXT_COLOR","FOOTER_SETTINGS_SET_BUTTON_BACKGROUND_COLOR","FOOTER_SETTINGS_SET_BUTTON_TEXT_COLOR","FOOTER_SETTINGS_SET_BUTTON_TEXT","FOOTER_SETTINGS_SET_LOGO_VALUE","FOOTER_SETTINGS_SET_FONT_STYLE","FOOTER_SETTINGS_TOGGLE_CUSTOM_LINK","FOOTER_SETTINGS_SET_FONT_SIZE","themeFooterOptions","extraData","MARKER_SIZE","DEFAULT_LINE_WIDTH","TRIANGLE_TOP_ANGLE","atan","TRIANGLE_BOTTOM_ANGLE","pointsForTriangle","borderWidth","topY","bottomY","bottomX","markers","markerProps","points","cy","StartMarker","EndMarker","lineProps","startMarkerProps","endMarkerProps","consoleLogger","_console","baseLogger","Logger","concreteLogger","debug","forward","lvl","debugOnly","moduleName","observers","_this2","cloned","_cloned","rej","makeString","copy","getLastOfPath","Empty","cleanKey","canNotTraverseDeeper","setPath","_getLastOfPath","_getLastOfPath3","deepExtend","regexEscape","_entityMap","ResourceStore","_EventEmitter","defaultNS","keySeparator","silent","addNamespaces","addResource","deep","pack","hasResourceBundle","removeNamespaces","getResource","compatibilityAPI","postProcessor","processors","addPostProcessor","translator","processor","Translator","services","nsSeparator","namespaces","overloadTranslationOptionHandler","_this$extractFromKey","extractFromKey","appendNamespaceToCIMode","resUsedKey","usedKey","resExactUsedKey","exactUsedKey","resType","noObject","joinArrays","handleAsObjectInI18nFormat","i18nFormat","handleAsObject","returnObjects","returnedObjectHandler","resTypeIsArray","copy$$1","newKeyToUse","deepKey","extendTranslation","usedDefault","isValidLookup","pluralResolver","getSuffix","updateMissing","lngs","fallbackLngs","languageUtils","getFallbackCodes","saveMissingTo","toResolveHierarchy","missingKeyHandler","backendConnector","saveMissing","needsPluralHandling","saveMissingPlurals","getPluralFormsOfKey","appendNamespaceToMissingKey","parseMissingKeyHandler","_this3","usedLng","usedNS","skipInterpolation","interpolator","defaultVariables","interpolate","nest","postProcess","postProcessorNames","applyPostProcessor","_this4","extracted","fallbackNS","needsContextHandling","codes","pluralSuffix","possibleKey","finalKey","finalKeys","addLookupKeys","contextSeparator","returnNull","returnEmptyString","resourceStore","capitalize","LanguageUtil","whitelist","formatLanguageCode","specialCases","lowerCaseLng","cleanCode","nonExplicitWhitelist","getLanguagePartFromCode","fallbacks","getScriptPartFromCode","fallbackCode","fallbackCodes","addCode","isWhitelisted","fc","sets","nr","_rulesPluralsTypes","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","19","20","21","22","createRules","rules","plurals","PluralResolver","rule","getRule","noAbs","simplifyPluralSuffix","returnSuffix","prepend","compatibilityJSON","Interpolator","iOpts","useRawValueToEscape","prefixEscaped","suffixEscaped","formatSeparator","unescapePrefix","unescapeSuffix","nestingPrefix","nestingPrefixEscaped","nestingSuffix","nestingSuffixEscaped","maxReplaces","resetRegExp","regexpStr","regexpUnescapeStr","regexpUnescape","nestingRegexpStr","nestingRegexp","replaces","regexSafe","handleFormat","missingInterpolationHandler","temp","clonedOptions","handleHasOptions","inheritedOptions","optionsString","Connector","backend","languages","toLoad","pending","toLoadLanguages","toLoadNamespaces","hasAllNamespaces","reload","loaded","errors","_name$split","_name$split2","addResourceBundle","_getLastOfPath2","what","fcName","tried","wait","queueLoad","loadOne","prepareLoading","_this5","_name$split3","_name$split4","fallbackValue","isUpdate","preload","pluralSeparator","partialBundledLanguages","tDescription","_format","transformOptions","i18next","I18n","external","isInitialized","isClone","createClassOnDemand","ClassOrObject","lu","languageDetector","detection","storeApi","_this2$store","changeLanguage","setLng","cacheUserLanguage","loadResources","detect","fixedT","rest","_this$translator","_this$translator2","exists","_this6","preloaded","newLngs","_this7","mergedOptions","membersToCopy","fbemitter","ArrayIterators","arrayValues","arrayKeys","arrayEntries","nativeTypedArrayIterator","CORRECT_ITER_NAME","typedArrayValues","googleFonts","webFontConfig","browserIsFromMicrosoft","Fonts","fontArr","retry","loadStart","WebFont","__loaded","fontsFailed","failedFonts","_readyCallback","__loadedCb","__loading","createWebFontLoaderConfig","publicConfig","cdn","hasFonts","styleSheets","fixupFontRenderingIfNeeded","loadFontsForPreview","customConfig","ctx","fontConfig","nativeAssign","chr","setAnimationSequence","toIndex","arrayFill","NativeArrayBuffer","$ArrayBuffer","$DataView","packIEEE754","mantissaLength","bytes","exponent","mantissa","exponentLength","eMax","eBias","rt","unpackIEEE754","nBits","unpackInt32","packInt8","packInt16","packInt32","packFloat32","packFloat64","addGetter","isLittleEndian","intIndex","byteLength","conversion","ArrayBufferPrototype","testView","nativeSetInt8","setInt8","getInt8","setUint8","bufferLength","getUint8","getInt16","getUint16","getInt32","getUint32","getFloat32","getFloat64","setInt16","setUint16","setInt32","setUint32","setFloat32","setFloat64","_undefined","deprecate","t1","t2","labConvert","Lab","Hcl","rgb2lrgb","xyz2lab","lab","lab2xyz","lrgb2rgb","hclConvert","lch","hcl","isPrototype","findPattern","parseValueOrReference","isPlaceholder","fromJSON","stepSize","spacing","totalWhitespace","columnWidth","multiplier","column","baseline","getColumnLeft","baselineCount","getBaselineCount","getBaselineTop","getColumnsWidth","getBaselineHeight","IMG_CONTENT","generateAssetId","getTableCellStringValue","extractTableCellUrl","replaceTableCellValue","convertTableCellFromUrlToAsset","newAssets","existingAssets","addAsset","migrateTableChartAssets","updatedData","rowIndex","cellIndex","extractTableCellAsset","resetTableCellValue","immutableData","legacyModel","isMap","constants","INFOGRAPHIC_PUBLISHED","INFOGRAPHIC_CREATED","INFOGRAPHIC_INVALIDATE","INFOGRAPHIC_MODEL_LOADED","INFOGRAPHIC_RENAMED","INFOGRAPHIC_DESCRIPTION_CHANGE","GLOBAL_LOADING_SHOW","GLOBAL_LOADING_HIDE","INFOGRAPHIC_TYPE_RESPONSIVE","INFOGRAPHIC_TYPE_FREE_LAYOUT","INFOGRAPHIC_TYPE_ZOOM_LAYOUT","MAX_IMPORT_SIZE","DEFAULT_INFOGRAPHIC_WIDTH","ELEMENT_SELECTED_NONE","ELEMENT_SELECTED_RESPONSIVE_INFOGRAPHIC_SETTINGS","ELEMENT_SELECTED_RESPONSIVE_CHART","ELEMENT_SELECTED_RESPONSIVE_GRAPHIC","ELEMENT_SELECTED_RESPONSIVE_TEXT","ELEMENT_SELECTED_RESPONSIVE_MEDIA","RESPONSIVE_PARTICLE_SETTINGS_UPDATED","INSPECTOR_PANEL_RESET","INSPECTOR_PANEL_CLOSE","INSPECTOR_PANEL_OPEN","THEMES_LOADING","THEMES_LOADED","PALETTES_LOADED","PALETTES_LOADING","PALETTES_LOADING_FAILED","EMBED_RESPONSIVE","EMBED_IFRAME","EMBED_ASYNC","EMBED_IMAGE_RESPONSIVE","EMBED_IMAGE_ASYNC","EMBED_IMAGE_IFRAME","EMBED_AMP","EMBED_AMP_IMAGE","EMBED_WORDPRESS","EMBED_WORDPRESS_IMAGE","RESPONSIVE_SET_INTERLINKED_CHARTS","INFOGRAPHIC_PERMISSIONS_DEFAULTS_CHANGE","INFOGRAPHIC_PERMISSIONS_DEFAULTS_CHANGE_FAILED","INFOGRAPHIC_PERMISSIONS_ADD","INFOGRAPHIC_PERMISSIONS_ADD_SUCCEEDED","INFOGRAPHIC_PERMISSIONS_ADD_FAILED","INFOGRAPHIC_PERMISSIONS_UPDATE","INFOGRAPHIC_PERMISSIONS_UPDATE_SUCCEEDED","INFOGRAPHIC_PERMISSIONS_UPDATE_FAILED","INFOGRAPHIC_PERMISSIONS_DELETE","INFOGRAPHIC_PERMISSIONS_DELETE_FAILED","INFOGRAPHIC_PERMISSIONS_REQUEST","TITLE_EDITOR_UPDATE","TITLE_EDITOR_UPDATE_DONE","isZoom","isFlexEngine","SharePlaceholder","nativeDateToISOString","year","getUTCFullYear","milliseconds","getUTCMilliseconds","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","PageIntersectionObserver","tail","updateVisibleElements","elementMap","isIntersecting","intersectingMin","intersectingMax","outOfBufferRange","inPrerenderRange","IntersectionObserver","CONVERT_TO_STRING","internalStateGetterFor","IS_MAP","ADDER","define","previous","getEntry","removed","setStrong","ITERATOR_NAME","getInternalCollectionState","getInternalIteratorState","ShareDialog","_chooseEmbedType","embedType","panelOpen","_toggleEmbed","showEmbedCode","_togglePanel","properties","brandsetShareLink","shareUrl","currentBrandset","customLinkOptionResponsive","title_link","shareLink","customShareText","shareText","embedAsync","embedIframe","embedData","embedCode","fixed","dropDownHeader","dropDownHeaderTitle","shareDialogHolder","footerShareDialogHolder","headerShareDialogHolder","firstPosition","socialButtons","_openSocialShare","social","facebook","twitter","linkedin","shareUrlHolder","_copyLink","embedButton","back","dropDownHolder","dropDownLabel","dropDownPanel","data-key","dropDownItem","_textareaSelect","select","execCommand","Flux","originalArray","handlerByElement","WeakMap","handlerByKey","handlers","eId","sup","chartColorsSync","colorParams","_defaultColors","_defaultColorsHeatmap","_chartData","_design","_replacements","_syncProps","hasSingleColor","coldColor","hotColor","_syncSheet","colorIndex","groupedColors","setWith","toPath","candidate","LOG10E","log10","isInternetExplorerOrEdge","generateKeyFromFilters","processed","CoverImage","renderSimpleDiv","cn","renderVignette","renderWithFilters","WebkitFilter","svgFilters","stylesInDom","isOldIE","atob","getTarget","getElement","styleTarget","HTMLIFrameElement","contentDocument","singleton","singletonCounter","stylesInsertedAtTop","fixUrls","addStylesToDom","domStyle","refs","addStyle","listToStyles","newStyles","insertStyleElement","insertInto","lastStyleElementInsertedAtTop","insertAt","nextSibling","firstChild","before","removeStyleElement","createStyleElement","nonce","getNonce","addAttrs","styleIndex","applyToSingletonTag","Blob","createLinkElement","updateLink","applyToTag","newObj","DEBUG","newList","mayRemove","textStore","replaceText","styleSheet","cssNode","autoFixUrls","convertToAbsoluteUrls","oldSrc","AbsoluteSVG","svg","ImageMask","pathProps","clipPathUnits","TITLE_EDITOR_START_EDITING","TITLE_EDITOR_STOP_EDITING","TITLE_EDITOR_SET_TITLE","TITLE_EDITOR_INIT","TITLE_EDITOR_SAVE_REQUEST","TITLE_EDITOR_SAVE_SUCCEEDED","FLEX_EDITOR_GRID_SHOW_GUIDES","FLEX_EDITOR_GRID_TOGGLE_GUIDES","FLEX_EDITOR_GRID_SNAP_OBJECTS","FLEX_EDITOR_GRID_TOGGLE_SNAP_OBJECTS","FLEX_EDITOR_GRID_SET_WHITESPACE_PERCENT","FLEX_EDITOR_GRID_SET_COLUMN_COUNT","TRACKING_LINKS_SET_CREATE_MODE","TRACKING_LINKS_SUBMIT","TRACKING_LINKS_UPDATE","TRACKING_LINKS_DELETE","TRACKING_LINKS_SAVE_REQUEST","TRACKING_LINKS_SAVE_SUCCEEDED","TRACKING_LINKS_SUBMITTED","TRACKING_LINKS_UPDATE_SUCCEEDED","TRACKING_LINKS_DELETE_SUCCEEDED","SOCKET_DISCONNECTED","SOCKET_CONNECTED","SOCKET_SEND_EVENT","SOCKET_RECEIVE_EVENT","FLEX_EDITOR_OPEN_PROJECT","FLEX_EDITOR_PROJECT_OPENED","FLEX_EDITOR_CLOSE_PROJECT","FLEX_EDITOR_SELECTION_CHANGED","FLEX_EDITOR_USER_CONNECTED","FLEX_EDITOR_USER_DISCONNECTED","FLEX_EDITOR_USER_UPDATED","FLEX_EDITOR_CONTENT_SAVING","FLEX_EDITOR_CONTENT_SAVED","FLEX_EDITOR_CONTENT_SAVE_FAILED","TEAM_INVITE_EMAIL_TOKEN_DELETE","TEAM_INVITE_EMAIL_TOKEN_DELETE_SELECTED","TEAM_INVITE_EMAIL_TOKEN_SELECT_ALL","TEAM_INVITE_EMAIL_TOKEN_DESELECT_ALL","TEAM_INVITE_EMAIL_TOKEN_CREATE","TEAM_INVITE_EMAIL_TOKEN_UNDO","TEAM_INVITE_EMAIL_TOKEN_REDO","TEAM_INVITE_EMAIL_TOKEN_EDIT","TEAM_INVITE_EMAIL_TOKEN_SELECT","TEAM_INVITE_EMAIL_TOKEN_UPDATE_VALUE","TEAM_INVITE_EMAIL_TOKEN_UPDATE_INPUT","TEAM_INVITE_EMAIL_TOKEN_UPDATE_INPUT_WIDTH","TEAM_INVITE_EMAIL_TOKEN_RESET_STATE","MOUSE_MOVE","UPLOAD_FILES","ACCOUNT_UPGRADE_INITIALIZE","ACCOUNT_UPGRADE_DATA_LOADED","ACCOUNT_UPGRADE_SET_TAB","ACCOUNT_UPGRADE_SET_DISCOUNT_CODE","ACCOUNT_UPGRADE_SET_DISCOUNT_CODE_STATUS","ACCOUNT_UPGRADE_SET_DISCOUNT_CODE_ENABLED","ACCOUNT_UPGRADE_SET_CLIENT_TOKEN","ACCOUNT_UPGRADE_SET_DEVICE_DATA","ACCOUNT_UPGRADE_SET_PAYMENT_METHOD_DATA","ACCOUNT_UPGRADE_SUBMIT","ACCOUNT_UPGRADE_SUBMIT_UPGRADE","ACCOUNT_UPGRADE_SUBMIT_STATUS","ACCOUNT_UPGRADE_SET_PLAN","ACCOUNT_UPGRADE_SET_COUNTRY","ACCOUNT_UPGRADE_SET_VAT_NUMBER","ACCOUNT_UPGRADE_SET_IS_COMPANY","ACCOUNT_UPGRADE_SET_TEAM_SIZE","ACCOUNT_UPGRADE_SET_TEAM_DATA","TEAM_EVENT_CONVERSATION","SET_ANIMATION_CLIPBOARD","CREATE_NEW_PROJECT","CREATE_NEW_PROJECT_SUCCEEDED","CREATE_NEW_PROJECT_FAILED","NAVIGATE_TO_PROJECT","NAVIGATE_TO_DASHBOARD","NAVIGATE_TO_DOWNLOAD","CREATE_FROM_TEMPLATE","GET_TEMPLATE_DATA","GET_TEMPLATE_DATA_SUCCEEDED","GET_TEMPLATE_DATA_FAILED","SET_HIGHLIGHT","REMOVE_HIGHLIGHTS","LOAD_PREZIGRAM_PREVIEW","objectHas","wmget","wmhas","wmset","metadata","STATE","DialogContext","dialogComponent","closeDialog","DialogProvider","portal","createPortal","WrappableComponent","Wrapper","dialogState","fromTop","DialogContainer","DialogOverlay","DialogContent","Dialog","_dialog","onKeyDown","keyCodes","ESCAPE","modal","onApply","ENTER","onKeyUp","closeButtonCss","nativeParseFloat","trimmedString","TO_ENTRIES","InfographicContents","pageIntersectionObserver","PageUpgradeFooter","customFooterButton","avalablePagesInFlex","selectedBlockEntities","pageOverlay","containsBlock","editable","isTopFrame","isFriendlyFrame","viewportChanged","delayedViewportChange","documentBounds","notifyObserved","observedElements","getRootBounds","onIFramePositionChange","parentRootBounds","fillers","INTERSECTION_OBSERVER_SUPPORTED","intersectionObserverListener","IntersectionObserverListener","listenViewportChanges","observerEntries","unlistenViewportChanges","maxIntersectionSize","maxRatio","objectCenterY","NEGATIVE_INFINITY","POSITIVE_INFINITY","getNanoSeconds","hrtime","loadTime","moduleLoadTime","nodeLoadTime","upTime","uptime","defaultSize","TRAPEZIUM_DEFAULT_OFFSET","topAngle","bottomAngle","offsetLeft","offsetRight","pointsForHexagon","offset1","offset2","pointsForTrapezium","pointsForRhombus","middleY","pointsForPentagon","TYPE_IMAGE_PNG","TYPE_IMAGE_JPG","TYPE_PRINT","DEFAULT_TYPE","IS_WEAK","NativeConstructor","NativePrototype","exported","fixMethod","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","MaybeRotate","viewClasses","isDataView","Headers","normalizeName","normalizeValue","oldValue","iteratorFor","Request","_bodyInit","Body","Response","redirectStatuses","redirect","xhr","rawHeaders","consumed","bodyUsed","fileReaderReady","reader","readBlobAsArrayBuffer","FileReader","readAsArrayBuffer","bufferClone","_initBody","_bodyText","_bodyBlob","FormData","_bodyFormData","_bodyArrayBuffer","arrayBuffer","readAsText","chars","readArrayBufferAsText","formData","decode","upcased","bodyInit","profileData","setData","getProfileUserFromTeam","teamId","getTeamUser","userId","team","getTeam","getCurrentTeam","teams","teamlen","updateAvatar","userProfileId","userProfile","teamProfile","cloneDeep","isTeam","canPublish","canEdit","teamUser","isEnterprise","logged_in_provider","getLabel","currentProfile","getShortLabel","getLabelFromSubscription","plan_group","getShortLabelFromSubscription","subscription_ends","getProfileFromSubscriptionUserId","organization_id","getTeamMembersList","showAddButton","teamName","nativeFunctionToString","enforceInternalState","TEMPLATE","simple","$fill","Budapest","AbsolutelyCenteredElement","rotateKeyframes","SpinnerElement","Spinner","InlineSpinner","_renderTimeout","InfographicFooter","NewTarget","NewTargetPrototype","RESIZE_ORIGIN_MULTIPLIERS","RESIZE_POSITION_MULTIPLIERS","updateCalloutSize","updateEntitiesPosition","resizePaddingsOfSingleItemCallout","limitedChanges","calloutSize","adjustCropForTargetDimension","targetSize","cropStart","cropEnd","cropTotalDelta","startDelta","endDelta","adjustCropForTargetHeight","targetHeight","adjustCropForTargetWidth","targetWidth","resizeItem","getAssetURL","endsWith","canEntityBeCropped","originalBounds","imageRatio","resizeMultipleItemCallout","resizeInAlignmentAxis","contentSize","itemDelta","resizeCalloutItems","positionMultiplier","minItemLeft","minItemTop","resizePaddingsOfMultipleItemCallout","Uint8ArrayPrototype","arrayToString","arrayJoin","wrappedWellKnownSymbolModule","_inheritsLoose","logBackToVideoList","logChangedResolution","logChangedVideoDescription","logChangedVideoTag","logChangedVideoTitle","logClearContent","logClickGetVideoAppButton","logClickVideoCardMenu","logClickVideoCardOverlay","logClickVideoWorksWithCompanyCard","logClickedVideoDashboardEmptyCard","logCloseTutorialVideo","logCompletedNavigationOnboarding","logCompletedPresentationModeOnboarding","logCopyEmbedCodeToClipboard","logCopyVideoLink","logCopyVideo","logCreateNewVideo","logCreatedVideo","logDeleteFrame","logDeleteImage","logDeleteVideo","logDownloadAppStarted","logDownloadApp","logDownloadVideoApp","logDownloadVideo","logEnableCamera","logEnterSearchBar","logExploreVideos","logFilterReusableVideos","logFinishTrim","logFinishedTutorialVideo","logGoToNextStep","logHideFpsWarning","logImportPowerPoint","logInsertFrame","logInsertText","logLearnMoreFpsWarning","logLikeVideoPage","logLikeVideo","logLoadedCameraEnableScreen","logLoadedCameraSuccessScreen","logLoadedContentEditor","logLoadedDashboard","logLoadedErrorScreen","logLoadedPreziVideoHomePage","logLoadedPublicVideoPage","logLoadedRecordScreen","logLoadedTemplateChooser","logLoadedVideoDashboard","logLoadedVideoExplorePage","logLoadedVideoExploreResultsPage","logLoadedVideoPage","logLoadedVideoWorksWithPage","logLogout","logNavigatePresentationStructure","logOpenChat","logOpenFinalizeHelper","logOpenHelpMenu","logOpenPreziNextEditor","logOpenPrivacyDialog","logOpenSocialShare","logOpenTutorialVideo","logOpenVideoCardMenu","logOpenVideoCard","logPlayTutorialVideo","logPlaybackBandwidth","logPlaybackBuffering","logPlaybackEnded","logPlaybackHeartbeat","logPlaybackStarted","logPlaybackUserAction","logPlaybackVideo","logReorderFrame","logReportIssue","logRestartRecording","logReuseVideo","logSearchImage","logSearchVideo","logSelectAdvancedCreate","logSelectFrame","logSelectGoLive","logSelectTemplate","logSelectVideo","logSetPrivacy","logShareVideo","logShowFpsWarning","logShowOnboardingHelper","logShowTemplateList","logShowTooltip","logShowVideoList","logShowedLeavePageWarning","logSkipOnboarding","logStartRecording","logStartVideoTrimmer","logStopRecording","logSwitchPresentationMode","logTrimVideo","logUnlikeVideoPage","logUnlikeVideo","logUploadImage","logUploadedImage","logUseContent","logViewVideoTag","logVisitVideoDashboard","logVisitVideoHomepage","logVisitVideoViewPage","ArrayBufferModule","nativeDefineProperty","fromList","isTypedArrayIndex","wrappedGetOwnPropertyDescriptor","wrappedDefineProperty","CLAMPED","GETTER","SETTER","NativeTypedArrayConstructor","TypedArrayConstructorPrototype","addElement","typedArrayOffset","$length","$len","UNMOUNTED","EXITED","ENTERING","ENTERED","EXITING","Transition","initialStatus","appearStatus","mountOnEnter","nextCallback","updateStatus","componentDidUpdate","nextStatus","cancelNextCallback","getTimeouts","mounting","performEnter","performExit","appearing","timeouts","enterTimeout","safeSetState","onTransitionEnd","setNextCallback","doesNotHaveTimeoutOrListener","addEndListener","childProps","only","isNumber","product","assignValue","renderBlock","renderLogo","renderText","_clickShareButton","_hideShareDialog","getLogoLink","buttonStyle","d3color","totalPages","starting","paginationString","centerBlockStyle","fullWidthButton","fullWidth","SIZES","small","CircleStyles","Inner","CircleInner","Circle","colorSecondary","PrezigramSpinner","SelectionRectangle","linePath","pts","connectorStart","connectorEnd","rectTopLeft","rectBottomRight","MouseSelectionStore","originX","originY","FREELAYOUT_MOUSE_SELECTION_DOWN","FREELAYOUT_MOUSE_SELECTION_MOVE","FREELAYOUT_MOUSE_SELECTION_UP","backLink","campaign","tanh","DATA_TABLE_OPEN","DATA_TABLE_CLOSE","DATA_TABLE_TOGGLE","DATA_TABLE_SET_WIDTH","DATA_TABLE_RESIZE_START","DATA_TABLE_RESIZE_END","SHEET_SELECTOR_SCROLL_RIGHT","SHEET_SELECTOR_SCROLL_LEFT","SHEET_SELECTOR_SELECT_SHEET","SHEET_SELECTOR_CONTEXT_MENU_OPEN","SHEET_SELECTOR_CONTEXT_MENU_CLOSE","SHEET_SELECTOR_START_EDIT","SHEET_SELECTOR_STOP_EDIT","GRID_SNAPPING_GUIDES_EXTENSION","nativeAsinh","asinh","navigationTree","PRESENTATION_NAVIGATE","pageNumberIsInvalid","PRESENTATION_NAVIGATION_TREE_POP","PRESENTATION_FULLSCREEN_ENTER","PRESENTATION_FULLSCREEN_EXIT","PRESENTATION_RESIZE","PRESENTATION_DISPLAY_CONTROLS","PRESENTATION_DISPLAY_SCROLL_PROGRESS","availablePresets","a4","a4_landscape","us_letter","us_letter_landscape","dashboard_16_9","dashboard_4_3","instagram","pinterest","email","ProjectSettingsStore","showCustomSize","preset","backgroundFilters","activeSection","section","findKey","isCustomSize","objectGetPrototypeOf","utils_1","logGlassbox","requestFromPreprod","requestFromLocal","requestFromPde","eventSource","getSinglePageSessionId","getReferrerUrl","getSessionId","minTop","maxTop","eject","documentCreateElement","createDict","iframeDocument","contentWindow","write","lt","ProgressBar","hasValue","indeterminate","enterFullscreen","PREZIGRAM","targetId","navigationTreePop","Left","Right","ControlBox","_back","_switchToNextPage","_switchToPreviousPage","arrowDisabled","pageIndicator","generateDataUrl","localFont","cdnUrl","variation","cssString","src1","src2","fontSrc","webFontTemplate","fontObject","subsets","subset","fontinactive","familyName","fvd","SKIPS_HOLES","createIteratorConstructor","IteratorsCore","IteratorPrototype","BUGGY_SAFARI_ITERATORS","returnThis","IteratorConstructor","DEFAULT","IS_SET","CurrentIteratorPrototype","getIterationMethod","KIND","defaultIterator","IterablePrototype","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","optionsCalled","TAB","SHIFT","CTRL","ALT","PAUSE","CAPS_LOCK","END","HOME","INSERT","DELETE","KEY_0","KEY_1","KEY_2","KEY_3","KEY_4","KEY_5","KEY_6","KEY_7","KEY_8","KEY_9","KEY_A","KEY_B","KEY_C","KEY_D","KEY_E","KEY_F","KEY_G","KEY_H","KEY_I","KEY_J","KEY_K","KEY_L","KEY_M","KEY_O","KEY_Q","KEY_R","KEY_S","KEY_T","KEY_U","KEY_V","KEY_W","KEY_X","KEY_Y","KEY_Z","LEFT_META","RIGHT_META","SELECT","NUMPAD_0","NUMPAD_1","NUMPAD_2","NUMPAD_3","NUMPAD_4","NUMPAD_5","NUMPAD_6","NUMPAD_7","NUMPAD_8","NUMPAD_9","MULTIPLY","ADD","SUBTRACT","DECIMAL","DIVIDE","F1","F2","F3","F4","F5","F6","F7","F8","F9","F10","F11","F12","NUM_LOCK","SCROLL_LOCK","SEMICOLON","EQUALS","COMMA","DASH","PERIOD","FORWARD_SLASH","GRAVE_ACCENT","OPEN_BRACKET","BACK_SLASH","CLOSE_BRACKET","SINGLE_QUOTE","ReflectOwnKeys","ReflectApply","NumberIsNaN","_events","_eventsCount","_maxListeners","defaultMaxListeners","$getMaxListeners","_addListener","existing","warning","newListener","warned","onceWrapper","fired","wrapFn","_onceWrap","wrapped","_listeners","evlistener","unwrapListeners","arrayClone","listenerCount","setMaxListeners","getMaxListeners","doError","er","originalListener","spliceOne","rawListeners","eventNames","_getPrototypeOf","_extends","_createClass","_react","_react2","_interopRequireDefault","_propTypes2","_reactDom2","Sticker","_Component","_possibleConstructorReturn","mediaMatch","stick","Stickyfill","isSticky","unsticky","rebuild","handleResize","forceUpdate","_props","otherProps","_objectWithoutProperties","existingDescriptor","ownDescriptor","csrftoken","downgrade","salesPersonAvatar","salesPersonName","setConfig","infogramConfig","endPos","doc","win","checkTimer","watchArray","initialized","hiddenPropertyName","visibilityChangeEventName","webkitHidden","seppuku","prefixes","pause","kill","parseNumeric","updateScrollPos","pageYOffset","pageXOffset","recalcAllPos","onWheel","recalcElementPos","inited","currentMode","nodeStyle","switchElementMode","initElement","computed","isCell","refElement","cloneStyle","borderSpacing","cssFloat","docOffsetTop","getDocOffsetTop","deinitElement","deinitParent","killClone","targetObj","sourceObject","mergeObjects","initAll","deinitAll","getElementParams","computedStyle","parentComputedStyle","cachedPosition","numeric","paddingLeft","paddingRight","borderLeftWidth","borderRightWidth","nodeOffset","getElementOffset","parentOffset","borderTopWidth","borderBottomWidth","offsetTop","offsetParent","startFastCheckTimer","deltaTop","deltaHeight","fastCheck","stopFastCheckTimer","clearInterval","handlePageVisibilityChange","stickies","$includes","ProgressDialogTitle","h2","ProgressBarContainer","ProgressBarLabel","ProgressBarValue","ProgressDialogButton","StyledButton","Button","_handleCancelClick","ProgressDialogStore","startProgress","resetProgress","ProgressDialogContainer","Bronze","addEntity","resetEntities","removeEntity","cleanUpSheetPlayer","getSheetNames","CustomFontLoader","styleNode","addStyleElement","cssContent","sameValue","nativeSearch","searcher","previousLastIndex","lineStart","lineEnd","vectSub","directionVect","adjustRotation","connectorStyle","getPathFromPoints","prepareData","pathStyle","groupProps","$padEnd","padEnd","getConnectionAbsolutePosition","targetKey","absolutePosition","involvedConnectors","boundingRectangle","ElementProto","msMatchesSelector","mozMatchesSelector","webkitMatchesSelector","querySelectorAll","quot","attribute","_EventSubscription","EDITOR_ZOOM","EDITOR_SCALE","CHART_ENTITY_SET","SAVE_TEXT_ENTITY","EDITOR_ACTION_LOADING","EDITOR_DISPLAY_START_SAVING","EDITOR_DISPLAY_STOP_SAVING","DISPLAY_MAP_POSITIONING_CONTROLS","SET_POSITION_FOR_ALL_SHEETS","SET_MAP_POSITION_RESTORE_STATUS","RESET_MAP_POSITIONING_STATE","FREE_USER_PAGE_LIMIT","PRO_USER_PAGE_LIMIT","OPEN_EDIT_CONTEXT_MENU","CLOSE_EDIT_CONTEXT_MENU","OPEN_EDIT_CONTEXT_MENU_EXPORT_DROPDOWN","PAGE_RESIZE_HIDE","PAGE_RESIZE_HEIGHT","PAGE_RESIZE_LEFT","PAGE_RESIZE_RIGHT","IMAGE_MASK","IMAGE_CROP","COPY_ELEMENT_STYLE","exitGroupEditMode","firefoxWithBrokenObserverVersion","rootMargin","syncFillers","documentsWidthsFittingInToWindow","documentHeightsFittingInToWindow","fillerWidth","fillerHeight","oldWindowSize","windowSize","oldDocumentSize","documentSize","intersectionRoot","lastIntersectionRoot","intersectionRootChanged","loopFillers","filler","removeFiller","fillerIntersectionCache","allIntersectionReacts","entrie","adjustedIntersectionRect","correctIntersections","getAvailableScreenSizeFromEntries","disconnect","maxX","fillersY","maxY","objectSetPrototypeOf","MouseSelectionOverlay","Backbone","Model","save","publishedStatus","publishType","isOwner","publishedHuman","isPublished","isUnpublished","fullUrl","brandDomain","title_url","editUrl","exportSettings","export_settings","nativeEndsWith","endPosition","isAxiosError","fileName","lineNumber","columnNumber","wrapPlaceholderEntity","ChartContainer","placeholderHeight","renderChart","freeLayout","renderShowOnViewChart","nativeExpm1","isCommonjs","keyboardAllowed","fnMap","eventNameMap","fullscreenerror","requestFullscreen","ALLOW_KEYBOARD_INPUT","onchange","fullscreenElement","fullscreenEnabled","entityInnerSide","entityMiddle","log2","postfix","designSetters","entityMap","entityDataOrKey","removeIn","clickAnimations","returnList","regexpFlags","nativeExec","patchedExec","UPDATES_LAST_INDEX_WRONG","NPCG_INCLUDED","reCopy","selectionMouseUp","fontcolor","normalize","POLYFILL","NATIVE","logAcceptPrivacyPolicy","logAcceptTeamInvitation","logAcceptTermsofService","logActiveFeatureSwitches","logAddCollaboratorFailed","logAddCollaborator","logAddFolderCollaboratorFailed","logAddFolderCollaborator","logAddPresentationToFolder","logAllowBrowserNotifications","logAllowToRequestBrowserNotificationsPermission","logAutoZoom","logBackOnWelcomeScreen","logBackToOutline","logBlockBrowserNotifications","logCalloutClicked","logCancelSamlActivation","logCancelSubscription","logCarouselThumbnailClicked","logChangeAccountPassword","logChangeCreditCard","logChangeLanguage","logChangeProfileVisibility","logChangeTeamAccess","logChangeTeamPrivacy","logChangeTeamTracking","logChangeTeamViewerIdentification","logChangedAccountInformation","logChangedAccountPassword","logChangedAnalyticsTracking","logChangedFolderName","logChangedPresentationTitle","logChangedViewLinkName","logChangedViewerIdentification","logClickCta","logClickPreziLogo","logClickReusablePreziCard","logClickTemplateCard","logClickVideoTag","logClickVideoWelcomeClose","logClickVideoWelcomeLearnMore","logClickVideoWelcomeTerms","logCloseCollaboratorsDialog","logCloseCreateAnalyticsLinkDialog","logCloseExportPdfDialog","logCloseExportPptDialog","logCloseFolderCollaboratorsDialog","logCloseFrameCollection","logCloseNotification","logClosePaywallDialog","logClosePreziPlayerDialog","logClosePrivacyDialog","logConfirmSamlActivation","logConfirmSamlDeactivation","logConfirmTeamMemberRemovalFailed","logConfirmTeamMemberRemoval","logConfirmedPayment","logConnectSocialAccount","logContactTeamAdmin","logCopiedPresentation","logCopyPresentation","logCopyViewLink","logCreateNewPresentationFromPpt","logCreateNewPresentationFromScratch","logCreateNewPresentationFromTemplate","logCreateNewPresentation","logCreateNewPresentationWithCustomBranding","logCreatedNewFolder","logCreatedViewLink","logDeactivatedViewLink","logDeleteAccount","logDeleteFolder","logDisableSamlSwitch","logDisabledSaml","logDisconnectSocialAccount","logDisplayedInvoices","logDownloadAnalyticsCsv","logDownloadFramesAsImages","logDownloadInvoice","logDownloadMobileApp","logDownloadTeamPresentationsList","logEnableSamlSwitch","logEnabledSaml","logExplorePresentations","logExportPdf","logExportPpt","logFailedIframeLoad","logFailedPaymentBuyNow","logFailedPaymentSubmit","logFailedSamlLogin","logFailedToCopyPresentation","logFilterContent","logFilterPresentations","logFinishedExportingPdf","logFlagContent","logInvitedTeamMember","logLikePresentationPage","logLoadAllViewLinks","logLoadDetailedView","logLoadEditor","logLoadPreziCard","logLoadPrezi","logLoadPublicViewPage","logLoadedAccountSettings","logLoadedBlogPage","logLoadedBrowserNotificationsDialog","logLoadedBuyNowPage","logLoadedCopyFailedDialog","logLoadedCopyInProgressDialog","logLoadedDetailedView","logLoadedDownloadAppDialog","logLoadedFolder","logLoadedFrameCollection","logLoadedLivePreziFollowPage","logLoadedNotification","logLoadedPaywallDialog","logLoadedPreziCard","logLoadedPrezi","logLoadedPublicViewPage","logLoadedSegmentationDialog","logLoadedTeamInvitationDialog","logLoadedTeamMemberList","logLoadedTeamMemberSignupPage","logLoadedTemplateList","logLoadedTranscript","logLoggedIn","logLogin","logMakeAdmin","logNewSession","logOpenAccountSettings","logOpenAllViewLinks","logOpenAnalyticsDetailsPage","logOpenAnalyticsLinkSettings","logOpenAnalytics","logOpenArticle","logOpenCollaboratorsDialog","logOpenCompanyLeaderboard","logOpenCreateAnalyticsLinkDialog","logOpenCreateViewLinkDialog","logOpenDashboard","logOpenDeleteFolderDialog","logOpenDeletePresentationDialog","logOpenDetailedView","logOpenDownloadPresentationDialog","logOpenExportPdfDialog","logOpenExportPptDialog","logOpenExportedPdf","logOpenFolderCollaboratorsDialog","logOpenFolderListForPresentation","logOpenFolder","logOpenFrameCollection","logOpenFrame","logOpenIntercom","logOpenInvoices","logOpenKnowledgeBase","logOpenLanguageChooser","logOpenLearnPage","logOpenLicenseSettings","logOpenLivePreziDialog","logOpenMobileApp","logOpenMobileAppsPage","logOpenNotification","logOpenOnboardingPreziCardMenu","logOpenOnboardingPreziDetailedView","logOpenOnboardingPreziToEdit","logOpenOnboardingPreziToPresent","logOpenOnboardingVideo","logOpenPresentationCardMenu","logOpenPresentationFilter","logOpenPresenterView","logOpenPreziCard","logOpenPreziRemote","logOpenProductSwitcher","logOpenProfileSettings","logOpenSupportPage","logOpenTeamMemberList","logOpenTeamSettings","logOpenTrainingPage","logOpenTranscript","logOpenViewLinkAnalytics","logOpenViewLinkDialog","logOpenWorkshopAndTraining","logOpenedAdminSettings","logOpenedLogin","logOpenedSamlLogin","logPlayVideo","logPreziEndScreenShowed","logRemoveAsAdmin","logRemoveFolderCollaborator","logRemovePresentationFromFolder","logRemoveTeamMember","logRequestedBrowserNotificationsPermission","logResentTeamMemberInvitation","logSamlLoggedInSuccess","logSaveFrame","logSaveSamlSettings","logSearchContent","logSearchPresentation","logSearchPresentations","logSearchPrezisClicked","logSeePathStepPreview","logSelectPresentationForAnalyticsLink","logShowPagedTranscript","logShowPptInsertOptions","logShowVideoWelcomeDialog","logShowedEmailCapture","logSkipWelcomeScreen","logStoryBlockThumbnailClicked","logSubmitPaymentInfo","logSubmitPersonalInfo","logSubmittedIntentSurveyAnswer","logSubmittedSegmentationAnswer","logSubmittedSubSegmentationAnswer","logSuccessfulPaymentBuyNow","logSuggestedSearchTermsClicked","logTeamMemberInvitationFailed","logTeaserContentClicked","logTeaserContentHovered","logUnlikePresentationPage","logUpdateCollaborator","logUpdatedSaml","logUpgradeLicense","logUseDeepLink","logUseWebTemplate","logViewPageSearchSubmit","logVisitPricingPage","logVisitProductPage","logZoomIn","logZoomOut","usingBackboneModel","ID1","mod","decimalSeparator","groupingSymbol","sheetnames","moment","day","month","themeColorCount","chartRenderPromise","chartContainer","accessibilityElements","getChartNamespacedId","offScreenStyle","_requestChartRender","startFetchingLiveData","_liveRefreshTimer","widthChanged","heightChanged","dataChanged","designChanged","scaleChanged","groupScaleChanged","assetsChanged","_chartModel","refreshInterval","promiseWhile","_renderChart","tabs","isFreelayoutInline","replacements","ChartModel","ChartFactory","animate","factoryInstance","scrollOrNavigateToPage","opener","marginString","paddingX","paddingY","ry","Brightness","runtime","Op","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","Context","_invoke","doneResult","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","sent","_sent","dispatchException","abrupt","tryCatch","makeInvokeMethod","GeneratorFunction","GeneratorFunctionPrototype","getProto","NativeIteratorPrototype","Gp","defineIteratorMethods","AsyncIterator","previousPromise","callInvokeWithMethodAndArg","invoke","__await","unwrapped","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","isGeneratorFunction","genFun","ctor","mark","awrap","skipTempReset","rootRecord","rval","exception","loc","caught","hasCatch","hasFinally","finallyEntry","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","ThemeHelper","urlRoot","idAttribute","Attributes","toGMTString","ENTRIES","returnMethod","getIterator","getInternalParamsState","URL_SEARCH_PARAMS","plus","sequences","percentSequence","percentDecode","deserialize","serialize","parseSearchParams","validateArgumentsLength","passed","required","URLSearchParamsIterator","URLSearchParamsConstructor","entryIterator","URLSearchParamsPrototype","entriesIndex","sliceIndex","logModify","accesibility","ACCESSIBILITY","adjustStateOnEntityUpdate","updatedEditorState","updateEntity","updateEditorState","isLogged","selectedEntityKeys","ptOnBlock","entRect","entRectCenter","pct","newEntRectCenter","rotateConnector","CONNECTOR_DEPENDENT_PROPS","oppType","absolutePositions","outsideTargets","pt","targetEntityKey","oppConnectionType","StyledShareButton","svgColor","IS_CONCAT_SPREADABLE","IS_CONCAT_SPREADABLE_SUPPORT","SPECIES_SUPPORT","isConcatSpreadable","spreadable","INFOGRAPHIC_FOOTER_HEIGHT","$copyWithin","nativeAtanh","atanh","queueMicrotask","EntitySelectionOverlay","_refs","_handlers","_assignHandler","resizeWidth","scaleText","EntitySelection","EntityBoundingBox","defaultReducers","moreReducers","combineReducers","loadUniqueStylesheets","stylesheets","additionalFonts","themeCssUrl","localFonts","_updateProxy","_running","rafId","_hook","_step","_enqueue","assignEntityGroupOrder","findRootEntities","entitiesToAdd","globalEntities","transfer","orginalEntities","groupEntity","localEntities","newKey","groupEntityWeAreDuplicatingIn","getRectangleFromPoints","treshold","editOnMouseLeave","ScrollPageWrapper","ROUNDED_SHAPE_DEFAULT_RADIUS","urlMatches","querySplit","querySplitLength","queryPair","setProtocol","setHostname","setPathname","setHash","setPort","setParam","setParams","getParam","getParams","build","hasQuery","convertUrl","nativeJoin","ES3_STRINGS","MATCH_ALL","REGEXP_STRING","regExpBuiltinExec","$RegExpStringIterator","$matchAll","flagsValue","matchAll","makeEmptyFunction","thatReturns","thatReturnsFalse","thatReturnsNull","thatReturnsThis","thatReturnsArgument","entityKeyToCover","rearrangeEntitiesWithinBlock","createEntityToCoverCallback","bringToFront","moveEntityToEnd","sendToBack","moveEntityToStart","groupChildren","allChildren","moveEntityToStartBeforeGroup","moveEntityToEndBeforeGroup","reorderedBlock","depth","targetIndex","sourceIndex","ignoreDuplicateOf","createBackboneThemeFromJSON","InfographicBackboneModel","ThemeBackboneModel","real","onFinally","deltaRotationOrigin","isAspectRatioLocked","actualEntity","deltaWidth","overrides","halfDeltaWidth","deleteCount","insertCount","actualDeleteCount","actualStart","NATIVE_SYMBOL","nativeObjectCreate","getOwnPropertyNamesExternal","HIDDEN","nativeJSONStringify","AllSymbols","ObjectPrototypeSymbols","StringToSymbolRegistry","SymbolToStringRegistry","WellKnownSymbolsStore","QObject","USE_SETTER","findChild","setSymbolDescriptor","ObjectPrototypeDescriptor","isSymbol","$defineProperty","$defineProperties","$getOwnPropertySymbols","$propertyIsEnumerable","$getOwnPropertyDescriptor","$getOwnPropertyNames","names","IS_OBJECT_PROTOTYPE","keyFor","sym","useSetter","useSimple","$replacer","CSSTransition","appliedClasses","removeClasses","getClassNames","isStringClassNames","baseClassName","activeClassName","doneClassName","phase","_addClass","_this$appliedClasses$","Events","notice","WebInfographicView","dataSets","_ensureColorsIsArray","getFactoryClass","sheetsSettings","stateLocked","ord","success","beforeIndex","ui","chartEnums","map_type","chart_type","$every","every","standard","large","grayBorder","wide","IconSvg","nativeApply","functionApply","thisArgument","argumentsList","parentGroupKey","Callout","_close","calloutStyle","selectionRect","visibleSnapLines","selectionMinTop","selectionMinLeft","selectionMaxTop","selectionMaxLeft","typeOf","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","ForwardRef","Fragment","Lazy","Memo","Portal","Profiler","StrictMode","Suspense","isValidElementType","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isMemo","isPortal","isProfiler","isStrictMode","isSuspense","findAncestorWithClassName","cls","matchAncestor","findInEventPathNodeWithClassName","composedPath","elementIsAncestorOf","elementIndexInNodeList","EventSubscription","msIEOrEdge","isSafari","isFirefox","cachedNothing","getVignetteRect","genNewKeyOnEveryMaskMove","BaseImage","haveFilters","hasMask","hasCrop","useSvgFallback","renderSVG","svgBlock","renderSVGImageWithVignette","renderSVGImage","vignetteRect","vignetteId","gradientUnits","renderImageWithVignette","vignetteStyle","imageContainer","fixDeselectJump","imageBlock","vignetteContainer","intensity","renderImage","baseImage","fixCropNotVisibleOnIE","NativeNumber","NumberPrototype","BROKEN_CLASSOF","toNumber","maxCode","digits","NumberWrapper","Cookies","LogEntryFormatter_1","use_json_logger","originalLogMessage","defaultEntryValues","INFO","clientLogger","initLogger","clientLoggingConfig","Site","user_id","MAX_SAFE_INTEGER","nativeSeal","seal","deleteProperty","ArrayIterationModule","$has","uncaughtFrozenStore","UncaughtFrozenStore","findUncaughtFrozen","parseFloatImplementation","nativeArrayBufferSlice","viewSource","viewTarget","AppProvider","dotAll","normalizedName","_defineProperty","prevOriginX","prevOriginY","newOriginX","newOriginY","dOriginX","dOriginY","rotatedX","rotatedY","PrototypeOfArrayIteratorPrototype","arrayIterator","TakeNoSpace","VignetteRadialGradientPattern","stopColor","VignetteElement","xmlnsXlink","prepareColors","chartFactoryInstance","interactivity_hint","interlinked_charts","chartObject","tplColors","tplColorsLength","colorsLength","titles","switchRowsColumns","extractTitles","_setPrototypeOf","$toLocaleString","toLocaleString","TO_LOCALE_STRING_BUG","plan","BUSINESS_SUL_MONTHLY","BUSINESS_SUL_YEARLY","BUSINESS_TEAM_MONTHLY","BUSINESS_TEAM_YEARLY","ENTERPRISE","FREE","PRO_SUL_MONTHLY","PRO_SUL_YEARLY","PRO_TEAM_MONTHLY","PRO_TEAM_YEARLY","organization","GOVERNMENT_NGO","SCHOOL_UNIVERSITY","SELF_EMPLOYED","SMALL_MED_BUSINESS","chosen_plan","BUSINESS","PRO","TEAM","CONSULTANT","DESIGNER","DIRECTOR","EDITOR_IN_CHIEF","EXECUTIVE_DIRECTOR","HR_LEARNING","IT_ENGINEERING","JOURNALIST_EDITOR","MARKETER_PR","OPERATIONS_FINANCE","PROGRAM_PROJECT_MANAGER","SALES_CUSTOMER_SERVICE","STUDENT","TEACHER_PROFESSOR","WRITER_BLOGGER","image_type","BRANDING_IMAGE","CUSTOM_ICON","FLAG","GIF","ICON","STICKER","USER_IMAGE","shape_type","ARROW","CALLOUTCIRCLE","CLOUD","CYLINDER","ELLIPSE","HEXAGON","OVAL","PARALLELOGRAMLEFT","PARALLELOGRAMRIGHT","POINTER","POLYGON","RECTANGLE","RHOMBUS","ROUNDED","TRAPEZIUMDOWN","TRAPEZIUMUP","TRIANGLE","text_type","BODYTEXT","BODYTITLE","CAPTIONTEXT","MAINTITLE","target_project_status","DRAFT","PRIVATE","PUBLIC","create_source","API","FRONTPAGE_TEMPLATE_CHOOSER","LIBRARY","ONBOARDING","TEMPLATE_CHOOSER","HTML","JPG","PDF","PNG","ADD_CALLOUT","ANIMATION","REMOVE_BACKGROUND","ELEMENT","MULTIPLE","PAGE","modify_project_action","ADD_PAGE","BACKGROUND_BLUR","BACKGROUND_COLOR_CHANGE","BACKGROUND_IMAGE_CHANGE","CHANGE_TRANSITION","PAGE_ORDER_CHANGE","PROJECT_SIZE_CHANGE","REMOVE_PAGE","SWITCH_THEME","auth_source","EMAIL","FACEBOOK","GOOGLE","LINKEDIN","SSO","TWITTER","social_platform","PINTEREST","REDDIT","TUMBLR","integration_type","DROPBOX","GOOGLE_ANALYTICS","GOOGLE_DRIVE","MSSQL","MYSQL","ORACLE","POSTGRESQL","REDSHIFT","UPLOAD","FLICKR","GIPHY","IFRAME","SLIDESHARE","VIDEO","VIMEO","YOUTUBE","downgrade_reason","BUGS","COMPETITOR","FEATURES","PRICING","SUPPORT","TEMPLATES","TEMPORARY_USE","USAGE","upgrade_trigger","ANALYTICS","BRANDING_COLORS","BRANDING_FAVOURITES","BRANDING_FONTS","BRANDING_IMAGES","BRANDING_PUBLIC_PROFILE","CALLOUT","COMMENTING","CUSTOM_LINK_LOGO_EMBED","CUSTOM_LOGO","DOWNLOAD","EMBED_BUTTON","FLEX_PAGES","GALLERY_LIMIT","GENERAL","GLOBAL_SETTINGS","GROUPED_COMBO","ICONS","LIBRARY_LIMIT","LINKS","LIVE_DATA","PRIVATE_SHARING","PRO_THEMES","REGION_MAPS","REVISIONS","TEAMS","collaborator_permission_type","EDIT","VIEW","team_role","ADMIN","EDITOR","PUBLISHER","VIEWER","analytics_date_range","LAST_NINETY","LAST_SEVEN","LAST_SIXTY","LAST_THIRTY","TODAY","YESTERDAY","analytics_export_type","ALL","PROJECT","account_setting","EMAIL_INVOICES","LANGUAGE","NO_TRACKING","PROJECT_LANGUAGE","PUBLIC_PROFILE","SCROLL_CHART_ANIMATIONS","TRANSPARENT_EMBED","team_profile_style","BACKGROUND","HEADER","META","team_profile_type","graphic_format","SVG","payment_step_name","PAYMENT_FORM","import_source","DASHBOARD","LIBRARY_DRAG","upload_error_type","FORMAT","SIZE","comment_filter","MENTIONS","RESOLVED","SHOW_ALL","UNRESOLVED","preview_type","DESKTOP","MOBILE","view_experience_option","ALLOW_DOWNLOAD","ALLOW_FULLSCREEN","ALLOW_SHARE","SHOW_HINTS","TAB_NAME_LINK","filter_adjustment","BLUR","BRIGHTNESS","CONTRAST","HUE","INTENSITY","SATURATION","VIGNETTE","gallery_image_format","gallery_image_sort_options","RECENTLY_UPLOADED","RECENTLY_USED","animation_setting","DELAY","DISTANCE","DURATION","animation_trigger","ALWAYS","ON_CLICK","ON_SCROLL","ON_VIEW","callout_behaviour","CLICK","HOVER","modify_callout_action","ADD_TEXT","CHANGE_LAYOUT","PADDINGS","SHADOW","callout_position","BOTTOM","LEFT","RIGHT","TOP","content_entry_action","FAVORITE","USE_IN_PROJECT","content_entry_type","content_library_category","FAVORITES","FLAGS","GIFS","IMAGES","STICKERS","UPLOADS","auto_layout_generate_source","PAGE_SETTINGS","SETTINGS_SAVED","SET_SCROLL_POSITION","SET_VIEWPORT_SIZE","UPDATE_TOGGLE_SETTING","UNLOAD_INFOGRAPHIC","Seventies","FunctionPrototype","FunctionPrototypeToString","nameRE","elMatches","queryChildren","rail","consuming","clicking","scrollingClassTimeout","addScrollingClass","removeScrollingClass","isAlive","scrollingThreshold","EventElement","prototypeAccessors","unbind","this$1","unbindAll","EventManager","eventElements","eventElement","ee","onceHandler","processScrollDiff","useScrollingClass","forceFireReachEvent","fields","contentHeight","up","down","reach","setScrollingClassInstantly","processScrollDiff$1","toInt","isWebKit","supportsTouch","DocumentTouch","supportsIePointer","msMaxTouchPoints","updateGeometry","roundedScrollTop","contentWidth","scrollWidth","scrollbarXRail","scrollbarYRail","suppressScrollX","scrollXMarginOffset","railXWidth","railXMarginWidth","railXRatio","getThumbSize","negativeScrollAdjustment","suppressScrollY","scrollYMarginOffset","railYHeight","railYMarginHeight","railYRatio","xRailOffset","isRtl","isScrollbarXUsingBottom","scrollbarXBottom","scrollbarXTop","yRailOffset","isScrollbarYUsingRight","scrollbarYRight","scrollbarYOuterWidth","scrollbarYLeft","scrollbarX","railBorderXWidth","scrollbarY","railBorderYWidth","updateCss","minScrollbarLength","maxScrollbarLength","bindMouseScrollHandler","startingScrollTop","startingMousePageY","scrollBy","mouseMoveHandler","mouseUpHandler","keyboard","isDefaultPrevented","activeElement","shadowRoot","metaKey","wheelPropagation","shouldPreventDefault","wheel","mousewheelHandler","wheelDeltaX","wheelDeltaY","deltaMode","wheelDelta","getDeltaFromEvent","overflowX","overflowY","maxScrollTop","maxScrollLeft","shouldBeConsumedByChild","shouldPrevent","useBothWheelAxes","wheelSpeed","isTop","isBottom","isLeft","isRight","ctrlKey","onwheel","onmousewheel","touch","startOffset","speed","easingLoop","touchMove","PointerEvent","MSPointerEvent","applyTouchMove","differenceX","differenceY","getTouch","targetTouches","shouldHandle","pointerType","MSPOINTER_TYPE_MOUSE","currentOffset","timeGap","magnitudeX","magnitudeY","swipeEasing","PerfectScrollbar","userSettings","originalScrollLeft","isNegativeScroll","railXStyle","railYStyle","outerWidth","handlerName","lastScrollLeft","removePsClasses","sizeAdjustmentX","sizeAdjustmentY","setProgress","FRAMELENGTH","ResponsiveInfographicStore","globalGridSVG","Grid","scaledRowSpacing","globalGridSVGHeight","ReactDOMServer","shapeRendering","patternUnits","vectorEffect","gridSVG","gridItem","HAS_INSTANCE","macrotask","queueMicrotaskDescriptor","nativeKeys","trunc","nativeToFixed","fractionDigits","fractDigits","multiply","c2","divide","dataToString","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","NO_HOLES","specificCreate","initialPropsForVideoData","elementHeight","onLoaded","videoElement","play","videoThumbnail","controls","onLoadedData","loop","autoPlay","poster","playsInline","muted","resetPanel","pushInspectorPanel","INSPECTOR_PANEL_PUSH","popInspectorPanel","INSPECTOR_PANEL_POP","openAutoLayout","INSPECTOR_OPEN_PAGE_AUTO_LAYOUT","openPageSettings","INSPECTOR_OPEN_PAGE_SETTINGS","renderTextContents","TextContents","textDimensions","cellStyle","verticalAlign","_handleClick","offscreenContainer","createEditableEditorState","renderDraftContentToString","measureText","createContentForType","createStyleFunctions","selectAll","convertToRaw","draftConvertToRaw","convertFromRaw","draftConvertFromRaw","Modifier","DraftModifier","draftEditorState","styleFunctions","mergeBlockData","applyInlineStyle","rawContent","contentHTML","finalWidth","resetFontKerning","__lookupGetter__","nativeImul","imul","xn","yn","xl","yl","EPSILON32","MAX32","MIN32","$abs","$sign","_objectSpread","Preview","recordOf","highlight","iconSVG","customIconCss","tooltipPosition","as","useButtonTag","_onDoubleClick","scaledWidth","scaledHeight","graphic","SelectionStateStore","PREFERRED_STRING","ItemContentLink","_click","arrayBufferModule","createInstance","defaultConfig","axios","PalettesStore","palettes","_nodeId","_clockseq","rng","bytesToUuid","_lastMSecs","_lastNSecs","clockseq","seedBytes","nsecs","dt","tl","tmh","vendors","caf","_now","cp","pointerMovedX","pointerMovedY","connectorTargetEntity","_ps","_scrollContainer","_scrollEnd","getBlockBoundingRect","pageWrapperId","getPageIndex","blockHeight","changeActivePage","stopProcessingScrollEvents","startProcessingScrollEvents","indices","firstBlockRect","lastBlockRect","scrollContainerRect","topPadding","getPageIndicesBasedOnScroll","scrollToPage","positionInPage","pageWrapperRect","__viewMode","bodyRect","scrollIntoView","scrollContainerNode","isPerfectScrollbarObject","getScrollContainerTop","initFreelayoutScroll","getEditorScroll","updateEditorScroll","italics","Copyright","onBlur","placeCaretAtEnd","contentRef","editMode","data-placeholder","getSelection","createRange","selectNodeContents","collapse","removeAllRanges","addRange","createTextRange","textRange","moveToElementText","prezigramUploads","uploading","onUploadMedia","getVideo","atlas","videoId","htmlMode","parseTypenames","typenames","typename","propsToCache","subStateCreators","subStateCreator","createPropsCache","getBounds","item1","item2","bounds1","bounds2","getRelatedInfographics","beta_features","autoLayoutAdmin","blocksByKey","entitiesByKey","calloutsByKeys","getElementForEntity","getElementForCallout","setElementForCallout","removeElementForCallout","iterateOverAllBlockElements","iterateOverAllEntityElements","nativeIsExtensible","SearchForm","onSearchInputChange","searchInputValue","onSearchInputKeydown","searchForm","searchIcon","getFooter","borderTopStyle","borderTopColor","borderColor","showDefaultLogo","showLogo","whitelabel","embed_button","themeImages","custom_link_url","custom_link_status","float","embed_button_text","embed_button_color","getFlexDesignProperty","getPalette","paletteId","PaletteStore","palette","picture","FlexInfographicModel","currentEditorState","flexTheme","table","fontFamilies","fontFamiliesVisible","loadingFromCache","dirty","errorMessage","projectTags","useBackboneModel","hasInterlinkedCharts","theme_id","LibraryConstants","tags","tagId","flexTemplateId","nativeIndexOf","regexNonASCII","regexSeparators","OVERFLOW_ERROR","stringFromCharCode","digitToBasic","digit","adapt","numPoints","firstTime","baseMinusTMin","currentValue","inputLength","extra","ucs2decode","bias","basicLength","handledCPCount","handledCPCountPlusOne","qMinusT","baseMinusT","encoded","listOf","typeChecker","createIterableTypeChecker","isList","valuesTypeChecker","keysTypeChecker","createMapOfTypeCheckerFactory","orderedMapOf","isOrderedMap","setOf","isSet","orderedSetOf","OrderedSet","isOrderedSet","stackOf","isStack","iterableOf","isIterable","recordKeys","createChainableTypeChecker","propType","getPropType","locationName","checker","mutablePropValue","createShapeChecker","mapContains","shapeTypes","createShapeTypeChecker","createImmutableTypeChecker","orderedMap","orderedSet","seq","Seq","isSeq","isRecord","toSource","validate","chainedCheckType","immutableClassName","immutableClassTypeValidator","propValues","createKeysTypeChecker","keySeq","descriptors","callable","__eeOnceListener__","__ee__","editOnMouseUp","isTargetLocked","hasOnlyLockedEntities","commentKey","hasNoBlocks","EXISTS","sizeAdjustment","staticR","E_NOSCROLL","E_CANCELLED","ms","make","ease","inOutSine","timestamp","time","eased","uuidv4","SINGLE_PAGE_SESSION_ID","sessionId","sessionIdCookie","sessionCookie","earliestValidTime","expiryDate","newCookie","setNewSessionId","_objectWithoutPropertiesLoose","excluded","sourceKeys","middle","EventSource","startEventSourceListener","startPollingListener","_es","handleResult","checkStatus","promiseCapability","urlObject","_rerender","_onPresentationButtonClick","fontsLoaded","interlinkedChartsEnabled","metaStyle","authorInfo","infographicWidth","modelProperties","documentHeight","infographicClassName","infographicFullscreen","presetName","documentWidth","responsiveFooter","publicProfileHidden","infographicViewAvatar","business","enterprise","infographicContainer","infographicMeta","infographicInfo","infographicTitle","infographicDescription","modelLoaded","noTrack","nativePreventExtensions","IMG"],"mappings":"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Q,QACR,EAAQ,QACR,EAAQ,QACR,EAAQ,QACR,EAAQ,QACR,EAAQ,QACR,EAAQ,QACR,EAAQ,QACR,EAAQ,QACR,EAAQ,QACR,EAAQ,QACR,EAAQ,QACR,EAAQ,QACR,EAAQ,QACR,EAAQ,QACR,EAAQ,QACR,EAAQ,QACR,EAAQ,QACR,EAAQ,QACR,EAAQ,QACR,EAAQ,QACR,EAAQ,QACR,EAAQ,QACR,EAAQ,QACR,EAAQ,QACR,EAAQ,QACR,EAAQ,QACR,EAAQ,QACR,EAAQ,QACR,EAAQ,QACR,EAAQ,QACR,EAAQ,QACR,EAAQ,QACR,EAAQ,QACR,EAAQ,QACR,EAAQ,QACR,EAAQ,QACR,EAAQ,QACR,EAAQ,QACR,EAAQ,QACR,EAAQ,QACR,EAAQ,QACR,EAAQ,QACR,EAAQ,QACR,EAAQ,QACR,EAAQ,QACR,EAAQ,QACR,EAAQ,QACR,EAAQ,QACR,EAAQ,QACR,EAAQ,QACR,EAAQ,QACR,EAAQ,QACR,EAAQ,QACR,EAAQ,QACR,EAAQ,QACR,EAAQ,QACR,EAAQ,QACR,EAAQ,QACR,EAAQ,QACR,EAAQ,QACR,EAAQ,QACR,EAAQ,QACR,EAAQ,QACR,EAAQ,QACR,EAAQ,QACR,EAAQ,QACR,EAAQ,QACR,EAAQ,QACR,EAAQ,QACR,EAAQ,QACR,EAAQ,QACR,EAAQ,QACR,EAAQ,QACR,EAAQ,QACR,EAAQ,QACR,EAAQ,QACR,EAAQ,QACR,EAAQ,QACR,EAAQ,QACR,EAAQ,QACR,EAAQ,QACR,EAAQ,QACR,EAAQ,QACR,EAAQ,QACR,EAAQ,QACR,EAAQ,QACR,EAAQ,QACR,EAAQ,QACR,EAAQ,QACR,EAAQ,QACR,EAAQ,QACR,EAAQ,QACR,EAAQ,QACR,EAAQ,QACR,EAAQ,QACR,EAAQ,QACR,EAAQ,QACR,EAAQ,QACR,EAAQ,QACR,EAAQ,QACR,EAAQ,QACR,EAAQ,QACR,EAAQ,QACR,EAAQ,QACR,EAAQ,QACR,EAAQ,QACR,EAAQ,QACR,EAAQ,QACR,EAAQ,QACR,EAAQ,QACR,EAAQ,QACR,EAAQ,QACR,EAAQ,QACR,EAAQ,QACR,EAAQ,QACR,EAAQ,QACR,EAAQ,QACR,EAAQ,QACR,EAAQ,QACR,EAA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","file":"web_viewer-4aa23fce625ac7aae506-1-webpack.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"web_viewer\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"\" + ({\"vendors~infogram-charts/charts-area~infogram-charts/charts-area_stacked~infogram-charts/charts-area_~b1aa9f6e\":\"vendors~infogram-charts/charts-area~infogram-charts/charts-area_stacked~infogram-charts/charts-area_~b1aa9f6e\",\"infogram-charts/charts-area~infogram-charts/charts-area_stacked~infogram-charts/charts-area_stacked_~06cfb867\":\"infogram-charts/charts-area~infogram-charts/charts-area_stacked~infogram-charts/charts-area_stacked_~06cfb867\",\"infogram-charts/charts-pictorial_bar~infogram-charts/charts-pictorial_grid~infogram-charts/charts-pi~123c0049\":\"infogram-charts/charts-pictorial_bar~infogram-charts/charts-pictorial_grid~infogram-charts/charts-pi~123c0049\",\"infogram-charts/charts-pictorial_grid\":\"infogram-charts/charts-pictorial_grid\",\"infogram-charts/charts-pictorial_size\":\"infogram-charts/charts-pictorial_size\",\"infogram-charts/charts-pictorial_bar\":\"infogram-charts/charts-pictorial_bar\",\"infogram-charts/charts-area_stepped~infogram-charts/charts-bar~infogram-charts/charts-bar_grouped~in~4eb6edff\":\"infogram-charts/charts-area_stepped~infogram-charts/charts-bar~infogram-charts/charts-bar_grouped~in~4eb6edff\",\"infogram-charts/charts-bar~infogram-charts/charts-bar_grouped~infogram-charts/charts-bar_stacked~inf~9bc96435\":\"infogram-charts/charts-bar~infogram-charts/charts-bar_grouped~infogram-charts/charts-bar_stacked~inf~9bc96435\",\"infogram-charts/charts-bar\":\"infogram-charts/charts-bar\",\"infogram-charts/charts-bar_grouped~infogram-charts/charts-bar_stacked~infogram-charts/charts-bar_sta~e2f1cb6d\":\"infogram-charts/charts-bar_grouped~infogram-charts/charts-bar_stacked~infogram-charts/charts-bar_sta~e2f1cb6d\",\"infogram-charts/charts-bar_grouped\":\"infogram-charts/charts-bar_grouped\",\"infogram-charts/charts-bar_stacked\":\"infogram-charts/charts-bar_stacked\",\"infogram-charts/charts-bar_stacked_percent\":\"infogram-charts/charts-bar_stacked_percent\",\"infogram-charts/charts-area_stepped~infogram-charts/charts-column~infogram-charts/charts-column_grou~f2f3f9dd\":\"infogram-charts/charts-area_stepped~infogram-charts/charts-column~infogram-charts/charts-column_grou~f2f3f9dd\",\"infogram-charts/charts-area_stepped~infogram-charts/charts-column_grouped~infogram-charts/charts-col~c425fd1b\":\"infogram-charts/charts-area_stepped~infogram-charts/charts-column_grouped~infogram-charts/charts-col~c425fd1b\",\"infogram-charts/charts-area_stepped~infogram-charts/charts-column~infogram-charts/charts-column_grou~01bd5ec0\":\"infogram-charts/charts-area_stepped~infogram-charts/charts-column~infogram-charts/charts-column_grou~01bd5ec0\",\"infogram-charts/charts-area_stepped\":\"infogram-charts/charts-area_stepped\",\"infogram-charts/charts-column_grouped\":\"infogram-charts/charts-column_grouped\",\"infogram-charts/charts-column_stacked\":\"infogram-charts/charts-column_stacked\",\"infogram-charts/charts-column_stacked_percent\":\"infogram-charts/charts-column_stacked_percent\",\"infogram-charts/charts-column\":\"infogram-charts/charts-column\",\"infogram-charts/charts-waterfall\":\"infogram-charts/charts-waterfall\",\"infogram-charts/charts-progress_bar\":\"infogram-charts/charts-progress_bar\",\"infogram-charts/charts-gantt\":\"infogram-charts/charts-gantt\",\"infogram-charts/charts-pie\":\"infogram-charts/charts-pie\",\"infogram-charts/charts-bar_radial\":\"infogram-charts/charts-bar_radial\",\"infogram-charts/charts-doughnut\":\"infogram-charts/charts-doughnut\",\"infogram-charts/charts-gauge\":\"infogram-charts/charts-gauge\",\"infogram-charts/charts-irregular_pie\":\"infogram-charts/charts-irregular_pie\",\"infogram-charts/charts-semi_circle\":\"infogram-charts/charts-semi_circle\",\"infogram-charts/charts-column_line~infogram-charts/charts-combo_gruped~infogram-charts/charts-combo_~4b4cf572\":\"infogram-charts/charts-column_line~infogram-charts/charts-combo_gruped~infogram-charts/charts-combo_~4b4cf572\",\"infogram-charts/charts-column_line\":\"infogram-charts/charts-column_line\",\"infogram-charts/charts-combo_gruped\":\"infogram-charts/charts-combo_gruped\",\"infogram-charts/charts-combo_stacked\":\"infogram-charts/charts-combo_stacked\",\"infogram-charts/charts-line_line\":\"infogram-charts/charts-line_line\",\"infogram-charts/charts-area\":\"infogram-charts/charts-area\",\"infogram-charts/charts-area_stacked~infogram-charts/charts-area_stacked_percent~infogram-charts/char~1f7d018c\":\"infogram-charts/charts-area_stacked~infogram-charts/charts-area_stacked_percent~infogram-charts/char~1f7d018c\",\"infogram-charts/charts-area_stacked\":\"infogram-charts/charts-area_stacked\",\"infogram-charts/charts-area_stacked_percent\":\"infogram-charts/charts-area_stacked_percent\",\"infogram-charts/charts-stream_graph\":\"infogram-charts/charts-stream_graph\",\"infogram-charts/charts-bubble~infogram-charts/charts-bubble_plot~infogram-charts/charts-scatter~info~3054f745\":\"infogram-charts/charts-bubble~infogram-charts/charts-bubble_plot~infogram-charts/charts-scatter~info~3054f745\",\"infogram-charts/charts-bubble\":\"infogram-charts/charts-bubble\",\"infogram-charts/charts-bubble_plot\":\"infogram-charts/charts-bubble_plot\",\"infogram-charts/charts-scatter\":\"infogram-charts/charts-scatter\",\"infogram-charts/charts-scatter_grouped\":\"infogram-charts/charts-scatter_grouped\",\"infogram-charts/charts-candlestick\":\"infogram-charts/charts-candlestick\",\"infogram-charts/charts-dot_plot\":\"infogram-charts/charts-dot_plot\",\"infogram-charts/charts-line\":\"infogram-charts/charts-line\",\"infogram-charts/charts-funnel~infogram-charts/charts-pyramid\":\"infogram-charts/charts-funnel~infogram-charts/charts-pyramid\",\"infogram-charts/charts-funnel\":\"infogram-charts/charts-funnel\",\"infogram-charts/charts-pyramid\":\"infogram-charts/charts-pyramid\",\"vendors~infogram-charts/charts-bar_race\":\"vendors~infogram-charts/charts-bar_race\",\"infogram-charts/charts-bar_race\":\"infogram-charts/charts-bar_race\",\"vendors~infogram-charts/charts-treemap~infogram-charts/charts-wordcloud\":\"vendors~infogram-charts/charts-treemap~infogram-charts/charts-wordcloud\",\"infogram-charts/charts-treemap\":\"infogram-charts/charts-treemap\",\"infogram-charts/charts-wordcloud\":\"infogram-charts/charts-wordcloud\",\"vendors~infogram-charts/charts-map\":\"vendors~infogram-charts/charts-map\",\"infogram-charts/charts-map\":\"infogram-charts/charts-map\",\"infogram-charts/charts-timer\":\"infogram-charts/charts-timer\",\"infogram-charts/charts-facts_and_figures\":\"infogram-charts/charts-facts_and_figures\",\"infogram-charts/charts-table\":\"infogram-charts/charts-table\",\"vendors~additionalCharts\":\"vendors~additionalCharts\",\"additionalCharts\":\"additionalCharts\"}[chunkId]||chunkId) + \"-\" + {\"2\":\"ec651498174b767437b0\",\"5\":\"28597c65df696a7f8382\",\"7\":\"1a6d41eb259f3c55729e\",\"10\":\"d7fcec257d894fe49659\",\"11\":\"54552a65aa0906262645\",\"infogram-charts/dep-16\":\"c0493ed19111bccab0ba\",\"infogram-charts/dep-9\":\"4b2966ff0845ef95709e\",\"infogram-charts/dep-5\":\"9522d1577fe113205527\",\"vendors~infogram-charts/charts-area~infogram-charts/charts-area_stacked~infogram-charts/charts-area_~b1aa9f6e\":\"53139775c90c3987f178\",\"infogram-charts/dep-12\":\"b133082db9d30558fdb1\",\"infogram-charts/dep-13\":\"23912841f2baf06e8305\",\"infogram-charts/dep-11\":\"9b5388e57c11a10d291b\",\"infogram-charts/charts-area~infogram-charts/charts-area_stacked~infogram-charts/charts-area_stacked_~06cfb867\":\"6dd05db7489c9da427e5\",\"infogram-charts/charts-pictorial_bar~infogram-charts/charts-pictorial_grid~infogram-charts/charts-pi~123c0049\":\"1963243aff1fcb3b1bd5\",\"infogram-charts/charts-pictorial_grid\":\"be36ea5e23c30b9762f0\",\"infogram-charts/charts-pictorial_size\":\"faf2b061859df79a9987\",\"infogram-charts/dep-19\":\"1c57db0e7bb1b15fdf1f\",\"infogram-charts/charts-pictorial_bar\":\"8943230566e7c05916d4\",\"infogram-charts/dep-8\":\"d25fce04d385d599e474\",\"infogram-charts/dep-17\":\"156efb54220dd6b75783\",\"infogram-charts/dep-18\":\"6404031a1b502b56686c\",\"infogram-charts/charts-area_stepped~infogram-charts/charts-bar~infogram-charts/charts-bar_grouped~in~4eb6edff\":\"ef03c0882b6f59461b6e\",\"infogram-charts/charts-bar~infogram-charts/charts-bar_grouped~infogram-charts/charts-bar_stacked~inf~9bc96435\":\"44a6964da75583c95e55\",\"infogram-charts/charts-bar\":\"df14a5098355baa6c2e1\",\"infogram-charts/charts-bar_grouped~infogram-charts/charts-bar_stacked~infogram-charts/charts-bar_sta~e2f1cb6d\":\"24c4f25a8215f430e8ef\",\"infogram-charts/charts-bar_grouped\":\"4d1a3865d8fc3f94c37f\",\"infogram-charts/charts-bar_stacked\":\"cb1348062a75bb86a336\",\"infogram-charts/charts-bar_stacked_percent\":\"d61469eec0492cdc0c74\",\"infogram-charts/charts-area_stepped~infogram-charts/charts-column~infogram-charts/charts-column_grou~f2f3f9dd\":\"f73604e75b10ac498a79\",\"infogram-charts/charts-area_stepped~infogram-charts/charts-column_grouped~infogram-charts/charts-col~c425fd1b\":\"3f7b99325ed9752f12c1\",\"infogram-charts/charts-area_stepped~infogram-charts/charts-column~infogram-charts/charts-column_grou~01bd5ec0\":\"6656a083bab8a776a798\",\"infogram-charts/charts-area_stepped\":\"6886e5761397cc0bd83e\",\"infogram-charts/charts-column_grouped\":\"0dcd7b47f8e6cc64e5c7\",\"infogram-charts/charts-column_stacked\":\"5cabd7e0d94e3afd3a9c\",\"infogram-charts/charts-column_stacked_percent\":\"be7d08e7968b3fe35316\",\"infogram-charts/charts-column\":\"e68354a477a60ab6e6a1\",\"infogram-charts/charts-waterfall\":\"debb6dd3bd1e13526164\",\"infogram-charts/charts-progress_bar\":\"ded1275e81f3e28f5920\",\"infogram-charts/charts-gantt\":\"e655c3e13b45974ac71a\",\"infogram-charts/dep-7\":\"290e8e94880e72f53187\",\"infogram-charts/charts-pie\":\"e066be6cc359c40f7e48\",\"infogram-charts/charts-bar_radial\":\"bc4043f779098693e68c\",\"infogram-charts/charts-doughnut\":\"6a733d3749e95df327df\",\"infogram-charts/charts-gauge\":\"79e466ef8949ec2ffc18\",\"infogram-charts/charts-irregular_pie\":\"1339d794f1fa082f01d6\",\"infogram-charts/charts-semi_circle\":\"606e5600ac134bfc792c\",\"infogram-charts/dep-14\":\"729fa6f2f83ab2f907c2\",\"infogram-charts/charts-column_line~infogram-charts/charts-combo_gruped~infogram-charts/charts-combo_~4b4cf572\":\"8679e29eb0ec29c2f8a8\",\"infogram-charts/charts-column_line\":\"e83160e667d94431a0a4\",\"infogram-charts/charts-combo_gruped\":\"59946cb7f86c1bf8d7a5\",\"infogram-charts/charts-combo_stacked\":\"2330d3e426b1d321b836\",\"infogram-charts/charts-line_line\":\"f8a5ac5c02b827d5981c\",\"infogram-charts/dep-10\":\"691657fd8a307ef47c1e\",\"infogram-charts/charts-area\":\"d41fdc719abd6d559051\",\"infogram-charts/charts-area_stacked~infogram-charts/charts-area_stacked_percent~infogram-charts/char~1f7d018c\":\"936ccb10c1d4bc844882\",\"infogram-charts/charts-area_stacked\":\"7703689dc20857908f28\",\"infogram-charts/charts-area_stacked_percent\":\"ac23022816dd2afd1374\",\"infogram-charts/charts-stream_graph\":\"d5471d23cd5719a47be3\",\"infogram-charts/charts-bubble~infogram-charts/charts-bubble_plot~infogram-charts/charts-scatter~info~3054f745\":\"0a99fbe3a4312fb037bc\",\"infogram-charts/charts-bubble\":\"c4604147493c0310cb96\",\"infogram-charts/charts-bubble_plot\":\"73692f839b800251bf82\",\"infogram-charts/charts-scatter\":\"1a9ea36c770815836441\",\"infogram-charts/charts-scatter_grouped\":\"3ea3fe90a30029e5292a\",\"infogram-charts/charts-candlestick\":\"6c47c651769f77ab51b0\",\"infogram-charts/charts-dot_plot\":\"a838e07c172b49c97ce2\",\"infogram-charts/charts-line\":\"7c432a050acff3fcfa9d\",\"infogram-charts/charts-funnel~infogram-charts/charts-pyramid\":\"79b1818b939971156eab\",\"infogram-charts/charts-funnel\":\"72e5ca3989e4360120e1\",\"infogram-charts/charts-pyramid\":\"7bc1653c3bc9ca124121\",\"vendors~infogram-charts/charts-bar_race\":\"b45bd7426101999a0702\",\"infogram-charts/charts-bar_race\":\"25e741b1c0029f9d0936\",\"vendors~infogram-charts/charts-treemap~infogram-charts/charts-wordcloud\":\"db9a12fa27e8e9ecb7ff\",\"infogram-charts/charts-treemap\":\"af75a23d53eeeed49249\",\"infogram-charts/charts-wordcloud\":\"60713b1c24757643f93f\",\"vendors~infogram-charts/charts-map\":\"4d8339e6134891592d0c\",\"infogram-charts/dep-15\":\"3fd2a9383515eb851f06\",\"infogram-charts/charts-map\":\"ed1b392995bc09d62131\",\"infogram-charts/charts-timer\":\"4b8902db91364221ed76\",\"infogram-charts/charts-facts_and_figures\":\"4e4df3f36e7c822b9d3f\",\"infogram-charts/charts-table\":\"d2d6c8083e8cd6510f32\",\"vendors~additionalCharts\":\"1e05daae6bbdf2034729\",\"additionalCharts\":\"a7c5fdaad8b589dc284b\"}[chunkId] + \"-1-webpack.js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([7,\"bundle_vendor\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","'use strict';\nvar $ = require('../internals/export');\nvar isObject = require('../internals/is-object');\nvar isArray = require('../internals/is-array');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toLength = require('../internals/to-length');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar createProperty = require('../internals/create-property');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\nvar nativeSlice = [].slice;\nvar max = Math.max;\n\n// `Array.prototype.slice` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.slice\n// fallback for not array-like ES3 strings and DOM objects\n$({ target: 'Array', proto: true, forced: !arrayMethodHasSpeciesSupport('slice') }, {\n  slice: function slice(start, end) {\n    var O = toIndexedObject(this);\n    var length = toLength(O.length);\n    var k = toAbsoluteIndex(start, length);\n    var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n    // inline `ArraySpeciesCreate` for usage native `Array#slice` where it's possible\n    var Constructor, result, n;\n    if (isArray(O)) {\n      Constructor = O.constructor;\n      // cross-realm fallback\n      if (typeof Constructor == 'function' && (Constructor === Array || isArray(Constructor.prototype))) {\n        Constructor = undefined;\n      } else if (isObject(Constructor)) {\n        Constructor = Constructor[SPECIES];\n        if (Constructor === null) Constructor = undefined;\n      }\n      if (Constructor === Array || Constructor === undefined) {\n        return nativeSlice.call(O, k, fin);\n      }\n    }\n    result = new (Constructor === undefined ? Array : Constructor)(max(fin - k, 0));\n    for (n = 0; k < fin; k++, n++) if (k in O) createProperty(result, n, O[k]);\n    result.length = n;\n    return result;\n  }\n});\n","import {UPDATE_ACTIVE_HANDLE} from '../constants';\nimport Dispatcher from '../../../../app/dispatcher';\n\nexport default function updateActiveHandle(pointerLocation) {\n    Dispatcher.dispatch({\n        type: UPDATE_ACTIVE_HANDLE,\n        pointerLocation,\n    });\n}\n","exports = module.exports = require(\"../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"._1yo4aPYs1RJlB4p4oQdeMk {\\n    pointer-events: none;\\n    position: absolute;\\n    top: 0;\\n    left: 0;\\n    right: 0;\\n    bottom: 0;\\n}\\n\\n._3f0Ig4H5QIlnGaZDjCUXIp {\\n    position: absolute;\\n    border: 1px solid rgba(239, 45, 231, 0.3);\\n    background-color: rgba(239, 45, 231, 0.03);\\n    overflow: hidden;\\n    background-repeat: repeat;\\n}\\n\", \"\"]);\n\n// exports\nexports.locals = {\n\t\"grid\": \"_1yo4aPYs1RJlB4p4oQdeMk\",\n\t\"gridItem\": \"_3f0Ig4H5QIlnGaZDjCUXIp\"\n};","import renderItemContents from './renderItemContents.react';\n\nconst renderThumbnailItemContents = (entity, design, extraProps, containerProps) => {\n    if (!extraProps.renderItemContentsFn) {\n        extraProps.renderItemContentsFn = renderThumbnailItemContents;\n    }\n    extraProps.readOnly = true;\n    extraProps.design = design;\n\n    if (entity.getProperty('mediaType') === 'video') {\n        extraProps.renderThumbnail = true;\n    }\n\n    if (entity.getType() === 'CHART') {\n        return renderItemContents(\n            entity,\n            design,\n            {...extraProps, liveData: 'disabled', animateCharts: false, viewMode: 'thumbnail'},\n            containerProps\n        );\n    }\n\n    return renderItemContents(entity, design, extraProps, containerProps);\n};\n\nexport default renderThumbnailItemContents;\n","var aFunction = require('../internals/a-function');\n\n// optional / simple context binding\nmodule.exports = function (fn, that, length) {\n  aFunction(fn);\n  if (that === undefined) return fn;\n  switch (length) {\n    case 0: return function () {\n      return fn.call(that);\n    };\n    case 1: return function (a) {\n      return fn.call(that, a);\n    };\n    case 2: return function (a, b) {\n      return fn.call(that, a, b);\n    };\n    case 3: return function (a, b, c) {\n      return fn.call(that, a, b, c);\n    };\n  }\n  return function (/* ...args */) {\n    return fn.apply(that, arguments);\n  };\n};\n","/**\r\n * @preserve\r\n * Fast, destructive implemetation of Liang-Barsky line clipping algorithm.\r\n * It clips a 2D segment by a rectangle.\r\n * @author Alexander Milevski <info@w8r.name>\r\n * @license MIT\r\n */\r\nvar EPSILON = 1e-6;\r\nvar INSIDE = 1;\r\nvar OUTSIDE = 0;\r\nfunction clipT(num, denom, c) {\r\n    var tE = c[0], tL = c[1];\r\n    if (Math.abs(denom) < EPSILON)\r\n        return num < 0;\r\n    var t = num / denom;\r\n    if (denom > 0) {\r\n        if (t > tL)\r\n            return 0;\r\n        if (t > tE)\r\n            c[0] = t;\r\n    }\r\n    else {\r\n        if (t < tE)\r\n            return 0;\r\n        if (t < tL)\r\n            c[1] = t;\r\n    }\r\n    return 1;\r\n}\r\n/**\r\n * @param  {Point} a\r\n * @param  {Point} b\r\n * @param  {BoundingBox} box [xmin, ymin, xmax, ymax]\r\n * @param  {Point?} [da]\r\n * @param  {Point?} [db]\r\n * @return {number}\r\n */\r\nfunction clip(a, b, box, da, db) {\r\n    var x1 = a[0], y1 = a[1];\r\n    var x2 = b[0], y2 = b[1];\r\n    var dx = x2 - x1;\r\n    var dy = y2 - y1;\r\n    if (da === undefined || db === undefined) {\r\n        da = a;\r\n        db = b;\r\n    }\r\n    else {\r\n        da[0] = a[0];\r\n        da[1] = a[1];\r\n        db[0] = b[0];\r\n        db[1] = b[1];\r\n    }\r\n    if (Math.abs(dx) < EPSILON &&\r\n        Math.abs(dy) < EPSILON &&\r\n        x1 >= box[0] &&\r\n        x1 <= box[2] &&\r\n        y1 >= box[1] &&\r\n        y1 <= box[3]) {\r\n        return INSIDE;\r\n    }\r\n    var c = [0, 1];\r\n    if (clipT(box[0] - x1, dx, c) &&\r\n        clipT(x1 - box[2], -dx, c) &&\r\n        clipT(box[1] - y1, dy, c) &&\r\n        clipT(y1 - box[3], -dy, c)) {\r\n        var tE = c[0], tL = c[1];\r\n        if (tL < 1) {\r\n            db[0] = x1 + tL * dx;\r\n            db[1] = y1 + tL * dy;\r\n        }\r\n        if (tE > 0) {\r\n            da[0] += tE * dx;\r\n            da[1] += tE * dy;\r\n        }\r\n        return INSIDE;\r\n    }\r\n    return OUTSIDE;\r\n}\n\nexport default clip;\n//# sourceMappingURL=liang-barsky.es5.js.map\n","\"use strict\";\n\nvar indexOf = String.prototype.indexOf;\n\nmodule.exports = function (searchString/*, position*/) {\n\treturn indexOf.call(this, searchString, arguments[1]) > -1;\n};\n","\"use strict\";\n\nmodule.exports = require(\"./is-implemented\")() ? String.prototype.contains : require(\"./shim\");\n","if (!window.jQuery) {\n    const jQuery = require('jquery_real');\n    window.$ = window.jQuery = jQuery;\n    require('../libs/jquery-migrate-1.4.1-modified');\n}\nmodule.exports = window.jQuery;\n","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!./Reveal.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!./Reveal.css\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!./Reveal.css\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","export const TEMPLATE_PREVIEW_TEMPLATE_LOADING = 'template-preview-template-loading';\nexport const TEMPLATE_PREVIEW_TEMPLATE_LOADED = 'template-preview-template-loaded';\nexport const TEMPLATE_PREVIEW_TEMPLATE_LOAD_FAILED = 'template-preview-template-load-failed';\nexport const TEMPLATE_PREVIEW_THEME_LOADING = 'template-preview-theme-loading';\nexport const TEMPLATE_PREVIEW_THEME_LOADED = 'template-preview-theme-loaded';\nexport const TEMPLATE_PREVIEW_THEME_LOAD_FAILED = 'template-preview-theme-load-failed';\nexport const TEMPLATE_PREVIEW_SET_ACTIVE_PAGE = 'template-preview-set-active-page';\nexport const TEMPLATE_PREVIEW_LOADED = 'template-preview-loaded';\nexport const TEMPLATE_PREVIEW_CLOSED = 'template-preview-closed';\nexport const PREZIGRAM_TEMPLATE_PREVIEW_LOADED = 'prezigram-template-preview-loaded';\n","/** @license React v0.18.0\n * scheduler.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\n'use strict';Object.defineProperty(exports,\"__esModule\",{value:!0});var f,g,h,k,l;\nif(\"undefined\"===typeof window||\"function\"!==typeof MessageChannel){var p=null,q=null,t=function(){if(null!==p)try{var a=exports.unstable_now();p(!0,a);p=null}catch(b){throw setTimeout(t,0),b;}},u=Date.now();exports.unstable_now=function(){return Date.now()-u};f=function(a){null!==p?setTimeout(f,0,a):(p=a,setTimeout(t,0))};g=function(a,b){q=setTimeout(a,b)};h=function(){clearTimeout(q)};k=function(){return!1};l=exports.unstable_forceFrameRate=function(){}}else{var w=window.performance,x=window.Date,\ny=window.setTimeout,z=window.clearTimeout;if(\"undefined\"!==typeof console){var A=window.cancelAnimationFrame;\"function\"!==typeof window.requestAnimationFrame&&console.error(\"This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills\");\"function\"!==typeof A&&console.error(\"This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills\")}if(\"object\"===\ntypeof w&&\"function\"===typeof w.now)exports.unstable_now=function(){return w.now()};else{var B=x.now();exports.unstable_now=function(){return x.now()-B}}var C=!1,D=null,E=-1,F=5,G=0;k=function(){return exports.unstable_now()>=G};l=function(){};exports.unstable_forceFrameRate=function(a){0>a||125<a?console.error(\"forceFrameRate takes a positive int between 0 and 125, forcing framerates higher than 125 fps is not unsupported\"):F=0<a?Math.floor(1E3/a):5};var H=new MessageChannel,I=H.port2;H.port1.onmessage=\nfunction(){if(null!==D){var a=exports.unstable_now();G=a+F;try{D(!0,a)?I.postMessage(null):(C=!1,D=null)}catch(b){throw I.postMessage(null),b;}}else C=!1};f=function(a){D=a;C||(C=!0,I.postMessage(null))};g=function(a,b){E=y(function(){a(exports.unstable_now())},b)};h=function(){z(E);E=-1}}function J(a,b){var c=a.length;a.push(b);a:for(;;){var d=Math.floor((c-1)/2),e=a[d];if(void 0!==e&&0<K(e,b))a[d]=b,a[c]=e,c=d;else break a}}function L(a){a=a[0];return void 0===a?null:a}\nfunction M(a){var b=a[0];if(void 0!==b){var c=a.pop();if(c!==b){a[0]=c;a:for(var d=0,e=a.length;d<e;){var m=2*(d+1)-1,n=a[m],v=m+1,r=a[v];if(void 0!==n&&0>K(n,c))void 0!==r&&0>K(r,n)?(a[d]=r,a[v]=c,d=v):(a[d]=n,a[m]=c,d=m);else if(void 0!==r&&0>K(r,c))a[d]=r,a[v]=c,d=v;else break a}}return b}return null}function K(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}var N=[],O=[],P=1,Q=null,R=3,S=!1,T=!1,U=!1;\nfunction V(a){for(var b=L(O);null!==b;){if(null===b.callback)M(O);else if(b.startTime<=a)M(O),b.sortIndex=b.expirationTime,J(N,b);else break;b=L(O)}}function W(a){U=!1;V(a);if(!T)if(null!==L(N))T=!0,f(X);else{var b=L(O);null!==b&&g(W,b.startTime-a)}}\nfunction X(a,b){T=!1;U&&(U=!1,h());S=!0;var c=R;try{V(b);for(Q=L(N);null!==Q&&(!(Q.expirationTime>b)||a&&!k());){var d=Q.callback;if(null!==d){Q.callback=null;R=Q.priorityLevel;var e=d(Q.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?Q.callback=e:Q===L(N)&&M(N);V(b)}else M(N);Q=L(N)}if(null!==Q)var m=!0;else{var n=L(O);null!==n&&g(W,n.startTime-b);m=!1}return m}finally{Q=null,R=c,S=!1}}\nfunction Y(a){switch(a){case 1:return-1;case 2:return 250;case 5:return 1073741823;case 4:return 1E4;default:return 5E3}}var Z=l;exports.unstable_ImmediatePriority=1;exports.unstable_UserBlockingPriority=2;exports.unstable_NormalPriority=3;exports.unstable_IdlePriority=5;exports.unstable_LowPriority=4;exports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=R;R=a;try{return b()}finally{R=c}};\nexports.unstable_next=function(a){switch(R){case 1:case 2:case 3:var b=3;break;default:b=R}var c=R;R=b;try{return a()}finally{R=c}};\nexports.unstable_scheduleCallback=function(a,b,c){var d=exports.unstable_now();if(\"object\"===typeof c&&null!==c){var e=c.delay;e=\"number\"===typeof e&&0<e?d+e:d;c=\"number\"===typeof c.timeout?c.timeout:Y(a)}else c=Y(a),e=d;c=e+c;a={id:P++,callback:b,priorityLevel:a,startTime:e,expirationTime:c,sortIndex:-1};e>d?(a.sortIndex=e,J(O,a),null===L(N)&&a===L(O)&&(U?h():U=!0,g(W,e-d))):(a.sortIndex=c,J(N,a),T||S||(T=!0,f(X)));return a};exports.unstable_cancelCallback=function(a){a.callback=null};\nexports.unstable_wrapCallback=function(a){var b=R;return function(){var c=R;R=b;try{return a.apply(this,arguments)}finally{R=c}}};exports.unstable_getCurrentPriorityLevel=function(){return R};exports.unstable_shouldYield=function(){var a=exports.unstable_now();V(a);var b=L(N);return b!==Q&&null!==Q&&null!==b&&null!==b.callback&&b.startTime<=a&&b.expirationTime<Q.expirationTime||k()};exports.unstable_requestPaint=Z;exports.unstable_continueExecution=function(){T||S||(T=!0,f(X))};\nexports.unstable_pauseExecution=function(){};exports.unstable_getFirstCallbackNode=function(){return L(N)};exports.unstable_Profiling=null;\n","var typedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Uint32Array` constructor\n// https://tc39.github.io/ecma262/#sec-typedarray-objects\ntypedArrayConstructor('Uint32', 4, function (init) {\n  return function Uint32Array(data, byteOffset, length) {\n    return init(this, data, byteOffset, length);\n  };\n});\n","import {START_RESIZING} from '../constants';\nimport Dispatcher from '../../../../app/dispatcher';\n\nexport default function startResizing() {\n    Dispatcher.dispatch({\n        type: START_RESIZING,\n    });\n}\n","var $ = require('../internals/export');\nvar expm1 = require('../internals/math-expm1');\n\nvar nativeCosh = Math.cosh;\nvar abs = Math.abs;\nvar E = Math.E;\n\n// `Math.cosh` method\n// https://tc39.github.io/ecma262/#sec-math.cosh\n$({ target: 'Math', stat: true, forced: !nativeCosh || nativeCosh(710) === Infinity }, {\n  cosh: function cosh(x) {\n    var t = expm1(abs(x) - 1) + 1;\n    return (t + 1 / (t * E * E)) * (E / 2);\n  }\n});\n","import {fromJS} from 'immutable';\n\nimport updateExternalChartData from '../../app/freelayout_editor/actions/updateExternalChartData';\n\nexport default function updateFlexData(chart) {\n    if (!chart.get('isFreelayoutInline')) return;\n\n    let data = fromJS(chart.attributes);\n    // Remove properties that were added on client side.\n    data = data.withMutations(map => {\n        map.delete('chart_id');\n        map.delete('isFreelayoutInline');\n        map.delete('template');\n        map.delete('dataSets');\n        map.delete('interlinkedCharts');\n        map.delete('tabs');\n        map.deleteIn(['custom', 'height']);\n        map.deleteIn(['custom', 'map_json']);\n\n        // -raw are just local temporary values for chart_settings panel.\n        map.deleteIn(['custom', 'yminraw']);\n        map.deleteIn(['custom', 'ymaxraw']);\n        map.deleteIn(['custom', 'xminraw']);\n        map.deleteIn(['custom', 'xmaxraw']);\n        map.deleteIn(['custom', 'y2minraw']);\n        map.deleteIn(['custom', 'y2maxraw']);\n        map.deleteIn(['custom', 'pointSizeminraw']);\n        map.deleteIn(['custom', 'pointSizemaxraw']);\n        map.deleteIn(['custom', 'dataPointRadiusRangemaxraw']);\n        map.deleteIn(['custom', 'dataPointRadiusRangeminraw']);\n        if (map.get('sheets_settings')) {\n            for (let i = 0; i < map.get('sheets_settings').size; i++) {\n                const setting = map.getIn(['sheets_settings', i]);\n\n                if (!setting) {\n                    continue;\n                }\n\n                map.deleteIn(['sheets_settings', i, 'yminraw']);\n                map.deleteIn(['sheets_settings', i, 'ymaxraw']);\n                map.deleteIn(['sheets_settings', i, 'xminraw']);\n                map.deleteIn(['sheets_settings', i, 'xmaxraw']);\n                map.deleteIn(['sheets_settings', i, 'y2minraw']);\n                map.deleteIn(['sheets_settings', i, 'y2maxraw']);\n                map.deleteIn(['sheets_settings', i, 'pointSizeminraw']);\n                map.deleteIn(['sheets_settings', i, 'pointSizemaxraw']);\n                map.deleteIn(['sheets_settings', i, 'dataPointRadiusRangemaxraw']);\n                map.deleteIn(['sheets_settings', i, 'dataPointRadiusRangeminraw']);\n            }\n        }\n    });\n    updateExternalChartData(chart.get('chart_id'), data, chart);\n}\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n  return IndexedObject(requireObjectCoercible(it));\n};\n","/*!\n * jQuery Migrate - v1.4.1 - 2016-05-19\n * Copyright jQuery Foundation and other contributors\n */\n(function( jQuery, window, undefined ) {\n// See http://bugs.jquery.com/ticket/13335\n// \"use strict\";\n\n\njQuery.migrateVersion = \"1.4.1\";\n\n\nvar warnedAbout = {};\n\n// List of warnings already given; public read only\njQuery.migrateWarnings = [];\n\n// Set to true to prevent console output; migrateWarnings still maintained\njQuery.migrateMute = true;\n\n// Show a message on the console so devs know we're active\n//if ( window.console && window.console.log ) {\n\t//window.console.log( \"JQMIGRATE: Migrate is installed\" +\n\t\t//( jQuery.migrateMute ? \"\" : \" with logging active\" ) +\n\t\t//\", version \" + jQuery.migrateVersion );\n//}\n\n// Set to false to disable traces that appear with warnings\nif ( jQuery.migrateTrace === undefined ) {\n\tjQuery.migrateTrace = true;\n}\n\n// Forget any warnings we've already given; public\njQuery.migrateReset = function() {\n\twarnedAbout = {};\n\tjQuery.migrateWarnings.length = 0;\n};\n\nfunction migrateWarn( msg) {\n\tvar console = window.console;\n\tif ( !warnedAbout[ msg ] ) {\n\t\twarnedAbout[ msg ] = true;\n\t\tjQuery.migrateWarnings.push( msg );\n\t\tif ( console && console.warn && !jQuery.migrateMute ) {\n\t\t\tconsole.warn( \"JQMIGRATE: \" + msg );\n\t\t\tif ( jQuery.migrateTrace && console.trace ) {\n\t\t\t\tconsole.trace();\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction migrateWarnProp( obj, prop, value, msg ) {\n\tif ( Object.defineProperty ) {\n\t\t// On ES5 browsers (non-oldIE), warn if the code tries to get prop;\n\t\t// allow property to be overwritten in case some other plugin wants it\n\t\ttry {\n\t\t\tObject.defineProperty( obj, prop, {\n\t\t\t\tconfigurable: true,\n\t\t\t\tenumerable: true,\n\t\t\t\tget: function() {\n\t\t\t\t\tmigrateWarn( msg );\n\t\t\t\t\treturn value;\n\t\t\t\t},\n\t\t\t\tset: function( newValue ) {\n\t\t\t\t\tmigrateWarn( msg );\n\t\t\t\t\tvalue = newValue;\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn;\n\t\t} catch( err ) {\n\t\t\t// IE8 is a dope about Object.defineProperty, can't warn there\n\t\t}\n\t}\n\n\t// Non-ES5 (or broken) browser; just set the property\n\tjQuery._definePropertyBroken = true;\n\tobj[ prop ] = value;\n}\n\nif ( document.compatMode === \"BackCompat\" ) {\n\t// jQuery has never supported or tested Quirks Mode\n\tmigrateWarn( \"jQuery is not compatible with Quirks Mode\" );\n}\n\n\nvar attrFn = jQuery( \"<input/>\", { size: 1 } ).attr(\"size\") && jQuery.attrFn,\n\toldAttr = jQuery.attr,\n\tvalueAttrGet = jQuery.attrHooks.value && jQuery.attrHooks.value.get ||\n\t\tfunction() { return null; },\n\tvalueAttrSet = jQuery.attrHooks.value && jQuery.attrHooks.value.set ||\n\t\tfunction() { return undefined; },\n\trnoType = /^(?:input|button)$/i,\n\trnoAttrNodeType = /^[238]$/,\n\trboolean = /^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,\n\truseDefault = /^(?:checked|selected)$/i;\n\n// jQuery.attrFn\nmigrateWarnProp( jQuery, \"attrFn\", attrFn || {}, \"jQuery.attrFn is deprecated\" );\n\njQuery.attr = function( elem, name, value, pass ) {\n\tvar lowerName = name.toLowerCase(),\n\t\tnType = elem && elem.nodeType;\n\n\tif ( pass ) {\n\t\t// Since pass is used internally, we only warn for new jQuery\n\t\t// versions where there isn't a pass arg in the formal params\n\t\tif ( oldAttr.length < 4 ) {\n\t\t\tmigrateWarn(\"jQuery.fn.attr( props, pass ) is deprecated\");\n\t\t}\n\t\tif ( elem && !rnoAttrNodeType.test( nType ) &&\n\t\t\t(attrFn ? name in attrFn : jQuery.isFunction(jQuery.fn[name])) ) {\n\t\t\treturn jQuery( elem )[ name ]( value );\n\t\t}\n\t}\n\n\t// Warn if user tries to set `type`, since it breaks on IE 6/7/8; by checking\n\t// for disconnected elements we don't warn on $( \"<button>\", { type: \"button\" } ).\n\tif ( name === \"type\" && value !== undefined && rnoType.test( elem.nodeName ) && elem.parentNode ) {\n\t\tmigrateWarn(\"Can't change the 'type' of an input or button in IE 6/7/8\");\n\t}\n\n\t// Restore boolHook for boolean property/attribute synchronization\n\tif ( !jQuery.attrHooks[ lowerName ] && rboolean.test( lowerName ) ) {\n\t\tjQuery.attrHooks[ lowerName ] = {\n\t\t\tget: function( elem, name ) {\n\t\t\t\t// Align boolean attributes with corresponding properties\n\t\t\t\t// Fall back to attribute presence where some booleans are not supported\n\t\t\t\tvar attrNode,\n\t\t\t\t\tproperty = jQuery.prop( elem, name );\n\t\t\t\treturn property === true || typeof property !== \"boolean\" &&\n\t\t\t\t\t( attrNode = elem.getAttributeNode(name) ) && attrNode.nodeValue !== false ?\n\n\t\t\t\t\tname.toLowerCase() :\n\t\t\t\t\tundefined;\n\t\t\t},\n\t\t\tset: function( elem, value, name ) {\n\t\t\t\tvar propName;\n\t\t\t\tif ( value === false ) {\n\t\t\t\t\t// Remove boolean attributes when set to false\n\t\t\t\t\tjQuery.removeAttr( elem, name );\n\t\t\t\t} else {\n\t\t\t\t\t// value is true since we know at this point it's type boolean and not false\n\t\t\t\t\t// Set boolean attributes to the same name and set the DOM property\n\t\t\t\t\tpropName = jQuery.propFix[ name ] || name;\n\t\t\t\t\tif ( propName in elem ) {\n\t\t\t\t\t\t// Only set the IDL specifically if it already exists on the element\n\t\t\t\t\t\telem[ propName ] = true;\n\t\t\t\t\t}\n\n\t\t\t\t\telem.setAttribute( name, name.toLowerCase() );\n\t\t\t\t}\n\t\t\t\treturn name;\n\t\t\t}\n\t\t};\n\n\t\t// Warn only for attributes that can remain distinct from their properties post-1.9\n\t\tif ( ruseDefault.test( lowerName ) ) {\n\t\t\tmigrateWarn( \"jQuery.fn.attr('\" + lowerName + \"') might use property instead of attribute\" );\n\t\t}\n\t}\n\n\treturn oldAttr.call( jQuery, elem, name, value );\n};\n\n// attrHooks: value\njQuery.attrHooks.value = {\n\tget: function( elem, name ) {\n\t\tvar nodeName = ( elem.nodeName || \"\" ).toLowerCase();\n\t\tif ( nodeName === \"button\" ) {\n\t\t\treturn valueAttrGet.apply( this, arguments );\n\t\t}\n\t\tif ( nodeName !== \"input\" && nodeName !== \"option\" ) {\n\t\t\tmigrateWarn(\"jQuery.fn.attr('value') no longer gets properties\");\n\t\t}\n\t\treturn name in elem ?\n\t\t\telem.value :\n\t\t\tnull;\n\t},\n\tset: function( elem, value ) {\n\t\tvar nodeName = ( elem.nodeName || \"\" ).toLowerCase();\n\t\tif ( nodeName === \"button\" ) {\n\t\t\treturn valueAttrSet.apply( this, arguments );\n\t\t}\n\t\tif ( nodeName !== \"input\" && nodeName !== \"option\" ) {\n\t\t\tmigrateWarn(\"jQuery.fn.attr('value', val) no longer sets properties\");\n\t\t}\n\t\t// Does not return so that setAttribute is also used\n\t\telem.value = value;\n\t}\n};\n\n\nvar matched, browser,\n\toldInit = jQuery.fn.init,\n\toldFind = jQuery.find,\n\toldParseJSON = jQuery.parseJSON,\n\trspaceAngle = /^\\s*</,\n\trattrHashTest = /\\[(\\s*[-\\w]+\\s*)([~|^$*]?=)\\s*([-\\w#]*?#[-\\w#]*)\\s*\\]/,\n\trattrHashGlob = /\\[(\\s*[-\\w]+\\s*)([~|^$*]?=)\\s*([-\\w#]*?#[-\\w#]*)\\s*\\]/g,\n\t// Note: XSS check is done below after string is trimmed\n\trquickExpr = /^([^<]*)(<[\\w\\W]+>)([^>]*)$/;\n\n// $(html) \"looks like html\" rule change\njQuery.fn.init = function( selector, context, rootjQuery ) {\n\tvar match, ret;\n\n\tif ( selector && typeof selector === \"string\" ) {\n\t\tif ( !jQuery.isPlainObject( context ) &&\n\t\t\t\t(match = rquickExpr.exec( jQuery.trim( selector ) )) && match[ 0 ] ) {\n\n\t\t\t// This is an HTML string according to the \"old\" rules; is it still?\n\t\t\tif ( !rspaceAngle.test( selector ) ) {\n\t\t\t\tmigrateWarn(\"$(html) HTML strings must start with '<' character\");\n\t\t\t}\n\t\t\tif ( match[ 3 ] ) {\n\t\t\t\tmigrateWarn(\"$(html) HTML text after last tag is ignored\");\n\t\t\t}\n\n\t\t\t// Consistently reject any HTML-like string starting with a hash (gh-9521)\n\t\t\t// Note that this may break jQuery 1.6.x code that otherwise would work.\n\t\t\tif ( match[ 0 ].charAt( 0 ) === \"#\" ) {\n\t\t\t\tmigrateWarn(\"HTML string cannot start with a '#' character\");\n\t\t\t\tjQuery.error(\"JQMIGRATE: Invalid selector string (XSS)\");\n\t\t\t}\n\n\t\t\t// Now process using loose rules; let pre-1.8 play too\n\t\t\t// Is this a jQuery context? parseHTML expects a DOM element (#178)\n\t\t\tif ( context && context.context && context.context.nodeType ) {\n\t\t\t\tcontext = context.context;\n\t\t\t}\n\n\t\t\tif ( jQuery.parseHTML ) {\n\t\t\t\treturn oldInit.call( this,\n\t\t\t\t\t\tjQuery.parseHTML( match[ 2 ], context && context.ownerDocument ||\n\t\t\t\t\t\t\tcontext || document, true ), context, rootjQuery );\n\t\t\t}\n\t\t}\n\t}\n\n\tret = oldInit.apply( this, arguments );\n\n\t// Fill in selector and context properties so .live() works\n\tif ( selector && selector.selector !== undefined ) {\n\t\t// A jQuery object, copy its properties\n\t\tret.selector = selector.selector;\n\t\tret.context = selector.context;\n\n\t} else {\n\t\tret.selector = typeof selector === \"string\" ? selector : \"\";\n\t\tif ( selector ) {\n\t\t\tret.context = selector.nodeType? selector : context || document;\n\t\t}\n\t}\n\n\treturn ret;\n};\njQuery.fn.init.prototype = jQuery.fn;\n\njQuery.find = function( selector ) {\n\tvar args = Array.prototype.slice.call( arguments );\n\n\t// Support: PhantomJS 1.x\n\t// String#match fails to match when used with a //g RegExp, only on some strings\n\tif ( typeof selector === \"string\" && rattrHashTest.test( selector ) ) {\n\n\t\t// The nonstandard and undocumented unquoted-hash was removed in jQuery 1.12.0\n\t\t// First see if qS thinks it's a valid selector, if so avoid a false positive\n\t\ttry {\n\t\t\tdocument.querySelector( selector );\n\t\t} catch ( err1 ) {\n\n\t\t\t// Didn't *look* valid to qSA, warn and try quoting what we think is the value\n\t\t\tselector = selector.replace( rattrHashGlob, function( _, attr, op, value ) {\n\t\t\t\treturn \"[\" + attr + op + \"\\\"\" + value + \"\\\"]\";\n\t\t\t} );\n\n\t\t\t// If the regexp *may* have created an invalid selector, don't update it\n\t\t\t// Note that there may be false alarms if selector uses jQuery extensions\n\t\t\ttry {\n\t\t\t\tdocument.querySelector( selector );\n\t\t\t\tmigrateWarn( \"Attribute selector with '#' must be quoted: \" + args[ 0 ] );\n\t\t\t\targs[ 0 ] = selector;\n\t\t\t} catch ( err2 ) {\n\t\t\t\tmigrateWarn( \"Attribute selector with '#' was not fixed: \" + args[ 0 ] );\n\t\t\t}\n\t\t}\n\t}\n\n\treturn oldFind.apply( this, args );\n};\n\n// Copy properties attached to original jQuery.find method (e.g. .attr, .isXML)\nvar findProp;\nfor ( findProp in oldFind ) {\n\tif ( Object.prototype.hasOwnProperty.call( oldFind, findProp ) ) {\n\t\tjQuery.find[ findProp ] = oldFind[ findProp ];\n\t}\n}\n\n// Let $.parseJSON(falsy_value) return null\njQuery.parseJSON = function( json ) {\n\tif ( !json ) {\n\t\tmigrateWarn(\"jQuery.parseJSON requires a valid JSON string\");\n\t\treturn null;\n\t}\n\treturn oldParseJSON.apply( this, arguments );\n};\n\njQuery.uaMatch = function( ua ) {\n\tua = ua.toLowerCase();\n\n\tvar match = /(chrome)[ \\/]([\\w.]+)/.exec( ua ) ||\n\t\t/(webkit)[ \\/]([\\w.]+)/.exec( ua ) ||\n\t\t/(opera)(?:.*version|)[ \\/]([\\w.]+)/.exec( ua ) ||\n\t\t/(msie) ([\\w.]+)/.exec( ua ) ||\n\t\tua.indexOf(\"compatible\") < 0 && /(mozilla)(?:.*? rv:([\\w.]+)|)/.exec( ua ) ||\n\t\t[];\n\n\treturn {\n\t\tbrowser: match[ 1 ] || \"\",\n\t\tversion: match[ 2 ] || \"0\"\n\t};\n};\n\n// Don't clobber any existing jQuery.browser in case it's different\nif ( !jQuery.browser ) {\n\tmatched = jQuery.uaMatch( navigator.userAgent );\n\tbrowser = {};\n\n\tif ( matched.browser ) {\n\t\tbrowser[ matched.browser ] = true;\n\t\tbrowser.version = matched.version;\n\t}\n\n\t// Chrome is Webkit, but Webkit is also Safari.\n\tif ( browser.chrome ) {\n\t\tbrowser.webkit = true;\n\t} else if ( browser.webkit ) {\n\t\tbrowser.safari = true;\n\t}\n\n\tjQuery.browser = browser;\n}\n\n// Warn if the code tries to get jQuery.browser\nmigrateWarnProp( jQuery, \"browser\", jQuery.browser, \"jQuery.browser is deprecated\" );\n\n// jQuery.boxModel deprecated in 1.3, jQuery.support.boxModel deprecated in 1.7\njQuery.boxModel = jQuery.support.boxModel = (document.compatMode === \"CSS1Compat\");\nmigrateWarnProp( jQuery, \"boxModel\", jQuery.boxModel, \"jQuery.boxModel is deprecated\" );\nmigrateWarnProp( jQuery.support, \"boxModel\", jQuery.support.boxModel, \"jQuery.support.boxModel is deprecated\" );\n\njQuery.sub = function() {\n\tfunction jQuerySub( selector, context ) {\n\t\treturn new jQuerySub.fn.init( selector, context );\n\t}\n\tjQuery.extend( true, jQuerySub, this );\n\tjQuerySub.superclass = this;\n\tjQuerySub.fn = jQuerySub.prototype = this();\n\tjQuerySub.fn.constructor = jQuerySub;\n\tjQuerySub.sub = this.sub;\n\tjQuerySub.fn.init = function init( selector, context ) {\n\t\tvar instance = jQuery.fn.init.call( this, selector, context, rootjQuerySub );\n\t\treturn instance instanceof jQuerySub ?\n\t\t\tinstance :\n\t\t\tjQuerySub( instance );\n\t};\n\tjQuerySub.fn.init.prototype = jQuerySub.fn;\n\tvar rootjQuerySub = jQuerySub(document);\n\tmigrateWarn( \"jQuery.sub() is deprecated\" );\n\treturn jQuerySub;\n};\n\n// The number of elements contained in the matched element set\njQuery.fn.size = function() {\n\tmigrateWarn( \"jQuery.fn.size() is deprecated; use the .length property\" );\n\treturn this.length;\n};\n\n\nvar internalSwapCall = false;\n\n// If this version of jQuery has .swap(), don't false-alarm on internal uses\nif ( jQuery.swap ) {\n\tjQuery.each( [ \"height\", \"width\", \"reliableMarginRight\" ], function( _, name ) {\n\t\tvar oldHook = jQuery.cssHooks[ name ] && jQuery.cssHooks[ name ].get;\n\n\t\tif ( oldHook ) {\n\t\t\tjQuery.cssHooks[ name ].get = function() {\n\t\t\t\tvar ret;\n\n\t\t\t\tinternalSwapCall = true;\n\t\t\t\tret = oldHook.apply( this, arguments );\n\t\t\t\tinternalSwapCall = false;\n\t\t\t\treturn ret;\n\t\t\t};\n\t\t}\n\t});\n}\n\njQuery.swap = function( elem, options, callback, args ) {\n\tvar ret, name,\n\t\told = {};\n\n\tif ( !internalSwapCall ) {\n\t\tmigrateWarn( \"jQuery.swap() is undocumented and deprecated\" );\n\t}\n\n\t// Remember the old values, and insert the new ones\n\tfor ( name in options ) {\n\t\told[ name ] = elem.style[ name ];\n\t\telem.style[ name ] = options[ name ];\n\t}\n\n\tret = callback.apply( elem, args || [] );\n\n\t// Revert the old values\n\tfor ( name in options ) {\n\t\telem.style[ name ] = old[ name ];\n\t}\n\n\treturn ret;\n};\n\n\n// Ensure that $.ajax gets the new parseJSON defined in core.js\njQuery.ajaxSetup({\n\tconverters: {\n\t\t\"text json\": jQuery.parseJSON\n\t}\n});\n\n\nvar oldFnData = jQuery.fn.data;\n\njQuery.fn.data = function( name ) {\n\tvar ret, evt,\n\t\telem = this[0];\n\n\t// Handles 1.7 which has this behavior and 1.8 which doesn't\n\tif ( elem && name === \"events\" && arguments.length === 1 ) {\n\t\tret = jQuery.data( elem, name );\n\t\tevt = jQuery._data( elem, name );\n\t\tif ( ( ret === undefined || ret === evt ) && evt !== undefined ) {\n\t\t\tmigrateWarn(\"Use of jQuery.fn.data('events') is deprecated\");\n\t\t\treturn evt;\n\t\t}\n\t}\n\treturn oldFnData.apply( this, arguments );\n};\n\n\nvar rscriptType = /\\/(java|ecma)script/i;\n\n// Since jQuery.clean is used internally on older versions, we only shim if it's missing\nif ( !jQuery.clean ) {\n\tjQuery.clean = function( elems, context, fragment, scripts ) {\n\t\t// Set context per 1.8 logic\n\t\tcontext = context || document;\n\t\tcontext = !context.nodeType && context[0] || context;\n\t\tcontext = context.ownerDocument || context;\n\n\t\tmigrateWarn(\"jQuery.clean() is deprecated\");\n\n\t\tvar i, elem, handleScript, jsTags,\n\t\t\tret = [];\n\n\t\tjQuery.merge( ret, jQuery.buildFragment( elems, context ).childNodes );\n\n\t\t// Complex logic lifted directly from jQuery 1.8\n\t\tif ( fragment ) {\n\t\t\t// Special handling of each script element\n\t\t\thandleScript = function( elem ) {\n\t\t\t\t// Check if we consider it executable\n\t\t\t\tif ( !elem.type || rscriptType.test( elem.type ) ) {\n\t\t\t\t\t// Detach the script and store it in the scripts array (if provided) or the fragment\n\t\t\t\t\t// Return truthy to indicate that it has been handled\n\t\t\t\t\treturn scripts ?\n\t\t\t\t\t\tscripts.push( elem.parentNode ? elem.parentNode.removeChild( elem ) : elem ) :\n\t\t\t\t\t\tfragment.appendChild( elem );\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tfor ( i = 0; (elem = ret[i]) != null; i++ ) {\n\t\t\t\t// Check if we're done after handling an executable script\n\t\t\t\tif ( !( jQuery.nodeName( elem, \"script\" ) && handleScript( elem ) ) ) {\n\t\t\t\t\t// Append to fragment and handle embedded scripts\n\t\t\t\t\tfragment.appendChild( elem );\n\t\t\t\t\tif ( typeof elem.getElementsByTagName !== \"undefined\" ) {\n\t\t\t\t\t\t// handleScript alters the DOM, so use jQuery.merge to ensure snapshot iteration\n\t\t\t\t\t\tjsTags = jQuery.grep( jQuery.merge( [], elem.getElementsByTagName(\"script\") ), handleScript );\n\n\t\t\t\t\t\t// Splice the scripts into ret after their former ancestor and advance our index beyond them\n\t\t\t\t\t\tret.splice.apply( ret, [i + 1, 0].concat( jsTags ) );\n\t\t\t\t\t\ti += jsTags.length;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn ret;\n\t};\n}\n\nvar eventAdd = jQuery.event.add,\n\teventRemove = jQuery.event.remove,\n\teventTrigger = jQuery.event.trigger,\n\toldToggle = jQuery.fn.toggle,\n\toldLive = jQuery.fn.live,\n\toldDie = jQuery.fn.die,\n\toldLoad = jQuery.fn.load,\n\tajaxEvents = \"ajaxStart|ajaxStop|ajaxSend|ajaxComplete|ajaxError|ajaxSuccess\",\n\trajaxEvent = new RegExp( \"\\\\b(?:\" + ajaxEvents + \")\\\\b\" ),\n\trhoverHack = /(?:^|\\s)hover(\\.\\S+|)\\b/,\n\thoverHack = function( events ) {\n\t\tif ( typeof( events ) !== \"string\" || jQuery.event.special.hover ) {\n\t\t\treturn events;\n\t\t}\n\t\tif ( rhoverHack.test( events ) ) {\n\t\t\tmigrateWarn(\"'hover' pseudo-event is deprecated, use 'mouseenter mouseleave'\");\n\t\t}\n\t\treturn events && events.replace( rhoverHack, \"mouseenter$1 mouseleave$1\" );\n\t};\n\n// Event props removed in 1.9, put them back if needed; no practical way to warn them\nif ( jQuery.event.props && jQuery.event.props[ 0 ] !== \"attrChange\" ) {\n\tjQuery.event.props.unshift( \"attrChange\", \"attrName\", \"relatedNode\", \"srcElement\" );\n}\n\n// Undocumented jQuery.event.handle was \"deprecated\" in jQuery 1.7\nif ( jQuery.event.dispatch ) {\n\tmigrateWarnProp( jQuery.event, \"handle\", jQuery.event.dispatch, \"jQuery.event.handle is undocumented and deprecated\" );\n}\n\n// Support for 'hover' pseudo-event and ajax event warnings\njQuery.event.add = function( elem, types, handler, data, selector ){\n\tif ( elem !== document && rajaxEvent.test( types ) ) {\n\t\tmigrateWarn( \"AJAX events should be attached to document: \" + types );\n\t}\n\teventAdd.call( this, elem, hoverHack( types || \"\" ), handler, data, selector );\n};\njQuery.event.remove = function( elem, types, handler, selector, mappedTypes ){\n\teventRemove.call( this, elem, hoverHack( types ) || \"\", handler, selector, mappedTypes );\n};\n\njQuery.each( [ \"load\", \"unload\", \"error\" ], function( _, name ) {\n\n\tjQuery.fn[ name ] = function() {\n\t\tvar args = Array.prototype.slice.call( arguments, 0 );\n\n\t\t// If this is an ajax load() the first arg should be the string URL;\n\t\t// technically this could also be the \"Anything\" arg of the event .load()\n\t\t// which just goes to show why this dumb signature has been deprecated!\n\t\t// jQuery custom builds that exclude the Ajax module justifiably die here.\n\t\tif ( name === \"load\" && typeof args[ 0 ] === \"string\" ) {\n\t\t\treturn oldLoad.apply( this, args );\n\t\t}\n\n\t\tmigrateWarn( \"jQuery.fn.\" + name + \"() is deprecated\" );\n\n\t\targs.splice( 0, 0, name );\n\t\tif ( arguments.length ) {\n\t\t\treturn this.bind.apply( this, args );\n\t\t}\n\n\t\t// Use .triggerHandler here because:\n\t\t// - load and unload events don't need to bubble, only applied to window or image\n\t\t// - error event should not bubble to window, although it does pre-1.7\n\t\t// See http://bugs.jquery.com/ticket/11820\n\t\tthis.triggerHandler.apply( this, args );\n\t\treturn this;\n\t};\n\n});\n\njQuery.fn.toggle = function( fn, fn2 ) {\n\n\t// Don't mess with animation or css toggles\n\tif ( !jQuery.isFunction( fn ) || !jQuery.isFunction( fn2 ) ) {\n\t\treturn oldToggle.apply( this, arguments );\n\t}\n\tmigrateWarn(\"jQuery.fn.toggle(handler, handler...) is deprecated\");\n\n\t// Save reference to arguments for access in closure\n\tvar args = arguments,\n\t\tguid = fn.guid || jQuery.guid++,\n\t\ti = 0,\n\t\ttoggler = function( event ) {\n\t\t\t// Figure out which function to execute\n\t\t\tvar lastToggle = ( jQuery._data( this, \"lastToggle\" + fn.guid ) || 0 ) % i;\n\t\t\tjQuery._data( this, \"lastToggle\" + fn.guid, lastToggle + 1 );\n\n\t\t\t// Make sure that clicks stop\n\t\t\tevent.preventDefault();\n\n\t\t\t// and execute the function\n\t\t\treturn args[ lastToggle ].apply( this, arguments ) || false;\n\t\t};\n\n\t// link all the functions, so any of them can unbind this click handler\n\ttoggler.guid = guid;\n\twhile ( i < args.length ) {\n\t\targs[ i++ ].guid = guid;\n\t}\n\n\treturn this.click( toggler );\n};\n\njQuery.fn.live = function( types, data, fn ) {\n\tmigrateWarn(\"jQuery.fn.live() is deprecated\");\n\tif ( oldLive ) {\n\t\treturn oldLive.apply( this, arguments );\n\t}\n\tjQuery( this.context ).on( types, this.selector, data, fn );\n\treturn this;\n};\n\njQuery.fn.die = function( types, fn ) {\n\tmigrateWarn(\"jQuery.fn.die() is deprecated\");\n\tif ( oldDie ) {\n\t\treturn oldDie.apply( this, arguments );\n\t}\n\tjQuery( this.context ).off( types, this.selector || \"**\", fn );\n\treturn this;\n};\n\n// Turn global events into document-triggered events\njQuery.event.trigger = function( event, data, elem, onlyHandlers  ){\n\tif ( !elem && !rajaxEvent.test( event ) ) {\n\t\tmigrateWarn( \"Global events are undocumented and deprecated\" );\n\t}\n\treturn eventTrigger.call( this,  event, data, elem || document, onlyHandlers  );\n};\njQuery.each( ajaxEvents.split(\"|\"),\n\tfunction( _, name ) {\n\t\tjQuery.event.special[ name ] = {\n\t\t\tsetup: function() {\n\t\t\t\tvar elem = this;\n\n\t\t\t\t// The document needs no shimming; must be !== for oldIE\n\t\t\t\tif ( elem !== document ) {\n\t\t\t\t\tjQuery.event.add( document, name + \".\" + jQuery.guid, function() {\n\t\t\t\t\t\tjQuery.event.trigger( name, Array.prototype.slice.call( arguments, 1 ), elem, true );\n\t\t\t\t\t});\n\t\t\t\t\tjQuery._data( this, name, jQuery.guid++ );\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t},\n\t\t\tteardown: function() {\n\t\t\t\tif ( this !== document ) {\n\t\t\t\t\tjQuery.event.remove( document, name + \".\" + jQuery._data( this, name ) );\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t}\n\t\t};\n\t}\n);\n\njQuery.event.special.ready = {\n\tsetup: function() {\n\t\tif ( this === document ) {\n\t\t\tmigrateWarn( \"'ready' event is deprecated\" );\n\t\t}\n\t}\n};\n\nvar oldSelf = jQuery.fn.andSelf || jQuery.fn.addBack,\n\toldFnFind = jQuery.fn.find;\n\njQuery.fn.andSelf = function() {\n\tmigrateWarn(\"jQuery.fn.andSelf() replaced by jQuery.fn.addBack()\");\n\treturn oldSelf.apply( this, arguments );\n};\n\njQuery.fn.find = function( selector ) {\n\tvar ret = oldFnFind.apply( this, arguments );\n\tret.context = this.context;\n\tret.selector = this.selector ? this.selector + \" \" + selector : selector;\n\treturn ret;\n};\n\n\n// jQuery 1.6 did not support Callbacks, do not warn there\nif ( jQuery.Callbacks ) {\n\n\tvar oldDeferred = jQuery.Deferred,\n\t\ttuples = [\n\t\t\t// action, add listener, callbacks, .then handlers, final state\n\t\t\t[ \"resolve\", \"done\", jQuery.Callbacks(\"once memory\"),\n\t\t\t\tjQuery.Callbacks(\"once memory\"), \"resolved\" ],\n\t\t\t[ \"reject\", \"fail\", jQuery.Callbacks(\"once memory\"),\n\t\t\t\tjQuery.Callbacks(\"once memory\"), \"rejected\" ],\n\t\t\t[ \"notify\", \"progress\", jQuery.Callbacks(\"memory\"),\n\t\t\t\tjQuery.Callbacks(\"memory\") ]\n\t\t];\n\n\tjQuery.Deferred = function( func ) {\n\t\tvar deferred = oldDeferred(),\n\t\t\tpromise = deferred.promise();\n\n\t\tdeferred.pipe = promise.pipe = function( /* fnDone, fnFail, fnProgress */ ) {\n\t\t\tvar fns = arguments;\n\n\t\t\tmigrateWarn( \"deferred.pipe() is deprecated\" );\n\n\t\t\treturn jQuery.Deferred(function( newDefer ) {\n\t\t\t\tjQuery.each( tuples, function( i, tuple ) {\n\t\t\t\t\tvar fn = jQuery.isFunction( fns[ i ] ) && fns[ i ];\n\t\t\t\t\t// deferred.done(function() { bind to newDefer or newDefer.resolve })\n\t\t\t\t\t// deferred.fail(function() { bind to newDefer or newDefer.reject })\n\t\t\t\t\t// deferred.progress(function() { bind to newDefer or newDefer.notify })\n\t\t\t\t\tdeferred[ tuple[1] ](function() {\n\t\t\t\t\t\tvar returned = fn && fn.apply( this, arguments );\n\t\t\t\t\t\tif ( returned && jQuery.isFunction( returned.promise ) ) {\n\t\t\t\t\t\t\treturned.promise()\n\t\t\t\t\t\t\t\t.done( newDefer.resolve )\n\t\t\t\t\t\t\t\t.fail( newDefer.reject )\n\t\t\t\t\t\t\t\t.progress( newDefer.notify );\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tnewDefer[ tuple[ 0 ] + \"With\" ](\n\t\t\t\t\t\t\t\tthis === promise ? newDefer.promise() : this,\n\t\t\t\t\t\t\t\tfn ? [ returned ] : arguments\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t\tfns = null;\n\t\t\t}).promise();\n\n\t\t};\n\n\t\tdeferred.isResolved = function() {\n\t\t\tmigrateWarn( \"deferred.isResolved is deprecated\" );\n\t\t\treturn deferred.state() === \"resolved\";\n\t\t};\n\n\t\tdeferred.isRejected = function() {\n\t\t\tmigrateWarn( \"deferred.isRejected is deprecated\" );\n\t\t\treturn deferred.state() === \"rejected\";\n\t\t};\n\n\t\tif ( func ) {\n\t\t\tfunc.call( deferred, deferred );\n\t\t}\n\n\t\treturn deferred;\n\t};\n\n}\n\n})( window.jQuery, window );\n","export function runIgnoringErrors(f) {\n    try {\n        return f();\n    } catch (e) {\n    }\n}\n","\"use strict\";\n\nvar compose = require('redux').compose;\n\nexports.__esModule = true;\nexports.composeWithDevTools = (\n  process.env.NODE_ENV !== 'production' && typeof window !== 'undefined' &&\n  window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ ?\n    window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ :\n    function() {\n      if (arguments.length === 0) return undefined;\n      if (typeof arguments[0] === 'object') return compose;\n      return compose.apply(null, arguments);\n    }\n);\n\nexports.devToolsEnhancer = (\n  process.env.NODE_ENV !== 'production' && typeof window !== 'undefined' &&\n  window.__REDUX_DEVTOOLS_EXTENSION__ ?\n    window.__REDUX_DEVTOOLS_EXTENSION__ :\n    function() { return function(noop) { return noop; } }\n);\n","var typedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Int8Array` constructor\n// https://tc39.github.io/ecma262/#sec-typedarray-objects\ntypedArrayConstructor('Int8', 1, function (init) {\n  return function Int8Array(data, byteOffset, length) {\n    return init(this, data, byteOffset, length);\n  };\n});\n","module.exports = function resolveParsedReferenceColor(parsedReference, colors) {\n    const colorMatch = /^colors\\.([^\\s]+)$/.exec(parsedReference);\n    if (!colorMatch) {\n        return {\n            resolved: false,\n        }\n    }\n\n    const indexString = colorMatch[1];\n    let index = parseInt(indexString, 10);\n    if (isNaN(index)) {\n        if (indexString.startsWith('#')) {\n            return {\n                resolved: true,\n                value: indexString,\n            };\n        }\n        throw new Error('Invalid color index or value');\n    }\n\n    if (index >= colors.length) {\n        //index goes round the colors array so that at least something is found\n        //we rely on that there MUST be at least one color, e.g., colors array is not empty\n        index = index % colors.length;\n    }\n\n    return {\n        resolved: true,\n        value: colors[index],\n    };\n};\n","import PropTypes from 'prop-types';\nexport var timeoutsShape = process.env.NODE_ENV !== 'production' ? PropTypes.oneOfType([PropTypes.number, PropTypes.shape({\n  enter: PropTypes.number,\n  exit: PropTypes.number,\n  appear: PropTypes.number\n}).isRequired]) : null;\nexport var classNamesShape = process.env.NODE_ENV !== 'production' ? PropTypes.oneOfType([PropTypes.string, PropTypes.shape({\n  enter: PropTypes.string,\n  exit: PropTypes.string,\n  active: PropTypes.string\n}), PropTypes.shape({\n  enter: PropTypes.string,\n  enterDone: PropTypes.string,\n  enterActive: PropTypes.string,\n  exit: PropTypes.string,\n  exitDone: PropTypes.string,\n  exitActive: PropTypes.string\n})]) : null;","// iterable DOM collections\n// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods\nmodule.exports = {\n  CSSRuleList: 0,\n  CSSStyleDeclaration: 0,\n  CSSValueList: 0,\n  ClientRectList: 0,\n  DOMRectList: 0,\n  DOMStringList: 0,\n  DOMTokenList: 1,\n  DataTransferItemList: 0,\n  FileList: 0,\n  HTMLAllCollection: 0,\n  HTMLCollection: 0,\n  HTMLFormElement: 0,\n  HTMLSelectElement: 0,\n  MediaList: 0,\n  MimeTypeArray: 0,\n  NamedNodeMap: 0,\n  NodeList: 1,\n  PaintRequestList: 0,\n  Plugin: 0,\n  PluginArray: 0,\n  SVGLengthList: 0,\n  SVGNumberList: 0,\n  SVGPathSegList: 0,\n  SVGPointList: 0,\n  SVGStringList: 0,\n  SVGTransformList: 0,\n  SourceBufferList: 0,\n  StyleSheetList: 0,\n  TextTrackCueList: 0,\n  TextTrackList: 0,\n  TouchList: 0\n};\n","/* global _ */\nimport i18n from 'i18next';\n\nimport Dispatcher from '../../../app/dispatcher';\nimport CurrentInfographicStore from '../../../app/main/stores/CurrentInfographicStore';\nimport reloadChart from '../../../common/chart_factory/chart_reloader';\n\nimport {\n    CHART_SETTINGS_REFRESH,\n} from '../../../app/chart_options/constants/chart_settings';\n\nexport default async function fetchChartLiveData(chart, sheetIndex, force) {\n    const custom = chart.get('custom');\n    try {\n        if (chart.get('isFreelayoutInline')) {\n            const infographicId = CurrentInfographicStore.infographicId;\n\n            const params = [];\n\n            if (sheetIndex !== undefined) {\n                params.push(`sheetIndex=${sheetIndex}`);\n            }\n\n            if (force) {\n                params.push(`force=true`);\n            }\n\n            const response = await fetch(`/api/live/flex/${infographicId}/${custom.live.chartId}?${params.join('&')}`);\n            if (!response.ok) {\n                throw new Error(i18n.t('app.chart_settings.connection_error'));\n            }\n            const liveData = await response.json();\n            if (liveData) {\n                if (liveData.data) {\n                    chart.set('data', liveData.data);\n                    chart.set('sheetnames', liveData.sheetNames);\n                }\n\n                custom.live.refreshed = liveData.refreshed;\n                if (liveData.allSheetNames) {\n                    custom.live.sheetNames = liveData.allSheetNames;\n                }\n                chart.set('custom', custom);\n\n                reloadChart(chart);\n\n                Dispatcher.dispatch({\n                    type: CHART_SETTINGS_REFRESH,\n                });\n            }\n        } else {\n            const forced = force && '?force=1' || '';\n            const response = await fetch(`/api/live/data/${chart.get('chart_id')}/${custom.live.refreshed}/${forced}`);\n            if (!response.ok) {\n                throw new Error(i18n.t('app.chart_settings.connection_error'));\n            }\n            const data = await response.json();\n            if (data.error) {\n                throw new Error(data.error);\n            }\n            custom.live.refreshed = data.updated;\n            if (data.allSheetNames) {\n                custom.live.sheetNames = data.allSheetNames;\n            }\n            chart.set('custom', custom);\n\n            if (!_.isEqual(chart.get('data'), data.data) || !_.isEqual(chart.get('sheetnames'), data.sheetNames)) {\n                chart.set('data', data.data);\n                chart.set('sheetnames', data.sheetNames);\n                reloadChart(chart);\n                Dispatcher.dispatch({\n                    type: CHART_SETTINGS_REFRESH,\n                });\n            }\n        }\n    } catch (err) {\n        console.error(err);\n    }\n}\n","\nvar content = require(\"!!../../css-loader/index.js?modules=false!./Draft.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../css-loader/index.js?modules=false!./Draft.css\", function() {\n\t\tvar newContent = require(\"!!../../css-loader/index.js?modules=false!./Draft.css\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","/**\n * Standardized filter primitive *in* and *result* attribute naming functions\n */\n\nexport const input = idx => idx ? `fe${idx - 1}` : 'SourceGraphic';\nexport const output = idx => `fe${idx}`;\n\n/** Get numeric value (amount, intensity etc.) of a filter */\nexport const amountOf = (filters, name) => filters ? filters.get(name) || 0 : 0;\n","/* global PREZIGRAM */\nimport PropTypes from 'prop-types';\nimport React, {Component} from 'react';\nimport styled from 'styled-components';\n\nimport EditorStateStore from '../../app/freelayout_editor/stores/EditorStateStore';\nimport ContentBlock from '../FreeLayoutEditor/content/ContentBlock';\nimport {EditorContextProvider} from '../FreeLayoutEditor/base/EditorContext';\nimport renderThumbnailItemContents from '../../app/freelayout_editor/components/renderThumbnailItemContents';\nimport fluxContainer from '../../fluxContainer';\nimport ReadOnlyFooter from '../InfographicFooter/FlexFooter.react';\nimport LazyWrapper from '../IntersectionObserver/LazyWrapper.react';\nimport PrezigramTheme from '../../contexts/theme/prezigram';\nimport {PresentationWatermark} from '../../prezigram/watermark/Watermark';\n\nconst StyledLazyWrapper = styled(LazyWrapper)`\n    cursor: default;\n    overflow: hidden;\n    position: relative;\n    background-color: #2d2d2d;\n\n    .link-dialog & {\n        border-radius: 5px;\n        margin: 0 auto;\n    }\n\n    ${(props) => props.theme.id === PrezigramTheme.id && `\n        background-color: ${PrezigramTheme.white};\n    `}\n`;\n\n// Define context here as it is static and we dont want to create\n// new object for each thumbnail which will trigger redraws\nconst thumbnailEditorContext = {\n    chartNamespace: 'thumb',\n};\n\n@fluxContainer({withProps: true})\nexport default class PageThumbnail extends Component {\n    static propTypes = {\n        pageId: PropTypes.string.isRequired,\n        maxWidth: PropTypes.number.isRequired,\n        maxHeight: PropTypes.number.isRequired,\n        observer: PropTypes.shape({\n            observe: PropTypes.func.isRequired,\n            unobserve: PropTypes.func.isRequired,\n        }),\n    };\n\n    static getStores() {\n        return [\n            EditorStateStore,\n        ];\n    }\n\n    static calculateState(prevState, props) {\n        const block = EditorStateStore.editorState.getCurrentContent().getBlock(props.pageId);\n        if (!block) return null;\n        const pageSize = EditorStateStore.editorState.getPageSize();\n        const thumbSize = {height: props.maxHeight, width: props.maxWidth};\n        const aspectRatio = pageSize.width / pageSize.height;\n        if (aspectRatio >= 1) {\n            thumbSize.height = props.maxHeight;\n            thumbSize.width = thumbSize.height * aspectRatio;\n            if (thumbSize.width > props.maxWidth) {\n                thumbSize.width = props.maxWidth;\n                thumbSize.height = thumbSize.width / aspectRatio;\n            }\n        } else {\n            thumbSize.width = props.maxWidth;\n            thumbSize.height = thumbSize.width / aspectRatio;\n            if (thumbSize.height > props.maxHeight) {\n                thumbSize.height = props.maxHeight;\n                thumbSize.width = thumbSize.height * aspectRatio;\n            }\n        }\n\n        const scale = Math.min(\n            props.maxHeight / pageSize.height,\n            props.maxWidth / pageSize.width,\n        );\n\n        return {\n            block,\n            pageSize: EditorStateStore.editorState.getPageSize(),\n            thumbSize,\n            scale,\n        };\n    }\n\n    render() {\n        const blockOverlay = PREZIGRAM ? PresentationWatermark : ReadOnlyFooter;\n\n        return (\n            <EditorContextProvider value={thumbnailEditorContext}>\n                <StyledLazyWrapper\n                    style={this.state.thumbSize}\n                    observer={this.props.observer}\n                >\n                    <ContentBlock\n                        blockOverlayComponent={blockOverlay}\n                        editorState={EditorStateStore.editorState}\n                        assets={EditorStateStore.editorState.getAssets()}\n                        renderItemContentsFn={renderThumbnailItemContents}\n                        readOnly\n                        block={this.state.block}\n                        scaleX={this.state.scale}\n                        scaleY={this.state.scale}\n                        index={0}\n                        registerDOMNode={false}\n                        interactive={false}\n                        pageSize={this.state.pageSize}\n                    />\n                </StyledLazyWrapper>\n            </EditorContextProvider>\n        );\n    }\n}\n","(function (root) {\n// lazy require symbols table\nvar _symbols, removelist;\nfunction symbols(code) {\n    if (_symbols) return _symbols[code];\n    _symbols = require('unicode/category/So');\n    removelist = ['sign','cross','of','symbol','staff','hand','black','white']\n        .map(function (word) {return new RegExp(word, 'gi')});\n    return _symbols[code];\n}\n\nfunction slug(string, opts) {\n    string = string.toString();\n    if ('string' === typeof opts)\n        opts = {replacement:opts};\n    opts = opts || {};\n    opts.mode = opts.mode || slug.defaults.mode;\n    var defaults = slug.defaults.modes[opts.mode];\n    var keys = ['replacement','multicharmap','charmap','remove','lower'];\n    for (var key, i = 0, l = keys.length; i < l; i++) { key = keys[i];\n        opts[key] = (key in opts) ? opts[key] : defaults[key];\n    }\n    if ('undefined' === typeof opts.symbols)\n        opts.symbols = defaults.symbols;\n\n    var lengths = [];\n    for (var key in opts.multicharmap) {\n        if (!opts.multicharmap.hasOwnProperty(key))\n            continue;\n\n        var len = key.length;\n        if (lengths.indexOf(len) === -1)\n            lengths.push(len);\n    }\n\n    var code, unicode, result = \"\";\n    for (var char, i = 0, l = string.length; i < l; i++) { char = string[i];\n        if (!lengths.some(function (len) {\n            var str = string.substr(i, len);\n            if (opts.multicharmap[str]) {\n                i += len - 1;\n                char = opts.multicharmap[str];\n                return true;\n            } else return false;\n        })) {\n            if (opts.charmap[char]) {\n                char = opts.charmap[char];\n                code = char.charCodeAt(0);\n            } else {\n                code = string.charCodeAt(i);\n            }\n            if (opts.symbols && (unicode = symbols(code))) {\n                char = unicode.name.toLowerCase();\n                for(var j = 0, rl = removelist.length; j < rl; j++) {\n                    char = char.replace(removelist[j], '');\n                }\n                char = char.trim();\n            }\n        }\n        char = char.replace(/[^\\w\\s\\-\\.\\_~]/g, ''); // allowed\n        if (opts.remove) char = char.replace(opts.remove, ''); // add flavour\n        result += char;\n    }\n    result = result.trim();\n    result = result.replace(/[-\\s]+/g, opts.replacement); // convert spaces\n    result = result.replace(opts.replacement+\"$\",''); // remove trailing separator\n    if (opts.lower)\n      result = result.toLowerCase();\n    return result;\n};\n\nslug.defaults = {\n    mode: 'pretty',\n};\n\nslug.multicharmap = slug.defaults.multicharmap = {\n    '<3': 'love', '&&': 'and', '||': 'or', 'w/': 'with',\n};\n\n// https://code.djangoproject.com/browser/django/trunk/django/contrib/admin/media/js/urlify.js\nslug.charmap  = slug.defaults.charmap = {\n    // latin\n    'À': 'A', 'Á': 'A', 'Â': 'A', 'Ã': 'A', 'Ä': 'A', 'Å': 'A', 'Æ': 'AE',\n    'Ç': 'C', 'È': 'E', 'É': 'E', 'Ê': 'E', 'Ë': 'E', 'Ì': 'I', 'Í': 'I',\n    'Î': 'I', 'Ï': 'I', 'Ð': 'D', 'Ñ': 'N', 'Ò': 'O', 'Ó': 'O', 'Ô': 'O',\n    'Õ': 'O', 'Ö': 'O', 'Ő': 'O', 'Ø': 'O', 'Ù': 'U', 'Ú': 'U', 'Û': 'U',\n    'Ü': 'U', 'Ű': 'U', 'Ý': 'Y', 'Þ': 'TH', 'ß': 'ss', 'à':'a', 'á':'a',\n    'â': 'a', 'ã': 'a', 'ä': 'a', 'å': 'a', 'æ': 'ae', 'ç': 'c', 'è': 'e',\n    'é': 'e', 'ê': 'e', 'ë': 'e', 'ì': 'i', 'í': 'i', 'î': 'i', 'ï': 'i',\n    'ð': 'd', 'ñ': 'n', 'ò': 'o', 'ó': 'o', 'ô': 'o', 'õ': 'o', 'ö': 'o',\n    'ő': 'o', 'ø': 'o', 'ù': 'u', 'ú': 'u', 'û': 'u', 'ü': 'u', 'ű': 'u',\n    'ý': 'y', 'þ': 'th', 'ÿ': 'y', 'ẞ': 'SS',\n    // greek\n    'α':'a', 'β':'b', 'γ':'g', 'δ':'d', 'ε':'e', 'ζ':'z', 'η':'h', 'θ':'8',\n    'ι':'i', 'κ':'k', 'λ':'l', 'μ':'m', 'ν':'n', 'ξ':'3', 'ο':'o', 'π':'p',\n    'ρ':'r', 'σ':'s', 'τ':'t', 'υ':'y', 'φ':'f', 'χ':'x', 'ψ':'ps', 'ω':'w',\n    'ά':'a', 'έ':'e', 'ί':'i', 'ό':'o', 'ύ':'y', 'ή':'h', 'ώ':'w', 'ς':'s',\n    'ϊ':'i', 'ΰ':'y', 'ϋ':'y', 'ΐ':'i',\n    'Α':'A', 'Β':'B', 'Γ':'G', 'Δ':'D', 'Ε':'E', 'Ζ':'Z', 'Η':'H', 'Θ':'8',\n    'Ι':'I', 'Κ':'K', 'Λ':'L', 'Μ':'M', 'Ν':'N', 'Ξ':'3', 'Ο':'O', 'Π':'P',\n    'Ρ':'R', 'Σ':'S', 'Τ':'T', 'Υ':'Y', 'Φ':'F', 'Χ':'X', 'Ψ':'PS', 'Ω':'W',\n    'Ά':'A', 'Έ':'E', 'Ί':'I', 'Ό':'O', 'Ύ':'Y', 'Ή':'H', 'Ώ':'W', 'Ϊ':'I',\n    'Ϋ':'Y',\n    // turkish\n    'ş':'s', 'Ş':'S', 'ı':'i', 'İ':'I',\n    'ğ':'g', 'Ğ':'G',\n    // russian\n    'а':'a', 'б':'b', 'в':'v', 'г':'g', 'д':'d', 'е':'e', 'ё':'yo', 'ж':'zh',\n    'з':'z', 'и':'i', 'й':'j', 'к':'k', 'л':'l', 'м':'m', 'н':'n', 'о':'o',\n    'п':'p', 'р':'r', 'с':'s', 'т':'t', 'у':'u', 'ф':'f', 'х':'h', 'ц':'c',\n    'ч':'ch', 'ш':'sh', 'щ':'sh', 'ъ':'u', 'ы':'y', 'ь':'', 'э':'e', 'ю':'yu',\n    'я':'ya',\n    'А':'A', 'Б':'B', 'В':'V', 'Г':'G', 'Д':'D', 'Е':'E', 'Ё':'Yo', 'Ж':'Zh',\n    'З':'Z', 'И':'I', 'Й':'J', 'К':'K', 'Л':'L', 'М':'M', 'Н':'N', 'О':'O',\n    'П':'P', 'Р':'R', 'С':'S', 'Т':'T', 'У':'U', 'Ф':'F', 'Х':'H', 'Ц':'C',\n    'Ч':'Ch', 'Ш':'Sh', 'Щ':'Sh', 'Ъ':'U', 'Ы':'Y', 'Ь':'', 'Э':'E', 'Ю':'Yu',\n    'Я':'Ya',\n    // ukranian\n    'Є':'Ye', 'І':'I', 'Ї':'Yi', 'Ґ':'G', 'є':'ye', 'і':'i', 'ї':'yi', 'ґ':'g',\n    // czech\n    'č':'c', 'ď':'d', 'ě':'e', 'ň': 'n', 'ř':'r', 'š':'s', 'ť':'t', 'ů':'u',\n    'ž':'z', 'Č':'C', 'Ď':'D', 'Ě':'E', 'Ň': 'N', 'Ř':'R', 'Š':'S', 'Ť':'T',\n    'Ů':'U', 'Ž':'Z',\n    // polish\n    'ą':'a', 'ć':'c', 'ę':'e', 'ł':'l', 'ń':'n', 'ś':'s', 'ź':'z',\n    'ż':'z', 'Ą':'A', 'Ć':'C', 'Ę':'E', 'Ł':'L', 'Ń':'N', 'Ś':'S',\n    'Ź':'Z', 'Ż':'Z',\n    // latvian\n    'ā':'a', 'ē':'e', 'ģ':'g', 'ī':'i', 'ķ':'k', 'ļ':'l', 'ņ':'n',\n    'ū':'u', 'Ā':'A', 'Ē':'E', 'Ģ':'G', 'Ī':'I',\n    'Ķ':'K', 'Ļ':'L', 'Ņ':'N', 'Ū':'U',\n    // lithuanian\n    'ė':'e', 'į':'i', 'ų':'u', 'Ė': 'E', 'Į': 'I', 'Ų':'U',\n    // romanian\n    'ț':'t', 'Ț':'T', 'ţ':'t', 'Ţ':'T', 'ș':'s', 'Ș':'S', 'ă':'a', 'Ă':'A',\n    // vietnamese\n    'Ạ': 'A', 'Ả': 'A', 'Ầ': 'A', 'Ấ': 'A', 'Ậ': 'A', 'Ẩ': 'A', 'Ẫ': 'A',\n    'Ằ': 'A', 'Ắ': 'A', 'Ặ': 'A', 'Ẳ': 'A', 'Ẵ': 'A', 'Ẹ': 'E', 'Ẻ': 'E',\n    'Ẽ': 'E', 'Ề': 'E', 'Ế': 'E', 'Ệ': 'E', 'Ể': 'E', 'Ễ': 'E', 'Ị': 'I',\n    'Ỉ': 'I', 'Ĩ': 'I', 'Ọ': 'O', 'Ỏ': 'O', 'Ồ': 'O', 'Ố': 'O', 'Ộ': 'O',\n    'Ổ': 'O', 'Ỗ': 'O', 'Ơ': 'O', 'Ờ': 'O', 'Ớ': 'O', 'Ợ': 'O', 'Ở': 'O',\n    'Ỡ': 'O', 'Ụ': 'U', 'Ủ': 'U', 'Ũ': 'U', 'Ư': 'U', 'Ừ': 'U', 'Ứ': 'U',\n    'Ự': 'U', 'Ử': 'U', 'Ữ': 'U', 'Ỳ': 'Y', 'Ỵ': 'Y', 'Ỷ': 'Y', 'Ỹ': 'Y',\n    'Đ': 'D', 'ạ': 'a', 'ả': 'a', 'ầ': 'a', 'ấ': 'a', 'ậ': 'a', 'ẩ': 'a',\n    'ẫ': 'a', 'ằ': 'a', 'ắ': 'a', 'ặ': 'a', 'ẳ': 'a', 'ẵ': 'a', 'ẹ': 'e',\n    'ẻ': 'e', 'ẽ': 'e', 'ề': 'e', 'ế': 'e', 'ệ': 'e', 'ể': 'e', 'ễ': 'e',\n    'ị': 'i', 'ỉ': 'i', 'ĩ': 'i', 'ọ': 'o', 'ỏ': 'o', 'ồ': 'o', 'ố': 'o',\n    'ộ': 'o', 'ổ': 'o', 'ỗ': 'o', 'ơ': 'o', 'ờ': 'o', 'ớ': 'o', 'ợ': 'o',\n    'ở': 'o', 'ỡ': 'o', 'ụ': 'u', 'ủ': 'u', 'ũ': 'u', 'ư': 'u', 'ừ': 'u',\n    'ứ': 'u', 'ự': 'u', 'ử': 'u', 'ữ': 'u', 'ỳ': 'y', 'ỵ': 'y', 'ỷ': 'y',\n    'ỹ': 'y', 'đ': 'd',\n    // currency\n    '€': 'euro', '₢': 'cruzeiro', '₣': 'french franc', '£': 'pound',\n    '₤': 'lira', '₥': 'mill', '₦': 'naira', '₧': 'peseta', '₨': 'rupee',\n    '₩': 'won', '₪': 'new shequel', '₫': 'dong', '₭': 'kip', '₮': 'tugrik',\n    '₯': 'drachma', '₰': 'penny', '₱': 'peso', '₲': 'guarani', '₳': 'austral',\n    '₴': 'hryvnia', '₵': 'cedi', '¢': 'cent', '¥': 'yen', '元': 'yuan',\n    '円': 'yen', '﷼': 'rial', '₠': 'ecu', '¤': 'currency', '฿': 'baht',\n    \"$\": 'dollar', '₹': 'indian rupee',\n    // symbols\n    '©':'(c)', 'œ': 'oe', 'Œ': 'OE', '∑': 'sum', '®': '(r)', '†': '+',\n    '“': '\"', '”': '\"', '‘': \"'\", '’': \"'\", '∂': 'd', 'ƒ': 'f', '™': 'tm',\n    '℠': 'sm', '…': '...', '˚': 'o', 'º': 'o', 'ª': 'a', '•': '*',\n    '∆': 'delta', '∞': 'infinity', '♥': 'love', '&': 'and', '|': 'or',\n    '<': 'less', '>': 'greater',\n};\n\nslug.defaults.modes = {\n    rfc3986: {\n        replacement: '-',\n        symbols: true,\n        remove: null,\n        lower: true,\n        charmap: slug.defaults.charmap,\n        multicharmap: slug.defaults.multicharmap,\n    },\n    pretty: {\n        replacement: '-',\n        symbols: true,\n        remove: /[.]/g,\n        lower: false,\n        charmap: slug.defaults.charmap,\n        multicharmap: slug.defaults.multicharmap,\n    },\n};\n\n// Be compatible with different module systems\n\nif (typeof define !== 'undefined' && define.amd) { // AMD\n    // dont load symbols table in the browser\n    for (var key in slug.defaults.modes) {\n        if (!slug.defaults.modes.hasOwnProperty(key))\n            continue;\n\n        slug.defaults.modes[key].symbols = false;\n    }\n    define([], function () {return slug});\n} else if (typeof module !== 'undefined' && module.exports) { // CommonJS\n    symbols(); // preload symbols table\n    module.exports = slug;\n} else { // Script tag\n    // dont load symbols table in the browser\n    for (var key in slug.defaults.modes) {\n        if (!slug.defaults.modes.hasOwnProperty(key))\n            continue;\n\n        slug.defaults.modes[key].symbols = false;\n    }\n    root.slug = slug;\n}\n\n}(this));\n","var redefine = require('../internals/redefine');\nvar toString = require('../internals/object-to-string');\n\nvar ObjectPrototype = Object.prototype;\n\n// `Object.prototype.toString` method\n// https://tc39.github.io/ecma262/#sec-object.prototype.tostring\nif (toString !== ObjectPrototype.toString) {\n  redefine(ObjectPrototype, 'toString', toString, { unsafe: true });\n}\n","module.exports = {};\n","module.exports = function (exec) {\n  try {\n    return !!exec();\n  } catch (error) {\n    return true;\n  }\n};\n","var path = require('../internals/path');\nvar global = require('../internals/global');\n\nvar aFunction = function (variable) {\n  return typeof variable == 'function' ? variable : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n  return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(global[namespace])\n    : path[namespace] && path[namespace][method] || global[namespace] && global[namespace][method];\n};\n","/* global _, PREZIGRAM */\nimport i18n from 'i18next';\nimport invariant from 'invariant';\nimport {glassboxWebPrezigram} from '@prezi/client-logger-module';\n\nimport DownloadOutputSizeStore from '../stores/DownloadOutputSizeStore';\nimport ToggleSettingsStore from '../stores/ToggleSettingsStore';\nimport SelectionFrameStore from '../stores/SelectionFrameStore';\nimport DownloadPageStore from '../stores/DownloadPageStore';\nimport ChartTabs from '../stores/ChartTabs';\nimport CurrentInfographicStore from '../../main/stores/CurrentInfographicStore';\nimport InterlinkedCharts from '../../../common/helpers/InterlinkedCharts';\nimport EntityStore from '../../../common/chart_factory/entities';\n\nimport ElementsUtil from '../../../utils/elements';\n\nimport OutlineStore from '../stores/OutlineStore.js';\nimport DownloadConstants from '../constants/DownloadConstants';\n\nimport showProgress from '../../dialogs/showProgressDialog';\n\nimport {\n    crashProgress,\n    finishProgress,\n} from '../../progress_dialog/actions/progress_dialog_actions';\nimport {\n    logDownloadProjectWebJs,\n    logDownloadObjectWebJs,\n} from '../../../../../glassbox/client_logger';\nimport {isFlex, isResponsive} from '../../constants';\nimport TaskProgressMonitor from '../../../shared/backgroundTask/client';\nimport AccountLogic from '../../../views/account_logic';\n\nexport function downloadImage(format, infographic) {\n    download({\n        format: 'raster',\n        imageFormat: format,\n    }, infographic);\n}\n\nexport function downloadPDF(infographic) {\n    download({\n        format: 'pdf',\n    }, infographic);\n}\n\nexport function downloadHTML() {\n    download({\n        format: 'html',\n    });\n}\n\nexport function downloadSingleObject() {\n    const options = {\n        objectId: SelectionFrameStore.getObjectId(),\n        objectType: SelectionFrameStore.getObjectType(),\n        dataSetIndexes: [SelectionFrameStore.getChildIndex()],\n        format: 'raster',\n        imageFormat: 'png',\n    };\n    download(options);\n}\n\nexport function downloadSinglePage({format, imageFormat, pageIndex}) {\n    const options = {\n        format,\n        imageFormat,\n        hiddenPages: _.pull(_.range(DownloadPageStore.pagesCount), pageIndex),\n    };\n    download(options);\n}\n\nexport async function downloadSelection({\n    selectionBounds,\n    imageFormat,\n    blockId,\n    entityKeys,\n} = {}) {\n    const infographicId = CurrentInfographicStore.infographicId;\n    invariant(!!infographicId, 'No infographic is selected');\n\n    const settings = {\n        selectionBounds,\n        imageFormat,\n        blockId,\n        entityKeys,\n    };\n\n    if (imageFormat === 'png') {\n        settings.transparentBackground = true;\n    }\n    // send sheet name to backend for interlinked charts\n    if (InterlinkedCharts.sheetName !== undefined) {\n        settings.sheetName = InterlinkedCharts.sheetName;\n    }\n    const sheetIndexes = {};\n    Object.keys(EntityStore.getAllEntities()).forEach(key => {\n        sheetIndexes[key] = ElementsUtil.getChartSheet(key);\n    });\n    settings.sheetIndexes = sheetIndexes;\n\n    const payload = {\n        downloadType: 'selection',\n        format: 'raster',\n        settings,\n    };\n\n    downloadFileAndShowProgress(`/api/downloads/${infographicId}`, payload, {\n        'csrf-token': AccountLogic.profile.csrfToken,\n    });\n\n    const fileFormat = imageFormat.toUpperCase();\n    if (PREZIGRAM) {\n        glassboxWebPrezigram.logDownloadGramProject({\n            prezi_oid: infographicId,\n            gram_file_format: fileFormat,\n        });\n    } else {\n        logDownloadProjectWebJs({\n            project_id: infographicId,\n            file_format: fileFormat,\n        });\n    }\n}\n\nasync function download(options, infographic) {\n    invariant(!DownloadPageStore.noneSelected, 'No pages are selected');\n\n    const {\n        format,\n        imageFormat,\n        objectId,\n        objectType,\n        dataSetIndexes,\n        hiddenPages,\n    } = options;\n\n    const infographicId = infographic\n        ? infographic.id\n        : CurrentInfographicStore.infographicId;\n    invariant(!!infographicId, 'No infographic is selected');\n\n    const settings = {};\n    const isResponsiveLayout = infographic\n        ? isResponsive(infographic.type)\n        : CurrentInfographicStore.isResponsive;\n    const isFreeLayout = infographic\n        ? isFlex(infographic.type)\n        : CurrentInfographicStore.isFreeLayout;\n\n    if (isResponsiveLayout) {\n        settings.hiddenElements = OutlineStore.readHiddenElements();\n        settings.transparentBackground = ToggleSettingsStore.get('transparentBackground');\n    } else if (isFreeLayout) {\n        settings.hiddenPages = hiddenPages || DownloadPageStore.hiddenPageIndexes();\n        settings.transparentBackground = ToggleSettingsStore.get('transparentBackground');\n        // send sheet name to backend for interlinked charts\n        if (InterlinkedCharts.sheetName !== undefined) {\n            settings.sheetName = InterlinkedCharts.sheetName;\n        }\n        const sheetIndexes = {};\n        ChartTabs.all.forEach(function(sheetIndex, key) {\n            sheetIndexes[key] = sheetIndex;\n        });\n        settings.sheetIndexes = sheetIndexes;\n    }\n\n    if (format === 'raster') {\n        const {\n            imageWidth,\n            imageHeight,\n        } = DownloadOutputSizeStore;\n\n        Object.assign(settings, {\n            type: 'raster',\n            imageFormat,\n            width: parseInt(imageWidth, 10),\n            height: parseInt(imageHeight, 10),\n        });\n    } else if (format === 'pdf') {\n        const {\n            printHeight,\n            printWidth,\n        } = DownloadOutputSizeStore;\n\n        Object.assign(settings, {\n            type: 'pdf',\n            printingMode: 'default',\n            orientation: DownloadConstants.DEFAULT_PAGE_ORIENTATION,\n            marginTop: DownloadConstants.DEFAULT_MARGIN_MILLIMETERS,\n            marginBottom: DownloadConstants.DEFAULT_MARGIN_MILLIMETERS,\n            marginLeft: DownloadConstants.DEFAULT_MARGIN_MILLIMETERS,\n            marginRight: DownloadConstants.DEFAULT_MARGIN_MILLIMETERS,\n            printSizeType: 'default',\n            width: printWidth,\n            height: printHeight,\n        });\n    }\n\n    const showObjects = {};\n    if (objectId) {\n        invariant(!!objectType, 'objectType must be defined');\n        showObjects[objectId] = {type: objectType};\n        if (dataSetIndexes && dataSetIndexes.length) {\n            showObjects[objectId].parts = _.clone(dataSetIndexes);\n        }\n    }\n\n    const payload = {\n        format,\n        showObjects,\n        settings,\n    };\n\n    downloadFileAndShowProgress(`/api/downloads/${infographicId}`, payload, {\n        'csrf-token': AccountLogic.profile.csrfToken,\n    });\n\n    const fileFormat = format === 'raster' ? imageFormat.toUpperCase() : format.toUpperCase();\n    if (PREZIGRAM) {\n        glassboxWebPrezigram.logDownloadGramProject({\n            prezi_oid: infographicId,\n            gram_file_format: fileFormat,\n        });\n    } else {\n        logDownloadProjectWebJs({\n            project_id: infographicId,\n            file_format: fileFormat,\n        });\n    }\n}\n\nexport function downloadItem(saveType, type, objectId, chartId) {\n    const {infographicId} = CurrentInfographicStore;\n    const itemId = objectId || chartId;\n    let downloadType = 'single';\n    let format = saveType;\n    let sheetIndex;\n\n    const showObjects = {};\n    showObjects[itemId] = {type};\n\n    if (type === 'chart') {\n        // in responsive chartId and objectId both present\n        // chartId should be used first\n        sheetIndex = ElementsUtil.getChartSheet(chartId || objectId);\n        if (format === 'gif') { // for gifs we always use first sheet\n            showObjects[itemId].parts = [0];\n        } else if (sheetIndex !== undefined) {\n            showObjects[itemId].parts = [sheetIndex];\n        }\n    }\n\n    if (saveType === 'social') {\n        downloadType = 'single-social';\n        format = 'png';\n    }\n\n    const params = {\n        downloadType,\n        format,\n        showObjects,\n    };\n\n    // chartId is undefined in freelayout\n    if (chartId === undefined && downloadType === 'single' && type === 'chart' && format !== 'gif') {\n        params.settings = {sheetIndexes: {[itemId]: sheetIndex}};\n    }\n\n    downloadFileAndShowProgress(`/api/downloads/${infographicId}`, params, {\n        'csrf-token': AccountLogic.profile.csrfToken,\n    });\n\n    if (PREZIGRAM) {\n        glassboxWebPrezigram.logDownloadGramObject({\n            prezi_oid: CurrentInfographicStore.infographicId,\n            download_gram_object_format: format.toUpperCase(),\n        });\n    } else {\n        logDownloadObjectWebJs({\n            project_id: CurrentInfographicStore.infographicId,\n            object_id: `${itemId}`,\n            download_object_format: format.toUpperCase(),\n        });\n    }\n}\n\nasync function downloadFileAndShowProgress(url, payload, moreHeaders = {}) {\n    let cancelled = false;\n    try {\n        showProgress({\n            interval: 10000,\n            label: i18n.t('app.progress_dialog.download.label'),\n            onCancel: () => {\n                cancelled = true;\n            },\n            title: i18n.t('app.progress_dialog.download.title'),\n        });\n        const response = await fetch(url, {\n            method: 'POST',\n            credentials: 'same-origin',\n            headers: {\n                'Content-Type': 'application/json',\n                ...moreHeaders,\n            },\n            body: JSON.stringify(payload),\n        });\n        const {taskId} = await response.json();\n        if (!cancelled) {\n            const task = new TaskProgressMonitor(taskId);\n            task.on('complete', (result) => {\n                if (!cancelled) {\n                    finishProgress();\n                    window.location.href = result;\n                }\n            });\n            task.on('error', (/*error*/) => {\n                if (!cancelled) {\n                    crashProgress(i18n.t('app.progress_dialog.download.error'));\n                }\n            });\n        }\n    } catch (e) {\n        if (!cancelled) {\n            crashProgress(i18n.t('app.progress_dialog.download.error'));\n        }\n    }\n}\n\nexport function downloadPublic(format) {\n    const settings = {};\n    const sheetIndexes = {};\n    ChartTabs.all.forEach(function(sheetIndex, key) {\n        sheetIndexes[key] = sheetIndex;\n    });\n    settings.sheetIndexes = sheetIndexes;\n\n    // send sheet name to backend for interlinked charts in public\n    if (InterlinkedCharts.sheetName !== undefined) {\n        settings.sheetName = InterlinkedCharts.sheetName;\n    }\n\n    const payload = {\n        format,\n        settings,\n    };\n\n    const {infographicId} = CurrentInfographicStore;\n    invariant(!!infographicId, 'No infographic is selected');\n\n    downloadFileAndShowProgress(`/api/downloads/public/${infographicId}`, payload);\n}\n","import i18n from 'i18next';\nimport React from 'react';\n\nimport {FilterElementPropTypes} from '../types';\n\n/**\n * Hue rotate\n *\n * Rotates the colours (in HSL space) of an image by an angle.\n * Slightly LSD-ish recolouring\n *\n * @param {string} in1 pointer to filter's input (same as SVG *in*)\n * @param {string} result pointer to output (same as SVG *result*)\n * @param {number} amount angle of rotation (deg, +/-0-360)\n */\nexport const HueRotate = ({amount, in1, result}) =>\n    <feColorMatrix type=\"hueRotate\" values={amount} in={in1} result={result}/>\n;\n\nHueRotate.propTypes = FilterElementPropTypes;\n\nexport default {\n    Component: HueRotate,\n    get caption() {\n        return i18n.t('inspector.free.filters.hueRotate');\n    },\n    max: 360,\n    min: 0,\n    default: 0,\n};\n","import {fromJS} from 'immutable';\n\nimport {getPositions, getRoundRectangleFromConnector} from '../components/contents/Connector/helper';\n\nfunction transformEntityConnectorToBlock(connector, block, pageSize, connectionTypes) {\n    const {width, height} = pageSize;\n    const blockKey = connector.getBlockKey();\n    const positions = getPositions(connector, block, pageSize);\n\n    connectionTypes.forEach(({type}) => {\n        const {x, y} = positions[type];\n\n        const props = {\n            type: 'block',\n            key: blockKey,\n            x: x/width,\n            y: y/height,\n        };\n\n        connector = connector.setIn(['props', type], fromJS(props));\n    });\n\n    return connector;\n}\n\nfunction modifyConnector(editorState, connectorKey, entity) {\n    let connector = editorState.getEntity(connectorKey);\n    const found = ['from', 'to']\n        .map(type => ({key: connector.getIn(['props', type, 'key']), type}))\n        .filter(d => d.key === entity.getKey());\n\n    // entity being connected with only one part of connector\n    if (found.length) {\n        const currentContent = editorState.getCurrentContent();\n        const block = currentContent.getBlock(connector.getBlockKey());\n        const pageSize = currentContent.getPageSize();\n\n        connector = transformEntityConnectorToBlock(connector, block, pageSize, found);\n\n        const connectorData = getRoundRectangleFromConnector(connector, block, pageSize);\n        connectorData.props = {};\n        found.forEach(({type}) => {\n            connectorData.props[type] = connector.getIn(['props', type]).toJS();\n        });\n\n        return editorState.setEntity(connector.getKey(), connectorData);\n    }\n\n    return editorState;\n}\n\nexport default function cleanupConnectors(editorState, entity) {\n    const content = editorState.getCurrentContent();\n    const block = content.getBlock(entity.getBlockKey());\n    const connectorKeys = block.getEntities().filter(ent => ent.isConnector()).map(ent => ent.getKey());\n\n    for (const connectorKey of connectorKeys) {\n        editorState = modifyConnector(editorState, connectorKey, entity);\n    }\n\n    return editorState;\n}\n","import React from 'react';\nexport default React.createContext(null);","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $find = require('../internals/array-iteration').find;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\n\n// `%TypedArray%.prototype.find` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.find\nArrayBufferViewCore.exportProto('find', function find(predicate /* , thisArg */) {\n  return $find(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar nativePropertyIsEnumerable = {}.propertyIsEnumerable;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !nativePropertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.github.io/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n  var descriptor = getOwnPropertyDescriptor(this, V);\n  return !!descriptor && descriptor.enumerable;\n} : nativePropertyIsEnumerable;\n","import React, {PureComponent} from 'react';\nimport PropTypes from 'prop-types';\nimport ImmutablePropTypes from 'react-immutable-proptypes';\n\nimport renderItemContents from '../../freelayout_editor/components/renderItemContents.react';\nimport {calculateClippedRectangle} from '../../../components/FreeLayoutEditor/util/clippedEntity';\n\nimport style from './Callout.css';\n\n/**\n * CalloutItem\n *\n * Renders one item of callout's contents in presentation mode.\n * @see CalloutEditItem for editor version\n **/\nexport default class CalloutItem extends PureComponent {\n    static propTypes = {\n        entity: ImmutablePropTypes.record.isRequired,\n        design: ImmutablePropTypes.map.isRequired,\n        assets: PropTypes.shape({getURL: PropTypes.func.isRequired}),\n        scaleX: PropTypes.number.isRequired,\n        scaleY: PropTypes.number.isRequired,\n    };\n\n    render() {\n        const {entity, design, assets, scaleX, scaleY} = this.props;\n        const visibleRect = calculateClippedRectangle(entity);\n        const itemStyle = {\n            left: visibleRect.left * scaleX,\n            top: visibleRect.top * scaleY,\n            width: visibleRect.width * scaleX,\n            height: visibleRect.height * scaleY,\n        };\n\n        const accessibility = entity.getAccessibility();\n        const ariaHidden = accessibility && !accessibility.enabled;\n\n        const content = renderItemContents(entity, design, {scaleX, scaleY, rotate: 0}, {readOnly: true, inEditMode: false, assets});\n        return (\n            <div\n                className={style.calloutItem}\n                style={itemStyle}\n                /* Hide item [e.g. from screen readers] if accessibility options not enabled */\n                aria-hidden={ariaHidden ? true : undefined}\n                role={ariaHidden ? 'presentation' : undefined}\n            >\n                {content}\n            </div>\n        );\n    }\n}\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.iterator` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.iterator\ndefineWellKnownSymbol('iterator');\n","var anObject = require('../internals/an-object');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.github.io/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n  var CORRECT_SETTER = false;\n  var test = {};\n  var setter;\n  try {\n    setter = Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set;\n    setter.call(test, []);\n    CORRECT_SETTER = test instanceof Array;\n  } catch (error) { /* empty */ }\n  return function setPrototypeOf(O, proto) {\n    anObject(O);\n    aPossiblePrototype(proto);\n    if (CORRECT_SETTER) setter.call(O, proto);\n    else O.__proto__ = proto;\n    return O;\n  };\n}() : undefined);\n","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\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;\n","/* global PREZIGRAM */\n/* eslint-env browser */\n\n//------------------------------------------------------------------------------\n//     Do NOT edit this directly.\n//\n//     This code was generated using generation tools.\n//\n//     Changes to this file may cause incorrect behavior and will be lost when\n//     the code is regenerated.\n//------------------------------------------------------------------------------\n\nimport _ from 'lodash';\n\nimport config from '../public/js/config';\n\nconst getGenericFields = function() {\n    return {\n        core: {\n            client_time: Date.now(),\n        },\n        platform: {\n            browser_language: navigator.language || navigator.userLanguage,\n            referer: document.referrer || '-',\n            url: document.location.href,\n        },\n    };\n};\n\nconst sendEvent = async function(eventData) {\n    try {\n        // If called from the prezigram context, don't send these calls.\n        // Prezigram has it's own calls using @prezi/client-logger-module.\n        if (PREZIGRAM) {\n            return;\n        }\n\n        const data = _.merge(eventData, getGenericFields());\n\n        await fetch(`${config.apiBase}/glassbox/send/${eventData.body.event_name}`, {\n            credentials: 'same-origin',\n            method: 'POST',\n            body: JSON.stringify(data),\n            headers: {\n                'Content-Type': 'application/json',\n            },\n        });\n    } catch (e) {\n        console.log(e);\n    }\n};\n\n\n/**\n* User sees and can interact with the editor.. The schema was updated at 2019-02-04 04:16:27.163738\n* @param {Object} params - log body\n\n*/\nexport const logLoadedEditorWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'LoadedEditor',\n            schema_id: 11015,\n        },\n        body: {\n            event_name: 'LoadedEditorWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User clicks on back button UI element during onboarding.. The schema was updated at 2019-02-04 04:16:27.163738\n* @param {Object} params - log body\n\n*/\nexport const logProgressedOnboardingBackWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'ProgressedOnboardingBack',\n            schema_id: 11017,\n        },\n        body: {\n            event_name: 'ProgressedOnboardingBackWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* Onboarding step where the user enters their first and last name.. The schema was updated at 2019-02-04 04:16:27.163738\n* @param {Object} params - log body\n* @param {Number} params.step_number - Onboarding screen sequence number\n\n*/\nexport const logProgressedOnboardingNameWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'ProgressedOnboardingName',\n            schema_id: 11019,\n        },\n        body: {\n            event_name: 'ProgressedOnboardingNameWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* Onboarding step where the user selects organization.. The schema was updated at 2019-02-04 04:16:27.163738\n* @param {Object} params - log body\n* @param {('MEDIA'|'ENTERPRISE'|'SCHOOL_UNIVERSITY'|'GOVERNMENT_NGO'|'SELF_EMPLOYED'|'SMALL_MED_BUSINESS')} params.organization - Type of organization the user specified.\n* @param {Number} params.step_number - Onboarding screen sequence number\n\n*/\nexport const logProgressedOnboardingOrganizationWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'ProgressedOnboardingOrganization',\n            schema_id: 11021,\n        },\n        body: {\n            event_name: 'ProgressedOnboardingOrganizationWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* Onboarding step where the user selects plan.. The schema was updated at 2019-02-04 04:16:27.163738\n* @param {Object} params - log body\n* @param {('FREE'|'PRO'|'BUSINESS'|'TEAM'|'ENTERPRISE')} params.chosen_plan - Type of plan user clicked on.\n* @param {Number} params.step_number - Onboarding screen sequence number\n\n*/\nexport const logProgressedOnboardingPlanWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'ProgressedOnboardingPlan',\n            schema_id: 11023,\n        },\n        body: {\n            event_name: 'ProgressedOnboardingPlanWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User clicks on pricing plan page link during onboarding. The schema was updated at 2019-05-03 14:16:16.199313\n* @param {Object} params - log body\n* @param {Number} params.step_number - Onboarding screen sequence number\n\n*/\nexport const logProgressedOnboardingPlanPageWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'ProgressedOnboardingPlanPage',\n            schema_id: 12223,\n        },\n        body: {\n            event_name: 'ProgressedOnboardingPlanPageWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* Onboarding step where the user selects role.. The schema was updated at 2019-02-04 04:16:27.163738\n* @param {Object} params - log body\n* @param {('EXECUTIVE_DIRECTOR'|'DIRECTOR'|'OPERATIONS_FINANCE'|'PROGRAM_PROJECT_MANAGER'|'HR_LEARNING'|'IT_ENGINEERING'|'SALES_CUSTOMER_SERVICE'|'OTHER'|'WRITER_BLOGGER'|'DESIGNER'|'TEACHER_PROFESSOR'|'STUDENT'|'CONSULTANT'|'EDITOR_IN_CHIEF'|'JOURNALIST_EDITOR'|'MARKETER_PR')} params.role - Type of role the user specified within the organization.\n* @param {Number} params.step_number - Onboarding screen sequence number\n\n*/\nexport const logProgressedOnboardingRoleWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'ProgressedOnboardingRole',\n            schema_id: 11027,\n        },\n        body: {\n            event_name: 'ProgressedOnboardingRoleWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* Onboarding step where the user selects a template.. The schema was updated at 2019-02-07 04:16:29.579519\n* @param {Object} params - log body\n* @param {String} [params.project_type] - Project type of the template user has chosen.\n* @param {Number} params.step_number - Onboarding screen sequence number\n* @param {String} [params.template_id] - Template ID of the chosen template.\n* @param {String} [params.template_name] - Template name of the chosen template.\n* @param {String} [params.template_position] - Template position within the template chooser.\n\n*/\nexport const logProgressedOnboardingTemplateWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'ProgressedOnboardingTemplate',\n            schema_id: 11139,\n        },\n        body: {\n            event_name: 'ProgressedOnboardingTemplateWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User adds a new chart to the project. The schema was updated at 2019-10-25 21:58:27.892081\n* @param {Object} params - log body\n* @param {('LINE'|'BAR'|'BAR_STACKED'|'BAR_GROUPED'|'BAR_RADIAL'|'BAR_STACKED_PERCENT'|'BAR_RACE'|'COLUMN'|'COLUMN_STACKED'|'COLUMN_GROUPED'|'COLUMN_STACKED_PERCENT'|'PIE'|'DOUGHNUT'|'PIE_IRREGULAR'|'SEMI_CIRCLE'|'GANTT'|'COLUMN_LINE'|'LINE_LINE'|'COMBO_GROUPED'|'COMBO_STACKED'|'PICTORIAL_GRID'|'PICTORIAL_SIZE'|'PICTORIAL_BAR'|'SCATTER'|'SCATTER_GROUPED'|'DOT_PLOT'|'AREA'|'AREA_STACKED'|'AREA_STACKED_PERCENT'|'STREAM_GRAPH'|'AREA_STEPPED'|'BUBBLE'|'BUBBLE_PLOT'|'PYRAMID'|'FUNNEL'|'TABLE'|'GAUGE'|'BAR_PROGRESS'|'WORDCLOUD'|'CANDLESTICK'|'WATERFALL'|'TREEMAP'|'TIMER'|'FACTS_AND_FIGURES'|'LINE_ERROR_MARGIN')} params.chart_type - Type of chart\n* @param {String} params.object_id - Id of an object in the project\n* @param {String} params.project_id - Id of the project\n\n*/\nexport const logAddObjectChartWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'AddObjectChart',\n            schema_id: 13836,\n        },\n        body: {\n            event_name: 'AddObjectChartWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User adds a new image to the project. The schema was updated at 2019-03-05 13:17:38.611237\n* @param {Object} params - log body\n* @param {('IMAGE'|'USER_IMAGE'|'ICON'|'FLAG'|'STICKER'|'CUSTOM_ICON'|'BRANDING_IMAGE'|'GIF')} params.image_type - User adds a new image to the project\n* @param {String} params.object_id - Id of an object in the project\n* @param {String} params.project_id - Id of the project\n\n*/\nexport const logAddObjectImageWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'AddObjectImage',\n            schema_id: 11471,\n        },\n        body: {\n            event_name: 'AddObjectImageWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User adds a new map to the project. The schema was updated at 2019-03-02 04:17:03.079143\n* @param {Object} params - log body\n* @param {String} params.map_type - Type of map\n* @param {String} params.object_id - Id of an object in the project\n* @param {String} params.project_id - Id of the project\n\n*/\nexport const logAddObjectMapWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'AddObjectMap',\n            schema_id: 11229,\n        },\n        body: {\n            event_name: 'AddObjectMapWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User adds a new shape to the project. The schema was updated at 2019-09-26 01:32:08.772913\n* @param {Object} params - log body\n* @param {String} params.object_id - Id of an object in the project\n* @param {String} params.project_id - Id of the project\n* @param {('LINE'|'ARROW'|'RECTANGLE'|'ELLIPSE'|'ROUNDED'|'TRIANGLE'|'POLYGON'|'OVAL'|'PARALLELOGRAMLEFT'|'PARALLELOGRAMRIGHT'|'RHOMBUS'|'TRAPEZIUMUP'|'TRAPEZIUMDOWN'|'HEXAGON'|'CYLINDER'|'CLOUD'|'CALLOUTCIRCLE'|'POINTER'|'PATH')} params.shape_type - Type of shape\n\n*/\nexport const logAddObjectShapeWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'AddObjectShape',\n            schema_id: 13445,\n        },\n        body: {\n            event_name: 'AddObjectShapeWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User adds a new text field to the project. The schema was updated at 2019-03-02 04:17:03.079143\n* @param {Object} params - log body\n* @param {String} params.object_id - Id of an object in the project\n* @param {String} params.project_id - Id of the project\n* @param {('MAINTITLE'|'BODYTITLE'|'BODYTEXT'|'CAPTIONTEXT')} params.text_type - Type of text\n\n*/\nexport const logAddObjectTextWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'AddObjectText',\n            schema_id: 11235,\n        },\n        body: {\n            event_name: 'AddObjectTextWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User switches the project status in the share window. The schema was updated at 2019-03-02 04:17:03.079143\n* @param {Object} params - log body\n* @param {String} params.project_id - Id of the project\n* @param {('PUBLIC'|'PRIVATE'|'DRAFT')} params.target_project_status - Project status that the user wants to switch their project to\n\n*/\nexport const logChangeProjectStatusWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'ChangeProjectStatus',\n            schema_id: 11237,\n        },\n        body: {\n            event_name: 'ChangeProjectStatusWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User hits escape or (in the responsive editor) clicks the close button. The schema was updated at 2019-03-02 04:17:03.079143\n* @param {Object} params - log body\n* @param {String} params.project_id - Id of the project\n\n*/\nexport const logCloseProjectInFullScreenWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'CloseProjectInFullScreen',\n            schema_id: 11241,\n        },\n        body: {\n            event_name: 'CloseProjectInFullScreenWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User successfully created a new project. The schema was updated at 2019-02-04 04:16:27.163738\n* @param {Object} params - log body\n* @param {String} params.project_id - Id of the project\n* @param {String} [params.template_id] - Template ID of the chosen template.\n* @param {String} [params.template_name] - Template name of the chosen template.\n* @param {String} [params.template_position] - Template position within the template chooser.\n\n*/\nexport const logCreatedNewProjectWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'CreatedNewProject',\n            schema_id: 10987,\n        },\n        body: {\n            event_name: 'CreatedNewProjectWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User clicks one of the options that trigger the creation of a new project. The schema was updated at 2019-05-03 14:16:16.227305\n* @param {Object} params - log body\n* @param {('API'|'ONBOARDING'|'LIBRARY'|'TEMPLATE_CHOOSER'|'FRONTPAGE_TEMPLATE_CHOOSER')} params.create_source - Part of the application where the user triggered the creation of a new project\n* @param {String} [params.project_type] - Project type of the template user has chosen.\n* @param {String} [params.template_id] - Template ID of the chosen template.\n* @param {String} [params.template_name] - Template name of the chosen template.\n* @param {String} [params.template_position] - Template position within the template chooser.\n\n*/\nexport const logCreateNewProjectWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'CreateNewProject',\n            schema_id: 11610,\n        },\n        body: {\n            event_name: 'CreateNewProjectWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User clicks one of the download buttons in the download view. The schema was updated at 2019-02-04 04:16:27.163738\n* @param {Object} params - log body\n* @param {('PNG'|'JPG'|'PDF'|'HTML')} params.file_format - File format when downloading a project from the editor\n* @param {String} params.project_id - Id of the project\n\n*/\nexport const logDownloadProjectWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'DownloadProject',\n            schema_id: 10991,\n        },\n        body: {\n            event_name: 'DownloadProjectWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User clicks the &#34;Create new tracking link&#34; in the tracking links tab of the share window. The schema was updated at 2019-02-04 04:16:27.163738\n* @param {Object} params - log body\n* @param {String} params.project_id - Id of the project\n\n*/\nexport const logGenerateTrackingLinkWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'GenerateTrackingLink',\n            schema_id: 10993,\n        },\n        body: {\n            event_name: 'GenerateTrackingLinkWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User modifies an object in the project. The schema was updated at 2019-10-25 21:58:27.883842\n* @param {Object} params - log body\n* @param {('MOVE'|'RESIZE'|'ROTATE'|'ANIMATION'|'ACCESSIBILITY'|'OTHER'|'ADD_CALLOUT'|'REMOVE_BACKGROUND')} params.modify_object_action - Actions that a user can perform to modify an object in the project\n* @param {String} params.object_id - Id of an object in the project\n* @param {('TEXT'|'CHART'|'MAP'|'IMAGE'|'SHAPE'|'MEDIA'|'MULTIPLE'|'GROUP'|'PAGE'|'PATH'|'ELEMENT'|'CONNECTOR')} params.object_type - Type of object\n* @param {String} params.project_id - Id of the project\n\n*/\nexport const logModifyObjectWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'ModifyObject',\n            schema_id: 13834,\n        },\n        body: {\n            event_name: 'ModifyObjectWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User modifies the project. The schema was updated at 2019-06-28 11:47:41.835997\n* @param {Object} params - log body\n* @param {('SWITCH_THEME'|'BACKGROUND_COLOR_CHANGE'|'BACKGROUND_IMAGE_CHANGE'|'PROJECT_SIZE_CHANGE'|'PAGE_ORDER_CHANGE'|'ADD_PAGE'|'REMOVE_PAGE'|'CHANGE_TRANSITION'|'BACKGROUND_BLUR')} params.modify_project_action - Actions that the user can do to modify the project\n* @param {String} params.project_id - Id of the project\n\n*/\nexport const logModifyProjectWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'ModifyProject',\n            schema_id: 12895,\n        },\n        body: {\n            event_name: 'ModifyProjectWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User clicks the fullscreen button. The schema was updated at 2019-05-03 14:16:16.199313\n* @param {Object} params - log body\n* @param {String} params.project_id - Id of the project\n\n*/\nexport const logOpenProjectInFullScreenWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'OpenProjectInFullScreen',\n            schema_id: 12215,\n        },\n        body: {\n            event_name: 'OpenProjectInFullScreenWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User removes an object from the project. The schema was updated at 2019-05-03 14:16:16.199313\n* @param {Object} params - log body\n* @param {String} params.object_id - Id of an object in the project\n* @param {('TEXT'|'CHART'|'MAP'|'IMAGE'|'SHAPE'|'MEDIA'|'MULTIPLE'|'GROUP'|'PAGE'|'PATH'|'ELEMENT'|'CONNECTOR')} params.object_type - Type of object\n* @param {String} params.project_id - Id of the project\n\n*/\nexport const logRemoveObjectWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'RemoveObject',\n            schema_id: 12225,\n        },\n        body: {\n            event_name: 'RemoveObjectWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User clicks the textbox for any of the embed codes. The schema was updated at 2019-05-03 14:16:16.199313\n* @param {Object} params - log body\n* @param {String} params.project_id - Id of the project\n\n*/\nexport const logSelectEmbedCodeWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'SelectEmbedCode',\n            schema_id: 12153,\n        },\n        body: {\n            event_name: 'SelectEmbedCodeWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User clicks on the button to send the project by email. The schema was updated at 2019-05-03 14:16:16.199313\n* @param {Object} params - log body\n* @param {String} params.project_id - Id of the project\n\n*/\nexport const logSendEmailWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'SendEmail',\n            schema_id: 12155,\n        },\n        body: {\n            event_name: 'SendEmailWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User successfully signed up. The schema was updated at 2019-05-03 14:16:16.199313\n* @param {Object} params - log body\n* @param {('EMAIL'|'GOOGLE'|'FACEBOOK'|'SSO'|'TWITTER'|'LINKEDIN')} params.auth_source - Method that the new user used to sign up\n\n*/\nexport const logSignedUpWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'SignedUp',\n            schema_id: 12167,\n        },\n        body: {\n            event_name: 'SignedUpWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User clicks one of the social network share buttons. The schema was updated at 2019-05-03 14:16:16.199313\n* @param {Object} params - log body\n* @param {String} params.project_id - Id of the project\n* @param {('FACEBOOK'|'TWITTER'|'LINKEDIN'|'PINTEREST'|'REDDIT'|'TUMBLR')} params.social_platform - Social network that the user wants to share their project to\n\n*/\nexport const logSocialShareWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'SocialShare',\n            schema_id: 12169,\n        },\n        body: {\n            event_name: 'SocialShareWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User clicks either the the text box with the URL of the web view or clicks the web view button. The schema was updated at 2019-05-03 14:16:16.199313\n* @param {Object} params - log body\n* @param {String} params.project_id - Id of the project\n\n*/\nexport const logViewProjectInWebViewWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'ViewProjectInWebView',\n            schema_id: 12147,\n        },\n        body: {\n            event_name: 'ViewProjectInWebViewWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User adds a new integration to the project. The schema was updated at 2019-03-02 04:17:03.079143\n* @param {Object} params - log body\n* @param {('UPLOAD'|'GOOGLE_DRIVE'|'DROPBOX'|'JSON'|'GOOGLE_ANALYTICS'|'MYSQL'|'POSTGRESQL'|'REDSHIFT'|'ORACLE'|'MSSQL')} params.integration_type - Type of integration\n* @param {String} params.project_id - Id of the project\n\n*/\nexport const logAddIntegrationWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'AddIntegration',\n            schema_id: 11223,\n        },\n        body: {\n            event_name: 'AddIntegrationWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User adds a new media element to the project. The schema was updated at 2019-09-15 01:59:28.343045\n* @param {Object} params - log body\n* @param {('YOUTUBE'|'VIMEO'|'SLIDESHARE'|'FLICKR'|'URL'|'GIPHY'|'IFRAME'|'VIDEO')} params.media_type - Type of media element\n* @param {String} params.object_id - Id of an object in the project\n* @param {String} params.project_id - Id of the project\n\n*/\nexport const logAddObjectMediaWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'AddObjectMedia',\n            schema_id: 13364,\n        },\n        body: {\n            event_name: 'AddObjectMediaWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User successfully logged in. The schema was updated at 2019-05-03 14:16:16.227305\n* @param {Object} params - log body\n* @param {('EMAIL'|'GOOGLE'|'FACEBOOK'|'SSO'|'TWITTER'|'LINKEDIN')} params.auth_source - Method that the new user used to sign up\n* @param {String} params.utm_campaign - Used for keyword analysis. Use utm_campaign to identify a specific product promotion or strategic campaign.\n* @param {String} params.utm_medium - Use utm_medium to identify a medium such as email or cost-per- click.\n* @param {String} params.utm_source - Use utm_source to identify a search engine, newsletter name, or other source.\n\n*/\nexport const logLoggedInWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'LoggedIn',\n            schema_id: 12189,\n        },\n        body: {\n            event_name: 'LoggedInWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User clicks on one of the &#34;Export as...&#34; options. The schema was updated at 2019-05-03 14:16:16.199313\n* @param {Object} params - log body\n* @param {('PNG'|'JPG'|'PDF'|'GIF')} params.download_object_format - Format options for downloading a single item\n* @param {String} params.object_id - Id of an object in the project\n* @param {String} params.project_id - Id of the project\n\n*/\nexport const logDownloadObjectWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'DownloadObject',\n            schema_id: 12271,\n        },\n        body: {\n            event_name: 'DownloadObjectWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User clicks the &#34;Contact Support&#34; button. The schema was updated at 2019-03-02 04:17:03.079143\n* @param {Object} params - log body\n\n*/\nexport const logContactSupportWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'ContactSupport',\n            schema_id: 11245,\n        },\n        body: {\n            event_name: 'ContactSupportWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User clicks the &#34;Continue subscription&#34; button. The schema was updated at 2019-03-02 04:17:03.079143\n* @param {Object} params - log body\n* @param {Number} params.days_remaining - Amount of days that were remaining for the user's subscription when they decided to continue\n\n*/\nexport const logContinueSubscriptionWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'ContinueSubscription',\n            schema_id: 11247,\n        },\n        body: {\n            event_name: 'ContinueSubscriptionWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User clicks the &#34;Keep my subscription&#34; button or closes the downgrade modal. The schema was updated at 2019-02-20 04:17:10.305368\n* @param {Object} params - log body\n\n*/\nexport const logKeepSubscriptionWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'KeepSubscription',\n            schema_id: 11188,\n        },\n        body: {\n            event_name: 'KeepSubscriptionWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User closes the downgrade modal in the missing features step. The schema was updated at 2019-05-03 14:16:16.227305\n* @param {Object} params - log body\n* @param {String} params.missing_features - Checkboxes that were clicked when the user closed the downgrade flow missing features step. Concatenated string of enum values separated by commas\n\n*/\nexport const logKeepSubscriptionMissingFeaturesWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'KeepSubscriptionMissingFeatures',\n            schema_id: 12187,\n        },\n        body: {\n            event_name: 'KeepSubscriptionMissingFeaturesWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User clicks the Manage Subscriptions link. The schema was updated at 2019-02-20 04:17:10.305368\n* @param {Object} params - log body\n\n*/\nexport const logManageSubscriptionWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'ManageSubscription',\n            schema_id: 11192,\n        },\n        body: {\n            event_name: 'ManageSubscriptionWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User clicks the &#34;Cancel my subscription&#34; button. The schema was updated at 2019-02-20 04:17:10.305368\n* @param {Object} params - log body\n\n*/\nexport const logManageSubscriptionDoneWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'ManageSubscriptionDone',\n            schema_id: 11194,\n        },\n        body: {\n            event_name: 'ManageSubscriptionDoneWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User&#39;s subscription has been successfully paused. The schema was updated at 2019-05-03 14:16:16.199313\n* @param {Object} params - log body\n\n*/\nexport const logSubscriptionPausedWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'SubscriptionPaused',\n            schema_id: 12113,\n        },\n        body: {\n            event_name: 'SubscriptionPausedWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User finishes the cancel reason step of the downgrade flow. The schema was updated at 2019-05-03 14:16:16.199313\n* @param {Object} params - log body\n* @param {('BUGS'|'COMPETITOR'|'FEATURES'|'OTHER'|'PRICING'|'SUPPORT'|'TEMPLATES'|'TEMPORARY_USE'|'USAGE')} params.downgrade_reason - The radio button that the user chose as the reason for downgrading\n\n*/\nexport const logUnsubscribeCancelReasonDoneWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'UnsubscribeCancelReasonDone',\n            schema_id: 12123,\n        },\n        body: {\n            event_name: 'UnsubscribeCancelReasonDoneWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User finishes the missing features step of the downgrade flow. The schema was updated at 2019-05-03 14:16:16.199313\n* @param {Object} params - log body\n\n*/\nexport const logUnsubscribeMissingFeaturesDoneWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'UnsubscribeMissingFeaturesDone',\n            schema_id: 12125,\n        },\n        body: {\n            event_name: 'UnsubscribeMissingFeaturesDoneWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User switches slides in the upgrade paywall slideshow. The schema was updated at 2019-05-03 14:16:16.199313\n* @param {Object} params - log body\n\n*/\nexport const logNavigateSlideshowWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'NavigateSlideshow',\n            schema_id: 12203,\n        },\n        body: {\n            event_name: 'NavigateSlideshowWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User clicks on something that triggers a paywall. The schema was updated at 2019-10-25 21:58:27.883842\n* @param {Object} params - log body\n* @param {('DOWNLOAD'|'PRIVATE_SHARING'|'REGION_MAPS'|'ICONS'|'LINKS'|'GLOBAL_SETTINGS'|'CUSTOM_LOGO'|'EMBED_BUTTON'|'LIBRARY_LIMIT'|'GALLERY_LIMIT'|'CUSTOM_LINK_LOGO_EMBED'|'GROUPED_COMBO'|'GENERAL'|'LIBRARY'|'FLEX_PAGES'|'PRO_THEMES'|'TEAMS'|'ANALYTICS'|'LIVE_DATA'|'COMMENTING'|'GOOGLE_ANALYTICS'|'REVISIONS'|'CALLOUT'|'BRANDING_FAVOURITES'|'BRANDING_PUBLIC_PROFILE'|'BRANDING_FONTS'|'BRANDING_COLORS'|'BRANDING_IMAGES')} params.upgrade_trigger - User clicks on something that triggers a paywall\n\n*/\nexport const logStartUpgradeWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'StartUpgrade',\n            schema_id: 13891,\n        },\n        body: {\n            event_name: 'StartUpgradeWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User successfully upgraded their subscription. The schema was updated at 2019-05-03 14:16:16.199313\n* @param {Object} params - log body\n* @param {('FREE'|'PRO'|'BUSINESS'|'TEAM'|'ENTERPRISE')} params.chosen_plan - Type of plan user clicked on.\n\n*/\nexport const logUpgradedSuccessfullyWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'UpgradedSuccessfully',\n            schema_id: 12127,\n        },\n        body: {\n            event_name: 'UpgradedSuccessfullyWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User closes the upgrade paywall slideshow. The schema was updated at 2019-03-02 04:17:03.079143\n* @param {Object} params - log body\n\n*/\nexport const logCloseSlideshowWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'CloseSlideshow',\n            schema_id: 11243,\n        },\n        body: {\n            event_name: 'CloseSlideshowWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User clicks on one of the price plans. The schema was updated at 2019-05-03 14:16:16.199313\n* @param {Object} params - log body\n* @param {('FREE'|'PRO'|'BUSINESS'|'TEAM'|'ENTERPRISE')} params.chosen_plan - Type of plan user clicked on.\n\n*/\nexport const logChoosePlanWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'ChoosePlan',\n            schema_id: 12253,\n        },\n        body: {\n            event_name: 'ChoosePlanWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User clicks either the cross on the template preview or outside the dialog box. The schema was updated at 2019-05-03 14:16:16.199313\n* @param {Object} params - log body\n\n*/\nexport const logClosePreviewWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'ClosePreview',\n            schema_id: 12261,\n        },\n        body: {\n            event_name: 'ClosePreviewWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User clicks on the preview button on a card in the template chooser. The schema was updated at 2019-05-03 14:16:16.199313\n* @param {Object} params - log body\n* @param {String} [params.template_id] - Template ID of the chosen template.\n* @param {String} [params.template_name] - Template name of the chosen template.\n\n*/\nexport const logTemplatePreviewWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'TemplatePreview',\n            schema_id: 12115,\n        },\n        body: {\n            event_name: 'TemplatePreviewWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User&#39;s template preview successfully loaded. The schema was updated at 2019-05-03 14:16:16.199313\n* @param {Object} params - log body\n\n*/\nexport const logTemplatePreviewLoadedWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'TemplatePreviewLoaded',\n            schema_id: 12117,\n        },\n        body: {\n            event_name: 'TemplatePreviewLoadedWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User adds a new group of objects to the project. The schema was updated at 2019-03-05 13:17:38.810813\n* @param {Object} params - log body\n* @param {String} params.object_id - Id of an object in the project\n* @param {String} params.project_id - Id of the project\n\n*/\nexport const logAddObjectGroupWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'AddObjectGroup',\n            schema_id: 11290,\n        },\n        body: {\n            event_name: 'AddObjectGroupWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User clicks to add a collaborator to the project. The schema was updated at 2019-05-03 14:16:16.199313\n* @param {Object} params - log body\n* @param {('VIEW'|'EDIT')} params.collaborator_permission_type - Determines if a collaborator can view and edit the project\n* @param {String} [params.user_id] - UserID of the user.\n\n*/\nexport const logAddCollaboratorWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'AddCollaborator',\n            schema_id: 12277,\n        },\n        body: {\n            event_name: 'AddCollaboratorWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User changes the project access within a team. The schema was updated at 2019-05-03 14:16:16.199313\n* @param {Object} params - log body\n* @param {Boolean} params.project_team_access - Whether a project is available to all team members or not\n\n*/\nexport const logChangeProjectAccessWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'ChangeProjectAccess',\n            schema_id: 12285,\n        },\n        body: {\n            event_name: 'ChangeProjectAccessWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User changes another user&#39;s role within a team. The schema was updated at 2019-05-03 14:16:16.199313\n* @param {Object} params - log body\n* @param {('ADMIN'|'PUBLISHER'|'EDITOR'|'VIEWER')} params.team_role - User's role within a team\n\n*/\nexport const logChangeUserRoleWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'ChangeUserRole',\n            schema_id: 12249,\n        },\n        body: {\n            event_name: 'ChangeUserRoleWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User clicks the &#34;Invite more people to team&#34; link after choosing a collaborator from the team. The schema was updated at 2019-05-03 14:16:16.227305\n* @param {Object} params - log body\n\n*/\nexport const logInviteNewCollaberatorWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'InviteNewCollaberator',\n            schema_id: 12183,\n        },\n        body: {\n            event_name: 'InviteNewCollaberatorWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User successfully joined a team. The schema was updated at 2019-05-03 14:16:16.227305\n* @param {Object} params - log body\n* @param {Number} [params.team_id] - Active team_id of the user\n\n*/\nexport const logJoinedTeamWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'JoinedTeam',\n            schema_id: 12185,\n        },\n        body: {\n            event_name: 'JoinedTeamWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User moves a project to a folder within the same library. The schema was updated at 2019-05-03 14:16:16.227305\n* @param {Object} params - log body\n* @param {String} params.folder_id - ID of a folder within a library\n\n*/\nexport const logMoveProjectToFolderWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'MoveProjectToFolder',\n            schema_id: 12197,\n        },\n        body: {\n            event_name: 'MoveProjectToFolderWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User moves a project to from a team library to a private library. The schema was updated at 2019-05-03 14:16:16.199313\n* @param {Object} params - log body\n* @param {String} [params.user_id] - UserID of the user.\n\n*/\nexport const logMoveProjectToPrivateWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'MoveProjectToPrivate',\n            schema_id: 12199,\n        },\n        body: {\n            event_name: 'MoveProjectToPrivateWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User moves a project to a team library. The schema was updated at 2019-05-03 14:16:16.199313\n* @param {Object} params - log body\n* @param {Number} [params.team_id] - Active team_id of the user\n\n*/\nexport const logMoveProjectToTeamWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'MoveProjectToTeam',\n            schema_id: 12201,\n        },\n        body: {\n            event_name: 'MoveProjectToTeamWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User removes project from the library. The schema was updated at 2019-05-03 14:16:16.199313\n* @param {Object} params - log body\n* @param {String} params.project_id - Id of the project\n\n*/\nexport const logRemoveProjectWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'RemoveProject',\n            schema_id: 12227,\n        },\n        body: {\n            event_name: 'RemoveProjectWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User removes another user from a team. The schema was updated at 2019-05-03 14:16:16.199313\n* @param {Object} params - log body\n* @param {String} [params.user_id] - UserID of the user.\n\n*/\nexport const logRemoveUserWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'RemoveUser',\n            schema_id: 12229,\n        },\n        body: {\n            event_name: 'RemoveUserWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User restores a project from the trash. The schema was updated at 2019-05-03 14:16:16.199313\n* @param {Object} params - log body\n* @param {String} params.project_id - Id of the project\n\n*/\nexport const logRestoreProjectWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'RestoreProject',\n            schema_id: 12235,\n        },\n        body: {\n            event_name: 'RestoreProjectWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User successfully created a new team. The schema was updated at 2019-03-05 13:17:38.790723\n* @param {Object} params - log body\n* @param {Number} [params.team_id] - Active team_id of the user\n\n*/\nexport const logCreatedNewTeamWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'CreatedNewTeam',\n            schema_id: 11336,\n        },\n        body: {\n            event_name: 'CreatedNewTeamWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User changes the date range for analytics data. The schema was updated at 2019-05-03 14:16:16.199313\n* @param {Object} params - log body\n* @param {('TODAY'|'YESTERDAY'|'LAST_SEVEN'|'LAST_THIRTY'|'LAST_SIXTY'|'LAST_NINETY')} params.analytics_date_range - Selected date range for analytics data\n\n*/\nexport const logChangeAnalyticsDateRangeWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'ChangeAnalyticsDateRange',\n            schema_id: 12283,\n        },\n        body: {\n            event_name: 'ChangeAnalyticsDateRangeWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User closes the GDPR banner in the dashboard. The schema was updated at 2019-05-03 14:16:16.199313\n* @param {Object} params - log body\n\n*/\nexport const logCloseGdprBannerWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'CloseGdprBanner',\n            schema_id: 12255,\n        },\n        body: {\n            event_name: 'CloseGdprBannerWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User creates a team template from a project. The schema was updated at 2019-05-03 14:16:16.199313\n* @param {Object} params - log body\n* @param {String} params.project_id - Id of the project\n\n*/\nexport const logCreateTemplateWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'CreateTemplate',\n            schema_id: 12265,\n        },\n        body: {\n            event_name: 'CreateTemplateWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User deletes project from the trash. The schema was updated at 2019-05-03 14:16:16.199313\n* @param {Object} params - log body\n* @param {String} params.project_id - Id of the project\n\n*/\nexport const logDeleteProjectWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'DeleteProject',\n            schema_id: 12269,\n        },\n        body: {\n            event_name: 'DeleteProjectWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User clicks the &#34;Export CSV&#34; button. The schema was updated at 2019-05-03 14:16:16.227305\n* @param {Object} params - log body\n* @param {('ALL'|'PROJECT')} params.analytics_export_type - Type of export function triggered - all data or just for one project\n\n*/\nexport const logExportCsvAnalyticsWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'ExportCsvAnalytics',\n            schema_id: 12179,\n        },\n        body: {\n            event_name: 'ExportCsvAnalyticsWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User clicks on one of the API text boxes. The schema was updated at 2019-05-03 14:16:16.199313\n* @param {Object} params - log body\n\n*/\nexport const logSelectApiFieldWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'SelectApiField',\n            schema_id: 12151,\n        },\n        body: {\n            event_name: 'SelectApiFieldWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User changes an account setting. The schema was updated at 2019-05-03 14:16:16.199313\n* @param {Object} params - log body\n* @param {('IMAGE'|'LANGUAGE'|'PUBLIC_PROFILE'|'PROJECT_LANGUAGE'|'TRANSPARENT_EMBED'|'NO_TRACKING'|'SCROLL_CHART_ANIMATIONS'|'EMAIL_INVOICES')} params.account_setting - One of the tracked account settings\n\n*/\nexport const logSetAccountSettingWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'SetAccountSetting',\n            schema_id: 12157,\n        },\n        body: {\n            event_name: 'SetAccountSettingWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User opens the analytics view. The schema was updated at 2019-05-03 14:16:16.199313\n* @param {Object} params - log body\n\n*/\nexport const logViewAnalyticsWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'ViewAnalytics',\n            schema_id: 12135,\n        },\n        body: {\n            event_name: 'ViewAnalyticsWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User views analytics for a specific project. The schema was updated at 2019-05-03 14:16:16.199313\n* @param {Object} params - log body\n* @param {String} params.project_id - Id of the project\n\n*/\nexport const logViewAnalyticsProjectWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'ViewAnalyticsProject',\n            schema_id: 12137,\n        },\n        body: {\n            event_name: 'ViewAnalyticsProjectWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User clicks the &#34;Languages...&#34; option in the user profile dropdown. The schema was updated at 2019-05-03 14:16:16.199313\n* @param {Object} params - log body\n\n*/\nexport const logViewLanguageSwitcherWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'ViewLanguageSwitcher',\n            schema_id: 12141,\n        },\n        body: {\n            event_name: 'ViewLanguageSwitcherWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User clicks &#34;what&#39;s new&#34; on the GDPR banner. The schema was updated at 2019-05-03 14:16:16.199313\n* @param {Object} params - log body\n\n*/\nexport const logViewPrivacyPageWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'ViewPrivacyPage',\n            schema_id: 12143,\n        },\n        body: {\n            event_name: 'ViewPrivacyPageWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User clicks the &#34;Product Updates&#34; option in the user profile dropdown. The schema was updated at 2019-05-03 14:16:16.199313\n* @param {Object} params - log body\n\n*/\nexport const logViewProductUpdatesWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'ViewProductUpdates',\n            schema_id: 12145,\n        },\n        body: {\n            event_name: 'ViewProductUpdatesWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User clicks the &#34;Public Profile&#34; option in the user profile dropdown. The schema was updated at 2019-05-03 14:16:16.199313\n* @param {Object} params - log body\n\n*/\nexport const logViewPublicProfileWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'ViewPublicProfile',\n            schema_id: 12149,\n        },\n        body: {\n            event_name: 'ViewPublicProfileWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User closes NPS feedback form. The schema was updated at 2019-05-03 14:16:16.199313\n* @param {Object} params - log body\n\n*/\nexport const logCloseNpsWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'CloseNps',\n            schema_id: 12257,\n        },\n        body: {\n            event_name: 'CloseNpsWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User opens the duckbase help widget. The schema was updated at 2019-05-03 14:16:16.199313\n* @param {Object} params - log body\n\n*/\nexport const logOpenHelpWidgetWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'OpenHelpWidget',\n            schema_id: 12209,\n        },\n        body: {\n            event_name: 'OpenHelpWidgetWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User submits the NPS feedback form. The schema was updated at 2019-05-03 14:16:16.199313\n* @param {Object} params - log body\n* @param {Number} params.nps_score - NPS rating from 1 to 10\n\n*/\nexport const logSubmitNpsWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'SubmitNps',\n            schema_id: 12177,\n        },\n        body: {\n            event_name: 'SubmitNpsWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User adds new brand color. The schema was updated at 2019-05-03 14:16:16.199313\n* @param {Object} params - log body\n\n*/\nexport const logAddBrandColorWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'AddBrandColor',\n            schema_id: 12275,\n        },\n        body: {\n            event_name: 'AddBrandColorWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User changes the download permission option. The schema was updated at 2019-05-03 14:16:16.199313\n* @param {Object} params - log body\n* @param {Boolean} params.team_profile_download - The download permission option\n\n*/\nexport const logChangeTeamProfileDownloadWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'ChangeTeamProfileDownload',\n            schema_id: 12239,\n        },\n        body: {\n            event_name: 'ChangeTeamProfileDownloadWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User changes the fullscreen permission option. The schema was updated at 2019-05-03 14:16:16.199313\n* @param {Object} params - log body\n* @param {Boolean} params.team_profile_fullscreen - User changed the fullscreen permission option\n\n*/\nexport const logChangeTeamProfileFullscreenWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'ChangeTeamProfileFullscreen',\n            schema_id: 12241,\n        },\n        body: {\n            event_name: 'ChangeTeamProfileFullscreenWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User changes the share permission option. The schema was updated at 2019-05-03 14:16:16.199313\n* @param {Object} params - log body\n* @param {Boolean} params.team_profile_share - The share permission option\n\n*/\nexport const logChangeTeamProfileShareWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'ChangeTeamProfileShare',\n            schema_id: 12243,\n        },\n        body: {\n            event_name: 'ChangeTeamProfileShareWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User changes the style for webview background, header or meta fields. The schema was updated at 2019-05-03 14:16:16.199313\n* @param {Object} params - log body\n* @param {('BACKGROUND'|'HEADER'|'META')} params.team_profile_style - One of the branded team profile style fields.\n\n*/\nexport const logChangeTeamProfileStyleWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'ChangeTeamProfileStyle',\n            schema_id: 12245,\n        },\n        body: {\n            event_name: 'ChangeTeamProfileStyleWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User changes the team profile type. The schema was updated at 2019-05-03 14:16:16.199313\n* @param {Object} params - log body\n* @param {('PUBLIC'|'HIDDEN')} params.team_profile_type - Type of branding team profile\n\n*/\nexport const logChangeTeamProfileTypeWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'ChangeTeamProfileType',\n            schema_id: 12247,\n        },\n        body: {\n            event_name: 'ChangeTeamProfileTypeWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User enables team branding. The schema was updated at 2019-05-03 14:16:16.199313\n* @param {Object} params - log body\n\n*/\nexport const logEnableTeamBrandWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'EnableTeamBrand',\n            schema_id: 12273,\n        },\n        body: {\n            event_name: 'EnableTeamBrandWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User changes the color of a piece of text. The schema was updated at 2019-05-03 14:16:16.227305\n* @param {Object} params - log body\n* @param {String} params.text_color - The color of the text\n\n*/\nexport const logModifyTextColorWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'ModifyTextColor',\n            schema_id: 12193,\n        },\n        body: {\n            event_name: 'ModifyTextColorWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User changes the font of a piece of text. The schema was updated at 2019-05-03 14:16:16.227305\n* @param {Object} params - log body\n* @param {String} params.font_name - Font name\n\n*/\nexport const logModifyTextFontWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'ModifyTextFont',\n            schema_id: 12195,\n        },\n        body: {\n            event_name: 'ModifyTextFontWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User opens the branding view. The schema was updated at 2019-05-03 14:16:16.199313\n* @param {Object} params - log body\n\n*/\nexport const logOpenBrandingWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'OpenBranding',\n            schema_id: 12205,\n        },\n        body: {\n            event_name: 'OpenBrandingWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User sets the branding theme. The schema was updated at 2019-05-03 14:16:16.199313\n* @param {Object} params - log body\n* @param {String} params.theme_name - The name of the theme\n\n*/\nexport const logSetBrandingThemeWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'SetBrandingTheme',\n            schema_id: 12159,\n        },\n        body: {\n            event_name: 'SetBrandingThemeWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User changes the setting for the branding theme to apply to all templates. The schema was updated at 2019-05-03 14:16:16.199313\n* @param {Object} params - log body\n* @param {Boolean} params.branding_theme_all_templates - Branding setting that enables the branding theme for all templates\n\n*/\nexport const logSetBrandingThemeAllTemplatesWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'SetBrandingThemeAllTemplates',\n            schema_id: 12161,\n        },\n        body: {\n            event_name: 'SetBrandingThemeAllTemplatesWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User uploads brand font. The schema was updated at 2019-05-03 14:16:16.199313\n* @param {Object} params - log body\n* @param {String} params.font_name - Font name\n\n*/\nexport const logUploadBrandFontWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'UploadBrandFont',\n            schema_id: 12129,\n        },\n        body: {\n            event_name: 'UploadBrandFontWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User uploads brand graphic. The schema was updated at 2019-05-03 14:16:16.199313\n* @param {Object} params - log body\n* @param {('SVG'|'JPG'|'PNG')} params.graphic_format - Graphic format for image uploads\n\n*/\nexport const logUploadBrandGraphicWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'UploadBrandGraphic',\n            schema_id: 12131,\n        },\n        body: {\n            event_name: 'UploadBrandGraphicWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User uploads brand logo. The schema was updated at 2019-05-03 14:16:16.199313\n* @param {Object} params - log body\n* @param {('SVG'|'JPG'|'PNG')} params.graphic_format - Graphic format for image uploads\n\n*/\nexport const logUploadBrandLogoWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'UploadBrandLogo',\n            schema_id: 12133,\n        },\n        body: {\n            event_name: 'UploadBrandLogoWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User closes the subscription payment form. The schema was updated at 2019-05-03 14:16:16.199313\n* @param {Object} params - log body\n* @param {('FREE'|'PRO'|'BUSINESS'|'TEAM'|'ENTERPRISE')} params.chosen_plan - Type of plan user clicked on.\n* @param {('TEAM'|'PAYMENT_FORM')} params.payment_step_name - Steps within the payment form\n\n*/\nexport const logClosePaymentFormWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'ClosePaymentForm',\n            schema_id: 12259,\n        },\n        body: {\n            event_name: 'ClosePaymentFormWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User opens the enterprise subscription contact form. The schema was updated at 2019-05-03 14:16:16.199313\n* @param {Object} params - log body\n* @param {('FREE'|'PRO'|'BUSINESS'|'TEAM'|'ENTERPRISE')} params.chosen_plan - Type of plan user clicked on.\n\n*/\nexport const logOpenContactFormWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'OpenContactForm',\n            schema_id: 12207,\n        },\n        body: {\n            event_name: 'OpenContactFormWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User submits the enterprise subscription contact form. The schema was updated at 2019-05-03 14:16:16.199313\n* @param {Object} params - log body\n* @param {('FREE'|'PRO'|'BUSINESS'|'TEAM'|'ENTERPRISE')} params.chosen_plan - Type of plan user clicked on.\n\n*/\nexport const logSubmitContactFormWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'SubmitContactForm',\n            schema_id: 12175,\n        },\n        body: {\n            event_name: 'SubmitContactFormWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User triggers a validation error in the payment form. The schema was updated at 2019-05-03 14:16:16.199313\n* @param {Object} params - log body\n\n*/\nexport const logTriggeredPaymentFormValidationErrorWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'TriggeredPaymentFormValidationError',\n            schema_id: 12119,\n        },\n        body: {\n            event_name: 'TriggeredPaymentFormValidationErrorWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User adds a comment to edit. The schema was updated at 2019-05-03 14:16:16.199313\n* @param {Object} params - log body\n* @param {('TEXT'|'CHART'|'MAP'|'IMAGE'|'SHAPE'|'MEDIA'|'MULTIPLE'|'GROUP'|'PAGE'|'PATH'|'ELEMENT'|'CONNECTOR')} params.object_type - Type of object\n\n*/\nexport const logAddCommentWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'AddComment',\n            schema_id: 12279,\n        },\n        body: {\n            event_name: 'AddCommentWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User deletes a comment. The schema was updated at 2019-05-03 14:16:16.199313\n* @param {Object} params - log body\n* @param {String} params.comment_id - Id of the comment\n* @param {('TEXT'|'CHART'|'MAP'|'IMAGE'|'SHAPE'|'MEDIA'|'MULTIPLE'|'GROUP'|'PAGE'|'PATH'|'ELEMENT'|'CONNECTOR')} params.object_type - Type of object\n\n*/\nexport const logDeleteCommentWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'DeleteComment',\n            schema_id: 12267,\n        },\n        body: {\n            event_name: 'DeleteCommentWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User successfully uploaded a file. The schema was updated at 2019-03-05 13:17:38.810813\n* @param {Object} params - log body\n* @param {String} params.upload_file_format - Extension of the file being uploaded\n\n*/\nexport const logFileImportedWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'FileImported',\n            schema_id: 11583,\n        },\n        body: {\n            event_name: 'FileImportedWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User logged in with other sessions present. The schema was updated at 2019-03-05 13:17:38.790723\n* @param {Object} params - log body\n\n*/\nexport const logKickedOutWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'KickedOut',\n            schema_id: 11543,\n        },\n        body: {\n            event_name: 'KickedOutWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User posts a comment. The schema was updated at 2019-05-03 14:16:16.199313\n* @param {Object} params - log body\n* @param {Boolean} params.comment_has_mention - Whether a comment contains one or more mentions\n* @param {String} params.comment_id - Id of the comment\n* @param {('TEXT'|'CHART'|'MAP'|'IMAGE'|'SHAPE'|'MEDIA'|'MULTIPLE'|'GROUP'|'PAGE'|'PATH'|'ELEMENT'|'CONNECTOR')} params.object_type - Type of object\n\n*/\nexport const logPostCommentWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'PostComment',\n            schema_id: 12221,\n        },\n        body: {\n            event_name: 'PostCommentWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User starts a reply to a comment. The schema was updated at 2019-05-03 14:16:16.199313\n* @param {Object} params - log body\n* @param {Boolean} params.comment_has_mention - Whether a comment contains one or more mentions\n* @param {String} params.comment_id - Id of the comment\n* @param {('TEXT'|'CHART'|'MAP'|'IMAGE'|'SHAPE'|'MEDIA'|'MULTIPLE'|'GROUP'|'PAGE'|'PATH'|'ELEMENT'|'CONNECTOR')} params.object_type - Type of object\n\n*/\nexport const logReplyToCommentWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'ReplyToComment',\n            schema_id: 12231,\n        },\n        body: {\n            event_name: 'ReplyToCommentWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User resolves a comment. The schema was updated at 2019-05-03 14:16:16.199313\n* @param {Object} params - log body\n* @param {String} params.comment_id - Id of the comment\n* @param {('TEXT'|'CHART'|'MAP'|'IMAGE'|'SHAPE'|'MEDIA'|'MULTIPLE'|'GROUP'|'PAGE'|'PATH'|'ELEMENT'|'CONNECTOR')} params.object_type - Type of object\n\n*/\nexport const logResolveCommentWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'ResolveComment',\n            schema_id: 12233,\n        },\n        body: {\n            event_name: 'ResolveCommentWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User toggles comment marker visibility. The schema was updated at 2019-05-03 14:16:16.199313\n* @param {Object} params - log body\n* @param {Boolean} params.comment_marker_visible - Whether the comment markers are visible or not\n\n*/\nexport const logShowCommentMarkersWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'ShowCommentMarkers',\n            schema_id: 12163,\n        },\n        body: {\n            event_name: 'ShowCommentMarkersWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User clicks the &#34;Show all conversations&#34; button. The schema was updated at 2019-05-03 14:16:16.199313\n* @param {Object} params - log body\n\n*/\nexport const logShowConversationsWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'ShowConversations',\n            schema_id: 12165,\n        },\n        body: {\n            event_name: 'ShowConversationsWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User starts the file import flow. The schema was updated at 2019-05-03 14:16:16.199313\n* @param {Object} params - log body\n* @param {Number} params.file_size_mb - Size of the file being uploaded in Megabytes\n* @param {('DASHBOARD'|'LIBRARY_DRAG'|'ONBOARDING')} params.import_source - Place where the file upload flow is triggered\n* @param {String} params.upload_file_format - Extension of the file being uploaded\n\n*/\nexport const logStartImportWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'StartImport',\n            schema_id: 12171,\n        },\n        body: {\n            event_name: 'StartImportWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User triggered an upload validation error. The schema was updated at 2019-05-03 14:16:16.199313\n* @param {Object} params - log body\n* @param {Number} params.file_size_mb - Size of the file being uploaded in Megabytes\n* @param {('SIZE'|'FORMAT'|'OTHER')} params.upload_error_type - Type of upload validation error\n* @param {String} params.upload_file_format - Extension of the file being uploaded\n\n*/\nexport const logTriggeredUploadValidationErrorWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'TriggeredUploadValidationError',\n            schema_id: 12121,\n        },\n        body: {\n            event_name: 'TriggeredUploadValidationErrorWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User clicks the button that navigates them to the place where the selected marker is located. The schema was updated at 2019-05-03 14:16:16.199313\n* @param {Object} params - log body\n* @param {String} params.comment_id - Id of the comment\n\n*/\nexport const logViewCommentInDocumentWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'ViewCommentInDocument',\n            schema_id: 12139,\n        },\n        body: {\n            event_name: 'ViewCommentInDocumentWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User switches the comment filtering option. The schema was updated at 2019-05-03 14:16:16.227305\n* @param {Object} params - log body\n* @param {('UNRESOLVED'|'RESOLVED'|'SHOW_ALL'|'MENTIONS')} params.comment_filter - Filtering option that governs which comments appear in the UI\n\n*/\nexport const logFilterCommentsByWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'FilterCommentsBy',\n            schema_id: 12181,\n        },\n        body: {\n            event_name: 'FilterCommentsByWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User adds a new element to the project. The schema was updated at 2019-05-03 14:16:16.209054\n* @param {Object} params - log body\n* @param {String} params.element_name - Name of an element object\n* @param {String} params.object_id - Id of an object in the project\n* @param {String} params.project_id - Id of the project\n\n*/\nexport const logAddObjectElementWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'AddObjectElement',\n            schema_id: 13754,\n        },\n        body: {\n            event_name: 'AddObjectElementWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User clicks on the page transition dropdown in the share dialog. The schema was updated at 2019-05-03 14:16:16.199313\n* @param {Object} params - log body\n\n*/\nexport const logOpenPageTransitionsWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'OpenPageTransitions',\n            schema_id: 12211,\n        },\n        body: {\n            event_name: 'OpenPageTransitionsWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User clicks on the preview dropdown in the share dialog. The schema was updated at 2019-05-03 14:16:16.199313\n* @param {Object} params - log body\n\n*/\nexport const logOpenPreviewAsWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'OpenPreviewAs',\n            schema_id: 12213,\n        },\n        body: {\n            event_name: 'OpenPreviewAsWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User opens the share dialog. The schema was updated at 2019-05-03 14:16:16.199313\n* @param {Object} params - log body\n\n*/\nexport const logOpenShareDialogWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'OpenShareDialog',\n            schema_id: 12217,\n        },\n        body: {\n            event_name: 'OpenShareDialogWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User clicks on the view experience dropdown in the share dialog. The schema was updated at 2019-05-03 14:16:16.199313\n* @param {Object} params - log body\n\n*/\nexport const logOpenViewExperienceWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'OpenViewExperience',\n            schema_id: 12219,\n        },\n        body: {\n            event_name: 'OpenViewExperienceWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User changes the preview in the share dialog. The schema was updated at 2019-05-03 14:16:16.199313\n* @param {Object} params - log body\n* @param {('DESKTOP'|'MOBILE')} params.preview_type - User changes the preview in the share dialog.\n\n*/\nexport const logChangeSharePreviewWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'ChangeSharePreview',\n            schema_id: 12237,\n        },\n        body: {\n            event_name: 'ChangeSharePreviewWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User changes one of the view experience options. The schema was updated at 2019-05-03 14:16:16.199313\n* @param {Object} params - log body\n* @param {('TAB_NAME_LINK'|'SHOW_HINTS'|'ALLOW_SHARE'|'ALLOW_FULLSCREEN'|'ALLOW_DOWNLOAD')} params.view_experience_option - One of the view experience options in the share dialog.\n* @param {Boolean} params.view_experience_option_value - One of the view experience option values in the share dialog\n\n*/\nexport const logChangeViewExperienceWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'ChangeViewExperience',\n            schema_id: 12251,\n        },\n        body: {\n            event_name: 'ChangeViewExperienceWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User closes the share dialog.. The schema was updated at 2019-05-03 14:16:16.199313\n* @param {Object} params - log body\n\n*/\nexport const logCloseShareDialogWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'CloseShareDialog',\n            schema_id: 12263,\n        },\n        body: {\n            event_name: 'CloseShareDialogWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User adds a new connector to the project. The schema was updated at 2019-05-03 14:16:16.199313\n* @param {Object} params - log body\n* @param {String} params.object_id - Id of an object in the project\n* @param {String} params.project_id - Id of the project\n\n*/\nexport const logAddObjectConnectorWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'AddObjectConnector',\n            schema_id: 12281,\n        },\n        body: {\n            event_name: 'AddObjectConnectorWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* Another user started editing the project simultaneously.. The schema was updated at 2019-06-28 11:47:42.056309\n* @param {Object} params - log body\n* @param {String} params.project_id - Id of the project\n* @param {('ADMIN'|'PUBLISHER'|'EDITOR'|'VIEWER')} params.team_role - User's role within a team\n\n*/\nexport const logCollaboratorConnectedWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'CollaboratorConnected',\n            schema_id: 12423,\n        },\n        body: {\n            event_name: 'CollaboratorConnectedWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User changes on of the filter adjustments. The schema was updated at 2019-06-28 11:47:41.835997\n* @param {Object} params - log body\n* @param {('BLUR'|'BRIGHTNESS'|'CONTRAST'|'SATURATION'|'HUE'|'VIGNETTE'|'INTENSITY')} params.filter_adjustment - One of the filter adjustments\n* @param {Number} params.filter_adjustment_value - Value of a filter adjustment\n\n*/\nexport const logChangeFilterAdjustmentWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'ChangeFilterAdjustment',\n            schema_id: 12887,\n        },\n        body: {\n            event_name: 'ChangeFilterAdjustmentWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User changes gallery image filtering to show only a specific format. The schema was updated at 2019-06-28 11:47:41.835997\n* @param {Object} params - log body\n* @param {('JPG'|'PNG'|'GIF'|'SVG')} params.gallery_image_format - Formats that can be filtered by in the image gallery\n\n*/\nexport const logChangeGalleryImageFormatWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'ChangeGalleryImageFormat',\n            schema_id: 12889,\n        },\n        body: {\n            event_name: 'ChangeGalleryImageFormatWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User changes gallery image sorting. The schema was updated at 2019-06-28 11:47:41.835997\n* @param {Object} params - log body\n* @param {('RECENTLY_UPLOADED'|'RECENTLY_USED')} params.gallery_image_sort_options - Options for sorting gallery images\n\n*/\nexport const logChangeGalleryImageSortWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'ChangeGalleryImageSort',\n            schema_id: 12891,\n        },\n        body: {\n            event_name: 'ChangeGalleryImageSortWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User downloads an uploaded gallery image. The schema was updated at 2019-06-28 11:47:41.835997\n* @param {Object} params - log body\n\n*/\nexport const logDownloadGalleryImageWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'DownloadGalleryImage',\n            schema_id: 12893,\n        },\n        body: {\n            event_name: 'DownloadGalleryImageWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User renames an uploaded gallery image. The schema was updated at 2019-06-28 11:47:41.835997\n* @param {Object} params - log body\n\n*/\nexport const logRenameGalleryImageWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'RenameGalleryImage',\n            schema_id: 12897,\n        },\n        body: {\n            event_name: 'RenameGalleryImageWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User searches elements. The schema was updated at 2019-06-28 11:47:41.835997\n* @param {Object} params - log body\n* @param {String} params.search_input - Text that was input into a search field\n\n*/\nexport const logSearchElementsWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'SearchElements',\n            schema_id: 12899,\n        },\n        body: {\n            event_name: 'SearchElementsWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User searches gallery images. The schema was updated at 2019-06-28 11:47:41.835997\n* @param {Object} params - log body\n\n*/\nexport const logSearchGalleryImageWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'SearchGalleryImage',\n            schema_id: 12901,\n        },\n        body: {\n            event_name: 'SearchGalleryImageWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User searches for templates in the template chooser. The schema was updated at 2019-06-28 11:47:41.835997\n* @param {Object} params - log body\n* @param {String} params.search_input - Text that was input into a search field\n\n*/\nexport const logSearchTemplateChooserWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'SearchTemplateChooser',\n            schema_id: 12903,\n        },\n        body: {\n            event_name: 'SearchTemplateChooserWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User selects one of the filter presets. The schema was updated at 2019-06-28 11:47:41.835997\n* @param {Object} params - log body\n* @param {String} params.filter_preset_name - Name of an image filter preset\n\n*/\nexport const logSelectFilterPresetWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'SelectFilterPreset',\n            schema_id: 12905,\n        },\n        body: {\n            event_name: 'SelectFilterPresetWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User resets either the filter preset or the adjustments. The schema was updated at 2019-06-28 11:47:42.056309\n* @param {Object} params - log body\n\n*/\nexport const logResetFiltersWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'ResetFilters',\n            schema_id: 12943,\n        },\n        body: {\n            event_name: 'ResetFiltersWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User opens the version history view. The schema was updated at 2019-06-28 11:47:41.899324\n* @param {Object} params - log body\n\n*/\nexport const logViewVersionHistoryWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'ViewVersionHistory',\n            schema_id: 12989,\n        },\n        body: {\n            event_name: 'ViewVersionHistoryWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User clicks on compare plans link on payment form. The schema was updated at 2019-09-15 01:59:28.505672\n* @param {Object} params - log body\n\n*/\nexport const logOpenComparePlansWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'OpenComparePlans',\n            schema_id: 13154,\n        },\n        body: {\n            event_name: 'OpenComparePlansWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User modified animation settings. The schema was updated at 2019-09-15 01:59:28.505672\n* @param {Object} params - log body\n* @param {('DURATION'|'DELAY'|'DISTANCE'|'NAME')} params.animation_setting - One of the parameters that can be changed for an animation\n* @param {('TEXT'|'CHART'|'MAP'|'IMAGE'|'SHAPE'|'MEDIA'|'MULTIPLE'|'GROUP'|'PAGE'|'PATH'|'ELEMENT'|'CONNECTOR')} params.object_type - Type of object\n\n*/\nexport const logModifyAnimationSettingWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'ModifyAnimationSetting',\n            schema_id: 13352,\n        },\n        body: {\n            event_name: 'ModifyAnimationSettingWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User modified animation triggers. The schema was updated at 2019-10-25 21:58:27.924637\n* @param {Object} params - log body\n* @param {('ON_SCROLL'|'ON_VIEW'|'ALWAYS'|'ON_CLICK')} params.animation_trigger - One of the trigger types that start an animation\n* @param {('TEXT'|'CHART'|'MAP'|'IMAGE'|'SHAPE'|'MEDIA'|'MULTIPLE'|'GROUP'|'PAGE'|'PATH'|'ELEMENT'|'CONNECTOR')} params.object_type - Type of object\n\n*/\nexport const logModifyAnimationTriggerWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'ModifyAnimationTrigger',\n            schema_id: 13764,\n        },\n        body: {\n            event_name: 'ModifyAnimationTriggerWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User clicks the button to add an image to a callout. The schema was updated at 2019-09-26 01:32:08.860864\n* @param {Object} params - log body\n* @param {('IMAGE'|'USER_IMAGE'|'ICON'|'FLAG'|'STICKER'|'CUSTOM_ICON'|'BRANDING_IMAGE'|'GIF')} params.image_type - User adds a new image to the project\n\n*/\nexport const logAddCalloutImageWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'AddCalloutImage',\n            schema_id: 13577,\n        },\n        body: {\n            event_name: 'AddCalloutImageWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User changes callout behaviour option. The schema was updated at 2019-09-26 01:32:08.860864\n* @param {Object} params - log body\n* @param {('HOVER'|'CLICK')} params.callout_behaviour - Callout behaviour options\n\n*/\nexport const logChangeCalloutBehaviourWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'ChangeCalloutBehaviour',\n            schema_id: 13579,\n        },\n        body: {\n            event_name: 'ChangeCalloutBehaviourWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User modifies a callout in the project. The schema was updated at 2019-09-26 01:32:08.860864\n* @param {Object} params - log body\n* @param {('ADD_TEXT'|'CHANGE_LAYOUT'|'PADDINGS'|'SHADOW')} params.modify_callout_action - Types of callout modify actions\n\n*/\nexport const logModifyCalloutWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'ModifyCallout',\n            schema_id: 13583,\n        },\n        body: {\n            event_name: 'ModifyCalloutWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User clicks on the callout icon for an object. The schema was updated at 2019-09-26 01:32:08.860864\n* @param {Object} params - log body\n\n*/\nexport const logOpenObjectCalloutWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'OpenObjectCallout',\n            schema_id: 13587,\n        },\n        body: {\n            event_name: 'OpenObjectCalloutWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User removes a callout. The schema was updated at 2019-09-26 01:32:08.860864\n* @param {Object} params - log body\n\n*/\nexport const logRemoveCalloutWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'RemoveCallout',\n            schema_id: 13589,\n        },\n        body: {\n            event_name: 'RemoveCalloutWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User changes callout position. The schema was updated at 2019-09-26 01:32:08.772913\n* @param {Object} params - log body\n* @param {('TOP'|'LEFT'|'RIGHT'|'BOTTOM')} params.callout_position - Callout positioning options\n\n*/\nexport const logChangeCalloutPositionWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'ChangeCalloutPosition',\n            schema_id: 13591,\n        },\n        body: {\n            event_name: 'ChangeCalloutPositionWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User executes one of the content library entry actions. The schema was updated at 2019-10-25 21:58:27.892081\n* @param {Object} params - log body\n* @param {('USE_IN_PROJECT'|'DOWNLOAD'|'FAVORITE')} params.content_entry_action - One of the content library entry actions\n* @param {('UPLOAD'|'IMAGE'|'ICON'|'STICKER'|'GIF'|'FLAG')} params.content_entry_type - Type of content library entry\n\n*/\nexport const logModifyContentEntryActionWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'ModifyContentEntryAction',\n            schema_id: 13693,\n        },\n        body: {\n            event_name: 'ModifyContentEntryActionWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User opens the content library view. The schema was updated at 2019-10-25 21:58:27.892081\n* @param {Object} params - log body\n\n*/\nexport const logOpenContentLibraryWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'OpenContentLibrary',\n            schema_id: 13695,\n        },\n        body: {\n            event_name: 'OpenContentLibraryWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User opens one of the content library categories. The schema was updated at 2019-10-25 21:58:27.892081\n* @param {Object} params - log body\n* @param {('ALL'|'UPLOADS'|'FAVORITES'|'IMAGES'|'ICONS'|'STICKERS'|'GIFS'|'FLAGS')} params.content_library_category - One of the content library categories\n\n*/\nexport const logOpenContentLibraryCategoryWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'OpenContentLibraryCategory',\n            schema_id: 13697,\n        },\n        body: {\n            event_name: 'OpenContentLibraryCategoryWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User triggers the generation of auto layouts.. The schema was updated at 2019-10-25 21:58:27.863602\n* @param {Object} params - log body\n* @param {('EDITOR'|'PAGE_SETTINGS')} params.auto_layout_generate_source - Source of the auto layout generation trigger.\n\n*/\nexport const logGenerateAutoLayoutWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'GenerateAutoLayout',\n            schema_id: 13792,\n        },\n        body: {\n            event_name: 'GenerateAutoLayoutWebJs',\n            ...params,\n        },\n    });\n};\n\n\n/**\n* User modifies a specific page in the project.. The schema was updated at 2019-10-25 21:58:27.863602\n* @param {Object} params - log body\n\n*/\nexport const logModifyPageWebJs = function(params) {\n    sendEvent({\n        core: {\n            event_type: 'ModifyPage',\n            schema_id: 13794,\n        },\n        body: {\n            event_name: 'ModifyPageWebJs',\n            ...params,\n        },\n    });\n};\n","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"._31M6T9CTuVqbUGQiIEcVin {\\n    overflow-y: auto;\\n    margin-top: 30px;\\n}\\n\", \"\"]);\n\n// exports\nexports.locals = {\n\t\"fullscreen\": \"_31M6T9CTuVqbUGQiIEcVin\"\n};","'use strict';\nvar hide = require('../internals/hide');\nvar redefine = require('../internals/redefine');\nvar fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar regexpExec = require('../internals/regexp-exec');\n\nvar SPECIES = wellKnownSymbol('species');\n\nvar REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {\n  // #replace needs built-in support for named groups.\n  // #match works fine because it just return the exec results, even if it has\n  // a \"grops\" property.\n  var re = /./;\n  re.exec = function () {\n    var result = [];\n    result.groups = { a: '7' };\n    return result;\n  };\n  return ''.replace(re, '$<a>') !== '7';\n});\n\n// Chrome 51 has a buggy \"split\" implementation when RegExp#exec !== nativeExec\n// Weex JS has frozen built-in prototypes, so use try / catch wrapper\nvar SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = !fails(function () {\n  var re = /(?:)/;\n  var originalExec = re.exec;\n  re.exec = function () { return originalExec.apply(this, arguments); };\n  var result = 'ab'.split(re);\n  return result.length !== 2 || result[0] !== 'a' || result[1] !== 'b';\n});\n\nmodule.exports = function (KEY, length, exec, sham) {\n  var SYMBOL = wellKnownSymbol(KEY);\n\n  var DELEGATES_TO_SYMBOL = !fails(function () {\n    // String methods call symbol-named RegEp methods\n    var O = {};\n    O[SYMBOL] = function () { return 7; };\n    return ''[KEY](O) != 7;\n  });\n\n  var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL && !fails(function () {\n    // Symbol-named RegExp methods call .exec\n    var execCalled = false;\n    var re = /a/;\n    re.exec = function () { execCalled = true; return null; };\n\n    if (KEY === 'split') {\n      // RegExp[@@split] doesn't call the regex's exec method, but first creates\n      // a new one. We need to return the patched regex when creating the new one.\n      re.constructor = {};\n      re.constructor[SPECIES] = function () { return re; };\n    }\n\n    re[SYMBOL]('');\n    return !execCalled;\n  });\n\n  if (\n    !DELEGATES_TO_SYMBOL ||\n    !DELEGATES_TO_EXEC ||\n    (KEY === 'replace' && !REPLACE_SUPPORTS_NAMED_GROUPS) ||\n    (KEY === 'split' && !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC)\n  ) {\n    var nativeRegExpMethod = /./[SYMBOL];\n    var methods = exec(SYMBOL, ''[KEY], function (nativeMethod, regexp, str, arg2, forceStringMethod) {\n      if (regexp.exec === regexpExec) {\n        if (DELEGATES_TO_SYMBOL && !forceStringMethod) {\n          // The native String method already delegates to @@method (this\n          // polyfilled function), leasing to infinite recursion.\n          // We avoid it by directly calling the native @@method method.\n          return { done: true, value: nativeRegExpMethod.call(regexp, str, arg2) };\n        }\n        return { done: true, value: nativeMethod.call(str, regexp, arg2) };\n      }\n      return { done: false };\n    });\n    var stringMethod = methods[0];\n    var regexMethod = methods[1];\n\n    redefine(String.prototype, KEY, stringMethod);\n    redefine(RegExp.prototype, SYMBOL, length == 2\n      // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue)\n      // 21.2.5.11 RegExp.prototype[@@split](string, limit)\n      ? function (string, arg) { return regexMethod.call(string, this, arg); }\n      // 21.2.5.6 RegExp.prototype[@@match](string)\n      // 21.2.5.9 RegExp.prototype[@@search](string)\n      : function (string) { return regexMethod.call(string, this); }\n    );\n    if (sham) hide(RegExp.prototype[SYMBOL], 'sham', true);\n  }\n};\n","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar invariant = require('fbjs/lib/invariant');\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nmodule.exports = function() {\n  function shim(props, propName, componentName, location, propFullName, secret) {\n    if (secret === ReactPropTypesSecret) {\n      // It is still safe when called from React.\n      return;\n    }\n    invariant(\n      false,\n      'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n      'Use PropTypes.checkPropTypes() to call them. ' +\n      'Read more at http://fb.me/use-check-prop-types'\n    );\n  };\n  shim.isRequired = shim;\n  function getShim() {\n    return shim;\n  };\n  // Important!\n  // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n  var ReactPropTypes = {\n    array: shim,\n    bool: shim,\n    func: shim,\n    number: shim,\n    object: shim,\n    string: shim,\n    symbol: shim,\n\n    any: shim,\n    arrayOf: getShim,\n    element: shim,\n    instanceOf: getShim,\n    node: shim,\n    objectOf: getShim,\n    oneOf: getShim,\n    oneOfType: getShim,\n    shape: getShim\n  };\n\n  ReactPropTypes.checkPropTypes = emptyFunction;\n  ReactPropTypes.PropTypes = ReactPropTypes;\n\n  return ReactPropTypes;\n};\n","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n  var REACT_ELEMENT_TYPE = (typeof Symbol === 'function' &&\n    Symbol.for &&\n    Symbol.for('react.element')) ||\n    0xeac7;\n\n  var isValidElement = function(object) {\n    return typeof object === 'object' &&\n      object !== null &&\n      object.$$typeof === REACT_ELEMENT_TYPE;\n  };\n\n  // By explicitly using `prop-types` you are opting into new development behavior.\n  // http://fb.me/prop-types-in-prod\n  var throwOnDirectAccess = true;\n  module.exports = require('./factoryWithTypeCheckers')(isValidElement, throwOnDirectAccess);\n} else {\n  // By explicitly using `prop-types` you are opting into new production behavior.\n  // http://fb.me/prop-types-in-prod\n  module.exports = require('./factoryWithThrowingShims')();\n}\n","export default function UserError(message) {\n    this.name = 'UserError';\n    this.message = message;\n    this.stack = (new Error()).stack;\n}\n\nUserError.prototype = Object.create(Error.prototype);\nUserError.prototype.constructor = UserError;\n","var defineProperty = require('../internals/object-define-property').f;\nvar has = require('../internals/has');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (it, TAG, STATIC) {\n  if (it && !has(it = STATIC ? it : it.prototype, TO_STRING_TAG)) {\n    defineProperty(it, TO_STRING_TAG, { configurable: true, value: TAG });\n  }\n};\n","import {Record, Set} from 'immutable';\n\nconst SelectionRecord = Record({\n    items: Set(),\n    blocks: Set(),\n});\n\nexport default class Selection extends SelectionRecord {\n    static createEmpty() {\n        return new Selection();\n    }\n\n    static singleItem(item) {\n        return Selection.createFromEntityKeys([item]);\n    }\n\n    static createFromEntityKeys(items) {\n        return new Selection({\n            items: Set(items),\n        });\n    }\n\n    static createFromBlockAndEntityKeys(blockKeys, entityKeys) {\n        return new Selection({\n            items: Set(entityKeys),\n            blocks: Set(blockKeys),\n        });\n    }\n\n    getEntities() {\n        return this.get('items');\n    }\n\n    getBlocks() {\n        return this.get('blocks');\n    }\n\n    isEmpty() {\n        return this.getEntities().isEmpty();\n    }\n\n    hasNoBlocks() {\n        return this.getBlocks().isEmpty();\n    }\n\n    containsEntity(item) {\n        return this.getEntities().contains(item);\n    }\n\n    containsBlock(key) {\n        return this.getBlocks().contains(key);\n    }\n\n    addEntities(...paths) {\n        return this.set('items', this.getEntities().concat(paths));\n    }\n\n    removeEntities(...paths) {\n        return this.set('items', this.getEntities().subtract(paths));\n    }\n\n    addBlocks(...keys) {\n        return this.set('blocks', this.getBlocks().concat(keys));\n    }\n\n    removeBlocks(...keys) {\n        let blocks = this.getBlocks();\n        for (const key of keys) {\n            blocks = blocks.remove(key);\n        }\n\n        return this;\n    }\n\n    clear() {\n        return this.merge({\n            items: this.getEntities().clear(),\n            blocks: this.getBlocks().clear(),\n        });\n    }\n\n    clearEntities() {\n        return this.set('items', this.getEntities().clear());\n    }\n\n    clearBlocks() {\n        return this.set('blocks', this.getBlocks().clear());\n    }\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar LogRecordFormatter = /** @class */ (function () {\n    function LogRecordFormatter() {\n    }\n    LogRecordFormatter.generateUUID = function () {\n        var d = Date.now();\n        return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\n            var r = (d + Math.random() * 16) % 16 | 0;\n            d = Math.floor(d / 16);\n            return (c === 'x' ? r : (r & 0x7) | 0x8).toString(16);\n        });\n    };\n    return LogRecordFormatter;\n}());\nexports.LogRecordFormatter = LogRecordFormatter;\n","module.exports = __webpack_public_path__ + \"rXA19skikKYxwe1LeNsg-.svg\";","export default function _classCallCheck(instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n}","'use strict';\n\nvar utils = require('./utils');\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\n\nvar DEFAULT_CONTENT_TYPE = {\n  'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n  if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n    headers['Content-Type'] = value;\n  }\n}\n\nfunction getDefaultAdapter() {\n  var adapter;\n  if (typeof XMLHttpRequest !== 'undefined') {\n    // For browsers use XHR adapter\n    adapter = require('./adapters/xhr');\n  } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n    // For node use HTTP adapter\n    adapter = require('./adapters/http');\n  }\n  return adapter;\n}\n\nvar defaults = {\n  adapter: getDefaultAdapter(),\n\n  transformRequest: [function transformRequest(data, headers) {\n    normalizeHeaderName(headers, 'Accept');\n    normalizeHeaderName(headers, 'Content-Type');\n    if (utils.isFormData(data) ||\n      utils.isArrayBuffer(data) ||\n      utils.isBuffer(data) ||\n      utils.isStream(data) ||\n      utils.isFile(data) ||\n      utils.isBlob(data)\n    ) {\n      return data;\n    }\n    if (utils.isArrayBufferView(data)) {\n      return data.buffer;\n    }\n    if (utils.isURLSearchParams(data)) {\n      setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n      return data.toString();\n    }\n    if (utils.isObject(data)) {\n      setContentTypeIfUnset(headers, 'application/json;charset=utf-8');\n      return JSON.stringify(data);\n    }\n    return data;\n  }],\n\n  transformResponse: [function transformResponse(data) {\n    /*eslint no-param-reassign:0*/\n    if (typeof data === 'string') {\n      try {\n        data = JSON.parse(data);\n      } catch (e) { /* Ignore */ }\n    }\n    return data;\n  }],\n\n  /**\n   * A timeout in milliseconds to abort a request. If set to 0 (default) a\n   * timeout is not created.\n   */\n  timeout: 0,\n\n  xsrfCookieName: 'XSRF-TOKEN',\n  xsrfHeaderName: 'X-XSRF-TOKEN',\n\n  maxContentLength: -1,\n\n  validateStatus: function validateStatus(status) {\n    return status >= 200 && status < 300;\n  }\n};\n\ndefaults.headers = {\n  common: {\n    'Accept': 'application/json, text/plain, */*'\n  }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n  defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n  defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n","var aFunction = require('../internals/a-function');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\nvar toLength = require('../internals/to-length');\n\n// `Array.prototype.{ reduce, reduceRight }` methods implementation\nvar createMethod = function (IS_RIGHT) {\n  return function (that, callbackfn, argumentsLength, memo) {\n    aFunction(callbackfn);\n    var O = toObject(that);\n    var self = IndexedObject(O);\n    var length = toLength(O.length);\n    var index = IS_RIGHT ? length - 1 : 0;\n    var i = IS_RIGHT ? -1 : 1;\n    if (argumentsLength < 2) while (true) {\n      if (index in self) {\n        memo = self[index];\n        index += i;\n        break;\n      }\n      index += i;\n      if (IS_RIGHT ? index < 0 : length <= index) {\n        throw TypeError('Reduce of empty array with no initial value');\n      }\n    }\n    for (;IS_RIGHT ? index >= 0 : length > index; index += i) if (index in self) {\n      memo = callbackfn(memo, self[index], index, O);\n    }\n    return memo;\n  };\n};\n\nmodule.exports = {\n  // `Array.prototype.reduce` method\n  // https://tc39.github.io/ecma262/#sec-array.prototype.reduce\n  left: createMethod(false),\n  // `Array.prototype.reduceRight` method\n  // https://tc39.github.io/ecma262/#sec-array.prototype.reduceright\n  right: createMethod(true)\n};\n","function replaceClassName(origClass, classToRemove) {\n  return origClass.replace(new RegExp(\"(^|\\\\s)\" + classToRemove + \"(?:\\\\s|$)\", 'g'), '$1').replace(/\\s+/g, ' ').replace(/^\\s*|\\s*$/g, '');\n}\n\nexport default function removeClass(element, className) {\n  if (element.classList) {\n    element.classList.remove(className);\n  } else if (typeof element.className === 'string') {\n    ;\n    element.className = replaceClassName(element.className, className);\n  } else {\n    element.setAttribute('class', replaceClassName(element.className && element.className.baseVal || '', className));\n  }\n}","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $forEach = require('../internals/array-iteration').forEach;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\n\n// `%TypedArray%.prototype.forEach` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.foreach\nArrayBufferViewCore.exportProto('forEach', function forEach(callbackfn /* , thisArg */) {\n  $forEach(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n});\n","const _ = require('lodash');\n\nfunction chartHeatmap({ chart, template: tpl }) {\n    const { colors } = tpl;\n    const defaultColors = [];\n\n    if (('type' in chart) && chart.type !== 9) {\n        return defaultColors;\n    }\n    if (('chart_type_nr' in chart && chart.chart_type_nr !== 9)) {\n        return defaultColors;\n    }\n\n    // with hash: yes\n    // amount: 1\n    let found = _.get(tpl, 'charts.map.countryFill');\n\n    // cold color\n    if (!found) {\n        found = colors[1];\n    }\n\n    defaultColors.push(found);\n    defaultColors.push(colors[0]); // hot color\n\n    return defaultColors;\n}\n\nfunction chartDefaultColors({ chart, template: tpl }) {\n    const { colors } = tpl;\n    const defaultColors = [];\n\n    let found = false;\n    const chartType = chart.type || chart.chart_type_nr;\n    const typeMod = `${chartType}_${chart.modifier}`;\n\n    const themeColors = _.get(tpl.chartDefaults, `${typeMod}.colors`);\n    if (themeColors) {\n        return themeColors;\n    }\n\n    switch (chartType) {\n        case 5: // gauge\n            // with hash: yes\n            // amount: 1\n            found = _.get(tpl, 'charts.gauge.colors.foreground');\n\n            if (found) {\n                defaultColors.push(found);\n            }\n            break;\n        case 24: // timer\n            found = [\n                _.get(tpl, 'charts.timer.digits.color', colors[0]),\n                _.get(tpl, 'charts.timer.units.color', colors[0])\n            ];\n\n            _.merge(defaultColors, found);\n            break;\n        case 23: // facts & figures\n            // with hash: no\n            // amount: many\n            found = _.get(tpl, 'chartOptions.textual.fill');\n\n            if (found) {\n                _.merge(defaultColors, colorsToArray(found));\n            }\n            break;\n        case 21: // pictobar\n            // amount: 1\n            found = _.get(tpl, 'charts.pictorialBar.colors.foreground');\n\n            if (found) {\n                _.merge(defaultColors, [found]);\n            }\n            break;\n        case 19: { // table\n            // comes as object containing props color stored with hash in front\n            found = _.get(tpl, 'charts.table');\n\n            if (found) {\n                _.merge(defaultColors, [\n                    found.headerColor,\n                    found.headerBackground,\n                    found.evenColor || found.headerColor,\n                    found.evenBackground || found.headerBackground,\n                    found.cellColor,\n                    found.cellBackground,\n                    found.firstColumnColor || found.headerColor,\n                    found.firstColumnBackground || found.headerBackground,\n                    found.shapeFill.startsWith('#') ? found.shapeFill : `#${found.shapeFill}`,\n                ]);\n            }\n            break;\n        }\n        case 26: // candle\n            found = [\n                _.get(tpl, 'charts.candle.colors.down', '#2b6a79'),\n                _.get(tpl, 'charts.candle.colors.up', '#cc3635'),\n            ];\n\n            _.merge(defaultColors, found);\n            break;\n        case 27: // waterfall\n            if (_.has(tpl, 'charts.waterfall.colors.initial') ||\n                _.has(tpl, 'charts.waterfall.colors.up') ||\n                _.has(tpl, 'charts.waterfall.colors.down')) {\n\n                _.merge(defaultColors, [\n                    _.get(tpl, 'charts.waterfall.colors.initial', '#206b79'),\n                    _.get(tpl, 'charts.waterfall.colors.up', '#ffd145'),\n                    _.get(tpl, 'charts.waterfall.colors.down', '#d13439'),\n                ]);\n            } else { // this is for compatibility while migrating code below  will go out\n                found = _.get(tpl, 'charts.waterfall.colors');\n\n                if (!found) {\n                    found = '206b79 ffd145 d13439';\n                }\n\n                _.merge(defaultColors, colorsToArray(found));\n            }\n            break;\n    }\n\n    if (!found) {\n        _.merge(defaultColors, colors);\n    }\n\n    return defaultColors;\n}\n\nfunction colorsToArray(colorStr) {\n    return colorStr.split(' ').map((color) =>\n        color.startsWith('#') ? color : `#${color}`\n    );\n}\n\nfunction colorArrToNoHashString(arr) {\n    return arr.join(' ').replace(/#/g, '');\n}\n\nmodule.exports = {\n    chartHeatmap,\n    chartDefaultColors,\n    colorsToArray,\n    colorArrToNoHashString,\n};\n","export const RESPONSIVE_FULLSCREEN_ENTER = 'RESPONSIVE_FULLSCREEN_ENTER';\nexport const RESPONSIVE_FULLSCREEN_EXIT = 'RESPONSIVE_FULLSCREEN_EXIT';\nexport const RELATED_INFOGRAPHICS_RECEIVED = 'RELATED_INFOGRAPHICS_RECEIVED';\nexport const DISPLAY_HEADER = 'DISPLAY_HEADER';\n","var $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar anObject = require('../internals/an-object');\nvar FREEZING = require('../internals/freezing');\n\n// `Reflect.preventExtensions` method\n// https://tc39.github.io/ecma262/#sec-reflect.preventextensions\n$({ target: 'Reflect', stat: true, sham: !FREEZING }, {\n  preventExtensions: function preventExtensions(target) {\n    anObject(target);\n    try {\n      var objectPreventExtensions = getBuiltIn('Object', 'preventExtensions');\n      if (objectPreventExtensions) objectPreventExtensions(target);\n      return true;\n    } catch (error) {\n      return false;\n    }\n  }\n});\n","exports = module.exports = require(\"../../css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/**\\n * Draft v0.11.3\\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.DraftEditor-editorContainer,.DraftEditor-root,.public-DraftEditor-content{height:inherit;text-align:initial}.public-DraftEditor-content[contenteditable=true]{-webkit-user-modify:read-write-plaintext-only}.DraftEditor-root{position:relative}.DraftEditor-editorContainer{background-color:rgba(255,255,255,0);border-left:.1px solid transparent;position:relative;z-index:1}.public-DraftEditor-block{position:relative}.DraftEditor-alignLeft .public-DraftStyleDefault-block{text-align:left}.DraftEditor-alignLeft .public-DraftEditorPlaceholder-root{left:0;text-align:left}.DraftEditor-alignCenter .public-DraftStyleDefault-block{text-align:center}.DraftEditor-alignCenter .public-DraftEditorPlaceholder-root{margin:0 auto;text-align:center;width:100%}.DraftEditor-alignRight .public-DraftStyleDefault-block{text-align:right}.DraftEditor-alignRight .public-DraftEditorPlaceholder-root{right:0;text-align:right}.public-DraftEditorPlaceholder-root{color:#9197a3;position:absolute;z-index:1}.public-DraftEditorPlaceholder-hasFocus{color:#bdc1c9}.DraftEditorPlaceholder-hidden{display:none}.public-DraftStyleDefault-block{position:relative;white-space:pre-wrap}.public-DraftStyleDefault-ltr{direction:ltr;text-align:left}.public-DraftStyleDefault-rtl{direction:rtl;text-align:right}.public-DraftStyleDefault-listLTR{direction:ltr}.public-DraftStyleDefault-listRTL{direction:rtl}.public-DraftStyleDefault-ol,.public-DraftStyleDefault-ul{margin:16px 0;padding:0}.public-DraftStyleDefault-depth0.public-DraftStyleDefault-listLTR{margin-left:1.5em}.public-DraftStyleDefault-depth0.public-DraftStyleDefault-listRTL{margin-right:1.5em}.public-DraftStyleDefault-depth1.public-DraftStyleDefault-listLTR{margin-left:3em}.public-DraftStyleDefault-depth1.public-DraftStyleDefault-listRTL{margin-right:3em}.public-DraftStyleDefault-depth2.public-DraftStyleDefault-listLTR{margin-left:4.5em}.public-DraftStyleDefault-depth2.public-DraftStyleDefault-listRTL{margin-right:4.5em}.public-DraftStyleDefault-depth3.public-DraftStyleDefault-listLTR{margin-left:6em}.public-DraftStyleDefault-depth3.public-DraftStyleDefault-listRTL{margin-right:6em}.public-DraftStyleDefault-depth4.public-DraftStyleDefault-listLTR{margin-left:7.5em}.public-DraftStyleDefault-depth4.public-DraftStyleDefault-listRTL{margin-right:7.5em}.public-DraftStyleDefault-unorderedListItem{list-style-type:square;position:relative}.public-DraftStyleDefault-unorderedListItem.public-DraftStyleDefault-depth0{list-style-type:disc}.public-DraftStyleDefault-unorderedListItem.public-DraftStyleDefault-depth1{list-style-type:circle}.public-DraftStyleDefault-orderedListItem{list-style-type:none;position:relative}.public-DraftStyleDefault-orderedListItem.public-DraftStyleDefault-listLTR:before{left:-36px;position:absolute;text-align:right;width:30px}.public-DraftStyleDefault-orderedListItem.public-DraftStyleDefault-listRTL:before{position:absolute;right:-36px;text-align:left;width:30px}.public-DraftStyleDefault-orderedListItem:before{content:counter(ol0) \\\". \\\";counter-increment:ol0}.public-DraftStyleDefault-orderedListItem.public-DraftStyleDefault-depth1:before{content:counter(ol1,lower-alpha) \\\". \\\";counter-increment:ol1}.public-DraftStyleDefault-orderedListItem.public-DraftStyleDefault-depth2:before{content:counter(ol2,lower-roman) \\\". \\\";counter-increment:ol2}.public-DraftStyleDefault-orderedListItem.public-DraftStyleDefault-depth3:before{content:counter(ol3) \\\". \\\";counter-increment:ol3}.public-DraftStyleDefault-orderedListItem.public-DraftStyleDefault-depth4:before{content:counter(ol4,lower-alpha) \\\". \\\";counter-increment:ol4}.public-DraftStyleDefault-depth0.public-DraftStyleDefault-reset{counter-reset:ol0}.public-DraftStyleDefault-depth1.public-DraftStyleDefault-reset{counter-reset:ol1}.public-DraftStyleDefault-depth2.public-DraftStyleDefault-reset{counter-reset:ol2}.public-DraftStyleDefault-depth3.public-DraftStyleDefault-reset{counter-reset:ol3}.public-DraftStyleDefault-depth4.public-DraftStyleDefault-reset{counter-reset:ol4}\", \"\"]);\n\n// exports\n","import React, {PureComponent} from 'react';\nimport ImmutablePropTypes from 'react-immutable-proptypes';\nimport PropTypes from 'prop-types';\nimport invariant from 'invariant';\n\nimport LazyWrapper from '../../../components/IntersectionObserver/LazyWrapper.react';\n\n\nexport default class LazyBlockWrapper extends PureComponent {\n    static propTypes = {\n        block: ImmutablePropTypes.record.isRequired,\n        assets: PropTypes.shape({getURL: PropTypes.func.isRequired}),\n        children: PropTypes.node.isRequired,\n        width: PropTypes.number.isRequired,\n        height: PropTypes.number.isRequired,\n        observer: PropTypes.shape({\n            observe: PropTypes.func.isRequired,\n            unobserve: PropTypes.func.isRequired,\n        }),\n    };\n\n    componentDidMount() {\n        this.preloadImages();\n    }\n\n    preloadImages() {\n        this.props.block.entities.forEach(entity => {\n            const assetId = entity.getProperty('assetId');\n            if (entity.type === 'IMAGE' && assetId) {\n                const url = this.props.assets.getURL(assetId);\n                invariant(url, `Broken image without an asset (id=${assetId})!`);\n                const image = new Image();\n                image.src = url;\n            }\n        });\n    }\n\n    render() {\n        const blockStyle = {\n            width: this.props.width,\n            height: this.props.height,\n        };\n        return (\n            <LazyWrapper\n                style={blockStyle}\n                id={`wrap-${this.props.block.getKey()}`}\n                observer={this.props.observer}\n            >\n                {this.props.children}\n            </LazyWrapper>\n        );\n    }\n}\n","export default function _iterableToArray(iter) {\n  if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}","var $ = require('../internals/export');\nvar anObject = require('../internals/an-object');\n\nvar objectIsExtensible = Object.isExtensible;\n\n// `Reflect.isExtensible` method\n// https://tc39.github.io/ecma262/#sec-reflect.isextensible\n$({ target: 'Reflect', stat: true }, {\n  isExtensible: function isExtensible(target) {\n    anObject(target);\n    return objectIsExtensible ? objectIsExtensible(target) : true;\n  }\n});\n","var $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar ownKeys = require('../internals/own-keys');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar createProperty = require('../internals/create-property');\n\n// `Object.getOwnPropertyDescriptors` method\n// https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptors\n$({ target: 'Object', stat: true, sham: !DESCRIPTORS }, {\n  getOwnPropertyDescriptors: function getOwnPropertyDescriptors(object) {\n    var O = toIndexedObject(object);\n    var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n    var keys = ownKeys(O);\n    var result = {};\n    var index = 0;\n    var key, descriptor;\n    while (keys.length > index) {\n      descriptor = getOwnPropertyDescriptor(O, key = keys[index++]);\n      if (descriptor !== undefined) createProperty(result, key, descriptor);\n    }\n    return result;\n  }\n});\n","var $ = require('../internals/export');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toLength = require('../internals/to-length');\n\n// `String.raw` method\n// https://tc39.github.io/ecma262/#sec-string.raw\n$({ target: 'String', stat: true }, {\n  raw: function raw(template) {\n    var rawTemplate = toIndexedObject(template.raw);\n    var literalSegments = toLength(rawTemplate.length);\n    var argumentsLength = arguments.length;\n    var elements = [];\n    var i = 0;\n    while (literalSegments > i) {\n      elements.push(String(rawTemplate[i++]));\n      if (i < argumentsLength) elements.push(String(arguments[i]));\n    } return elements.join('');\n  }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $map = require('../internals/array-iteration').map;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\n// `Array.prototype.map` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.map\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !arrayMethodHasSpeciesSupport('map') }, {\n  map: function map(callbackfn /* , thisArg */) {\n    return $map(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n  }\n});\n","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n  return function wrap() {\n    var args = new Array(arguments.length);\n    for (var i = 0; i < args.length; i++) {\n      args[i] = arguments[i];\n    }\n    return fn.apply(thisArg, args);\n  };\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\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 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    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    throw error;\n  }\n}\n\nmodule.exports = invariant;","import PropTypes from 'prop-types';\nimport cx from 'classnames';\n\nimport React, {PureComponent} from 'react';\n\nimport Headline from './Text/Headline.react';\nimport Subtitle from './Text/Subtitle.react';\nimport Quote from './Text/Quote.react';\nimport CaptionText from './Text/CaptionText.react';\nimport BodyText from './Text/BodyText.react';\nimport Separator from './Text/Separator.react';\n\nexport default class Text extends PureComponent {\n    static propTypes = {\n        author: PropTypes.string,\n        shrink: PropTypes.bool,\n        text: PropTypes.string,\n        type: PropTypes.string,\n        style: PropTypes.object,\n        onRendered: PropTypes.func,\n    };\n\n    render() {\n        const {author, text, type, shrink, style} = this.props;\n        let Component;\n        switch (type) {\n            case 'maintitle': {\n                Component = Headline;\n                break;\n            }\n            case 'charttitle': {\n                Component = Subtitle;\n                break;\n            }\n            case 'quote': {\n                Component = Quote;\n                break;\n            }\n            case 'bodytext': {\n                Component = BodyText;\n                break;\n            }\n            case 'captiontext': {\n                Component = CaptionText;\n                break;\n            }\n            case 'separator': {\n                Component = Separator;\n                break;\n            }\n            default:\n                // this should not happen!?\n                Component = Subtitle;\n                break;\n        }\n        return (\n            <div\n                className={cx('moveable_w', {shrink})}\n                data-object-type=\"particle\"\n                data-content-type={type}\n                style={style}\n                ref={this.props.onRendered}\n            >\n                <Component text={text} author={author}/>\n            </div>\n        );\n    }\n}\n","import blur from './Blur.react';\nimport brightness from './Brightness.react';\nimport contrast from './Contrast.react';\nimport saturation from './Saturation.react';\nimport blackAndWhite from './BlackAndWhite.react';\nimport hueRotate from './HueRotate.react';\nimport hdr from './HDR.react';\nimport seventies from './Seventies.react';\nimport bronze from './Bronze.react';\nimport vintage from './Vintage.react';\nimport budapest from './Budapest.react';\nimport riga from './Riga.react';\nimport sanfrancisco from './SanFrancisco.react';\nimport vignette from './FakeVignette';\n\n/**\n * For compatibility with Safari 11-\n * Vignette, Vignette blend and Focus\n * have deen removed from exports.\n *\n * TODO: re-enable and cleanup when anything below Safari 12\n * is deprecated.\n *\n * Add component imports to adjustments and presets,\n * to enable missing filters\n */\n\nexport const adjustments = {\n    blur,\n    brightness,\n    contrast,\n    saturation,\n    hueRotate,\n    vignette,\n};\n\nexport const presets = {\n    blackAndWhite,\n    hdr,\n    riga,\n    seventies,\n    sanfrancisco,\n    bronze,\n    budapest,\n    vintage,\n};\n\nexport default {\n    ...adjustments,\n    ...presets,\n};\n","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!./SearchForm.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!./SearchForm.css\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!./SearchForm.css\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","import i18n from 'i18next';\nimport React from 'react';\n\nimport {FilterElementPropTypes} from '../types';\n\n/**\n * Contrast\n *\n * @param {string} in1 pointer to filter's input (same as SVG *in*)\n * @param {string} result pointer to output (same as SVG *result*)\n * @param {number} amount contrast level, 0 - no contrast at all, gray square, 1 - normal, 2 - 2x pronounced\n */\nexport const Contrast = ({amount, in1, result}) =>\n    <feComponentTransfer in={in1} result={result}>\n        <feFuncR type=\"linear\" slope={amount.toFixed(2)} intercept={(-(0.5 * amount) + 0.5).toFixed(2)}/>\n        <feFuncG type=\"linear\" slope={amount.toFixed(2)} intercept={(-(0.5 * amount) + 0.5).toFixed(2)}/>\n        <feFuncB type=\"linear\" slope={amount.toFixed(2)} intercept={(-(0.5 * amount) + 0.5).toFixed(2)}/>\n    </feComponentTransfer>\n;\n\nContrast.propTypes = FilterElementPropTypes;\n\nexport default {\n    Component: Contrast,\n    get caption() {\n        return i18n.t('inspector.free.filters.contrast');\n    },\n    max: 2,\n    min: 0,\n    default: 1,\n};\n","var O = 'object';\nvar check = function (it) {\n  return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n  // eslint-disable-next-line no-undef\n  check(typeof globalThis == O && globalThis) ||\n  check(typeof window == O && window) ||\n  check(typeof self == O && self) ||\n  check(typeof global == O && global) ||\n  // eslint-disable-next-line no-new-func\n  Function('return this')();\n","import invariant from 'invariant';\nimport {fromJS} from 'immutable';\n\nimport {calculateClippedRectangle} from '../../../components/FreeLayoutEditor/util/clippedEntity';\nimport {CALLOUT_PADDING} from '../constants/config';\n\n/**\n * Returns Immutable map with calculated paddings of callout based on callout size\n * and callout entities size/position.\n *\n * Can be called for callouts without entities (upon creation before any entity is added)\n * to get default paddings.\n *\n * @param {Immutable.Map} callout callout data\n * @param {Immutable.List} entities all entities within callout\n * @returns {Immutable.Map<String, Immutable.Map<String, Number>>}\n */\nexport function getCalloutPaddings(callout, entities) {\n    invariant(entities.size <= 2, `Callout has ${entities.size} entities`);\n\n    let horizontal;\n    let vertical;\n    if (entities.isEmpty()) {\n        // returns default paddings\n        horizontal = {\n            left: CALLOUT_PADDING,\n            between: 0,\n            right: CALLOUT_PADDING,\n        };\n        vertical = {\n            top: CALLOUT_PADDING,\n            between: 0,\n            bottom: CALLOUT_PADDING,\n        };\n    } else if (entities.size === 1) {\n        const firstRect = calculateClippedRectangle(entities.first());\n        horizontal = {\n            left: firstRect.left,\n            between: 0,\n            right: callout.get('width') - firstRect.left - firstRect.width,\n        };\n        vertical = {\n            top: firstRect.top,\n            between: 0,\n            bottom: callout.get('height') - firstRect.top - firstRect.height,\n        };\n    } else {\n        const firstRect = calculateClippedRectangle(entities.first());\n        const lastRect = calculateClippedRectangle(entities.last());\n        if (callout.get('alignment') === 'horizontal') {\n            horizontal = {\n                left: firstRect.left,\n                between: lastRect.left - firstRect.left - firstRect.width,\n                right: callout.get('width') - lastRect.left - lastRect.width,\n            };\n            vertical = {\n                top: Math.min(firstRect.top, lastRect.top),\n                between: 0,\n                bottom: Math.min(\n                    callout.get('height') - firstRect.top - firstRect.height,\n                    callout.get('height') - lastRect.top - lastRect.height\n                ),\n            };\n        } else {\n            horizontal = {\n                left: Math.min(firstRect.left, lastRect.left),\n                between: 0,\n                right: Math.min(\n                    callout.get('width') - firstRect.left - firstRect.width,\n                    callout.get('width') - lastRect.left - lastRect.width\n                ),\n            };\n            vertical = {\n                top: firstRect.top,\n                between: lastRect.top - firstRect.top - firstRect.height,\n                bottom: callout.get('height') - lastRect.top - lastRect.height,\n            };\n        }\n    }\n    return fromJS({horizontal, vertical});\n}\n\nexport function getCalloutPaddingsByKey(editorState, calloutEntityKey) {\n    const calloutEntity = editorState.getCurrentContent().getEntity(calloutEntityKey);\n    const block = editorState.getCurrentContent().getBlock(calloutEntity.getBlockKey());\n    const callout = calloutEntity.getCallout();\n    return getCalloutPaddings(callout, block.getEntitiesByKeys(callout.get('entities'), {orderByKeys: true}));\n}\n","const i18n = require('i18next');\n\n/**\n * Page number from the page ID. null as response means it is not a link to page, but a regular link. -1 - an invalid link. Non-negative integer - valid page number.\n * @param {String} key\n * @param {Object} EditorState or raw data representing EditorState structure\n * @returns {Number}\n*/\nfunction pageNumberByKey(key, editorState) {\n    if (!key || key[0] !== '#') {\n        return undefined;\n    }\n    key = key.substr(1);\n    if (editorState.getCurrentContent) {\n        //editorState is `EditorState` class instance\n        return editorState.getCurrentContent().getBlockIndex(key);\n    }\n    //`editorState` is raw data\n    return editorState.content.blockOrder.findIndex((blockKey) => blockKey === key);\n}\n\nfunction pageNumberHumanDescription(key, editorState) {\n    const pageNumber = pageNumberByKey(key, editorState);\n    if (pageNumber !== undefined && pageNumber !== -1) {\n        return i18n.default.t('app.chart_settings.columns_menu.url.page_n', {number: pageNumber +1});\n    }\n}\n\nmodule.exports = {\n    pageNumberByKey,\n    pageNumberHumanDescription,\n};\n","export {default as dispatch} from \"./dispatch\";\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.github.io/ecma262/#sec-object.keys\nmodule.exports = Object.keys || function keys(O) {\n  return internalObjectKeys(O, enumBugKeys);\n};\n","import PropTypes from 'prop-types';\nimport React, {PureComponent} from 'react';\nimport ImmutablePropTypes from 'react-immutable-proptypes';\nimport cx from 'classnames';\nimport styled from 'styled-components';\n\n\nimport {getTooltip} from '../../../../../client/components/charts/tooltip';\nimport EditorState from '../immutable/EditorState';\nimport Selection from '../immutable/Selection';\nimport InfographicContents from '../content/InfographicContents';\nimport MouseSelectionOverlay from '../overlay/MouseSelectionOverlay';\nimport CustomFontLoader from './CustomFontLoader';\n\nimport EditHandler from '../handlers/edit';\nimport DragHandler from '../handlers/drag';\nimport NavigationHandler from '../handlers/navigation';\nimport CalloutHandler from '../handlers/callout';\nimport HandleDragHandler from '../handlers/handle';\nimport allHandlers from '../handlers/allHandlers';\n\nimport PrezigramTheme from '../../../contexts/theme/prezigram';\nimport '!!style-loader!css-loader?modules=false!./InfographicEditor.css';\nimport UpdateLoop from '../../../utils/UpdateLoop';\n\nconst StyledInfographicEditor = styled.div`\n    text-align: ${props => props.align};\n    outline: none;\n    font-size: 0;\n\n    ${props => props.theme.id === PrezigramTheme.id ? `\n        margin-top: -20px;\n        padding-top: 20px;\n        color: #152235;\n    ` : ''}\n`;\n\nconst handlerMap = {\n    edit: EditHandler,\n    drag: DragHandler,\n    handle: HandleDragHandler,\n    navigation: NavigationHandler,\n    callout: CalloutHandler,\n};\n\nfunction noop(e) {\n    e.preventDefault();\n}\n\nfunction validateScaleValue(props, propName, componentName) {\n    const value = props[propName];\n    if (parseFloat(value) === 0) {\n        return new Error(`Invalid prop '${propName}' supplied to ${componentName}. It must not be 0`);\n    }\n}\n\nexport default class InfographicEditor extends PureComponent {\n    static defaultProps = {\n        currentSelection: Selection.createEmpty(),\n        allowDragAndDrop: true,\n        accessibleReadingOrder: false,\n        readOnly: false,\n        scaleX: 1,\n        scaleY: 1,\n        groupsInEditMode: null,\n        align: 'center',\n    };\n\n    static propTypes = {\n        allowDragAndDrop: PropTypes.bool,\n        accessibleReadingOrder: PropTypes.bool,\n        readOnly: PropTypes.bool,\n        multiSelectionActive: PropTypes.bool,\n        editorState: PropTypes.instanceOf(EditorState).isRequired,\n        onChange: PropTypes.func,\n        onSelectionChange: PropTypes.func,\n        onSelectionBoundBoxChange: PropTypes.func,\n        blockWrapperComponent: PropTypes.any,\n        blockOverlayComponent: PropTypes.any,\n        entityOverlayComponent: PropTypes.any,\n        connectorEntityOverlays: PropTypes.any,\n        entityBoundingBoxComponent: PropTypes.any,\n        multiSelectionOverlayComponent: PropTypes.any,\n        renderItemContentsFn: PropTypes.func,\n        scaleX: validateScaleValue,\n        scaleY: validateScaleValue,\n        transparentBackground: PropTypes.bool,\n        currentSelection: PropTypes.instanceOf(Selection),\n        initialBoundingBox: PropTypes.object,\n        groupsInEditMode: PropTypes.object,\n        guideSettings: ImmutablePropTypes.contains({\n            showGuides: PropTypes.bool.isRequired,\n            snapObjects: PropTypes.bool.isRequired,\n            whitespacePercent: PropTypes.number.isRequired,\n            columnCount: PropTypes.number.isRequired,\n            rowSpacing: PropTypes.number.isRequired,\n        }),\n        updateMousePosition: PropTypes.func,\n        onAddComment: PropTypes.func,\n        onMoveComment: PropTypes.func,\n        onCommentPositionChanged: PropTypes.func,\n        onToggleComment: PropTypes.func,\n        onCloseConversations: PropTypes.func,\n        commenting: PropTypes.bool,\n        commentingIsAvailable: PropTypes.bool,\n        commentComponent: PropTypes.any,\n        commentingTooltipComponent: PropTypes.any,\n        onDuplicateEntities: PropTypes.func,\n        navigating: PropTypes.bool,\n        scroll: PropTypes.object,\n        thumbsView: PropTypes.bool,\n        registerDOMNode: PropTypes.bool,\n        pageUpgradeComponent: PropTypes.any,\n        align: PropTypes.oneOf(['center', 'left']),\n        calloutsComponent: PropTypes.any,\n        onToggleCallout: PropTypes.func,\n        appContentEl: PropTypes.object,\n    };\n\n    constructor(props) {\n        super(props);\n\n        this._onEntityMouseDown = this._onEntityMouseDown.bind(this);\n        this._onEntityMouseUp = this._onEntityMouseUp.bind(this);\n        this._onMouseDown = this._createHandler('onMouseDown');\n        this._onMouseMove = this._createHandler('onMouseMove');\n        this._onMouseUp = this._createHandler('onMouseUp');\n        this._onMouseLeave = this._createHandler('onMouseLeave');\n        this.updateLoop = new UpdateLoop();\n\n        this.exitCurrentMode();\n    }\n\n    render() {\n        const {editorState, readOnly, navigating, currentSelection, align} = this.props;\n        const editorClassNames = cx(\n            'InfographicEditor',\n            readOnly && '__read-only',\n            navigating && '__navigating',\n        );\n\n        return (\n            <StyledInfographicEditor\n                ref={e => this._element = e}\n                className={editorClassNames}\n                onMouseDown={this._onMouseDown}\n                onMouseMove={this._onMouseMove}\n                onMouseUp={this._onMouseUp}\n                onMouseLeave={this._onMouseLeave}\n                onDragStart={noop}\n                align={align}\n            >\n                <CustomFontLoader fonts={editorState.customFonts}/>\n                <InfographicContents\n                    key=\"InfographicContents\"\n                    accessibleReadingOrder={this.props.accessibleReadingOrder}\n                    readOnly={readOnly}\n                    editorState={editorState}\n                    scaleX={this.props.scaleX}\n                    scaleY={this.props.scaleY}\n                    onEntityMouseDown={this._onEntityMouseDown}\n                    onEntityMouseUp={this._onEntityMouseUp}\n                    groupsInEditMode={this.props.groupsInEditMode}\n                    multiSelectionOverlayComponent={this.props.multiSelectionOverlayComponent}\n                    entityOverlayComponent={this.props.entityOverlayComponent}\n                    connectorEntityOverlays={this.props.connectorEntityOverlays}\n                    entityBoundingBoxComponent={this.props.entityBoundingBoxComponent}\n                    multiSelectionActive={this.props.multiSelectionActive}\n                    renderItemContentsFn={this.props.renderItemContentsFn}\n                    blockWrapperComponent={this.props.blockWrapperComponent}\n                    blockOverlayComponent={this.props.blockOverlayComponent}\n                    transparentBackground={this.props.transparentBackground}\n                    currentSelection={currentSelection}\n                    onSelectionChange={this.props.onSelectionChange}\n                    initialBoundingBox={this.props.initialBoundingBox}\n                    guideSettings={this.props.guideSettings}\n                    commentComponent={this.props.commentComponent}\n                    commentingTooltipComponent={this.props.commentingTooltipComponent}\n                    commentingIsAvailable={this.props.commentingIsAvailable}\n                    onAddComment={this.props.onAddComment}\n                    thumbsView={this.props.thumbsView}\n                    registerDOMNode={this.props.registerDOMNode}\n                    pageUpgradeComponent={this.props.pageUpgradeComponent}\n                    calloutsComponent={this.props.calloutsComponent}\n                />\n                <MouseSelectionOverlay/>\n            </StyledInfographicEditor>\n        );\n    }\n\n    update(editorState, options = {}) {\n        if (this.props.onChange) {\n            this.props.onChange(editorState, options);\n        }\n    }\n\n    updateSelection(selectionState) {\n        if (this.props.onSelectionChange) {\n            this.props.onSelectionChange(selectionState);\n        }\n    }\n\n    updateSelectionBoundBox(rect) {\n        if (this.props.onSelectionBoundBoxChange) {\n            this.props.onSelectionBoundBoxChange(rect);\n        }\n    }\n\n    duplicateEntities(editorState, entities, page, options) {\n        if (this.props.onDuplicateEntities) {\n            return this.props.onDuplicateEntities(editorState, entities, page, options);\n        }\n    }\n\n    setMode(mode) {\n        this._handler = handlerMap[mode];\n    }\n\n    exitCurrentMode() {\n        this.setMode('edit');\n    }\n\n    _onEntityMouseDown(entity, e) {\n        e.stopPropagation();\n        const selectedEntities = entity ? entity.getKey() : this.props.currentSelection.getEntities().join('-');\n        e.target = allHandlers.handlerForKey('select_entity', selectedEntities);\n        this._onMouseDown(e);\n    }\n\n    _onEntityMouseUp(entity, e) {\n        e.stopPropagation();\n        const selectedEntities = entity ? entity.getKey() : this.props.currentSelection.getEntities().join('-');\n        e.target = allHandlers.handlerForKey('select_entity', selectedEntities);\n        this._onMouseUp(e);\n    }\n\n    _createHandler(eventName) {\n        return e => {\n            if (this.props.readOnly && eventName === 'onMouseDown') {\n                const handler = allHandlers.handlerForElement(e.target);\n                if (handler && handler.type === 'select_block') {\n                    // On mobile devices tooltips are showed on-touch. As on-mouse-leave which is handled\n                    // in TooltipWrapper for hiding tooltips is not available for mobile devices,\n                    // mouse-down on empty space is handled to hide possibly visible tooltip.\n                    getTooltip().hide();\n                }\n            }\n            if (!this.props.readOnly) {\n                const method = this._handler && this._handler[eventName];\n                method && method.call(this, e);\n            }\n        };\n    }\n\n    get shouldShowObjectGuides() {\n        return this.props.guideSettings && !this.props.guideSettings.showGuides && this.props.guideSettings.snapObjects;\n    }\n}\n","import {ReduceStore} from 'flux/utils';\nimport {Map} from 'immutable';\n\nimport Dispatcher from '../../app/dispatcher';\n\nimport {\n    INFOGRAPHIC_FOOTER_SELECT,\n    INFOGRAPHIC_FOOTER_TOGGLE_FONT_SIZE,\n    INFOGRAPHIC_FOOTER_SHOW_SHARE_DIALOG,\n    INFOGRAPHIC_SET_FOOTER_SHARE_DIALOG_PAGE,\n} from './constants';\nimport {SELECTION_STATE_CHANGE} from '../../app/freelayout_editor/constants/EditorConstants';\n\nclass InfographicFooterStore extends ReduceStore {\n    getInitialState() {\n        return Map({\n            fontSizeOpen: false,\n            selected: false,\n            visibleShareDialog: false,\n            shareDialogPage: 0,\n        });\n    }\n\n    get selected() {\n        return this.getState().get('selected');\n    }\n\n    get fontSizeOpen() {\n        return this.getState().get('fontSizeOpen');\n    }\n\n    get visibleShareDialog() {\n        return this.getState().get('visibleShareDialog');\n    }\n\n    get shareDialogPage() {\n        return this.getState().get('shareDialogPage');\n    }\n\n    reduce(state, action) {\n        switch (action.type) {\n            case INFOGRAPHIC_FOOTER_SELECT:\n                return state.set('selected', true);\n            case SELECTION_STATE_CHANGE:\n                return state.set('selected', false);\n            case INFOGRAPHIC_FOOTER_TOGGLE_FONT_SIZE:\n                return state.set('fontSizeOpen', !state.get('fontSizeOpen'));\n            case INFOGRAPHIC_FOOTER_SHOW_SHARE_DIALOG:\n                return state.set('visibleShareDialog', action.visibleShareDialog);\n            case INFOGRAPHIC_SET_FOOTER_SHARE_DIALOG_PAGE:\n                return state.set('shareDialogPage', action.shareDialogPage);\n            default:\n                return state;\n        }\n    }\n}\n\nexport default new InfographicFooterStore(Dispatcher);\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.hasInstance` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.hasinstance\ndefineWellKnownSymbol('hasInstance');\n","import {lineBounds} from './util/bounds';\n\nfunction formatHashKey(matchKey) {\n    return `${matchKey.direction}-${matchKey.coordinate}`;\n}\n\nclass Storage {\n    constructor() {\n        this._hash = {};\n    }\n\n    add(key, match) {\n        const hashKey = formatHashKey(key);\n        if (!(hashKey in this._hash)) {\n            this._hash[hashKey] = [];\n        }\n        this._hash[hashKey].push(match);\n    }\n\n    get(key) {\n        const hashKey = formatHashKey(key);\n        if (hashKey in this._hash) {\n            return this._hash[hashKey];\n        }\n        return [];\n    }\n\n    size() {\n        return Object.keys(this._hash).length;\n    }\n}\n\nfunction slotValue(value, threshold) {\n    if (threshold == 0) {\n        return value;\n    }\n    return value - (value % threshold);\n}\n\nexport class EntityIndex {\n    constructor(entities, excludeEntityKeys, threshold) {\n        this._threshold = threshold;\n        this._storage = new Storage();\n\n        // Add guides for each entity\n        for (const entity of entities) {\n            if (entity.getCalloutKey()) {\n                continue;\n            }\n            const entityKey = entity.getKey();\n            if (excludeEntityKeys.contains(entityKey)) continue;\n            let bounds;\n            if (entity.isLine()) {\n                bounds = lineBounds(entity.rectangle(), entity.transform.rotate);\n            } else {\n                bounds = entity.bounds();\n            }\n            this.addRect(bounds);\n        }\n    }\n\n    addRect(bounds) {\n        const {top, left, width, height} = bounds;\n        const right = left + width;\n        const bottom = top + height;\n        const xMiddle = Math.round(left + width / 2);\n        const yMiddle = Math.round(top + height / 2);\n        [\n            {coordinate: left, direction: 'vertical', edge: 'left'},\n            {coordinate: right, direction: 'vertical', edge: 'right'},\n            {coordinate: xMiddle, direction: 'vertical', edge: 'vertical-center'},\n            {coordinate: xMiddle, direction: 'vertical-center', edge: 'vertical-center'},\n            {coordinate: top, direction: 'horizontal', edge: 'top'},\n            {coordinate: bottom, direction: 'horizontal', edge: 'bottom'},\n            {coordinate: yMiddle, direction: 'horizontal', edge: 'horizontal-center'},\n            {coordinate: yMiddle, direction: 'horizontal-center', edge: 'horizontal-center'},\n        ].forEach(item => {\n            const {coordinate, direction, edge} = item;\n            this._storage.add({coordinate: slotValue(coordinate, this._threshold), direction}, {\n                bounds,\n                direction,\n                edge,\n                coordinate,\n            });\n            if (coordinate % this._threshold === 0) {\n                this._storage.add({coordinate: slotValue(coordinate - this._threshold, this._threshold), direction}, {\n                    bounds,\n                    direction,\n                    edge,\n                    coordinate,\n                });\n            }\n        });\n    }\n\n    queryPoint({x, y}, threshold = this._threshold) {\n        if (threshold > this._threshold) {\n            throw new Error(`Cannot query index with threshold '${threshold}'. Value must be less or equal than the one index was created with (${this._threshold}).`);\n        }\n        const hits = [\n            ...this._storage.get({direction: 'vertical', coordinate: slotValue(x - this._threshold, this._threshold)}),\n            ...this._storage.get({direction: 'vertical', coordinate: slotValue(x, this._threshold)}),\n            ...this._storage.get({direction: 'vertical', coordinate: slotValue(x + this._threshold, this._threshold)}),\n\n            ...this._storage.get({direction: 'horizontal', coordinate: slotValue(y - this._threshold, this._threshold)}),\n            ...this._storage.get({direction: 'horizontal', coordinate: slotValue(y, this._threshold)}),\n            ...this._storage.get({direction: 'horizontal', coordinate: slotValue(y + this._threshold, this._threshold)}),\n        ];\n\n        const matches = hits.map(h => {\n            if (h.direction === 'vertical' && Math.abs(h.coordinate - x) < threshold) return {...h, delta: x - h.coordinate};\n            if (h.direction === 'horizontal' && Math.abs(h.coordinate - y) < threshold) return {...h, delta: y - h.coordinate};\n            return null;\n        }).filter(m => !!m);\n        return matches;\n    }\n\n    query({top, left, width, height}, threshold = this._threshold) {\n        if (threshold > this._threshold) {\n            throw new Error(`Cannot query index with threshold '${threshold}'. Value must be less or equal than the one index was created with (${this._threshold}).`);\n        }\n        const right = left + width;\n        const bottom = top + height;\n        const xMiddle = Math.round(left + width / 2);\n        const yMiddle = Math.round(top + height / 2);\n\n        const matchKeys = [\n            // Since we do not need exact match only, we need to check neighboring indexes as well.\n            {key: {direction: 'vertical', coordinate: slotValue(left - this._threshold, this._threshold)}, edge: 'left'},\n            {key: {direction: 'vertical', coordinate: slotValue(left, this._threshold)}, edge: 'left'},\n            {key: {direction: 'vertical', coordinate: slotValue(left + this._threshold, this._threshold)}, edge: 'left'},\n\n            {key: {direction: 'vertical', coordinate: slotValue(right - this._threshold, this._threshold)}, edge: 'right'},\n            {key: {direction: 'vertical', coordinate: slotValue(right, this._threshold)}, edge: 'right'},\n            {key: {direction: 'vertical', coordinate: slotValue(right + this._threshold, this._threshold)}, edge: 'right'},\n\n            {key: {direction: 'vertical-center', coordinate: slotValue(xMiddle - this._threshold, this._threshold)}, edge: 'vertical-center'},\n            {key: {direction: 'vertical-center', coordinate: slotValue(xMiddle, this._threshold)}, edge: 'vertical-center'},\n            {key: {direction: 'vertical-center', coordinate: slotValue(xMiddle + this._threshold, this._threshold)}, edge: 'vertical-center'},\n\n            {key: {direction: 'horizontal', coordinate: slotValue(top - this._threshold, this._threshold)}, edge: 'top'},\n            {key: {direction: 'horizontal', coordinate: slotValue(top, this._threshold)}, edge: 'top'},\n            {key: {direction: 'horizontal', coordinate: slotValue(top + this._threshold, this._threshold)}, edge: 'top'},\n\n            {key: {direction: 'horizontal', coordinate: slotValue(bottom - this._threshold, this._threshold)}, edge: 'bottom'},\n            {key: {direction: 'horizontal', coordinate: slotValue(bottom, this._threshold)}, edge: 'bottom'},\n            {key: {direction: 'horizontal', coordinate: slotValue(bottom + this._threshold, this._threshold)}, edge: 'bottom'},\n\n            {key: {direction: 'horizontal-center', coordinate: slotValue(yMiddle - this._threshold, this._threshold)}, edge: 'horizontal-center'},\n            {key: {direction: 'horizontal-center', coordinate: slotValue(yMiddle, this._threshold)}, edge: 'horizontal-center'},\n            {key: {direction: 'horizontal-center', coordinate: slotValue(yMiddle + this._threshold, this._threshold)}, edge: 'horizontal-center'},\n        ];\n\n        const matches = [];\n        for (const matchKey of matchKeys) {\n            const hits = this._storage.get(matchKey.key);\n            if (hits.length) {\n                Array.prototype.push.apply(matches, hits.map(hit => {\n                    // Because above we increased threshold 3 times, we need to filter values out using requested threshold.\n                    if (matchKey.edge === 'left' && Math.abs(hit.coordinate - left) < threshold) return {...hit, rectEdge: matchKey.edge, delta: left - hit.coordinate};\n                    if (matchKey.edge === 'right' && Math.abs(hit.coordinate - right) < threshold) return {...hit, rectEdge: matchKey.edge, delta: right - hit.coordinate};\n                    if (matchKey.edge === 'top' && Math.abs(hit.coordinate - top) < threshold) return {...hit, rectEdge: matchKey.edge, delta: top - hit.coordinate};\n                    if (matchKey.edge === 'bottom' && Math.abs(hit.coordinate - bottom) < threshold) return {...hit, rectEdge: matchKey.edge, delta: bottom - hit.coordinate};\n                    if (matchKey.edge === 'vertical-center' && Math.abs(hit.coordinate - xMiddle) < threshold) return {...hit, rectEdge: matchKey.edge, delta: xMiddle - hit.coordinate};\n                    if (matchKey.edge === 'horizontal-center' && Math.abs(hit.coordinate - yMiddle) < threshold) return {...hit, rectEdge: matchKey.edge, delta: yMiddle - hit.coordinate};\n                    return null;\n                }).filter(hit => !!hit));\n            }\n        }\n\n        return matches;\n    }\n}\n\nexport class GridIndex {\n    constructor(guides, baselines) {\n        this._guides = guides;\n        this._baselines = baselines;\n    }\n\n    queryPoint(point, threshold) {\n        const matches = [];\n        for (const y of this._baselines) {\n            if (this.shouldSnapValue(point.y, y, threshold)) {\n                matches.push({direction: 'horizontal', coordinate: y, delta: point.y - y});\n                break;\n            }\n        }\n        for (const x of this._guides) {\n            if (this.shouldSnapValue(point.x, x, threshold)) {\n                matches.push({direction: 'vertical', coordinate: x, delta: point.x - x});\n                break;\n            }\n        }\n        return matches;\n    }\n\n    shouldSnapValue(value, snapValue, threshold) {\n        return value >= snapValue - threshold && value <= snapValue + threshold;\n    }\n\n    query({top, left, width}, threshold) {\n        // Snap top\n        const matches = [];\n        for (const y of this._baselines) {\n            if (this.shouldSnapValue(top, y, threshold)) {\n                matches.push({direction: 'horizontal', coordinate: y, delta: top - y});\n                break;\n            }\n        }\n\n        // Snap to vertical lines edge.\n        for (const x of this._guides) {\n            if (this.shouldSnapValue(left, x, threshold)) {\n                matches.push({direction: 'vertical', coordinate: x, delta: left - x});\n                break;\n            }\n            if (this.shouldSnapValue(left + width, x, threshold)) {\n                matches.push({direction: 'vertical', coordinate: x, delta: left + width - x});\n                break;\n            }\n        }\n        return matches;\n    }\n}\n","var $ = require('../internals/export');\nvar FREEZING = require('../internals/freezing');\nvar fails = require('../internals/fails');\nvar isObject = require('../internals/is-object');\nvar onFreeze = require('../internals/internal-metadata').onFreeze;\n\nvar nativeFreeze = Object.freeze;\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeFreeze(1); });\n\n// `Object.freeze` method\n// https://tc39.github.io/ecma262/#sec-object.freeze\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !FREEZING }, {\n  freeze: function freeze(it) {\n    return nativeFreeze && isObject(it) ? nativeFreeze(onFreeze(it)) : it;\n  }\n});\n","import {Map} from 'immutable';\n\nimport config from '../../../config';\n\nconst ABSOLUTE_AND_BLOB_URL_REGEX = /^(blob:)?(?:[a-z]+:)?\\/\\//i;\n\nexport default class Assets {\n    static createFromObject(json) {\n        return new Assets(Map(json));\n    }\n\n    constructor(immutable) {\n        this._immutable = immutable;\n    }\n\n    getURL(assetId) {\n        const url = this._immutable.get(assetId);\n        if (!url || !config.assetsCDN || ABSOLUTE_AND_BLOB_URL_REGEX.test(url)) {\n            return url;\n        }\n        return `${config.assetsCDN}${url}`;\n    }\n\n    /**\n     * @param {Immutable.Map|Object.<string, string>} assets\n     * @returns {Assets}\n     */\n    add(assets) {\n        const updatedMap = this._immutable.withMutations(mutable => {\n            Map(assets).forEach((url, key) => {\n                if (url.startsWith(config.assetsCDN)) {\n                    // store relative to CDN\n                    mutable.set(key, url.substring(config.assetsCDN.length));\n                } else {\n                    mutable.set(key, url);\n                }\n            });\n        });\n        return new Assets(updatedMap);\n    }\n\n    /**\n     * @param {string[]} assetIds\n     * @returns {Assets}\n     */\n    remove(assetIds) {\n        return new Assets(this._immutable.filter((_, key) => !assetIds.includes(key)));\n    }\n\n    filter(predicate) {\n        return new Assets(this._immutable.filter(predicate));\n    }\n\n    toJS() {\n        return this._immutable.toJS();\n    }\n\n    toJSON() {\n        return this._immutable.toJSON();\n    }\n}\n","module.exports = function(originalModule) {\n\tif (!originalModule.webpackPolyfill) {\n\t\tvar module = Object.create(originalModule);\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"exports\", {\n\t\t\tenumerable: true\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n","export const PROJECT_SETTINGS_SHOW_CUSTOM_PAGE_SIZE = 'PROJECT_SETTINGS_SHOW_CUSTOM_PAGE_SIZE';\nexport const PROJECT_SETTINGS_HIDE_CUSTOM_PAGE_SIZE = 'PROJECT_SETTINGS_HIDE_CUSTOM_PAGE_SIZE';\nexport const PROJECT_SETTINGS_SET_ACTIVE_SECTION = 'PROJECT_SETTINGS_SET_ACTIVE_SECTION';\n\n/* Section keys */\nexport const PROJECT_SETTINGS_FOOTER_SECTION = 'footer';\nexport const PROJECT_SETTINGS_PROJECT_VIEW_EXPERIENCE_SECTION = 'projectViewExperience';\nexport const PROJECT_SETTINGS_TRANSITIONS_SECTION = 'transitions';\nexport const PROJECT_SETTINGS_ACCESSIBILITY_SECTION = 'accessibility';\nexport const PROJECT_SETTINGS_NO_SECTION = null;\n","import Immutable from 'immutable';\n\nvar Element = Immutable.Record({\n    id: undefined,\n    title: '',\n    type: undefined, //'element', 'child'\n    checked: undefined,\n    checkType: undefined, //'check', 'minus'\n    children: Immutable.List(),\n}, 'OutlineElement');\n\nexport default Element;\n","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar ArrayIteratorMethods = require('../modules/es.array.iterator');\nvar hide = require('../internals/hide');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar ArrayValues = ArrayIteratorMethods.values;\n\nfor (var COLLECTION_NAME in DOMIterables) {\n  var Collection = global[COLLECTION_NAME];\n  var CollectionPrototype = Collection && Collection.prototype;\n  if (CollectionPrototype) {\n    // some Chrome versions have non-configurable methods on DOMTokenList\n    if (CollectionPrototype[ITERATOR] !== ArrayValues) try {\n      hide(CollectionPrototype, ITERATOR, ArrayValues);\n    } catch (error) {\n      CollectionPrototype[ITERATOR] = ArrayValues;\n    }\n    if (!CollectionPrototype[TO_STRING_TAG]) hide(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME);\n    if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) {\n      // some Chrome versions have non-configurable methods on DOMTokenList\n      if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try {\n        hide(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]);\n      } catch (error) {\n        CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME];\n      }\n    }\n  }\n}\n","\nexport default function loadImage(url, anonymous = false) {\n    return new Promise((resolve, reject) => {\n        const image = new Image();\n        // To avoid tainting canvas\n        // https://developer.mozilla.org/en-US/docs/Web/HTML/CORS_enabled_image\n        // Needs images to be served with CORS header\n        if (anonymous) {\n            image.crossOrigin = 'anonymous';\n        }\n        image.onload = function() {\n            resolve(image);\n        };\n        image.onerror = reject;\n        image.src = url;\n    });\n}\n","import i18n from 'i18next';\nimport PropTypes from 'prop-types';\nimport React, {Component} from 'react';\nimport cx from 'classnames';\nimport {Container} from 'flux/utils';\nimport styled from 'styled-components';\n\nimport style from './LinkPreview.css';\n\nimport linkIsSafe from '../linkIsSafe';\nimport {pageNumberByKey} from '../pageNumberByKey';\nimport EditorStateStore from '../../../stores/EditorStateStore';\n\nconst LinkIcon = styled.span`\n    display: inline-block;\n    width: 11px;\n    height: 11px;\n    margin-right: 6px;\n    background: url(${require('./icon-link.svg')}) center no-repeat;\n    background-size: 11px;\n`;\n\nclass LinkPreview extends Component {\n    static propTypes = {\n        children: PropTypes.any,\n        standalone: PropTypes.bool,\n        url: PropTypes.string.isRequired,\n        onClick: PropTypes.func,\n    };\n\n    static getStores() {\n        return [\n            EditorStateStore,\n        ];\n    }\n\n    static calculateState(prevState, props) {\n        const {url} = props;\n        const linkToPage = pageNumberByKey(url, EditorStateStore.editorState);\n        if (linkToPage === -1) {\n            return {\n                noLinkPresent: true,\n            };\n        } else if (linkToPage === undefined) {\n            return {\n                href: linkIsSafe(url) && url,\n                pageLink: false,\n            };\n        }\n        const text = i18n.t('app.chart_settings.columns_menu.url.page_n', {number: linkToPage + 1});\n        return {\n            pageLink: true,\n            pageNumber: linkToPage,\n            text: !props.standalone && text,\n        };\n    }\n\n    state = {}\n\n    _onClick = (e) => {\n        const pageNumber = parseInt(e.currentTarget.getAttribute('data-page-number'), 10);\n        this.props.onClick(pageNumber);\n    }\n\n    render() {\n        const {standalone} = this.props;\n        let content = null;\n        if (this.state.href) {\n            const {href} = this.state;\n            const linkProps = {\n                href,\n            };\n            content = (\n                <div contentEditable={false} className={standalone ? style.inline : style.block}>\n                    <a {...linkProps} className={cx(style.link)} rel=\"nofollow noopener noreferrer\" target=\"_blank\">\n                        <LinkIcon/>\n                        {!standalone && <span className={style.linkContent}>{href}</span>}\n                    </a>\n                </div>);\n        } else if (this.state.pageLink) {\n            content = (\n                <div contentEditable={false} className={standalone ? style.inline : style.block}>\n                    <a data-page-number={this.state.pageNumber} className={cx(style.link)} onClick={this._onClick}><LinkIcon/>{this.state.text}</a>\n                </div>);\n        }\n        if (standalone) {\n            return content;\n        }\n        return (\n            <div className={style.container}>\n                {this.props.children}\n                {content}\n            </div>\n        );\n    }\n}\n\nexport default Container.create(LinkPreview, {withProps: true});\n","\nvar content = require(\"!!../../../node_modules/css-loader/index.js??ref--5-1!./WebProfileView.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../node_modules/css-loader/index.js??ref--5-1!./WebProfileView.css\", function() {\n\t\tvar newContent = require(\"!!../../../node_modules/css-loader/index.js??ref--5-1!./WebProfileView.css\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","import {Record, fromJS} from 'immutable';\nimport {ReduceStore} from 'flux/utils';\n\nimport Dispatcher from '../../dispatcher';\nimport Constants from '../../constants';\n\nconst State = Record({\n    contents: undefined,\n});\n\nconst Color = Record({\n    template: false,\n    value: undefined,\n});\n\nclass BrandStore extends ReduceStore {\n    getInitialState() {\n        return State();\n    }\n\n    reduce(state, action) {\n        switch (action.type) {\n            case Constants.INFOGRAPHIC_LOADED: {\n                if (action.cached) {\n                    return state;\n                }\n                const model = action.data;\n                const branding = model.get('branding');\n                return state.set('contents', fromJS(branding, function(key, value) {\n                    //Currently we convert colors only here, therefore\n                    //having a Number key indicated this is an index of\n                    //the `colors` array\n                    if (typeof key === 'number') {\n                        return new Color(value);\n                    }\n                    return value;\n                }));\n            }\n            default: {\n                return state;\n            }\n        }\n    }\n\n    get currentBrandset() {\n        return this.getState().contents;\n    }\n}\n\nexport default new BrandStore(Dispatcher);\n","import PropTypes from 'prop-types';\nimport React, {PureComponent} from 'react';\nimport invariant from 'invariant';\n\nimport Image, {initialPropsForData as imageInitialProps} from './Image.react';\nimport Icon, {initialPropsForData as iconInitialProps} from './Icon.react';\nimport {calculateClippedRectangle} from '../../../../../components/FreeLayoutEditor/util/clippedEntity';\nimport Link from '../Link/Link.react';\nimport LinkPreview from '../Link/LinkPreview.react';\nimport {engagementEvent} from '../../../../../components/EngagementAnalytics/EngagementAnalytics.actions';\n\n\nconst subTypeMap = {\n    image: Image,\n    atlasImage: Image,\n    icon: Icon,\n};\n\nexport async function initialPropsForData(data, options) {\n    if (data.subType === 'icon') {\n        return iconInitialProps(data, options);\n    }\n    return imageInitialProps(data, options);\n}\n\nexport default class ImageComponent extends PureComponent {\n    static propTypes = {\n        inEditMode: PropTypes.bool,\n        entity: PropTypes.shape({\n            getProperty: PropTypes.func.isRequired,\n            getKey: PropTypes.func.isRequired,\n            getWidth: PropTypes.func.isRequired,\n            getHeight: PropTypes.func.isRequired,\n            getTransform: PropTypes.func.isRequired,\n            getFilters: PropTypes.func.isRequired,\n            getCallout: PropTypes.func.isRequired,\n            getAccessibility: PropTypes.func.isRequired,\n        }).isRequired,\n        design: PropTypes.any.isRequired,\n        assets: PropTypes.shape({getURL: PropTypes.func.isRequired}),\n        onLinkPreviewClick: PropTypes.func,\n        scaleX: PropTypes.number.isRequired,\n        scaleY: PropTypes.number.isRequired,\n    };\n\n    state = {}\n\n    static getDerivedStateFromProps(props) {\n        const {entity} = props;\n        const link = entity.getProperty('link');\n\n        let linkProps;\n        let component;\n        const wrapperSize = {};\n\n        if (!props.inEditMode) {\n            const clip = calculateClippedRectangle(entity);\n            wrapperSize.width = clip.width * props.scaleX;\n            wrapperSize.height = clip.height * props.scaleY;\n\n            if (link) {\n                component = Link;\n                linkProps = {\n                    onClick: function() {\n                        engagementEvent(entity.getKey(), 'link', 'click');\n                    },\n                    url: link,\n                    ...wrapperSize,\n                };\n            }\n        } else if (link) {\n            component = LinkPreview;\n            linkProps = {\n                onClick: props.onLinkPreviewClick,\n                url: link,\n            };\n        }\n\n        return {\n            wrapperSize,\n            LinkComponent: component,\n            linkProps,\n        };\n    }\n\n    render() {\n        const {entity, design, assets, scaleX, scaleY, inEditMode} = this.props;\n        const url = assets.getURL(entity.getProperty('assetId'));\n        const subType = entity.getProperty('subType') || 'image';\n        const Component = subTypeMap[subType];\n        invariant(!!Component, `Unknown IMAGE type '${subType}'`);\n\n        if (Component) {\n            const component = (\n                <Component\n                    id={entity.getKey()}\n                    readOnly={!inEditMode}\n                    url={url}\n                    opacity={entity.getProperty('opacity')}\n                    mask={entity.getProperty('mask')}\n                    crop={entity.getProperty('crop')}\n                    path={entity.getProperty('path')}\n                    fill={entity.getProperty('fill', design)}\n                    pathWidth={entity.getProperty('width')}\n                    pathHeight={entity.getProperty('height')}\n                    width={entity.getWidth()}\n                    height={entity.getHeight()}\n                    transform={entity.getTransform()}\n                    tooltipText={entity.getProperty('tooltipText')}\n                    scaleX={scaleX}\n                    scaleY={scaleY}\n                    filters={entity.getFilters()}\n                    accessibility={inEditMode ? undefined : entity.getAccessibility()}\n                    callout={inEditMode ? undefined : entity.getCallout()}\n                />\n            );\n\n            if (this.state.LinkComponent) {\n                const {LinkComponent, linkProps} = this.state;\n                return (<LinkComponent {...linkProps}>{component}</LinkComponent>);\n            } else if (this.state.wrapperSize.width && this.state.wrapperSize.height) {\n                return <div style={this.state.wrapperSize}>{component}</div>;\n            }\n            return component;\n        }\n        return null;\n    }\n}\n","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".jwNkqr4ReZ-ikyXjzXPoh {\\n    margin: 25px 0 10px;\\n    color: #656565;\\n    font-size: 29px;\\n    font-weight: 300;\\n    line-height: 34px;\\n    text-align: center;\\n}\\n._3bBH8kn-jhU12KpbVdPgt_ {\\n    color: #656565;\\n    font-size: 15px;\\n    font-weight: 500;\\n    line-height: 21px;\\n    text-align: center;\\n}\\n._185Asxxa0RIyBM3o2OhKVC {\\n    font-size: 15px;\\n    line-height: 22px;\\n    margin-bottom: 35px;\\n    color: #656565;\\n    text-align: center;\\n}\\n.V-8pb14CorNJWbTyqM9lR::before {\\n    display: block;\\n    margin: 15px 0 25px;\\n    font-size: 63px;\\n    color: #ebebee;\\n}\\n._1ZBxQSWLVZcjzJPQvKN3pN {\\n    font-size: 15px;\\n    line-height: 22px;\\n    color: #c32f2f;\\n    text-align: center;\\n}\\n._2-mU0Yj9zDYHvtN0zaRrXH {\\n    margin: 0 10px 30px;\\n}\\n.fk4ay-Amxt8bL58Yv_ytq {\\n    position: static;\\n    margin: 50px auto;\\n}\\n\", \"\"]);\n\n// exports\nexports.locals = {\n\t\"heading\": \"jwNkqr4ReZ-ikyXjzXPoh\",\n\t\"subheading\": \"_3bBH8kn-jhU12KpbVdPgt_\",\n\t\"resultsCount\": \"_185Asxxa0RIyBM3o2OhKVC\",\n\t\"noResults\": \"V-8pb14CorNJWbTyqM9lR\",\n\t\"error\": \"_1ZBxQSWLVZcjzJPQvKN3pN\",\n\t\"infographic\": \"_2-mU0Yj9zDYHvtN0zaRrXH\",\n\t\"spinner\": \"fk4ay-Amxt8bL58Yv_ytq\"\n};","// `Symbol.prototype.description` getter\n// https://tc39.github.io/ecma262/#sec-symbol.prototype.description\n'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar has = require('../internals/has');\nvar isObject = require('../internals/is-object');\nvar defineProperty = require('../internals/object-define-property').f;\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\n\nvar NativeSymbol = global.Symbol;\n\nif (DESCRIPTORS && typeof NativeSymbol == 'function' && (!('description' in NativeSymbol.prototype) ||\n  // Safari 12 bug\n  NativeSymbol().description !== undefined\n)) {\n  var EmptyStringDescriptionStore = {};\n  // wrap Symbol constructor for correct work with undefined description\n  var SymbolWrapper = function Symbol() {\n    var description = arguments.length < 1 || arguments[0] === undefined ? undefined : String(arguments[0]);\n    var result = this instanceof SymbolWrapper\n      ? new NativeSymbol(description)\n      // in Edge 13, String(Symbol(undefined)) === 'Symbol(undefined)'\n      : description === undefined ? NativeSymbol() : NativeSymbol(description);\n    if (description === '') EmptyStringDescriptionStore[result] = true;\n    return result;\n  };\n  copyConstructorProperties(SymbolWrapper, NativeSymbol);\n  var symbolPrototype = SymbolWrapper.prototype = NativeSymbol.prototype;\n  symbolPrototype.constructor = SymbolWrapper;\n\n  var symbolToString = symbolPrototype.toString;\n  var native = String(NativeSymbol('test')) == 'Symbol(test)';\n  var regexp = /^Symbol\\((.*)\\)[^)]+$/;\n  defineProperty(symbolPrototype, 'description', {\n    configurable: true,\n    get: function description() {\n      var symbol = isObject(this) ? this.valueOf() : this;\n      var string = symbolToString.call(symbol);\n      if (has(EmptyStringDescriptionStore, symbol)) return '';\n      var desc = native ? string.slice(7, -1) : string.replace(regexp, '$1');\n      return desc === '' ? undefined : desc;\n    }\n  });\n\n  $({ global: true, forced: true }, {\n    Symbol: SymbolWrapper\n  });\n}\n","var fails = require('../internals/fails');\nvar whitespaces = require('../internals/whitespaces');\n\nvar non = '\\u200B\\u0085\\u180E';\n\n// check that a method works with the correct list\n// of whitespaces and has a correct name\nmodule.exports = function (METHOD_NAME) {\n  return fails(function () {\n    return !!whitespaces[METHOD_NAME]() || non[METHOD_NAME]() != non || whitespaces[METHOD_NAME].name !== METHOD_NAME;\n  });\n};\n","import React, {PureComponent} from 'react';\nimport PropTypes from 'prop-types';\n\nimport {Previews} from '../../../app/freelayout_editor/types';\nimport {flattenBlockEntities} from '../../../app/freelayout_editor/components/contents/Group/utils/flatten';\n\nimport ContentItem from './ContentItem';\n\nexport class ContentBlockItems extends PureComponent {\n    static propTypes = {\n        items: PropTypes.any.isRequired,\n        flatEntitiesKeys: PropTypes.any,\n        readOnly: PropTypes.bool,\n        inEditMode: PropTypes.bool,\n        groupMode: PropTypes.bool,\n        block: PropTypes.any.isRequired,\n        design: PropTypes.any.isRequired,\n        assets: PropTypes.shape({getURL: PropTypes.func.isRequired}),\n        scaleX: PropTypes.number,\n        scaleY: PropTypes.number,\n        commenting: PropTypes.bool,\n        commentingIsAvailable: PropTypes.bool,\n        groupsInEditMode: PropTypes.object,\n        blockGroupIsInEdit: PropTypes.bool,\n        addCommentMarker: PropTypes.func,\n        renderItemContentsFn: PropTypes.func,\n        onMouseDown: PropTypes.func,\n        onDoubleClick: PropTypes.func,\n        onMouseUp: PropTypes.func,\n        onMouseLeave: PropTypes.func,\n        onMouseHover: PropTypes.func,\n        pageSize: PropTypes.shape({\n            width: PropTypes.number.isRequired,\n            height: PropTypes.number.isRequired,\n        }),\n        preview: Previews,\n        inPreview: PropTypes.bool,\n    }\n\n    getEntityPreview = (entity) => this.props.preview && this.props.preview.get(entity.getKey());\n\n    isPreviewGroup = (entity) => entity.isGroup() && !!this.getEntityPreview(entity);\n\n    filterGroupPreviewItems = (items) => {\n        const previewedGroupChildren = flattenBlockEntities(\n            this.props.block,\n            items.filter(this.isPreviewGroup)\n        ).filterNot(this.isPreviewGroup);\n        return items.filter(entity => !previewedGroupChildren.has(entity.getKey()));\n    }\n\n    render() {\n        const {flatEntitiesKeys, items, block, preview, readOnly, ...itemProps} = this.props;\n\n        /**\n         * Because when previewing, we switch to <ReadOnlyGroup/> which actually renders its contents,\n         * must hide entities within those groups to avoid duplication\n         */\n        const renderItems = preview ? this.filterGroupPreviewItems(items) : items;\n\n        return renderItems\n            .map(entity => {\n                const key = entity.getKey();\n                const isVisibleInEditMode = flatEntitiesKeys ? flatEntitiesKeys.includes(key) : true;\n                if (this.isPreviewGroup(entity) || (this.props.readOnly && entity.isGroup() || entity.isConnector())) {\n                    itemProps.block = block;\n                }\n                return (\n                    <ContentItem\n                        key={key}\n                        entity={entity}\n                        isVisibleInEditMode={isVisibleInEditMode}\n                        stackingOrder={entity.stackingOrder || 0}\n                        preview={this.getEntityPreview(entity)}\n                        readOnly={readOnly || this.isPreviewGroup(entity)}\n                        {...itemProps} // do not pass props not necessary to avoid re-renders\n                    />\n                );\n            });\n    }\n}\n","\nvar content = require(\"!!../../../../../../node_modules/css-loader/index.js??ref--5-1!./TooltipWrapper.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../../../node_modules/css-loader/index.js??ref--5-1!./TooltipWrapper.css\", function() {\n\t\tvar newContent = require(\"!!../../../../../../node_modules/css-loader/index.js??ref--5-1!./TooltipWrapper.css\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","var has = require('../internals/has');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar ObjectPrototype = Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.github.io/ecma262/#sec-object.getprototypeof\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function (O) {\n  O = toObject(O);\n  if (has(O, IE_PROTO)) return O[IE_PROTO];\n  if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n    return O.constructor.prototype;\n  } return O instanceof Object ? ObjectPrototype : null;\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n  function F() { /* empty */ }\n  F.prototype.constructor = null;\n  return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","import React from 'react';\nimport invariant from 'invariant';\n\nimport elementForType from './contents/elementForType';\n\nexport default function renderItemContents(entity, design, extraProps, containerProps = {}) {\n    const entityType = entity.getType();\n    const Component = elementForType(entityType);\n    if (entity.isGroup()) {\n        if (!extraProps.renderItemContentsFn) {\n            extraProps.renderItemContentsFn = renderItemContents;\n            extraProps.readOnly = true;\n            extraProps.design = design;\n        }\n        extraProps.registerDOMNode = containerProps.registerDOMNode;\n        extraProps.onMouseHover = containerProps.onMouseHover;\n        extraProps.onMouseLeave = containerProps.onMouseLeave;\n        extraProps.onMouseDown = containerProps.onMouseDown;\n    }\n    if (Component) {\n        const {block, pageSize, assets} = containerProps;\n\n        return (\n            <Component\n                block={block}\n                entity={entity}\n                design={design}\n                assets={assets}\n                pageSize={pageSize}\n                readOnly\n                {...extraProps}\n            />\n        );\n    }\n    invariant(false, `Unknown content entity '${entityType}'`);\n    return null;\n}\n","// Unique ID creation requires a high quality random # generator.  In the\n// browser this is a little complicated due to unknown quality of Math.random()\n// and inconsistent support for the `crypto` API.  We do the best we can via\n// feature-detection\n\n// getRandomValues needs to be invoked in a context where \"this\" is a Crypto\n// implementation. Also, find the complete implementation of crypto on IE11.\nvar getRandomValues = (typeof(crypto) != 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto)) ||\n                      (typeof(msCrypto) != 'undefined' && typeof window.msCrypto.getRandomValues == 'function' && msCrypto.getRandomValues.bind(msCrypto));\n\nif (getRandomValues) {\n  // WHATWG crypto RNG - http://wiki.whatwg.org/wiki/Crypto\n  var rnds8 = new Uint8Array(16); // eslint-disable-line no-undef\n\n  module.exports = function whatwgRNG() {\n    getRandomValues(rnds8);\n    return rnds8;\n  };\n} else {\n  // Math.random()-based (RNG)\n  //\n  // If all else fails, use Math.random().  It's fast, but is of unspecified\n  // quality.\n  var rnds = new Array(16);\n\n  module.exports = function mathRNG() {\n    for (var i = 0, r; i < 16; i++) {\n      if ((i & 0x03) === 0) r = Math.random() * 0x100000000;\n      rnds[i] = r >>> ((i & 0x03) << 3) & 0xff;\n    }\n\n    return rnds;\n  };\n}\n","var $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar isObject = require('../internals/is-object');\n\nvar nativeIsFrozen = Object.isFrozen;\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeIsFrozen(1); });\n\n// `Object.isFrozen` method\n// https://tc39.github.io/ecma262/#sec-object.isfrozen\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, {\n  isFrozen: function isFrozen(it) {\n    return isObject(it) ? nativeIsFrozen ? nativeIsFrozen(it) : false : true;\n  }\n});\n","var $ = require('../internals/export');\nvar parseIntImplementation = require('../internals/parse-int');\n\n// `parseInt` method\n// https://tc39.github.io/ecma262/#sec-parseint-string-radix\n$({ global: true, forced: parseInt != parseIntImplementation }, {\n  parseInt: parseIntImplementation\n});\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar Iterators = require('../internals/iterators');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/define-iterator');\n\nvar ARRAY_ITERATOR = 'Array Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);\n\n// `Array.prototype.entries` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.entries\n// `Array.prototype.keys` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.keys\n// `Array.prototype.values` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.values\n// `Array.prototype[@@iterator]` method\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@iterator\n// `CreateArrayIterator` internal method\n// https://tc39.github.io/ecma262/#sec-createarrayiterator\nmodule.exports = defineIterator(Array, 'Array', function (iterated, kind) {\n  setInternalState(this, {\n    type: ARRAY_ITERATOR,\n    target: toIndexedObject(iterated), // target\n    index: 0,                          // next index\n    kind: kind                         // kind\n  });\n// `%ArrayIteratorPrototype%.next` method\n// https://tc39.github.io/ecma262/#sec-%arrayiteratorprototype%.next\n}, function () {\n  var state = getInternalState(this);\n  var target = state.target;\n  var kind = state.kind;\n  var index = state.index++;\n  if (!target || index >= target.length) {\n    state.target = undefined;\n    return { value: undefined, done: true };\n  }\n  if (kind == 'keys') return { value: index, done: false };\n  if (kind == 'values') return { value: target[index], done: false };\n  return { value: [index, target[index]], done: false };\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values%\n// https://tc39.github.io/ecma262/#sec-createunmappedargumentsobject\n// https://tc39.github.io/ecma262/#sec-createmappedargumentsobject\nIterators.Arguments = Iterators.Array;\n\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n","import _ from 'lodash';\n\nfunction ToolTip(opts) {\n    var defaults = {\n        parentElem: 'body',\n    };\n\n    this.opts = _.merge({}, defaults, opts);\n    this.init();\n}\n\nToolTip.arrowHalfHeight = 8; // half width of tooltip's arrow height\nToolTip.cursorOffset = 20; // how far from mouse\nToolTip.maxWidth = 600;\n\nfunction detectChrome() {\n    var isChromium = window.chrome;\n    var winNav = window.navigator;\n    var vendorName = winNav.vendor;\n    var isOpera = winNav.userAgent.indexOf('OPR') > -1;\n    var isIEedge = winNav.userAgent.indexOf('Edge') > -1;\n    var isIOSChrome = winNav.userAgent.match('CriOS');\n\n    if (isIOSChrome) {\n        return true;\n    } else if (isChromium !== null && isChromium !== undefined && vendorName === 'Google Inc.' && isOpera == false && isIEedge == false) {\n        return true;\n    }\n    return false;\n}\n\nToolTip.isChrome = detectChrome();\n\nfunction removeClass(el, className) {\n    if (el.classList) {\n        el.classList.remove(className);\n    } else {\n        el.className = el.className.replace(new RegExp('(^|\\\\b)' + className.split(' ').join('|') + '(\\\\b|$)', 'gi'), ' ');\n    }\n}\n\nfunction addClass(el, className) {\n    if (el.classList){\n        el.classList.add(className);\n    } else {\n        el.className += ' ' + className;\n    }\n}\n\nfunction getWidth(el) {\n    return parseFloat(getComputedStyle(el).width);\n}\n\nfunction getHeight(el) {\n    return parseFloat(getComputedStyle(el).height);\n}\n\nfunction getOffset(el) {\n    var rect = el.getBoundingClientRect();\n\n    // temporary workaround for this bug:\n    // https://bugs.chromium.org/p/chromium/issues/detail?id=756471\n    // if inside iframe and browser is chrome for body element\n    if (\n    ToolTip.isChrome &&\n    !(window === window.parent) && // check if iframe\n    /^body$/i.test(el.nodeName) && // make sure it is body\n    (window.innerWidth == screen.width && window.innerHeight == screen.height) // check if Chrome is in Fullscreen\n    ) {\n        rect = {\n            top: 0,\n            left: 0,\n        };\n    }\n\n    return {\n        top: rect.top + document.body.scrollTop,\n        left: rect.left + document.body.scrollLeft,\n    };\n}\n\nfunction assignStyle(el, style) {\n    el.removeAttribute('style');\n    if (style) {\n        _.keys(style).forEach((cssProp) => {\n            el.style[cssProp] = style[cssProp];\n        });\n    }\n}\n\nfunction limitMaxWidth(size) {\n    return Math.min(size, ToolTip.maxWidth);\n}\n\nToolTip.prototype = {\n    createSelf: function() {\n        const tt = document.createElement('div');\n\n        addClass(tt, 'tt_tooltip');\n\n        tt.innerHTML = '<div class=\"tt_body\"><span class=\"tt_ico\"></span><div class=\"tt_text_wrap\"><div class=\"tt_text\"></div><div class=\"tt_value\"></div></div></div>' +\n              '<div class=\"tt_left\"></div><div class=\"tt_right\"></div>';\n\n        return tt;\n    },\n    init: function() {\n        if (typeof this.opts.escapeFn === 'function') {\n            this.escape = this.opts.escapeFn.bind(this);\n        }\n        var tt = this.self = this.createSelf();\n        this.selfValue = tt.querySelector('.tt_value');\n        this.selfText = tt.querySelector('.tt_text');\n        this.leftArrow = tt.querySelector('.tt_left');\n        this.rightArrow = tt.querySelector('.tt_right');\n        this.ico = tt.querySelector('.tt_ico');\n\n        this.setValue(this.opts.value);\n        this.setText(this.opts.text);\n\n        this.setParent();\n\n        if (this.opts.pos) {\n            return this.setPosition(this.opts.pos, this.opts.color);\n        }\n\n        return this;\n    },\n    setParent: function() {\n        const {parentElem} = this.opts;\n        if (typeof parentElem === 'string') {\n            this.parent = document.querySelector(parentElem);\n        } else {\n            //assuming DOM element\n            this.parent = parentElem;\n        }\n        this.parent.appendChild(this.self);\n\n        this.self.style.visibility = 'hidden';\n    },\n    setOptions: function(options) {\n        var validKeys = {\n            text: 'setText',\n            value: 'setValue',\n            position: 'setPosition', // important setPosition should be last\n            pos: 'setPosition',\n        };\n\n        this.key = options.key;\n        Object.keys(validKeys).forEach(function(key) {\n            if (options.hasOwnProperty(key)) {\n                if (key === 'position' || key === 'pos') {\n                    this.setPosition(options[key], options.color);\n                } else {\n                    this[validKeys[key]](options[key]);\n                }\n            }\n        }, this);\n    },\n    setPosition: function(pos, color) {\n        if (this.parent === undefined) {\n            this.setParent();\n        }\n\n        if (color) {\n            this.setColor(color);\n        }\n\n        var destPosition = {\n            left: pos.x - getOffset(this.parent).left,\n            top: pos.y - getOffset(this.parent).top - (getHeight(this.self) / 2),\n        };\n\n        if (destPosition.left > (getWidth(this.parent) / 2)) {\n            destPosition.left -= getWidth(this.self) + ToolTip.cursorOffset;\n            destPosition.left = Math.max(0, destPosition.left);\n            this.leftArrow.style.display = 'none';\n            this.rightArrow.style.display = 'block';\n            this.self.style.maxWidth = limitMaxWidth(pos.x - ToolTip.cursorOffset) + 'px';\n        } else {\n            destPosition.left += ToolTip.cursorOffset;\n            this.leftArrow.style.display = 'block';\n            this.rightArrow.style.display = 'none';\n            this.self.style.maxWidth = limitMaxWidth(getWidth(this.parent) - destPosition.left - ToolTip.cursorOffset) + 'px';\n        }\n\n        destPosition.left = parseInt(destPosition.left, 10);\n\n        this.self.style.top = destPosition.top + 'px';\n        this.self.style.left = destPosition.left + 'px';\n\n        return this.show();\n    },\n    setColor: function(color) {\n        this.ico.style.backgroundColor = color;\n        addClass(this.self, 'tt_color');\n    },\n    remove: function() {\n        this.self.parentNode.removeChild(this.self);\n        return this;\n    },\n    escape: function(value) {\n        return value;\n    },\n    setText: function(sText, fontStyle) {\n        assignStyle(this.selfText, fontStyle);\n\n        sText = this.escape(sText);\n        this.selfText.innerHTML = sText;\n        this.emptyCheck();\n        return this;\n    },\n    setValue: function(sValue, fontStyle) {\n        assignStyle(this.selfValue, fontStyle);\n\n        sValue = this.escape(sValue);\n        this.selfValue.innerHTML = sValue;\n        this.emptyCheck();\n        return this;\n    },\n    emptyCheck: function() {\n        if (this.selfText.innerHTML === '' && this.selfValue.innerHTML === '') {\n            this.selfText.innerHTML = '\\u00A0';\n        }\n    },\n    hide: function() {\n        removeClass(this.self, 'tt_color');\n        this.self.style.visibility = 'hidden';\n        return this;\n    },\n    get isVisible() {\n        return this.self.style.visibility === 'visible';\n    },\n    show: function() {\n        var selfH = getHeight(this.self);\n        var top = (selfH / 2) - ToolTip.arrowHalfHeight;\n\n        this.leftArrow.style.top = top + 'px';\n        this.rightArrow.style.top = top + 'px';\n\n        this.self.style.visibility = 'visible';\n\n        return this;\n    },\n};\n\nexport default ToolTip;\n","var global = require('../internals/global');\n\nvar globalIsFinite = global.isFinite;\n\n// `Number.isFinite` method\n// https://tc39.github.io/ecma262/#sec-number.isfinite\nmodule.exports = Number.isFinite || function isFinite(it) {\n  return typeof it == 'number' && globalIsFinite(it);\n};\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;\n","module.exports = function linkIsSafe(url) {\n    return /^(https?:\\/\\/|mailto:)/i.test(url);\n};\n\n","var redefine = require('../internals/redefine');\n\nmodule.exports = function (target, src, options) {\n  for (var key in src) redefine(target, key, src[key], options);\n  return target;\n};\n","import {ReduceStore} from 'flux/utils';\nimport {Map} from 'immutable';\nimport invariant from 'invariant';\n\nimport Dispatcher from '../../dispatcher';\n\nimport CurrentInfographicStore from '../../main/stores/CurrentInfographicStore';\nimport EditorStateStore from '../../freelayout_editor/stores/EditorStateStore';\n\nimport DownloadConstants from '../constants/DownloadConstants';\nimport {EXTERNAL_EDITOR_STATE_CHANGE} from '../../freelayout_editor/constants/EditorConstants';\n\nimport Constants from '../../constants';\n\nconst MILLIMETERS_PER_INCH = 25.4;\nconst PDF_DPI = 72;\n\nconst pixelsToMM = function(value) {\n    return Math.round(value / PDF_DPI * MILLIMETERS_PER_INCH);\n};\n\nclass DownloadOutputSizeStore extends ReduceStore {\n    getInitialState() {\n        let width = 0;\n        let height = 0;\n        let aspectRatio = 1;\n        if (!CurrentInfographicStore.isEmpty) {\n            if (CurrentInfographicStore.isFreeLayout) {\n                const pageSize = EditorStateStore.editorState.getPageSize();\n                width = pageSize.width;\n                height = pageSize.height;\n                aspectRatio = width / height;\n            } else {\n                width = CurrentInfographicStore.get('width');\n            }\n        }\n        return Map({\n            physicalWidth: width,\n            physicalHeight: height,\n            physicalAspectRatio: aspectRatio,\n            imageWidth: width,\n            imageHeight: height,\n            printWidth: pixelsToMM(width),\n            printHeight: pixelsToMM(height),\n            imageInputValid: true,\n            printInputValid: true,\n            sizeMultiplier: 1,\n        });\n    }\n\n    reduce(state, action) {\n        switch (action.type) {\n            /*\n             *  Initiation of download dimensions\n             *\n             * Because of differences in flow,\n             * while INFOGRAPHIC_LOADED message triggers this init in Infogram,\n             * it does not dispatch on Prezigram.\n             * Instead, EXTERNAL_EDITOR_STATE_CHANGE is.\n             */\n            case EXTERNAL_EDITOR_STATE_CHANGE: // Prezigram\n            case Constants.INFOGRAPHIC_LOADED: { // Infogram\n                Dispatcher.waitFor([\n                    CurrentInfographicStore.getDispatchToken(),\n                    EditorStateStore.getDispatchToken(),\n                ]);\n                const updates = {};\n                if (CurrentInfographicStore.isFreeLayout) {\n                    const {editorState} = EditorStateStore;\n                    const pageSize = editorState.getPageSize();\n                    updates.physicalWidth = updates.imageWidth = pageSize.width;\n                    updates.physicalHeight = updates.imageHeight = pageSize.height;\n                    updates.physicalAspectRatio = updates.physicalWidth / updates.physicalHeight;\n                } else {\n                    const width = CurrentInfographicStore.get('width');\n                    updates.physicalWidth = width;\n                    updates.imageWidth = width;\n                }\n                return state.merge(updates);\n            }\n            case DownloadConstants.RESPONSIVE_INFOGRAPHIC_HEIGHT: {\n                const {height} = action;\n                let actualHeight = height;\n                invariant(height > 0, 'Infographic physical height must be greater than 0');\n                const width = state.get('physicalWidth');\n                const sizeMultiplier = state.get('sizeMultiplier');\n                const ratio = width / height;\n                if (sizeMultiplier) {\n                    actualHeight *= sizeMultiplier;\n                }\n\n                if (width !== state.get('imageWidth')) {\n                    actualHeight = Math.ceil(state.get('imageWidth') / ratio);\n                }\n\n                return state.merge({\n                    physicalHeight: height,\n                    imageHeight: actualHeight,\n                    printHeight: pixelsToMM(actualHeight),\n                    physicalAspectRatio: ratio,\n                });\n            }\n            case DownloadConstants.CHANGE_TAB: {\n                const {id} = action;\n                return state.set('type', id);\n            }\n            case DownloadConstants.SETTINGS_LOADED: {\n                const {settings} = action;\n                if (!settings) {\n                    return this.getInitialState();\n                }\n\n                const {printWidth, printHeight, sizeMultiplier} = settings;\n                state = setLockAspectRatio(state, true);\n\n                const updates = {};\n\n                if (sizeMultiplier !== undefined) {\n                    updates.sizeMultiplier = sizeMultiplier;\n                }\n\n                if (sizeMultiplier) {\n                    updates.imageWidth = state.get('physicalWidth') * sizeMultiplier;\n                    updates.imageHeight = state.get('physicalHeight') * sizeMultiplier;\n                }\n\n                if (printWidth && printHeight) {\n                    updates.printWidth = printWidth;\n                    updates.printHeight = printHeight;\n                }\n\n                return state.merge(updates);\n            }\n            case DownloadConstants.IMAGE_SIZE_CHANGE: {\n                const {\n                    propName,\n                    value,\n                } = action;\n                return changeImageSize(state, propName, value);\n            }\n\n            case DownloadConstants.PRINT_SIZE_CHANGE: {\n                const {\n                    propName,\n                    value,\n                } = action;\n                return changePrintSize(state, propName, value);\n            }\n\n            case DownloadConstants.RESET_IMAGE_SIZE: {\n                return state.merge({\n                    imageWidth: state.get('physicalWidth'),\n                    imageHeight: state.get('physicalHeight'),\n                    imageInputValid: true,\n                });\n            }\n\n            case DownloadConstants.RESET_PRINT_SIZE: {\n                return state.merge({\n                    printWidth: pixelsToMM(state.get('physicalWidth')),\n                    printHeight: pixelsToMM(state.get('physicalHeight')),\n                    printInputValid: true,\n                });\n            }\n\n            case DownloadConstants.UPDATE_SIZE_MULTIPLIER: {\n                let newWidth = state.get('physicalWidth');\n                let newHeight = state.get('physicalHeight');\n\n                if (action.value) {\n                    newWidth *= action.value;\n                    newHeight *= action.value;\n                }\n\n                return state.merge({\n                    sizeMultiplier: action.value,\n                    imageWidth: newWidth,\n                    imageHeight: newHeight,\n                });\n            }\n        }\n        return state;\n    }\n\n    get imageWidth() {\n        return this.getState().get('imageWidth');\n    }\n\n    get imageHeight() {\n        return this.getState().get('imageHeight');\n    }\n\n    get printWidth() {\n        return this.getState().get('printWidth');\n    }\n\n    get printHeight() {\n        return this.getState().get('printHeight');\n    }\n\n    get physicalWidth() {\n        return this.getState().get('physicalWidth');\n    }\n\n    get physicalHeight() {\n        return this.getState().get('physicalHeight');\n    }\n\n    get aspectRatio() {\n        return this.getState().get('physicalAspectRatio');\n    }\n\n    get imageInputValid() {\n        return this.getState().get('imageInputValid');\n    }\n\n    get printInputValid() {\n        return this.getState().get('printInputValid');\n    }\n\n    get sizeMultiplier() {\n        return this.getState().get('sizeMultiplier');\n    }\n}\n\nfunction validInteger(value) {\n    const parsed = parseInt(value);\n    if (isNaN(parsed)) {\n        return false;\n    }\n    return ('' + parsed) == value;\n}\n\nfunction changePrintSize(state, propName, value) {\n    const emptyValue = !('' + value).length;\n    let validValue = true;\n\n    if (!emptyValue && !validInteger(value)) {\n        validValue = false;\n    }\n\n    const ratio = state.get('physicalAspectRatio');\n    const updates = {};\n\n    if (propName === 'width') {\n        updates.printWidth = value;\n        updates.printHeight = emptyValue || !validValue ? '' : Math.round(value / ratio);\n    } else {\n        updates.printWidth = emptyValue || !validValue ? '' : Math.round(value * ratio);\n        updates.printHeight = value;\n    }\n\n    updates.printInputValid = !emptyValue && validValue;\n\n    return state.merge(updates);\n}\nfunction changeImageSize(state, propName, value) {\n    const emptyValue = !('' + value).length;\n    let validValue = true;\n\n    if (!emptyValue && !validInteger(value)) {\n        validValue = false;\n    }\n\n    const ratio = state.get('physicalAspectRatio');\n    const updates = {};\n\n    if (propName === 'width') {\n        updates.imageWidth = value;\n        updates.imageHeight = emptyValue || !validValue ? '' : Math.round(value / ratio);\n    } else {\n        invariant(propName === 'height', 'propName must be either width or height');\n        updates.imageWidth = emptyValue || !validValue? '' : Math.round(value * ratio);\n        updates.imageHeight = value;\n    }\n    updates.imageInputValid = !emptyValue && validValue;\n    return state.merge(updates);\n}\n\nfunction setLockAspectRatio(state) {\n    const updates = {};\n    const ratio = state.get('physicalAspectRatio');\n    const width = state.get('imageWidth');\n    const height = Math.round(width / ratio);\n    updates.imageHeight = height;\n    return state.merge({\n        imageHeight: height,\n    });\n}\n\nexport default new DownloadOutputSizeStore(Dispatcher);\n","\"use strict\";\n\n// eslint-disable-next-line no-empty-function\nmodule.exports = function () {};\n","import {selectionMouseMove} from '../../MouseSelection/actions';\nimport HandlersStore from '../store';\n\nconst MIN_DISTANCE = 100; // Distance from edges when auto scroll activates\nconst MAX_SPEED = 20; // 20px per frame. Auto scroll maximal speed\nconst SPEED_INCREMENT = 0.2; // Auto scroll speed increment\nconst START_MOVEMENT_THRESHOLD = 5; // Amount of pixels your mouse needs to move to start auto scroll while in MIN_DISTANCE area\n\nlet appRect;\nlet maxLimit;\nlet lastScaleX;\nlet lastPageSize;\nexport default function editOnMouseMove(e) {\n    const {allowDragAndDrop, updateMousePosition, scaleX, editorState} = this.props;\n    if (updateMousePosition) {\n        updateMousePosition(e.clientX, e.clientY);\n    }\n    const pressedButtons = e.buttons || e.nativeEvent.which; // Safari does not have 'buttons' property\n    const handle = HandlersStore.activeHandle;\n    if ((!pressedButtons && handle && handle.get('type') !== 'rotate') || !HandlersStore.pointerDown || !allowDragAndDrop) {\n        return;\n    }\n\n    if (!handle || handle.get('type') === 'select_block') {\n        const editorScroll = this.props.scroll;\n        if (!editorScroll) {\n            return;\n        }\n\n        if (!maxLimit || !lastScaleX || scaleX !== lastScaleX || lastPageSize !== editorState.getPageSize()) {\n            appRect = this.props.appContentEl.getBoundingClientRect();\n            lastScaleX = scaleX;\n            lastPageSize = editorState.getPageSize();\n            maxLimit = [\n                editorScroll.containerWidth - editorScroll.scrollbarXWidth,\n                editorScroll.containerHeight - editorScroll.scrollbarYHeight,\n            ];\n        }\n\n        const editorRect = this._element.getBoundingClientRect();\n        const {left, top} = editorRect;\n        const pointerDownX = HandlersStore.pointerDownX - left;\n        const pointerDownY = HandlersStore.pointerDownY - top;\n        let mouseX = e.clientX - left;\n        let mouseY = e.clientY - top;\n\n        const mouseDirectionVec = [\n            mouseX - pointerDownX,\n            mouseY - pointerDownY,\n        ];\n\n        const dist = [\n            e.clientY - appRect.top,\n            appRect.width + appRect.left - e.clientX,\n            appRect.height + appRect.top - e.clientY,\n            e.clientX - appRect.left,\n        ];\n\n        // Math.floor is required because Perfect scrollbar rounds its value thus without floor the mouse rectangle will run faster/slower then scrollbar\n        const movementSpeeds = dist.map(value => Math.floor(Math.min(Math.abs(Math.min(0, (value - MIN_DISTANCE) * SPEED_INCREMENT)), MAX_SPEED)));\n        const velX = movementSpeeds[1] - movementSpeeds[3];\n        const velY = movementSpeeds[2] - movementSpeeds[0];\n\n        if (velX === 0 && velY === 0) {\n            if (this.updateLoop.running) {\n                this.updateLoop.stop();\n            }\n            selectionMouseMove(mouseX, mouseY, {delta: {left, top}});\n            return;\n        }\n        const [canXUpdate, canYUpdate] = shouldUpdate([velX, velY], mouseDirectionVec, editorScroll);\n        if (!canXUpdate && !canYUpdate) {\n            if (this.updateLoop.running) {\n                this.updateLoop.stop();\n            }\n            selectionMouseMove(mouseX, mouseY, {delta: {left, top}});\n            return;\n        }\n\n        this.updateLoop.start(() => {\n            // This is required to get new deltas without mouse move trigger;\n            const editorRect = this._element.getBoundingClientRect();\n            const {left, top} = editorRect;\n            const scrollContainer = editorScroll.element;\n            const [canXUpdate, canYUpdate] = shouldUpdate([velX, velY], mouseDirectionVec, editorScroll);\n\n            if (canXUpdate) {\n                mouseX += velX;\n                scrollContainer.scrollLeft += velX;\n            }\n            if (canYUpdate) {\n                mouseY += velY;\n                scrollContainer.scrollTop += velY;\n            }\n            if (canXUpdate || canYUpdate) {\n                selectionMouseMove(mouseX, mouseY, {delta: {left, top}});\n            } else {\n                this.updateLoop.stop();\n            }\n        });\n\n        return;\n    } else if (handle.get('type') === 'select_block') {\n        return;\n    }\n    this.setMode(['select_entity', 'selectMarker'].indexOf(handle.get('type')) > -1 ? 'drag' : 'handle');\n\n    // Forward mouse move handling to the new handler\n    // A bit hackish, don't do stuff like this much around here\n    if (this._handler && this._handler.onMouseMove) {\n        this._handler.onMouseMove.call(this, e);\n        // Mouse up event for original mouse down will not be called\n    }\n}\n\nfunction shouldUpdate(velVec, mouseDirectionVec, editorScroll) {\n    const minLimit = [0, 0];\n    const currentScrollPositionVec = [editorScroll.scrollbarXLeft, editorScroll.scrollbarYTop];\n    const canUpdate = [true, true];\n\n    //Do not update if there is no scrollbars active.\n    if (!editorScroll.scrollbarXActive) {\n        canUpdate[0] = false;\n    }\n\n    if (!editorScroll.scrollbarYActive) {\n        canUpdate[1] = false;\n    }\n\n    // Do not update if scrollbars have reached their maximal or minimal values\n    // Moving towards top\n    if ((velVec[1] < 0) && (Math.floor(currentScrollPositionVec[1]) <= minLimit[1])) {\n        canUpdate[1] = false;\n    }\n    // Moving towards bottom\n    if ((velVec[1] > 0) && (Math.floor(currentScrollPositionVec[1]) >= maxLimit[1])) {\n        canUpdate[1] = false;\n    }\n    // Moving towards left\n    if ((velVec[0] < 0) && (Math.floor(currentScrollPositionVec[0]) <= minLimit[0])) {\n        canUpdate[0] = false;\n    }\n    // Moving towards right\n    if ((velVec[0] > 0) && (Math.floor(currentScrollPositionVec[0]) >= maxLimit[0])) {\n        canUpdate[0] = false;\n    }\n    // Do not update if selection rectangle starts in \"update zone\" but is drawn on opposite side\n    // Left\n    if ((mouseDirectionVec[0] + START_MOVEMENT_THRESHOLD) > 0 && velVec[0] < 0) {\n        canUpdate[0] = false;\n    }\n    // Top\n    if ((mouseDirectionVec[1] + START_MOVEMENT_THRESHOLD) > 0 && velVec[1] < 0) {\n        canUpdate[1] = false;\n    }\n    // Right\n    if ((mouseDirectionVec[0] - START_MOVEMENT_THRESHOLD) < 0 && velVec[0] > 0) {\n        canUpdate[0] = false;\n    }\n    // Bottom\n    if ((mouseDirectionVec[1] - START_MOVEMENT_THRESHOLD) < 0 && velVec[1] > 0) {\n        canUpdate[1] = false;\n    }\n    return canUpdate;\n}\n","import {calculateTrueRectangle} from '../../../components/FreeLayoutEditor/util/clippedEntity';\n\nexport default function getEntityChangesBasedOnRect(entity, rect) {\n    const trueRect = calculateTrueRectangle(entity, rect);\n    return {\n        left: Math.round(trueRect.left),\n        top: Math.round(trueRect.top),\n        width: Math.round(trueRect.width),\n        height: Math.round(trueRect.height),\n    };\n}\n","var $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar isObject = require('../internals/is-object');\n\nvar nativeIsSealed = Object.isSealed;\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeIsSealed(1); });\n\n// `Object.isSealed` method\n// https://tc39.github.io/ecma262/#sec-object.issealed\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, {\n  isSealed: function isSealed(it) {\n    return isObject(it) ? nativeIsSealed ? nativeIsSealed(it) : false : true;\n  }\n});\n","var $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar nativeGetOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeGetOwnPropertyDescriptor(1); });\nvar FORCED = !DESCRIPTORS || FAILS_ON_PRIMITIVES;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptor\n$({ target: 'Object', stat: true, forced: FORCED, sham: !DESCRIPTORS }, {\n  getOwnPropertyDescriptor: function getOwnPropertyDescriptor(it, key) {\n    return nativeGetOwnPropertyDescriptor(toIndexedObject(it), key);\n  }\n});\n","export default function preloadCalloutImages(block, assets) {\n    for (const entity of block.entities) {\n        if (!entity.getCalloutKey()) {\n            continue;\n        }\n        if (entity.type !== 'IMAGE') {\n            continue;\n        }\n        if (!entity.props.get('assetId')) {\n            continue;\n        }\n        const url = assets.getURL(entity.props.get('assetId'));\n        if (!url) {\n            continue;\n        }\n        const image = new Image();\n        image.src = url;\n    }\n}\n","\"use strict\";\n/* tslint:disable:max-line-length */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar glassbox_client_logger_1 = require(\"../glassbox.client.logger\");\nfunction _log(schemaId, eventType, eventName, params) {\n    return glassbox_client_logger_1.logGlassboxHelper('Analytics', schemaId, 'Webgl', eventType, eventName, params);\n}\n/* User left full screen while viewing or presenting a presentation. */\nfunction logLeaveFullScreen(params) {\n    return _log(14226, 'LeaveFullScreen', 'LeaveFullScreenWebWebgl', params);\n}\nexports.logLeaveFullScreen = logLeaveFullScreen;\n/* Viewer identification form loaded after opening a view link (if this option was set for the link). */\nfunction logLoadedViewerIdentificationForm(params) {\n    return _log(15516, 'LoadedViewerIdentificationForm', 'LoadedViewerIdentificationFormWebWebgl', params);\n}\nexports.logLoadedViewerIdentificationForm = logLoadedViewerIdentificationForm;\n/* Viewer was fully loaded. */\nfunction logLoadedViewer(params) {\n    return _log(15318, 'LoadedViewer', 'LoadedViewerWebWebgl', params);\n}\nexports.logLoadedViewer = logLoadedViewer;\n/* User navigated in the presentation. */\nfunction logNavigatePrezi(params) {\n    return _log(15476, 'NavigatePrezi', 'NavigatePreziWebWebgl', params);\n}\nexports.logNavigatePrezi = logNavigatePrezi;\n/* User opened a presentation to edit. */\nfunction logOpenEditor(params) {\n    return _log(14639, 'OpenEditor', 'OpenEditorWebWebgl', params);\n}\nexports.logOpenEditor = logOpenEditor;\n/* User opened a presentation to comment. */\nfunction logOpenToComment(params) {\n    return _log(15434, 'OpenToComment', 'OpenToCommentWebWebgl', params);\n}\nexports.logOpenToComment = logOpenToComment;\n/* User opened a presentation listed on the dashboard to view. */\nfunction logOpenToPresent(params) {\n    return _log(15439, 'OpenToPresent', 'OpenToPresentWebWebgl', params);\n}\nexports.logOpenToPresent = logOpenToPresent;\n/* User clicked on the play button to view a presentation after following a view link. */\nfunction logPlayPrezi(params) {\n    return _log(14422, 'PlayPrezi', 'PlayPreziWebWebgl', params);\n}\nexports.logPlayPrezi = logPlayPrezi;\n/* User entered full screen while viewing or presenting a presentation. */\nfunction logPresentInFullScreen(params) {\n    return _log(14426, 'PresentInFullScreen', 'PresentInFullScreenWebWebgl', params);\n}\nexports.logPresentInFullScreen = logPresentInFullScreen;\n/* User selected to restart at the end of viewing or presenting a presentation. */\nfunction logRestartPrezi(params) {\n    return _log(14446, 'RestartPrezi', 'RestartPreziWebWebgl', params);\n}\nexports.logRestartPrezi = logRestartPrezi;\n/* Viewer filled in and submitted the viewer identification form after opening a view link. */\nfunction logSubmittedViewerIdentificationForm(params) {\n    return _log(14501, 'SubmittedViewerIdentificationForm', 'SubmittedViewerIdentificationFormWebWebgl', params);\n}\nexports.logSubmittedViewerIdentificationForm = logSubmittedViewerIdentificationForm;\n","import _ from 'lodash';\nimport {Record, Map} from 'immutable';\n\nexport const Background = Record({\n    color: '#fff',\n    assetId: undefined,\n    galleryImageId: null,\n    opacity: 1,\n    filters: Map(),\n});\n\nexport function fromRawBackground(background) {\n    if (!background) {\n        return undefined;\n    }\n\n    if (background.color || background.assetId) {\n        const data = _.pick(background, [\n            'color', 'galleryImageId', 'opacity', 'assetId',\n        ]);\n        if (background.filters) {\n            data.filters = Map(background.filters);\n        }\n        return Background(data);\n    }\n    return undefined;\n}\n","\"use strict\";\n/* tslint:disable:max-line-length */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar glassbox_client_logger_1 = require(\"../glassbox.client.logger\");\nfunction _log(schemaId, eventType, eventName, params) {\n    return glassbox_client_logger_1.logGlassboxHelper('Analytics', schemaId, 'PreziGram', eventType, eventName, params);\n}\n/* User changes one of the image filter adjustments [PreziGram]. */\nfunction logAdjustImageFilter(params) {\n    return _log(16547, 'AdjustImageFilter', 'AdjustImageFilterWebPreziGram', params);\n}\nexports.logAdjustImageFilter = logAdjustImageFilter;\n/* User clicks back arrow in our template choosers. Doing so lands them back on the prezi.com dashboard.. */\nfunction logBackFromTemplateChooser() {\n    return _log(16392, 'BackFromTemplateChooser', 'BackFromTemplateChooserWebPreziGram');\n}\nexports.logBackFromTemplateChooser = logBackFromTemplateChooser;\n/* User changed Prezigram callout behaviour option. */\nfunction logChangeGramCalloutBehaviour(params) {\n    return _log(16538, 'ChangeGramCalloutBehaviour', 'ChangeGramCalloutBehaviourWebPreziGram', params);\n}\nexports.logChangeGramCalloutBehaviour = logChangeGramCalloutBehaviour;\n/* User changed callout position. */\nfunction logChangeGramCalloutPosition(params) {\n    return _log(16542, 'ChangeGramCalloutPosition', 'ChangeGramCalloutPositionWebPreziGram', params);\n}\nexports.logChangeGramCalloutPosition = logChangeGramCalloutPosition;\n/* User selected a template to use. */\nfunction logClickUseThisTemplate(params) {\n    return _log(16300, 'ClickUseThisTemplate', 'ClickUseThisTemplateWebPreziGram', params);\n}\nexports.logClickUseThisTemplate = logClickUseThisTemplate;\n/* User clicks on \"Contact support\" in Invoices tab at Admin Console. */\nfunction logContactSupport() {\n    return _log(16719, 'ContactSupport', 'ContactSupportWebPreziGram');\n}\nexports.logContactSupport = logContactSupport;\n/* User deletes Gram project. */\nfunction logDeleteGram(params) {\n    return _log(16722, 'DeleteGram', 'DeleteGramWebPreziGram', params);\n}\nexports.logDeleteGram = logDeleteGram;\n/* User deleted an object while editing a presentation. */\nfunction logDeleteObject(params) {\n    return _log(16700, 'DeleteObject', 'DeleteObjectWebPreziGram', params);\n}\nexports.logDeleteObject = logDeleteObject;\n/* User clicked on one of the \"Export as...\" options. */\nfunction logDownloadGramObject(params) {\n    return _log(16554, 'DownloadGramObject', 'DownloadGramObjectWebPreziGram', params);\n}\nexports.logDownloadGramObject = logDownloadGramObject;\n/* User clicked one of the download buttons in the download view. */\nfunction logDownloadGramProject(params) {\n    return _log(16558, 'DownloadGramProject', 'DownloadGramProjectWebPreziGram', params);\n}\nexports.logDownloadGramProject = logDownloadGramProject;\n/* User downloads an image from the canvas. */\nfunction logDownloadImage(params) {\n    return _log(16739, 'DownloadImage', 'DownloadImageWebPreziGram', params);\n}\nexports.logDownloadImage = logDownloadImage;\n/* User dragged an object (thumbnail in path sidebar, or object on canvas) while editing a presentation. */\nfunction logDragObject(params) {\n    return _log(16662, 'DragObject', 'DragObjectWebPreziGram', params);\n}\nexports.logDragObject = logDragObject;\n/* User triggered the generation of auto layouts. */\nfunction logGenerateGramAutoLayout(params) {\n    return _log(16563, 'GenerateGramAutoLayout', 'GenerateGramAutoLayoutWebPreziGram', params);\n}\nexports.logGenerateGramAutoLayout = logGenerateGramAutoLayout;\n/* User grouped together at least two objects in the editor. */\nfunction logGroupObjects(params) {\n    return _log(16600, 'GroupObjects', 'GroupObjectsWebPreziGram', params);\n}\nexports.logGroupObjects = logGroupObjects;\n/* User inserted a chart while editing a presentation. */\nfunction logInsertChart(params) {\n    return _log(16597, 'InsertChart', 'InsertChartWebPreziGram', params);\n}\nexports.logInsertChart = logInsertChart;\n/* User adds a new connector (connects 2 objects in the canvas) to the project [PreziGram]. */\nfunction logInsertConnector(params) {\n    return _log(16526, 'InsertConnector', 'InsertConnectorWebPreziGram', params);\n}\nexports.logInsertConnector = logInsertConnector;\n/* User adds a new element to the project (Gram storyblock). */\nfunction logInsertGramElement(params) {\n    return _log(16792, 'InsertGramElement', 'InsertGramElementWebPreziGram', params);\n}\nexports.logInsertGramElement = logInsertGramElement;\n/* User inserted an image while editing a presentation. */\nfunction logInsertImage(params) {\n    return _log(16706, 'InsertImage', 'InsertImageWebPreziGram', params);\n}\nexports.logInsertImage = logInsertImage;\n/* User adds a new third party integration to the project (dropbox, sql) [PreziGram]. */\nfunction logInsertIntegration(params) {\n    return _log(16522, 'InsertIntegration', 'InsertIntegrationWebPreziGram', params);\n}\nexports.logInsertIntegration = logInsertIntegration;\n/* User adds a new geographic map to the project. */\nfunction logInsertMap(params) {\n    return _log(16535, 'InsertMap', 'InsertMapWebPreziGram', params);\n}\nexports.logInsertMap = logInsertMap;\n/* User adds a new media element to the project (SLIDESHARE,FLICKR,URL,GIPHY,IFRAME). */\nfunction logInsertMedia(params) {\n    return _log(16687, 'InsertMedia', 'InsertMediaWebPreziGram', params);\n}\nexports.logInsertMedia = logInsertMedia;\n/* User inserted a shape while editing a presentation. */\nfunction logInsertShape(params) {\n    return _log(16622, 'InsertShape', 'InsertShapeWebPreziGram', params);\n}\nexports.logInsertShape = logInsertShape;\n/* User inserted a textbox while editing a presentation. */\nfunction logInsertTextbox(params) {\n    return _log(16646, 'InsertTextbox', 'InsertTextboxWebPreziGram', params);\n}\nexports.logInsertTextbox = logInsertTextbox;\n/* User inserted a video while editing a presentation. */\nfunction logInsertVideo(params) {\n    return _log(16697, 'InsertVideo', 'InsertVideoWebPreziGram', params);\n}\nexports.logInsertVideo = logInsertVideo;\n/* Editor loaded completely. */\nfunction logLoadedEditor(params) {\n    return _log(16653, 'LoadedEditor', 'LoadedEditorWebPreziGram', params);\n}\nexports.logLoadedEditor = logLoadedEditor;\n/* User modifies a Prezigram callout in the project. */\nfunction logModifyGramCallout(params) {\n    return _log(16576, 'ModifyGramCallout', 'ModifyGramCalloutWebPreziGram', params);\n}\nexports.logModifyGramCallout = logModifyGramCallout;\n/* User modified a specific page in the project. */\nfunction logModifyGramPage(params) {\n    return _log(16580, 'ModifyGramPage', 'ModifyGramPageWebPreziGram', params);\n}\nexports.logModifyGramPage = logModifyGramPage;\n/* User modifies the project. */\nfunction logModifyGramProject(params) {\n    return _log(16582, 'ModifyGramProject', 'ModifyGramProjectWebPreziGram', params);\n}\nexports.logModifyGramProject = logModifyGramProject;\n/* User modified object animation settings  [PreziGram]. */\nfunction logModifyObjectAnimationSetting(params) {\n    return _log(16568, 'ModifyObjectAnimationSetting', 'ModifyObjectAnimationSettingWebPreziGram', params);\n}\nexports.logModifyObjectAnimationSetting = logModifyObjectAnimationSetting;\n/* User modified object animation triggers  [PreziGram]. */\nfunction logModifyObjectAnimationTrigger(params) {\n    return _log(16572, 'ModifyObjectAnimationTrigger', 'ModifyObjectAnimationTriggerWebPreziGram', params);\n}\nexports.logModifyObjectAnimationTrigger = logModifyObjectAnimationTrigger;\n/* User modified an object while editing a presentation. */\nfunction logModifyObject(params) {\n    return _log(16857, 'ModifyObject', 'ModifyObjectWebPreziGram', params);\n}\nexports.logModifyObject = logModifyObject;\n/* User clicked on the callout icon for an object. */\nfunction logOpenObjectGramCallout(params) {\n    return _log(16587, 'OpenObjectGramCallout', 'OpenObjectGramCalloutWebPreziGram', params);\n}\nexports.logOpenObjectGramCallout = logOpenObjectGramCallout;\n/* User opened a preview of a template by clicking on its thumbnail. */\nfunction logOpenTemplatePreview(params) {\n    return _log(16484, 'OpenTemplatePreview', 'OpenTemplatePreviewWebPreziGram', params);\n}\nexports.logOpenTemplatePreview = logOpenTemplatePreview;\n/* User pasted one or more objects while editing a presentation, by clicking on the Paste item within the Edit menu or by hitting command/control+V. */\nfunction logPasteObject(params) {\n    return _log(16863, 'PasteObject', 'PasteObjectWebPreziGram', params);\n}\nexports.logPasteObject = logPasteObject;\n/* User entered full screen while viewing or presenting a presentation. */\nfunction logPresentInFullScreen(params) {\n    return _log(16669, 'PresentInFullScreen', 'PresentInFullScreenWebPreziGram', params);\n}\nexports.logPresentInFullScreen = logPresentInFullScreen;\n/* User removed a callout. */\nfunction logRemoveGramCallout(params) {\n    return _log(16590, 'RemoveGramCallout', 'RemoveGramCalloutWebPreziGram', params);\n}\nexports.logRemoveGramCallout = logRemoveGramCallout;\n/* User reset either the filter preset or the adjustments [PreziGram]. */\nfunction logResetImageFilter(params) {\n    return _log(16550, 'ResetImageFilter', 'ResetImageFilterWebPreziGram', params);\n}\nexports.logResetImageFilter = logResetImageFilter;\n/* User selected one of the filter presets. */\nfunction logSelectImageFilterPreset(params) {\n    return _log(16726, 'SelectImageFilterPreset', 'SelectImageFilterPresetWebPreziGram', params);\n}\nexports.logSelectImageFilterPreset = logSelectImageFilterPreset;\n/* User clicked either the the text box with the URL of the web view or clicks the web view button. */\nfunction logViewProjectInWebView(params) {\n    return _log(16735, 'ViewProjectInWebView', 'ViewProjectInWebViewWebPreziGram', params);\n}\nexports.logViewProjectInWebView = logViewProjectInWebView;\n","\"use strict\";\r\nvar __assign = (this && this.__assign) || function () {\r\n    __assign = Object.assign || function(t) {\r\n        for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n            s = arguments[i];\r\n            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\r\n                t[p] = s[p];\r\n        }\r\n        return t;\r\n    };\r\n    return __assign.apply(this, arguments);\r\n};\r\nexports.__esModule = true;\r\nfunction stringifyAttribute(name, value) {\r\n    if (!value) {\r\n        return '';\r\n    }\r\n    var stringified = '; ' + name;\r\n    if (value === true) {\r\n        return stringified; // boolean attributes shouldn't have a value\r\n    }\r\n    return stringified + '=' + value;\r\n}\r\nfunction stringifyAttributes(attributes) {\r\n    if (typeof attributes.expires === 'number') {\r\n        var expires = new Date();\r\n        expires.setMilliseconds(expires.getMilliseconds() + attributes.expires * 864e+5);\r\n        attributes.expires = expires;\r\n    }\r\n    return stringifyAttribute('Expires', attributes.expires ? attributes.expires.toUTCString() : '')\r\n        + stringifyAttribute('Domain', attributes.domain)\r\n        + stringifyAttribute('Path', attributes.path)\r\n        + stringifyAttribute('Secure', attributes.secure)\r\n        + stringifyAttribute('SameSite', attributes.sameSite);\r\n}\r\nfunction encode(name, value, attributes) {\r\n    return encodeURIComponent(name)\r\n        .replace(/%(23|24|26|2B|5E|60|7C)/g, decodeURIComponent) // allowed special characters\r\n        .replace(/\\(/g, '%28').replace(/\\)/g, '%29') // replace opening and closing parens\r\n        + '=' + encodeURIComponent(value)\r\n        // allowed special characters\r\n        .replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g, decodeURIComponent)\r\n        + stringifyAttributes(attributes);\r\n}\r\nexports.encode = encode;\r\nfunction parse(cookieString) {\r\n    var result = {};\r\n    var cookies = cookieString ? cookieString.split('; ') : [];\r\n    var rdecode = /(%[\\dA-F]{2})+/gi;\r\n    for (var i = 0; i < cookies.length; i++) {\r\n        var parts = cookies[i].split('=');\r\n        var cookie = parts.slice(1).join('=');\r\n        if (cookie.charAt(0) === '\"') {\r\n            cookie = cookie.slice(1, -1);\r\n        }\r\n        try {\r\n            var name_1 = parts[0].replace(rdecode, decodeURIComponent);\r\n            result[name_1] = cookie.replace(rdecode, decodeURIComponent);\r\n        }\r\n        catch (e) {\r\n            // ignore cookies with invalid name/value encoding\r\n        }\r\n    }\r\n    return result;\r\n}\r\nexports.parse = parse;\r\nfunction getAll() {\r\n    return parse(document.cookie);\r\n}\r\nexports.getAll = getAll;\r\nfunction get(name) {\r\n    return getAll()[name];\r\n}\r\nexports.get = get;\r\nfunction set(name, value, attributes) {\r\n    document.cookie = encode(name, value, __assign({ path: '/' }, attributes));\r\n}\r\nexports.set = set;\r\nfunction remove(name, attributes) {\r\n    set(name, '', __assign(__assign({}, attributes), { expires: -1 }));\r\n}\r\nexports.remove = remove;\r\n","var global = require('../internals/global');\nvar trim = require('../internals/string-trim').trim;\nvar whitespaces = require('../internals/whitespaces');\n\nvar nativeParseInt = global.parseInt;\nvar hex = /^[+-]?0[Xx]/;\nvar FORCED = nativeParseInt(whitespaces + '08') !== 8 || nativeParseInt(whitespaces + '0x16') !== 22;\n\n// `parseInt` method\n// https://tc39.github.io/ecma262/#sec-parseint-string-radix\nmodule.exports = FORCED ? function parseInt(string, radix) {\n  var S = trim(String(string));\n  return nativeParseInt(S, (radix >>> 0) || (hex.test(S) ? 16 : 10));\n} : nativeParseInt;\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toInteger = require('../internals/to-integer');\nvar toLength = require('../internals/to-length');\nvar sloppyArrayMethod = require('../internals/sloppy-array-method');\n\nvar min = Math.min;\nvar nativeLastIndexOf = [].lastIndexOf;\nvar NEGATIVE_ZERO = !!nativeLastIndexOf && 1 / [1].lastIndexOf(1, -0) < 0;\nvar SLOPPY_METHOD = sloppyArrayMethod('lastIndexOf');\n\n// `Array.prototype.lastIndexOf` method implementation\n// https://tc39.github.io/ecma262/#sec-array.prototype.lastindexof\nmodule.exports = (NEGATIVE_ZERO || SLOPPY_METHOD) ? function lastIndexOf(searchElement /* , fromIndex = @[*-1] */) {\n  // convert -0 to +0\n  if (NEGATIVE_ZERO) return nativeLastIndexOf.apply(this, arguments) || 0;\n  var O = toIndexedObject(this);\n  var length = toLength(O.length);\n  var index = length - 1;\n  if (arguments.length > 1) index = min(index, toInteger(arguments[1]));\n  if (index < 0) index = length + index;\n  for (;index >= 0; index--) if (index in O && O[index] === searchElement) return index || 0;\n  return -1;\n} : nativeLastIndexOf;\n","module.exports = function (exec) {\n  try {\n    return { error: false, value: exec() };\n  } catch (error) {\n    return { error: true, value: error };\n  }\n};\n","import {\n    MIN_CALLOUT_HEIGHT,\n    MIN_CALLOUT_WIDTH,\n} from '../../../../app/callouts/constants/config';\n\n\nexport default function checkCalloutDeltaLimits(callout, delta) {\n    if (delta.x) {\n        const minDeltaX = MIN_CALLOUT_WIDTH - callout.get('width');\n        delta.x = Math.max(minDeltaX, delta.x);\n    }\n    if (delta.y) {\n        const minDeltaY = MIN_CALLOUT_HEIGHT - callout.get('height');\n        delta.y = Math.max(minDeltaY, delta.y);\n    }\n    return delta;\n}\n","export const START_EDITING = 'TEXT_EDITOR_START_EDITING';\nexport const END_EDITING = 'TEXT_EDITOR_END_EDITING';\nexport const CHANGE_TEXT = 'TEXT_EDITOR_CHANGE_TEXT';\nexport const UPDATE_TEXT_STYLE_SETTINGS = 'UPDATE_TEXT_STYLE_SETTINGS';\n\nexport const EXECUTE_COMMAND = 'TEXT_EDITOR_EXECUTE_COMMAND';\nexport const KEY_COMMAND = 'TEXT_EDITOR_KEY_COMMAND';\n\nexport const UPDATE_OPACITY = 'TEXT_EDITOR_UPDATE_OPACITY';\nexport const UPDATE_LINK = 'TEXT_EDITOR_UPDATE_LINK';\n\nexport const RESET_DEFAULTS = 'TEXT_EDITOR_RESET_TEMPLATE_DEFAULTS';\n\nexport const UPDATE_TEXT_ELEMENT_SIZE = 'UPDATE_TEXT_ELEMENT_SIZE';\n\nexport const SELECTOR_HORIZONTAL_PADDING = 2;\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar global = require('../internals/global');\nvar path = require('../internals/path');\nvar redefineAll = require('../internals/redefine-all');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar setSpecies = require('../internals/set-species');\nvar isObject = require('../internals/is-object');\nvar aFunction = require('../internals/a-function');\nvar anInstance = require('../internals/an-instance');\nvar classof = require('../internals/classof-raw');\nvar iterate = require('../internals/iterate');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar speciesConstructor = require('../internals/species-constructor');\nvar task = require('../internals/task').set;\nvar microtask = require('../internals/microtask');\nvar promiseResolve = require('../internals/promise-resolve');\nvar hostReportErrors = require('../internals/host-report-errors');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar userAgent = require('../internals/user-agent');\nvar InternalStateModule = require('../internals/internal-state');\nvar isForced = require('../internals/is-forced');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\nvar PROMISE = 'Promise';\nvar getInternalState = InternalStateModule.get;\nvar setInternalState = InternalStateModule.set;\nvar getInternalPromiseState = InternalStateModule.getterFor(PROMISE);\nvar PromiseConstructor = global[PROMISE];\nvar TypeError = global.TypeError;\nvar document = global.document;\nvar process = global.process;\nvar $fetch = global.fetch;\nvar versions = process && process.versions;\nvar v8 = versions && versions.v8 || '';\nvar newPromiseCapability = newPromiseCapabilityModule.f;\nvar newGenericPromiseCapability = newPromiseCapability;\nvar IS_NODE = classof(process) == 'process';\nvar DISPATCH_EVENT = !!(document && document.createEvent && global.dispatchEvent);\nvar UNHANDLED_REJECTION = 'unhandledrejection';\nvar REJECTION_HANDLED = 'rejectionhandled';\nvar PENDING = 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\nvar HANDLED = 1;\nvar UNHANDLED = 2;\nvar Internal, OwnPromiseCapability, PromiseWrapper;\n\nvar FORCED = isForced(PROMISE, function () {\n  // correct subclassing with @@species support\n  var promise = PromiseConstructor.resolve(1);\n  var empty = function () { /* empty */ };\n  var FakePromise = (promise.constructor = {})[SPECIES] = function (exec) {\n    exec(empty, empty);\n  };\n  // unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n  return !((IS_NODE || typeof PromiseRejectionEvent == 'function')\n    && (!IS_PURE || promise['finally'])\n    && promise.then(empty) instanceof FakePromise\n    // v8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n    // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n    // we can't detect it synchronously, so just check versions\n    && v8.indexOf('6.6') !== 0\n    && userAgent.indexOf('Chrome/66') === -1);\n});\n\nvar INCORRECT_ITERATION = FORCED || !checkCorrectnessOfIteration(function (iterable) {\n  PromiseConstructor.all(iterable)['catch'](function () { /* empty */ });\n});\n\n// helpers\nvar isThenable = function (it) {\n  var then;\n  return isObject(it) && typeof (then = it.then) == 'function' ? then : false;\n};\n\nvar notify = function (promise, state, isReject) {\n  if (state.notified) return;\n  state.notified = true;\n  var chain = state.reactions;\n  microtask(function () {\n    var value = state.value;\n    var ok = state.state == FULFILLED;\n    var index = 0;\n    // variable length - can't use forEach\n    while (chain.length > index) {\n      var reaction = chain[index++];\n      var handler = ok ? reaction.ok : reaction.fail;\n      var resolve = reaction.resolve;\n      var reject = reaction.reject;\n      var domain = reaction.domain;\n      var result, then, exited;\n      try {\n        if (handler) {\n          if (!ok) {\n            if (state.rejection === UNHANDLED) onHandleUnhandled(promise, state);\n            state.rejection = HANDLED;\n          }\n          if (handler === true) result = value;\n          else {\n            if (domain) domain.enter();\n            result = handler(value); // can throw\n            if (domain) {\n              domain.exit();\n              exited = true;\n            }\n          }\n          if (result === reaction.promise) {\n            reject(TypeError('Promise-chain cycle'));\n          } else if (then = isThenable(result)) {\n            then.call(result, resolve, reject);\n          } else resolve(result);\n        } else reject(value);\n      } catch (error) {\n        if (domain && !exited) domain.exit();\n        reject(error);\n      }\n    }\n    state.reactions = [];\n    state.notified = false;\n    if (isReject && !state.rejection) onUnhandled(promise, state);\n  });\n};\n\nvar dispatchEvent = function (name, promise, reason) {\n  var event, handler;\n  if (DISPATCH_EVENT) {\n    event = document.createEvent('Event');\n    event.promise = promise;\n    event.reason = reason;\n    event.initEvent(name, false, true);\n    global.dispatchEvent(event);\n  } else event = { promise: promise, reason: reason };\n  if (handler = global['on' + name]) handler(event);\n  else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason);\n};\n\nvar onUnhandled = function (promise, state) {\n  task.call(global, function () {\n    var value = state.value;\n    var IS_UNHANDLED = isUnhandled(state);\n    var result;\n    if (IS_UNHANDLED) {\n      result = perform(function () {\n        if (IS_NODE) {\n          process.emit('unhandledRejection', value, promise);\n        } else dispatchEvent(UNHANDLED_REJECTION, promise, value);\n      });\n      // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n      state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED;\n      if (result.error) throw result.value;\n    }\n  });\n};\n\nvar isUnhandled = function (state) {\n  return state.rejection !== HANDLED && !state.parent;\n};\n\nvar onHandleUnhandled = function (promise, state) {\n  task.call(global, function () {\n    if (IS_NODE) {\n      process.emit('rejectionHandled', promise);\n    } else dispatchEvent(REJECTION_HANDLED, promise, state.value);\n  });\n};\n\nvar bind = function (fn, promise, state, unwrap) {\n  return function (value) {\n    fn(promise, state, value, unwrap);\n  };\n};\n\nvar internalReject = function (promise, state, value, unwrap) {\n  if (state.done) return;\n  state.done = true;\n  if (unwrap) state = unwrap;\n  state.value = value;\n  state.state = REJECTED;\n  notify(promise, state, true);\n};\n\nvar internalResolve = function (promise, state, value, unwrap) {\n  if (state.done) return;\n  state.done = true;\n  if (unwrap) state = unwrap;\n  try {\n    if (promise === value) throw TypeError(\"Promise can't be resolved itself\");\n    var then = isThenable(value);\n    if (then) {\n      microtask(function () {\n        var wrapper = { done: false };\n        try {\n          then.call(value,\n            bind(internalResolve, promise, wrapper, state),\n            bind(internalReject, promise, wrapper, state)\n          );\n        } catch (error) {\n          internalReject(promise, wrapper, error, state);\n        }\n      });\n    } else {\n      state.value = value;\n      state.state = FULFILLED;\n      notify(promise, state, false);\n    }\n  } catch (error) {\n    internalReject(promise, { done: false }, error, state);\n  }\n};\n\n// constructor polyfill\nif (FORCED) {\n  // 25.4.3.1 Promise(executor)\n  PromiseConstructor = function Promise(executor) {\n    anInstance(this, PromiseConstructor, PROMISE);\n    aFunction(executor);\n    Internal.call(this);\n    var state = getInternalState(this);\n    try {\n      executor(bind(internalResolve, this, state), bind(internalReject, this, state));\n    } catch (error) {\n      internalReject(this, state, error);\n    }\n  };\n  // eslint-disable-next-line no-unused-vars\n  Internal = function Promise(executor) {\n    setInternalState(this, {\n      type: PROMISE,\n      done: false,\n      notified: false,\n      parent: false,\n      reactions: [],\n      rejection: false,\n      state: PENDING,\n      value: undefined\n    });\n  };\n  Internal.prototype = redefineAll(PromiseConstructor.prototype, {\n    // `Promise.prototype.then` method\n    // https://tc39.github.io/ecma262/#sec-promise.prototype.then\n    then: function then(onFulfilled, onRejected) {\n      var state = getInternalPromiseState(this);\n      var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor));\n      reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;\n      reaction.fail = typeof onRejected == 'function' && onRejected;\n      reaction.domain = IS_NODE ? process.domain : undefined;\n      state.parent = true;\n      state.reactions.push(reaction);\n      if (state.state != PENDING) notify(this, state, false);\n      return reaction.promise;\n    },\n    // `Promise.prototype.catch` method\n    // https://tc39.github.io/ecma262/#sec-promise.prototype.catch\n    'catch': function (onRejected) {\n      return this.then(undefined, onRejected);\n    }\n  });\n  OwnPromiseCapability = function () {\n    var promise = new Internal();\n    var state = getInternalState(promise);\n    this.promise = promise;\n    this.resolve = bind(internalResolve, promise, state);\n    this.reject = bind(internalReject, promise, state);\n  };\n  newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n    return C === PromiseConstructor || C === PromiseWrapper\n      ? new OwnPromiseCapability(C)\n      : newGenericPromiseCapability(C);\n  };\n\n  // wrap fetch result\n  if (!IS_PURE && typeof $fetch == 'function') $({ global: true, enumerable: true, forced: true }, {\n    // eslint-disable-next-line no-unused-vars\n    fetch: function fetch(input) {\n      return promiseResolve(PromiseConstructor, $fetch.apply(global, arguments));\n    }\n  });\n}\n\n$({ global: true, wrap: true, forced: FORCED }, {\n  Promise: PromiseConstructor\n});\n\nsetToStringTag(PromiseConstructor, PROMISE, false, true);\nsetSpecies(PROMISE);\n\nPromiseWrapper = path[PROMISE];\n\n// statics\n$({ target: PROMISE, stat: true, forced: FORCED }, {\n  // `Promise.reject` method\n  // https://tc39.github.io/ecma262/#sec-promise.reject\n  reject: function reject(r) {\n    var capability = newPromiseCapability(this);\n    capability.reject.call(undefined, r);\n    return capability.promise;\n  }\n});\n\n$({ target: PROMISE, stat: true, forced: IS_PURE || FORCED }, {\n  // `Promise.resolve` method\n  // https://tc39.github.io/ecma262/#sec-promise.resolve\n  resolve: function resolve(x) {\n    return promiseResolve(IS_PURE && this === PromiseWrapper ? PromiseConstructor : this, x);\n  }\n});\n\n$({ target: PROMISE, stat: true, forced: INCORRECT_ITERATION }, {\n  // `Promise.all` method\n  // https://tc39.github.io/ecma262/#sec-promise.all\n  all: function all(iterable) {\n    var C = this;\n    var capability = newPromiseCapability(C);\n    var resolve = capability.resolve;\n    var reject = capability.reject;\n    var result = perform(function () {\n      var $promiseResolve = aFunction(C.resolve);\n      var values = [];\n      var counter = 0;\n      var remaining = 1;\n      iterate(iterable, function (promise) {\n        var index = counter++;\n        var alreadyCalled = false;\n        values.push(undefined);\n        remaining++;\n        $promiseResolve.call(C, promise).then(function (value) {\n          if (alreadyCalled) return;\n          alreadyCalled = true;\n          values[index] = value;\n          --remaining || resolve(values);\n        }, reject);\n      });\n      --remaining || resolve(values);\n    });\n    if (result.error) reject(result.value);\n    return capability.promise;\n  },\n  // `Promise.race` method\n  // https://tc39.github.io/ecma262/#sec-promise.race\n  race: function race(iterable) {\n    var C = this;\n    var capability = newPromiseCapability(C);\n    var reject = capability.reject;\n    var result = perform(function () {\n      var $promiseResolve = aFunction(C.resolve);\n      iterate(iterable, function (promise) {\n        $promiseResolve.call(C, promise).then(capability.resolve, reject);\n      });\n    });\n    if (result.error) reject(result.value);\n    return capability.promise;\n  }\n});\n","var $ = require('../internals/export');\n\n// `Number.MIN_SAFE_INTEGER` constant\n// https://tc39.github.io/ecma262/#sec-number.min_safe_integer\n$({ target: 'Number', stat: true }, {\n  MIN_SAFE_INTEGER: -0x1FFFFFFFFFFFFF\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar FORCED = require('../internals/forced-object-prototype-accessors-methods');\nvar toObject = require('../internals/to-object');\nvar aFunction = require('../internals/a-function');\nvar definePropertyModule = require('../internals/object-define-property');\n\n// `Object.prototype.__defineSetter__` method\n// https://tc39.github.io/ecma262/#sec-object.prototype.__defineSetter__\nif (DESCRIPTORS) {\n  $({ target: 'Object', proto: true, forced: FORCED }, {\n    __defineSetter__: function __defineSetter__(P, setter) {\n      definePropertyModule.f(toObject(this), P, { set: aFunction(setter), enumerable: true, configurable: true });\n    }\n  });\n}\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n  return encodeURIComponent(val).\n    replace(/%40/gi, '@').\n    replace(/%3A/gi, ':').\n    replace(/%24/g, '$').\n    replace(/%2C/gi, ',').\n    replace(/%20/g, '+').\n    replace(/%5B/gi, '[').\n    replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n  /*eslint no-param-reassign:0*/\n  if (!params) {\n    return url;\n  }\n\n  var serializedParams;\n  if (paramsSerializer) {\n    serializedParams = paramsSerializer(params);\n  } else if (utils.isURLSearchParams(params)) {\n    serializedParams = params.toString();\n  } else {\n    var parts = [];\n\n    utils.forEach(params, function serialize(val, key) {\n      if (val === null || typeof val === 'undefined') {\n        return;\n      }\n\n      if (utils.isArray(val)) {\n        key = key + '[]';\n      } else {\n        val = [val];\n      }\n\n      utils.forEach(val, function parseValue(v) {\n        if (utils.isDate(v)) {\n          v = v.toISOString();\n        } else if (utils.isObject(v)) {\n          v = JSON.stringify(v);\n        }\n        parts.push(encode(key) + '=' + encode(v));\n      });\n    });\n\n    serializedParams = parts.join('&');\n  }\n\n  if (serializedParams) {\n    var hashmarkIndex = url.indexOf('#');\n    if (hashmarkIndex !== -1) {\n      url = url.slice(0, hashmarkIndex);\n    }\n\n    url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n  }\n\n  return url;\n};\n","import React, {Component, Fragment} from 'react';\nimport PropTypes from 'prop-types';\n\nimport {calculateClippedRectangle} from '../../../../../components/FreeLayoutEditor/util/clippedEntity';\nimport {getBackRotatedEntityRectangle} from '../../../../../components/FreeLayoutEditor/handlers/handle/utils';\nimport {\n    constructDerivedState,\n    wrapAndOrderEntities,\n} from '../../../../../components/FreeLayoutEditor/content/AccessibleReadingOrderUtils.js';\nimport {ContentBlockItems} from '../../../../../components/FreeLayoutEditor/content/ContentBlockItems';\nimport CurrentInfographicStore from '../../../../main/stores/CurrentInfographicStore';\nimport hiddenOffScreen from '../../AccessibilityDescriptionStyle';\nimport {logWarning} from '../../../../../utils/logger/logger';\n\nfunction calculateBlockWithAdjustedPositions({block, entity, adjustedBlock}) {\n    const childEntityKeys = entity.getChildrenKeys();\n    if (!adjustedBlock) {\n        adjustedBlock = block;\n    }\n    for (const key of childEntityKeys) {\n        const adjustedEntity = adjustedBlock.getEntity(key);\n        //This should not happen, but if it does, we don't want the webview to crash.\n        if (!adjustedEntity) {\n            console.warn(`Group ${entity.key} has an entity ${key} that does not exist in the block`);\n            logWarning('Group has an entity that does not exist in the block', {\n                groupKey: entity.key,\n                childKey: key,\n                infographicId: CurrentInfographicStore.infographicId,\n            });\n            continue;\n        }\n        if (adjustedEntity.getCalloutKey()) {\n            continue;\n        }\n        const originalEntity = block.getEntity(entity.getKey());\n        const adjustedEntityRectangle = getBackRotatedEntityRectangle(adjustedEntity, originalEntity);\n        adjustedBlock = adjustedBlock.setEntity(key, {\n            left: adjustedEntityRectangle.left - originalEntity.getLeft(),\n            top: adjustedEntityRectangle.top - originalEntity.getTop(),\n        });\n    }\n    return adjustedBlock;\n}\n\nfunction getOrderedEntities(prevState, nextProps, newState) {\n    const {adjustedBlock} = newState;\n    const childEntityKeys = nextProps.entity.getChildrenKeys();\n    const adjustedEntities = adjustedBlock.getEntitiesByKeys(childEntityKeys).filter(e => !e.getCalloutKey());\n    return {\n        orderedEntities: wrapAndOrderEntities(adjustedEntities, entity => {\n            return nextProps.block.getEntity(entity.getKey()).bounds();\n        }),\n    };\n}\n\nexport default class ReadOnlyGroup extends Component {\n    static propTypes = {\n        entity: PropTypes.object.isRequired,\n        block: PropTypes.object,\n        design: PropTypes.any.isRequired,\n        assets: PropTypes.shape({getURL: PropTypes.func.isRequired}),\n        adjustedBlock: PropTypes.object,\n        scaleX: PropTypes.number.isRequired,\n        scaleY: PropTypes.number.isRequired,\n        readOnly: PropTypes.bool,\n        inEditMode: PropTypes.bool,\n        renderItemContentsFn: PropTypes.func,\n        registerDOMNode: PropTypes.bool,\n        pageSize: PropTypes.object,\n        onMouseHover: PropTypes.func,\n        onMouseLeave: PropTypes.func,\n        onMouseDown: PropTypes.func,\n    };\n\n    constructor(props) {\n        super(props);\n        this.state = {};\n    }\n\n    static getDerivedStateFromProps(nextProps, prevState) {\n        return constructDerivedState(nextProps, prevState, ['block', 'entity'], [\n            () => ({\n                adjustedBlock: calculateBlockWithAdjustedPositions(nextProps),\n            }),\n            getOrderedEntities,\n        ]);\n    }\n\n    render() {\n        const {entity, design, scaleX, scaleY} = this.props;\n        const {adjustedBlock} = this.state;\n        const groupStyle = {\n            width: `${entity.getWidth()}px`,\n            height: `${entity.getHeight()}px`,\n            transform: `scale(${scaleX}, ${scaleY})`,\n            transformOrigin: '0 0',\n            position: 'relative',\n        };\n        const accessibility = entity.getAccessibility();\n\n        const renderGroupItemContentsFn = (childEntity, design, extraProps, containerProps) => {\n            const transform = childEntity.getTransform();\n            const adjustedExtraProps = {\n                scaleX: 1,\n                scaleY: 1,\n                groupScaleX: scaleX,\n                groupScaleY: scaleY,\n                rotate: transform.rotate - entity.getTransform().rotate,\n                adjustedBlock,\n            };\n\n            if (childEntity.isGroup()) {\n                adjustedExtraProps.renderItemContentsFn = this.props.renderItemContentsFn;\n                adjustedExtraProps.registerDOMNode = this.props.registerDOMNode;\n                adjustedExtraProps.readOnly = this.props.readOnly;\n                adjustedExtraProps.design = this.props.design;\n            }\n\n            const visibleRect = calculateClippedRectangle(childEntity);\n            const adjustedStyle = {\n                left: visibleRect.left,\n                top: visibleRect.top,\n                width: visibleRect.width,\n                height: visibleRect.height,\n                WebkitTransform: `rotate(${adjustedExtraProps.rotate}deg) scale(${transform.flipHorizontal ? -1 : 1}, ${transform.flipVertical ? -1 : 1})`,\n                transform: `rotate(${adjustedExtraProps.rotate}deg) scale(${transform.flipHorizontal ? -1 : 1}, ${transform.flipVertical ? -1 : 1})`,\n                position: 'absolute',\n            };\n\n            const item = this.props.renderItemContentsFn(childEntity, design, adjustedExtraProps, containerProps);\n\n            return (\n                <div key={childEntity.getKey()} style={adjustedStyle}>\n                    {item}\n                </div>\n            );\n        };\n\n        const childComponents = (\n            <ContentBlockItems\n                items={this.state.orderedEntities}\n                readOnly={this.props.readOnly}\n                inEditMode={this.props.inEditMode}\n                groupMode\n                block={this.props.block}\n                assets={this.props.assets}\n                design={design}\n                scaleX={scaleX}\n                scaleY={scaleY}\n                renderItemContentsFn={renderGroupItemContentsFn}\n                registerDOMNode={this.props.registerDOMNode}\n                pageSize={this.props.pageSize}\n                onMouseHover={this.props.onMouseHover}\n                onMouseLeave={this.props.onMouseLeave}\n                onMouseDown={this.props.onMouseDown}\n            />\n        );\n\n        if (accessibility && accessibility.enabled) {\n            if (accessibility.readChildren) {\n                const descriptionID = `${entity.getKey()}_description`;\n                let description;\n                if (accessibility.description) {\n                    description = (\n                        <span id={descriptionID} style={hiddenOffScreen}>\n                            {accessibility.description}\n                        </span>\n                    );\n                }\n                return (\n                    <Fragment>\n                        {description}\n                        <div role=\"region\"\n                             style={groupStyle}\n                             aria-label={accessibility.label ? accessibility.label : undefined}\n                             aria-describedby={accessibility.description ? descriptionID : undefined}\n                        >\n                            {childComponents}\n                        </div>\n                    </Fragment>\n                );\n            }\n            let image;\n            let description;\n            const descriptionID = `${this.props.entity.getKey()}_description`;\n            if (accessibility.description || accessibility.label) {\n                image = (\n                        <img className=\"screen-reader-chart-image\"\n                             alt={accessibility.label ? accessibility.label : undefined}\n                             aria-describedby={accessibility.description ? descriptionID : undefined}\n                             tabIndex={accessibility.description ? '-1' : undefined}\n                        />\n                    );\n            }\n            if (accessibility.description) {\n                description = (\n                        <span id={descriptionID} style={hiddenOffScreen}>\n                            {accessibility.description}\n                        </span>\n                    );\n            }\n\n            return (\n                    <Fragment>\n                        {image}\n                        {description}\n                        <div role=\"presentation\" aria-hidden=\"true\" style={groupStyle}>\n                            {childComponents}\n                        </div>\n                    </Fragment>\n            );\n        }\n        return (\n                <div role=\"presentation\" aria-hidden=\"true\" style={groupStyle}>\n                    {childComponents}\n                </div>\n        );\n    }\n}\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar has = require('../internals/has');\nvar classof = require('../internals/classof');\nvar hide = require('../internals/hide');\nvar redefine = require('../internals/redefine');\nvar defineProperty = require('../internals/object-define-property').f;\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar uid = require('../internals/uid');\n\nvar DataView = global.DataView;\nvar DataViewPrototype = DataView && DataView.prototype;\nvar Int8Array = global.Int8Array;\nvar Int8ArrayPrototype = Int8Array && Int8Array.prototype;\nvar Uint8ClampedArray = global.Uint8ClampedArray;\nvar Uint8ClampedArrayPrototype = Uint8ClampedArray && Uint8ClampedArray.prototype;\nvar TypedArray = Int8Array && getPrototypeOf(Int8Array);\nvar TypedArrayPrototype = Int8ArrayPrototype && getPrototypeOf(Int8ArrayPrototype);\nvar ObjectPrototype = Object.prototype;\nvar isPrototypeOf = ObjectPrototype.isPrototypeOf;\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar TYPED_ARRAY_TAG = uid('TYPED_ARRAY_TAG');\nvar NATIVE_ARRAY_BUFFER = !!(global.ArrayBuffer && DataView);\nvar NATIVE_ARRAY_BUFFER_VIEWS = NATIVE_ARRAY_BUFFER && !!setPrototypeOf;\nvar TYPED_ARRAY_TAG_REQIRED = false;\nvar NAME;\n\nvar TypedArrayConstructorsList = {\n  Int8Array: 1,\n  Uint8Array: 1,\n  Uint8ClampedArray: 1,\n  Int16Array: 2,\n  Uint16Array: 2,\n  Int32Array: 4,\n  Uint32Array: 4,\n  Float32Array: 4,\n  Float64Array: 8\n};\n\nvar isView = function isView(it) {\n  var klass = classof(it);\n  return klass === 'DataView' || has(TypedArrayConstructorsList, klass);\n};\n\nvar isTypedArray = function (it) {\n  return isObject(it) && has(TypedArrayConstructorsList, classof(it));\n};\n\nvar aTypedArray = function (it) {\n  if (isTypedArray(it)) return it;\n  throw TypeError('Target is not a typed array');\n};\n\nvar aTypedArrayConstructor = function (C) {\n  if (setPrototypeOf) {\n    if (isPrototypeOf.call(TypedArray, C)) return C;\n  } else for (var ARRAY in TypedArrayConstructorsList) if (has(TypedArrayConstructorsList, NAME)) {\n    var TypedArrayConstructor = global[ARRAY];\n    if (TypedArrayConstructor && (C === TypedArrayConstructor || isPrototypeOf.call(TypedArrayConstructor, C))) {\n      return C;\n    }\n  } throw TypeError('Target is not a typed array constructor');\n};\n\nvar exportProto = function (KEY, property, forced) {\n  if (!DESCRIPTORS) return;\n  if (forced) for (var ARRAY in TypedArrayConstructorsList) {\n    var TypedArrayConstructor = global[ARRAY];\n    if (TypedArrayConstructor && has(TypedArrayConstructor.prototype, KEY)) {\n      delete TypedArrayConstructor.prototype[KEY];\n    }\n  }\n  if (!TypedArrayPrototype[KEY] || forced) {\n    redefine(TypedArrayPrototype, KEY, forced ? property\n      : NATIVE_ARRAY_BUFFER_VIEWS && Int8ArrayPrototype[KEY] || property);\n  }\n};\n\nvar exportStatic = function (KEY, property, forced) {\n  var ARRAY, TypedArrayConstructor;\n  if (!DESCRIPTORS) return;\n  if (setPrototypeOf) {\n    if (forced) for (ARRAY in TypedArrayConstructorsList) {\n      TypedArrayConstructor = global[ARRAY];\n      if (TypedArrayConstructor && has(TypedArrayConstructor, KEY)) {\n        delete TypedArrayConstructor[KEY];\n      }\n    }\n    if (!TypedArray[KEY] || forced) {\n      // V8 ~ Chrome 49-50 `%TypedArray%` methods are non-writable non-configurable\n      try {\n        return redefine(TypedArray, KEY, forced ? property : NATIVE_ARRAY_BUFFER_VIEWS && Int8Array[KEY] || property);\n      } catch (error) { /* empty */ }\n    } else return;\n  }\n  for (ARRAY in TypedArrayConstructorsList) {\n    TypedArrayConstructor = global[ARRAY];\n    if (TypedArrayConstructor && (!TypedArrayConstructor[KEY] || forced)) {\n      redefine(TypedArrayConstructor, KEY, property);\n    }\n  }\n};\n\nfor (NAME in TypedArrayConstructorsList) {\n  if (!global[NAME]) NATIVE_ARRAY_BUFFER_VIEWS = false;\n}\n\n// WebKit bug - typed arrays constructors prototype is Object.prototype\nif (!NATIVE_ARRAY_BUFFER_VIEWS || typeof TypedArray != 'function' || TypedArray === Function.prototype) {\n  // eslint-disable-next-line no-shadow\n  TypedArray = function TypedArray() {\n    throw TypeError('Incorrect invocation');\n  };\n  if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) {\n    if (global[NAME]) setPrototypeOf(global[NAME], TypedArray);\n  }\n}\n\nif (!NATIVE_ARRAY_BUFFER_VIEWS || !TypedArrayPrototype || TypedArrayPrototype === ObjectPrototype) {\n  TypedArrayPrototype = TypedArray.prototype;\n  if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) {\n    if (global[NAME]) setPrototypeOf(global[NAME].prototype, TypedArrayPrototype);\n  }\n}\n\n// WebKit bug - one more object in Uint8ClampedArray prototype chain\nif (NATIVE_ARRAY_BUFFER_VIEWS && getPrototypeOf(Uint8ClampedArrayPrototype) !== TypedArrayPrototype) {\n  setPrototypeOf(Uint8ClampedArrayPrototype, TypedArrayPrototype);\n}\n\nif (DESCRIPTORS && !has(TypedArrayPrototype, TO_STRING_TAG)) {\n  TYPED_ARRAY_TAG_REQIRED = true;\n  defineProperty(TypedArrayPrototype, TO_STRING_TAG, { get: function () {\n    return isObject(this) ? this[TYPED_ARRAY_TAG] : undefined;\n  } });\n  for (NAME in TypedArrayConstructorsList) if (global[NAME]) {\n    hide(global[NAME], TYPED_ARRAY_TAG, NAME);\n  }\n}\n\n// WebKit bug - the same parent prototype for typed arrays and data view\nif (NATIVE_ARRAY_BUFFER && setPrototypeOf && getPrototypeOf(DataViewPrototype) !== ObjectPrototype) {\n  setPrototypeOf(DataViewPrototype, ObjectPrototype);\n}\n\nmodule.exports = {\n  NATIVE_ARRAY_BUFFER: NATIVE_ARRAY_BUFFER,\n  NATIVE_ARRAY_BUFFER_VIEWS: NATIVE_ARRAY_BUFFER_VIEWS,\n  TYPED_ARRAY_TAG: TYPED_ARRAY_TAG_REQIRED && TYPED_ARRAY_TAG,\n  aTypedArray: aTypedArray,\n  aTypedArrayConstructor: aTypedArrayConstructor,\n  exportProto: exportProto,\n  exportStatic: exportStatic,\n  isView: isView,\n  isTypedArray: isTypedArray,\n  TypedArray: TypedArray,\n  TypedArrayPrototype: TypedArrayPrototype\n};\n","import i18n from 'i18next';\n\nimport cx from 'classnames';\nimport PropTypes from 'prop-types';\nimport invariant from 'invariant';\nimport React, {PureComponent} from 'react';\n\nimport Ellipse from './Ellipse.react';\nimport Line from './Line.react';\nimport Polygon from './Polygon.react';\nimport Rectangle from './Rectangle.react';\nimport Path from './Path.react';\nimport PredefinedPath from './PredefinedPath.react';\nimport style from './shape.css';\nimport TextComponent from '../Text/Text.react';\nimport {engagementEvent} from '../../../../../components/EngagementAnalytics/EngagementAnalytics.actions';\nimport Link from '../Link/Link.react';\nimport LinkPreview from '../Link/LinkPreview.react';\nimport AccessibleWrapper from '../AccessibleWrapper';\nimport TooltipWrapper, {hideTooltip} from '../TooltipWrapper.react';\n\nconst shapeTypeMap = {\n    line: Line,\n    arrow: Line,\n    rectangle: Rectangle,\n    rounded: Rectangle,\n    ellipse: Ellipse,\n    triangle: Polygon,\n    polygon: Polygon,\n    path: Path,\n    oval: Rectangle,\n    hexagon: Polygon,\n    rhombus: Polygon,\n    trapeziumUp: Polygon,\n    trapeziumDown: Polygon,\n    parallelogramLeft: Polygon,\n    parallelogramRight: Polygon,\n    calloutCircle: PredefinedPath,\n    cylinder: PredefinedPath,\n    pointer: PredefinedPath,\n    cloud: PredefinedPath,\n};\n\nexport const SHAPE_TYPE_LABELS = {\n    get line() {\n        return i18n.t('inspector.free.entity.type.SHAPE.line');\n    },\n    get arrow() {\n        return i18n.t('inspector.free.entity.type.SHAPE.arrow');\n    },\n    get rectangle() {\n        return i18n.t('inspector.free.entity.type.SHAPE.rectangle');\n    },\n    get rounded() {\n        return i18n.t('inspector.free.entity.type.SHAPE.rounded');\n    },\n    get ellipse() {\n        return i18n.t('inspector.free.entity.type.SHAPE.ellipse');\n    },\n    get triangle() {\n        return i18n.t('inspector.free.entity.type.SHAPE.triangle');\n    },\n    get polygon() {\n        return i18n.t('inspector.free.entity.type.SHAPE.polygon');\n    },\n    get rhombus() {\n        return i18n.t('inspector.free.entity.type.SHAPE.rhombus');\n    },\n    get hexagon() {\n        return i18n.t('inspector.free.entity.type.SHAPE.hexagon');\n    },\n    get oval() {\n        return i18n.t('inspector.free.entity.type.SHAPE.oval');\n    },\n    get parallelogramLeft() {\n        return i18n.t('inspector.free.entity.type.SHAPE.parallelogram');\n    },\n    get parallelogramRight() {\n        return i18n.t('inspector.free.entity.type.SHAPE.parallelogram');\n    },\n    get trapeziumUp() {\n        return i18n.t('inspector.free.entity.type.SHAPE.trapezium');\n    },\n    get trapeziumDown() {\n        return i18n.t('inspector.free.entity.type.SHAPE.trapezium');\n    },\n    get pointer() {\n        return i18n.t('inspector.free.entity.type.SHAPE.pointer');\n    },\n    get cloud() {\n        return i18n.t('inspector.free.entity.type.SHAPE.cloud');\n    },\n    get calloutCircle() {\n        return i18n.t('inspector.free.entity.type.SHAPE.calloutCircle');\n    },\n    get cylinder() {\n        return i18n.t('inspector.free.entity.type.SHAPE.cylinder');\n    },\n    get path() {\n        return i18n.t('inspector.free.entity.type.SHAPE.path');\n    },\n};\n\nexport async function initialPropsForData(data, options) {\n    const Shape = shapeTypeMap[data.type];\n    let additionalProps = {};\n    if (Shape && Shape.defaultShapeProps) {\n        additionalProps = Shape.defaultShapeProps(data, options);\n    }\n    const size = options.elementWidth;\n    return {\n        width: size,\n        height: size,\n        ...additionalProps,\n    };\n}\n\nexport default class ShapeComponent extends PureComponent {\n    static propTypes = {\n        entity: PropTypes.shape({\n            getProperty: PropTypes.func.isRequired,\n            getWidth: PropTypes.func.isRequired,\n            getHeight: PropTypes.func.isRequired,\n            getKey: PropTypes.func.isRequired,\n            getAccessibility: PropTypes.func.isRequired,\n            getCallout: PropTypes.func.isRequired,\n        }).isRequired,\n        scaleX: PropTypes.number.isRequired,\n        scaleY: PropTypes.number.isRequired,\n        design: PropTypes.any.isRequired,\n        inEditMode: PropTypes.bool,\n        onLinkPreviewClick: PropTypes.func,\n        isEditing: PropTypes.bool,\n        children: PropTypes.node,\n    };\n\n    constructor(props) {\n        super(props);\n        this._onClick = this._onClick.bind(this);\n    }\n\n    render() {\n        const {entity, design, inEditMode, scaleX, scaleY, isEditing} = this.props;\n        const shapeType = entity.getProperty('type');\n        const Component = shapeTypeMap[shapeType];\n        invariant(!!Component, `Unknown SHAPE type '${shapeType}'`);\n\n        const link = entity.getProperty('link');\n        const tooltipText = entity.getProperty('tooltipText');\n        const width = entity.getWidth();\n        const height = entity.getHeight();\n        let opacity = entity.getProperty('opacity');\n        if (typeof opacity !== 'number') {\n            opacity = 1;\n        }\n        const shapeStyle = {\n            opacity,\n            width: `${width}px`,\n            height: `${height}px`,\n            transform: `scale(${scaleX}, ${scaleY})`,\n            transformOrigin: '0 0',\n        };\n\n        let onClick;\n        const callout = entity.getCallout();\n        if (callout && !inEditMode) {\n            if (callout.get('behaviour') === 'click') {\n                shapeStyle.cursor = 'pointer';\n            } else {\n                // iOS < 13 have issues with touch events if element is not link or button.\n                // In result hover type callouts do not work if empty click listener (or cursor: pointer) is not set.\n                onClick = () => {};\n            }\n        }\n\n        let content = (\n            <Component\n                entity={entity}\n                design={design}\n                inEditMode={inEditMode}\n            />\n        );\n\n        let textContent;\n        if (entity.getProperty('content')) {\n            textContent = (\n                <div className={cx(style.textComponent, isEditing && style.editing)}>\n                    {isEditing ? this.props.children :\n                        <TextComponent\n                            scaleX={1}\n                            scaleY={1}\n                            entity={entity}\n                            design={design}\n                        />\n                    }\n                </div>\n            );\n        }\n\n        const accessibility = entity.getAccessibility();\n        if (!inEditMode && accessibility && accessibility.enabled) {\n            const role = entity.getCallout() ? 'button' : 'img';\n            content = (\n                <AccessibleWrapper id={entity.getKey()} role={role} accessibility={accessibility}>\n                    {content}\n                </AccessibleWrapper>\n            );\n        }\n\n        content = (\n            <div\n                className={style.shape}\n                style={shapeStyle}\n                onClick={onClick}\n            >\n                {content}\n                {textContent}\n            </div>\n        );\n\n        if (tooltipText) {\n            content = <TooltipWrapper text={tooltipText} entityKey={entity.getKey()}>{content}</TooltipWrapper>;\n        }\n\n        if (link) {\n            if (inEditMode) {\n                return (\n                    <LinkPreview url={link} onClick={this.props.onLinkPreviewClick}>\n                        {content}\n                    </LinkPreview>\n                );\n            }\n            return (\n                <Link width={width * scaleX} height={height * scaleY} onClick={this._onClick} url={link}>\n                    {content}\n                </Link>\n            );\n        }\n\n        return content;\n    }\n\n    _onClick() {\n        hideTooltip();\n        engagementEvent(this.props.entity.getKey(), 'link', 'click');\n    }\n}\n","export const INFOGRAPHIC_SIDE_BUTTON_DOWNLOADS = 'INFOGRAPHIC_SIDE_BUTTON_DOWNLOADS';\nexport const INFOGRAPHIC_SIDE_BUTTON_SHARE = 'INFOGRAPHIC_SIDE_BUTTON_SHARE';\nexport const INFOGRAPHIC_SIDE_BUTTON_FULLSCREEN = 'INFOGRAPHIC_SIDE_BUTTON_FULLSCREEN';\n","function degreesToRadians(degrees) {\n    return degrees * Math.PI / 180;\n}\n\nfunction centerPoint(rect) {\n    return {\n        left: rect.left + rect.width / 2,\n        top: rect.top + rect.height / 2,\n    };\n}\n\nexport function roundRect(rect) {\n    return {\n        top: Math.round(rect.top),\n        left: Math.round(rect.left),\n        width: Math.round(rect.width),\n        height: Math.round(rect.height),\n    };\n}\n\nexport function lineBounds(rect, angle = 0) {\n    // returns bounds of center line not all rectangle\n    return roundRect(rectToBounds({\n        left: rect.left,\n        top: rect.top + rect.height / 2,\n        height: 1,\n        width: rect.width,\n    }, angle));\n}\n\nexport function rectToBounds(rect, angle = 0) {\n    const origin = centerPoint(rect);\n    const angleRadians = degreesToRadians(angle);\n\n    const cos = Math.abs(Math.cos(angleRadians));\n    const sin = Math.abs(Math.sin(angleRadians));\n\n    const width = (rect.width * cos + rect.height * sin);\n    const height = (rect.width * sin + rect.height * cos);\n\n    return {\n        top: origin.top - height / 2,\n        left: origin.left - width / 2,\n        width,\n        height,\n    };\n}\n\nexport function boundsToRect(rect, angle = 0) {\n    const origin = centerPoint(rect);\n    const angleRadians = degreesToRadians(angle);\n\n    const cos = Math.abs(Math.cos(angleRadians));\n    const sin = Math.abs(Math.sin(angleRadians));\n\n    const inverse = (cos ** 2 - sin ** 2);\n    // The inverse matrix does not exist when angle is 45°\n    // Adjust the angle a bit. It wont be noticale because of\n    // rounding errors anyway.\n    if (Math.abs(inverse) < 0.01) {\n        return boundsToRect(rect, angle + 0.01);\n    }\n    const width = (rect.width * cos - rect.height * sin) / inverse;\n    const height = (-rect.width * sin + rect.height * cos) / inverse;\n\n    return {\n        top: origin.top - height / 2,\n        left: origin.left - width / 2,\n        width,\n        height,\n    };\n}\n\nexport function calculateBoundingBox(entities, useLineBounds=false) {\n    const boundingBox = {\n        top: Infinity,\n        left: Infinity,\n        right: -Infinity,\n        bottom: -Infinity,\n    };\n\n    entities.forEach(entity => {\n        if (entity.getCalloutKey()) {\n            return;\n        }\n        let entityBounds;\n        if (useLineBounds && entity.isLine()) {\n            entityBounds = lineBounds(entity.rectangle(), entity.transform.rotate);\n        } else {\n            entityBounds = entity.bounds();\n        }\n        boundingBox.top = Math.min(boundingBox.top, entityBounds.top);\n        boundingBox.left = Math.min(boundingBox.left, entityBounds.left);\n        boundingBox.right = Math.max(boundingBox.right, entityBounds.left + entityBounds.width);\n        boundingBox.bottom = Math.max(boundingBox.bottom, entityBounds.top + entityBounds.height);\n    });\n\n    return {\n        left: boundingBox.left,\n        top: boundingBox.top,\n        width: boundingBox.right - boundingBox.left,\n        height: boundingBox.bottom - boundingBox.top,\n    };\n}\n","var has = require('../internals/has');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source) {\n  var keys = ownKeys(source);\n  var defineProperty = definePropertyModule.f;\n  var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n  for (var i = 0; i < keys.length; i++) {\n    var key = keys[i];\n    if (!has(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n  }\n};\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule BaseEventEmitter\n * @typechecks\n */\n\n'use strict';\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\nvar EmitterSubscription = require('./EmitterSubscription');\nvar EventSubscriptionVendor = require('./EventSubscriptionVendor');\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar invariant = require('fbjs/lib/invariant');\n\n/**\n * @class BaseEventEmitter\n * @description\n * An EventEmitter is responsible for managing a set of listeners and publishing\n * events to them when it is told that such events happened. In addition to the\n * data for the given event it also sends a event control object which allows\n * the listeners/handlers to prevent the default behavior of the given event.\n *\n * The emitter is designed to be generic enough to support all the different\n * contexts in which one might want to emit events. It is a simple multicast\n * mechanism on top of which extra functionality can be composed. For example, a\n * more advanced emitter may use an EventHolder and EventFactory.\n */\n\nvar BaseEventEmitter = (function () {\n  /**\n   * @constructor\n   */\n\n  function BaseEventEmitter() {\n    _classCallCheck(this, BaseEventEmitter);\n\n    this._subscriber = new EventSubscriptionVendor();\n    this._currentSubscription = null;\n  }\n\n  /**\n   * Adds a listener to be invoked when events of the specified type are\n   * emitted. An optional calling context may be provided. The data arguments\n   * emitted will be passed to the listener function.\n   *\n   * TODO: Annotate the listener arg's type. This is tricky because listeners\n   *       can be invoked with varargs.\n   *\n   * @param {string} eventType - Name of the event to listen to\n   * @param {function} listener - Function to invoke when the specified event is\n   *   emitted\n   * @param {*} context - Optional context object to use when invoking the\n   *   listener\n   */\n\n  BaseEventEmitter.prototype.addListener = function addListener(eventType, listener, context) {\n    return this._subscriber.addSubscription(eventType, new EmitterSubscription(this._subscriber, listener, context));\n  };\n\n  /**\n   * Similar to addListener, except that the listener is removed after it is\n   * invoked once.\n   *\n   * @param {string} eventType - Name of the event to listen to\n   * @param {function} listener - Function to invoke only once when the\n   *   specified event is emitted\n   * @param {*} context - Optional context object to use when invoking the\n   *   listener\n   */\n\n  BaseEventEmitter.prototype.once = function once(eventType, listener, context) {\n    var emitter = this;\n    return this.addListener(eventType, function () {\n      emitter.removeCurrentListener();\n      listener.apply(context, arguments);\n    });\n  };\n\n  /**\n   * Removes all of the registered listeners, including those registered as\n   * listener maps.\n   *\n   * @param {?string} eventType - Optional name of the event whose registered\n   *   listeners to remove\n   */\n\n  BaseEventEmitter.prototype.removeAllListeners = function removeAllListeners(eventType) {\n    this._subscriber.removeAllSubscriptions(eventType);\n  };\n\n  /**\n   * Provides an API that can be called during an eventing cycle to remove the\n   * last listener that was invoked. This allows a developer to provide an event\n   * object that can remove the listener (or listener map) during the\n   * invocation.\n   *\n   * If it is called when not inside of an emitting cycle it will throw.\n   *\n   * @throws {Error} When called not during an eventing cycle\n   *\n   * @example\n   *   var subscription = emitter.addListenerMap({\n   *     someEvent: function(data, event) {\n   *       console.log(data);\n   *       emitter.removeCurrentListener();\n   *     }\n   *   });\n   *\n   *   emitter.emit('someEvent', 'abc'); // logs 'abc'\n   *   emitter.emit('someEvent', 'def'); // does not log anything\n   */\n\n  BaseEventEmitter.prototype.removeCurrentListener = function removeCurrentListener() {\n    !!!this._currentSubscription ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Not in an emitting cycle; there is no current subscription') : invariant(false) : undefined;\n    this._subscriber.removeSubscription(this._currentSubscription);\n  };\n\n  /**\n   * Returns an array of listeners that are currently registered for the given\n   * event.\n   *\n   * @param {string} eventType - Name of the event to query\n   * @return {array}\n   */\n\n  BaseEventEmitter.prototype.listeners = function listeners(eventType) /* TODO: Array<EventSubscription> */{\n    var subscriptions = this._subscriber.getSubscriptionsForType(eventType);\n    return subscriptions ? subscriptions.filter(emptyFunction.thatReturnsTrue).map(function (subscription) {\n      return subscription.listener;\n    }) : [];\n  };\n\n  /**\n   * Emits an event of the given type with the given data. All handlers of that\n   * particular type will be notified.\n   *\n   * @param {string} eventType - Name of the event to emit\n   * @param {*} Arbitrary arguments to be passed to each registered listener\n   *\n   * @example\n   *   emitter.addListener('someEvent', function(message) {\n   *     console.log(message);\n   *   });\n   *\n   *   emitter.emit('someEvent', 'abc'); // logs 'abc'\n   */\n\n  BaseEventEmitter.prototype.emit = function emit(eventType) {\n    var subscriptions = this._subscriber.getSubscriptionsForType(eventType);\n    if (subscriptions) {\n      var keys = Object.keys(subscriptions);\n      for (var ii = 0; ii < keys.length; ii++) {\n        var key = keys[ii];\n        var subscription = subscriptions[key];\n        // The subscription may have been removed during this event loop.\n        if (subscription) {\n          this._currentSubscription = subscription;\n          this.__emitToSubscription.apply(this, [subscription].concat(Array.prototype.slice.call(arguments)));\n        }\n      }\n      this._currentSubscription = null;\n    }\n  };\n\n  /**\n   * Provides a hook to override how the emitter emits an event to a specific\n   * subscription. This allows you to set up logging and error boundaries\n   * specific to your environment.\n   *\n   * @param {EmitterSubscription} subscription\n   * @param {string} eventType\n   * @param {*} Arbitrary arguments to be passed to each registered listener\n   */\n\n  BaseEventEmitter.prototype.__emitToSubscription = function __emitToSubscription(subscription, eventType) {\n    var args = Array.prototype.slice.call(arguments, 2);\n    subscription.listener.apply(subscription.context, args);\n  };\n\n  return BaseEventEmitter;\n})();\n\nmodule.exports = BaseEventEmitter;","import _ from 'lodash';\nimport raf from 'raf';\nimport {dispatch} from 'd3-dispatch';\n\nimport EntityStore from '../chart_factory/entities';\nimport Dispatcher from '../../app/dispatcher';\nimport DownloadConstants from '../../app/download/constants/DownloadConstants';\n\nlet dispatcher = dispatch('interlinkedTab');\nlet sheetName;\nlet qParams;\nlet enabled = false;\nlet busy = false;\n\nfunction processEntities(action) {\n    Object.keys(EntityStore.getAllEntities()).forEach(key => {\n        const chart = EntityStore.getEntity(key);\n        if (!chart) {\n            return;\n        }\n\n        action(chart);\n    });\n}\n\nfunction searchInstanceTab(chartInstance, tabName) {\n    const tabNames = chartInstance.options.sheets.map(sheet => sheet.categories.title && sheet.categories.title.trim() || '');\n    return tabNames.indexOf(tabName && tabName.trim());\n}\n\n/**\n * Updates entry in chart tab store for downloads. Needed for interlinked\n * charts to work together with selected chart tab remembering functionality\n * in freelayout downloads.\n * @param {string} entityKey chart entity key to update in download chart tab store\n * @param {number} sheetIndex chart sheetIndex change in download chart tab store\n */\nfunction updateDownloadsChartTab(entityKey, sheetIndex) {\n    Dispatcher.dispatch({\n        type: DownloadConstants.CHANGE_CHART_TAB,\n        entityKey,\n        sheetIndex,\n    });\n}\n\n// by this function remember lastly clicked chart\n// in case user is clicking like mad and/or charts are too much\nfunction processChange(sheetName, chartInstance) {\n    qParams = undefined;\n    busy = true;\n    dispatcher.call('interlinkedTab', null, sheetName, chartInstance);\n    busy = false;\n    if (qParams !== undefined && sheetName !== qParams[0]) {\n        processChange.apply(null, qParams);\n    }\n}\n\nconst InterlinkedCharts = {\n    get sheetName() { // used to read sheetName to send params for downloads\n        return sheetName;\n    },\n    set sheetName(name) { // used in downloads to set selected sheet when interlinked charts on\n        sheetName = name;\n    },\n    reset: function(toggle) {\n        dispatcher = dispatch('interlinkedTab');\n        sheetName = undefined;\n        enabled = !!toggle;\n        this.unsubscribeAll();\n    },\n    subscribe: function(chart) {\n        const chartInstance = _.get(chart, 'instance');\n\n        if (!chartInstance || !enabled) {\n            return;\n        }\n\n        const sheetIndexSearch = searchInstanceTab(chartInstance, sheetName);\n        if (sheetIndexSearch !== -1) {\n            updateDownloadsChartTab(chart.id, sheetIndexSearch);\n            chartInstance.sheetIndex = sheetIndexSearch;\n        }\n\n        dispatcher.on(`interlinkedTab.${chart.id}`, async function(tabName, callerInstance) {\n            const entity = EntityStore.getEntity(chart.id);\n\n            // when deleted chart unsubscribe it\n            if (!entity) {\n                InterlinkedCharts.unsubscribe(chart);\n                return;\n            }\n\n            if (chartInstance === callerInstance) {\n                return;\n            }\n\n            const sheetIndexSearch = searchInstanceTab(chartInstance, tabName);\n\n            if (sheetIndexSearch !== -1) {\n                updateDownloadsChartTab(chart.id, sheetIndexSearch);\n                const {addRenderQueue} = await import('../../../../client/components/charts/core');\n                chartInstance.previousIndex = chartInstance.sheetIndex;\n                chartInstance.sheetIndex = sheetIndexSearch;\n                // with this we make sure one chart redrawn at a time\n                addRenderQueue(chartInstance);\n            }\n        });\n\n        chartInstance.events.on('tabChanged', tab => {\n            sheetName = _.get(tab, 'name');\n            qParams = [sheetName, chartInstance];\n\n            if (busy) {\n                return;\n            }\n\n            if (enabled) {\n                raf(function() {\n                    processChange.apply(null, qParams);\n                });\n            }\n        });\n    },\n    unsubscribe: function(chart) {\n        dispatcher.on(`interlinkedTab.${chart.id}`, null);\n        const instanceEvents = _.get(chart, 'instance.events');\n        if (instanceEvents) {\n            instanceEvents.on('tabChanged', null);\n        }\n    },\n    unsubscribeAll: function() {\n        processEntities((chart) => {\n            this.unsubscribe(chart);\n        });\n    },\n    toggle: function(toggle) {\n        enabled = !!toggle;\n        sheetName = undefined;\n        if (enabled) {\n            processEntities(chart => {\n                this.subscribe(chart);\n            });\n        } else {\n            this.unsubscribeAll();\n        }\n    },\n};\n\nexport default InterlinkedCharts;\n","var classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.github.io/ecma262/#sec-isarray\nmodule.exports = Array.isArray || function isArray(arg) {\n  return classof(arg) == 'Array';\n};\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $indexOf = require('../internals/array-includes').indexOf;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\n\n// `%TypedArray%.prototype.indexOf` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.indexof\nArrayBufferViewCore.exportProto('indexOf', function indexOf(searchElement /* , fromIndex */) {\n  return $indexOf(aTypedArray(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);\n});\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n  return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n","var fails = require('../internals/fails');\n\n// check the existence of a method, lowercase\n// of a tag and escaping quotes in arguments\nmodule.exports = function (METHOD_NAME) {\n  return fails(function () {\n    var test = ''[METHOD_NAME]('\"');\n    return test !== test.toLowerCase() || test.split('\"').length > 3;\n  });\n};\n","import PropTypes from 'prop-types';\n\nimport React, {PureComponent} from 'react';\n\nimport hiddenOffScreen from '../AccessibilityDescriptionStyle';\n\nimport {StyledImage} from '../../../app/freelayout_editor/components/contents/Media/StyledMedia.js';\n\nexport default class AtlasImage extends PureComponent {\n    static propTypes = {\n        url: PropTypes.string.isRequired,\n        width: PropTypes.number,\n        accessibility: PropTypes.object,\n        id: PropTypes.number,\n    };\n\n    render() {\n        const {description, label, enabled: accessible} = this.props.accessibility;\n        const props = {\n            style: {\n                width: this.props.width || '100%',\n            },\n            src: this.props.url,\n            alt: accessible && label,\n            'aria-label': accessible && label,\n        };\n        if (accessible && description) {\n            props['aria-describedby'] = `${this.props.id}_description`;\n            props.tabIndex = -1;\n        }\n        return (\n            <StyledImage className=\"moveable\">\n                <img {...props}/>\n                {accessible && description &&\n                <p id={`${this.props.id}_description`} style={hiddenOffScreen}>{description}</p>\n                }\n            </StyledImage>\n        );\n    }\n}\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.isConcatSpreadable` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.isconcatspreadable\ndefineWellKnownSymbol('isConcatSpreadable');\n","var hide = require('../internals/hide');\nvar dateToPrimitive = require('../internals/date-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\nvar DatePrototype = Date.prototype;\n\n// `Date.prototype[@@toPrimitive]` method\n// https://tc39.github.io/ecma262/#sec-date.prototype-@@toprimitive\nif (!(TO_PRIMITIVE in DatePrototype)) hide(DatePrototype, TO_PRIMITIVE, dateToPrimitive);\n","import i18n from 'i18next';\n\nimport chartDefaultsInit from '../../shared/chart_defaults';\n\nconst chartDefaults = chartDefaultsInit(i18n);\n\nconst CUSTOM_SETTING_KEYS_TO_CHECK = ['useAllColumns'];\n\n/**\n * Cleans up some fields in `custom` object that are irrelevant\n * to the particular chart type.\n *\n * @param {string} typeMod - chart's type_modifier string\n * @param {object} custom - the `custom` object of the chart\n * @returns {object|undefined} - the same `custom` object, cleaned\n * up if necessary\n */\nexport default function cleanupCustomSettings(typeMod, custom) {\n    if (!custom) {\n        return custom;\n    }\n    for (const key of CUSTOM_SETTING_KEYS_TO_CHECK) {\n        if (key in custom) {\n            const defaults = chartDefaults[typeMod];\n            if (defaults) {\n                const defaultsCustom = defaults.custom;\n                if (defaultsCustom) {\n                    if (!(key in defaultsCustom)) {\n                        delete custom[key];\n                    }\n                }\n            }\n        }\n    }\n    return custom;\n}\n","export function readInfographicData(model) {\n    const elements = model.get('elements');\n    if (!elements) {\n        throw new Error('Model must have the `elements` field present');\n    }\n    const hash = elements.hash;\n    let content = elements.content;\n    if (!hash) {\n        throw new Error('Model must have current hash defined');\n    }\n    if (!content) {\n        throw new Error('Model must have content defined');\n    }\n    if (typeof content === 'string') {\n        try {\n            content = JSON.parse(content);\n        } catch (e) {\n            throw new Error('Cannot parse infographic content JSON');\n        }\n    }\n\n    elements.content = content;\n\n    return elements;\n}\n\nexport default {\n    readInfographicData,\n};\n","const EmptyRect = Object.freeze({\n    left: 0,\n    right: 0,\n    top: 0,\n    bottom: 0,\n    height: 0,\n    width: 0,\n});\n\n\nexport function getWindowSize() {\n    return {\n        width: window.innerWidth && document.documentElement.clientWidth ?\n            Math.min(window.innerWidth, document.documentElement.clientWidth) :\n            window.innerWidth ||\n            document.documentElement.clientWidth ||\n            document.getElementsByTagName('body')[0].clientWidth,\n        height: window.innerHeight && document.documentElement.clientHeight ?\n            Math.min(window.innerHeight, document.documentElement.clientHeight) :\n            window.innerHeight ||\n            document.documentElement.clientHeight ||\n            document.getElementsByTagName('body')[0].clientHeight,\n    };\n}\n\nfunction getIntersection(a, b) {\n    const left = Math.max(a.left, b.left);\n    const right = Math.min(a.right, b.right);\n    const top = Math.max(a.top, b.top);\n    const bottom = Math.min(a.bottom, b.bottom);\n    const width = right - left;\n    const height = bottom - top;\n    if (width > 0 && height > 0) {\n        return {\n            left,\n            right,\n            top,\n            bottom,\n            width,\n            height,\n        };\n    }\n    return EmptyRect;\n}\n\nexport function checkIntersections(observed, viewportOffset, rootBounds) {\n    const result = [];\n    observed.forEach((callbacks, element) => {\n        const bounds = element.getBoundingClientRect();\n        const inScreenBounds = {\n            left: bounds.left + viewportOffset.left,\n            right: bounds.right + viewportOffset.left,\n            top: bounds.top + viewportOffset.top,\n            bottom: bounds.bottom + viewportOffset.top,\n            width: bounds.width,\n            height: bounds.height,\n        };\n\n        const intersection = getIntersection(inScreenBounds, rootBounds);\n\n        result.push({\n            target: element,\n            rootBounds: rootBounds,\n            boundingClientRect: inScreenBounds,\n            intersectionRect: intersection,\n        });\n    });\n    return result;\n}\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS = require('../internals/typed-arrays-constructors-requires-wrappers');\n\nvar aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;\n\n// `%TypedArray%.of` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.of\nArrayBufferViewCore.exportStatic('of', function of(/* ...items */) {\n  var index = 0;\n  var length = arguments.length;\n  var result = new (aTypedArrayConstructor(this))(length);\n  while (length > index) result[index] = arguments[index++];\n  return result;\n}, TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS);\n","/*\n * classList.js: Cross-browser full element.classList implementation.\n * 1.1.20170427\n *\n * By Eli Grey, http://eligrey.com\n * License: Dedicated to the public domain.\n *   See https://github.com/eligrey/classList.js/blob/master/LICENSE.md\n */\n\n/*global self, document, DOMException */\n\n/*! @source http://purl.eligrey.com/github/classList.js/blob/master/classList.js */\n\nif (\"document\" in window.self) {\n\n// Full polyfill for browsers with no classList support\n// Including IE < Edge missing SVGElement.classList\nif (!(\"classList\" in document.createElement(\"_\")) \n\t|| document.createElementNS && !(\"classList\" in document.createElementNS(\"http://www.w3.org/2000/svg\",\"g\"))) {\n\n(function (view) {\n\n\"use strict\";\n\nif (!('Element' in view)) return;\n\nvar\n\t  classListProp = \"classList\"\n\t, protoProp = \"prototype\"\n\t, elemCtrProto = view.Element[protoProp]\n\t, objCtr = Object\n\t, strTrim = String[protoProp].trim || function () {\n\t\treturn this.replace(/^\\s+|\\s+$/g, \"\");\n\t}\n\t, arrIndexOf = Array[protoProp].indexOf || function (item) {\n\t\tvar\n\t\t\t  i = 0\n\t\t\t, len = this.length\n\t\t;\n\t\tfor (; i < len; i++) {\n\t\t\tif (i in this && this[i] === item) {\n\t\t\t\treturn i;\n\t\t\t}\n\t\t}\n\t\treturn -1;\n\t}\n\t// Vendors: please allow content code to instantiate DOMExceptions\n\t, DOMEx = function (type, message) {\n\t\tthis.name = type;\n\t\tthis.code = DOMException[type];\n\t\tthis.message = message;\n\t}\n\t, checkTokenAndGetIndex = function (classList, token) {\n\t\tif (token === \"\") {\n\t\t\tthrow new DOMEx(\n\t\t\t\t  \"SYNTAX_ERR\"\n\t\t\t\t, \"An invalid or illegal string was specified\"\n\t\t\t);\n\t\t}\n\t\tif (/\\s/.test(token)) {\n\t\t\tthrow new DOMEx(\n\t\t\t\t  \"INVALID_CHARACTER_ERR\"\n\t\t\t\t, \"String contains an invalid character\"\n\t\t\t);\n\t\t}\n\t\treturn arrIndexOf.call(classList, token);\n\t}\n\t, ClassList = function (elem) {\n\t\tvar\n\t\t\t  trimmedClasses = strTrim.call(elem.getAttribute(\"class\") || \"\")\n\t\t\t, classes = trimmedClasses ? trimmedClasses.split(/\\s+/) : []\n\t\t\t, i = 0\n\t\t\t, len = classes.length\n\t\t;\n\t\tfor (; i < len; i++) {\n\t\t\tthis.push(classes[i]);\n\t\t}\n\t\tthis._updateClassName = function () {\n\t\t\telem.setAttribute(\"class\", this.toString());\n\t\t};\n\t}\n\t, classListProto = ClassList[protoProp] = []\n\t, classListGetter = function () {\n\t\treturn new ClassList(this);\n\t}\n;\n// Most DOMException implementations don't allow calling DOMException's toString()\n// on non-DOMExceptions. Error's toString() is sufficient here.\nDOMEx[protoProp] = Error[protoProp];\nclassListProto.item = function (i) {\n\treturn this[i] || null;\n};\nclassListProto.contains = function (token) {\n\ttoken += \"\";\n\treturn checkTokenAndGetIndex(this, token) !== -1;\n};\nclassListProto.add = function () {\n\tvar\n\t\t  tokens = arguments\n\t\t, i = 0\n\t\t, l = tokens.length\n\t\t, token\n\t\t, updated = false\n\t;\n\tdo {\n\t\ttoken = tokens[i] + \"\";\n\t\tif (checkTokenAndGetIndex(this, token) === -1) {\n\t\t\tthis.push(token);\n\t\t\tupdated = true;\n\t\t}\n\t}\n\twhile (++i < l);\n\n\tif (updated) {\n\t\tthis._updateClassName();\n\t}\n};\nclassListProto.remove = function () {\n\tvar\n\t\t  tokens = arguments\n\t\t, i = 0\n\t\t, l = tokens.length\n\t\t, token\n\t\t, updated = false\n\t\t, index\n\t;\n\tdo {\n\t\ttoken = tokens[i] + \"\";\n\t\tindex = checkTokenAndGetIndex(this, token);\n\t\twhile (index !== -1) {\n\t\t\tthis.splice(index, 1);\n\t\t\tupdated = true;\n\t\t\tindex = checkTokenAndGetIndex(this, token);\n\t\t}\n\t}\n\twhile (++i < l);\n\n\tif (updated) {\n\t\tthis._updateClassName();\n\t}\n};\nclassListProto.toggle = function (token, force) {\n\ttoken += \"\";\n\n\tvar\n\t\t  result = this.contains(token)\n\t\t, method = result ?\n\t\t\tforce !== true && \"remove\"\n\t\t:\n\t\t\tforce !== false && \"add\"\n\t;\n\n\tif (method) {\n\t\tthis[method](token);\n\t}\n\n\tif (force === true || force === false) {\n\t\treturn force;\n\t} else {\n\t\treturn !result;\n\t}\n};\nclassListProto.toString = function () {\n\treturn this.join(\" \");\n};\n\nif (objCtr.defineProperty) {\n\tvar classListPropDesc = {\n\t\t  get: classListGetter\n\t\t, enumerable: true\n\t\t, configurable: true\n\t};\n\ttry {\n\t\tobjCtr.defineProperty(elemCtrProto, classListProp, classListPropDesc);\n\t} catch (ex) { // IE 8 doesn't support enumerable:true\n\t\t// adding undefined to fight this issue https://github.com/eligrey/classList.js/issues/36\n\t\t// modernie IE8-MSW7 machine has IE8 8.0.6001.18702 and is affected\n\t\tif (ex.number === undefined || ex.number === -0x7FF5EC54) {\n\t\t\tclassListPropDesc.enumerable = false;\n\t\t\tobjCtr.defineProperty(elemCtrProto, classListProp, classListPropDesc);\n\t\t}\n\t}\n} else if (objCtr[protoProp].__defineGetter__) {\n\telemCtrProto.__defineGetter__(classListProp, classListGetter);\n}\n\n}(window.self));\n\n}\n\n// There is full or partial native classList support, so just check if we need\n// to normalize the add/remove and toggle APIs.\n\n(function () {\n\t\"use strict\";\n\n\tvar testElement = document.createElement(\"_\");\n\n\ttestElement.classList.add(\"c1\", \"c2\");\n\n\t// Polyfill for IE 10/11 and Firefox <26, where classList.add and\n\t// classList.remove exist but support only one argument at a time.\n\tif (!testElement.classList.contains(\"c2\")) {\n\t\tvar createMethod = function(method) {\n\t\t\tvar original = DOMTokenList.prototype[method];\n\n\t\t\tDOMTokenList.prototype[method] = function(token) {\n\t\t\t\tvar i, len = arguments.length;\n\n\t\t\t\tfor (i = 0; i < len; i++) {\n\t\t\t\t\ttoken = arguments[i];\n\t\t\t\t\toriginal.call(this, token);\n\t\t\t\t}\n\t\t\t};\n\t\t};\n\t\tcreateMethod('add');\n\t\tcreateMethod('remove');\n\t}\n\n\ttestElement.classList.toggle(\"c3\", false);\n\n\t// Polyfill for IE 10 and Firefox <24, where classList.toggle does not\n\t// support the second argument.\n\tif (testElement.classList.contains(\"c3\")) {\n\t\tvar _toggle = DOMTokenList.prototype.toggle;\n\n\t\tDOMTokenList.prototype.toggle = function(token, force) {\n\t\t\tif (1 in arguments && !this.contains(token) === !force) {\n\t\t\t\treturn force;\n\t\t\t} else {\n\t\t\t\treturn _toggle.call(this, token);\n\t\t\t}\n\t\t};\n\n\t}\n\n\ttestElement = null;\n}());\n\n}\n","import React, {PureComponent} from 'react';\nimport PropTypes from 'prop-types';\nimport ImmutablePropTypes from 'react-immutable-proptypes';\nimport {Map} from 'immutable';\nimport Bowser from 'bowser';\n\nimport Callout from './Callout.react';\nimport {\n    CALLOUTS_MOBILE_WIDTH,\n    CALLOUT_HIDE_DELAY,\n} from '../constants/config';\nimport preloadCalloutImages from '../utils/preloadCalloutImages';\nimport getCalloutScale from '../utils/getCalloutScale';\nimport getCalloutBounds from '../utils/getCalloutBounds';\nimport {engagementEvent} from '../../../components/EngagementAnalytics/EngagementAnalytics.actions';\n\nimport style from './Callouts.css';\n\n// Detect platform\nconst isDesktop = Bowser\n    .getParser(window.navigator.userAgent)\n    .isPlatform(Bowser.PLATFORMS_MAP.desktop);\n\n\nexport default class Callouts extends PureComponent {\n    static propTypes = {\n        design: ImmutablePropTypes.map.isRequired,\n        assets: PropTypes.shape({getURL: PropTypes.func.isRequired}),\n        block: ImmutablePropTypes.record.isRequired,\n        hoveredEntity: ImmutablePropTypes.record,\n        selectedEntity: ImmutablePropTypes.record,\n        scaleX: PropTypes.number.isRequired,\n        scaleY: PropTypes.number.isRequired,\n        pageSize: PropTypes.shape({\n            width: PropTypes.number.isRequired,\n            height: PropTypes.number.isRequired,\n        }).isRequired,\n        onMouseLeave: PropTypes.func.isRequired,\n        onMouseHover: PropTypes.func.isRequired,\n        onCalloutClose: PropTypes.func.isRequired,\n    };\n\n    state = {\n        callouts: Map(),\n        calloutTimers: Map(),\n    };\n\n    componentDidMount() {\n        preloadCalloutImages(this.props.block, this.props.assets);\n    }\n\n    componentDidUpdate(prevProps) {\n        if (isDesktop) {\n            // do not process hover events for touch-devices (it breaks processing callouts as click/touch-selected)\n            const hoveredEntity = this.props.hoveredEntity;\n            if (hoveredEntity !== prevProps.hoveredEntity) {\n                if (\n                    hoveredEntity && hoveredEntity.getCallout()\n                    && hoveredEntity.getCallout().get('behaviour') === 'hover'\n                ) {\n                    engagementEvent(hoveredEntity.getKey(), 'callout', 'hover');\n                    this._showTimedCallout(hoveredEntity);\n                }\n                if (\n                    prevProps.hoveredEntity\n                    && this.state.callouts.has(prevProps.hoveredEntity.getKey())\n                    && prevProps.hoveredEntity.getCallout().get('behaviour') === 'hover'\n                ) {\n                    this._hideCalloutOnTimeout(prevProps.hoveredEntity.getKey());\n                }\n            }\n        }\n\n        const selectedEntity = this.props.selectedEntity;\n        if (selectedEntity !== prevProps.selectedEntity) {\n            if (selectedEntity && selectedEntity.getCallout()) {\n                engagementEvent(selectedEntity.getKey(), 'callout', 'click');\n                this._showCallout(selectedEntity, prevProps.selectedEntity);\n            } else if (prevProps.selectedEntity && this.state.callouts.has(prevProps.selectedEntity.getKey())) {\n                this._hideCallout(prevProps.selectedEntity.getKey());\n            }\n        }\n    }\n\n    componentWillUnmount() {\n        this.state.calloutTimers.forEach(clearTimeout);\n    }\n\n    _isMobileView = () => {\n        return this.props.pageSize.width * this.props.scaleX <= CALLOUTS_MOBILE_WIDTH;\n    };\n\n    _showTimedCallout = (entity) => {\n        let {calloutTimers} = this.state;\n        const timerId = calloutTimers.get(entity.getKey());\n        if (timerId) {\n            clearTimeout(timerId);\n            calloutTimers = calloutTimers.delete(entity.getKey());\n        }\n\n        let callouts = this.state.callouts;\n        if (entity.getCallout().get('type') === 'overlay') {\n            callouts = Map({[entity.getKey()]: entity});\n        } else {\n            callouts = callouts.set(entity.getKey(), entity);\n        }\n\n        this.setState({\n            callouts,\n            calloutTimers,\n        });\n    };\n\n    _hideCalloutOnTimeout = (key) => {\n        const timerId = setTimeout(() => {\n            this.setState({\n                callouts: this.state.callouts.delete(key),\n                calloutTimers: this.state.calloutTimers.delete(key),\n            });\n        }, CALLOUT_HIDE_DELAY);\n\n        const calloutTimers = this.state.calloutTimers.set(key, timerId);\n        this.setState({calloutTimers});\n    };\n\n    _showCallout = (entity, prevEntity=null) => {\n        const isOverlay = this._isMobileView() || entity.getCallout().get('type') === 'overlay';\n        let callouts = this.state.callouts;\n        if (isOverlay) {\n            callouts = Map({[entity.getKey()]: entity});\n        } else {\n            if (prevEntity && callouts.has(prevEntity.getKey())) {\n                callouts = callouts.delete(prevEntity.getKey());\n            }\n            callouts = callouts.set(entity.getKey(), entity);\n        }\n        this.setState({callouts});\n    };\n\n    _hideCallout = (key) => {\n        this.setState({callouts: this.state.callouts.delete(key)});\n    };\n\n    _closeCallout = (key) => {\n        this._hideCallout(key);\n        this.props.onCalloutClose(key);\n    };\n\n    render() {\n        const {block, pageSize, scaleX, scaleY} = this.props;\n\n        const showCalloutsAsOverlay = this._isMobileView();\n        let callouts = this.state.callouts;\n        if (showCalloutsAsOverlay) {\n            callouts = callouts.slice(0, 1);\n        }\n\n        return (\n            <div className={style.wrapper} ref={this._container}>\n                {callouts.valueSeq().map(entity => {\n                    const callout = entity.getCallout();\n                    const isOverlay = showCalloutsAsOverlay || callout.get('type') === 'overlay';\n                    const entities = block.getEntitiesByKeys(callout.get('entities'), {orderByKeys: true});\n                    const calloutScale = getCalloutScale(callout, pageSize, {scaleX, scaleY, forceOverlay: showCalloutsAsOverlay});\n                    const entityBounds = entity.bounds();\n                    const calloutBounds = getCalloutBounds(\n                        callout.get('position'),\n                        callout.get('width'),\n                        callout.get('height'),\n                        {\n                            entityBounds,\n                            isOverlay,\n                            pageSize,\n                            scaleX,\n                            scaleY,\n                            calloutScale,\n                        }\n                    );\n\n                    return (\n                        <Callout\n                            key={entity.getKey()}\n                            entity={entity}\n                            design={this.props.design}\n                            assets={this.props.assets}\n                            callout={callout}\n                            calloutEntities={entities}\n                            isOverlay={isOverlay}\n                            bounds={calloutBounds}\n                            onMouseLeave={this.props.onMouseLeave}\n                            onMouseHover={this.props.onMouseHover}\n                            onClose={this._closeCallout}\n                            {...calloutScale}\n                        />\n                    );\n                })}\n            </div>\n        );\n    }\n}\n","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nmodule.exports = function mergeConfig(config1, config2) {\n  // eslint-disable-next-line no-param-reassign\n  config2 = config2 || {};\n  var config = {};\n\n  var valueFromConfig2Keys = ['url', 'method', 'params', 'data'];\n  var mergeDeepPropertiesKeys = ['headers', 'auth', 'proxy'];\n  var defaultToConfig2Keys = [\n    'baseURL', 'url', 'transformRequest', 'transformResponse', 'paramsSerializer',\n    'timeout', 'withCredentials', 'adapter', 'responseType', 'xsrfCookieName',\n    'xsrfHeaderName', 'onUploadProgress', 'onDownloadProgress',\n    'maxContentLength', 'validateStatus', 'maxRedirects', 'httpAgent',\n    'httpsAgent', 'cancelToken', 'socketPath'\n  ];\n\n  utils.forEach(valueFromConfig2Keys, function valueFromConfig2(prop) {\n    if (typeof config2[prop] !== 'undefined') {\n      config[prop] = config2[prop];\n    }\n  });\n\n  utils.forEach(mergeDeepPropertiesKeys, function mergeDeepProperties(prop) {\n    if (utils.isObject(config2[prop])) {\n      config[prop] = utils.deepMerge(config1[prop], config2[prop]);\n    } else if (typeof config2[prop] !== 'undefined') {\n      config[prop] = config2[prop];\n    } else if (utils.isObject(config1[prop])) {\n      config[prop] = utils.deepMerge(config1[prop]);\n    } else if (typeof config1[prop] !== 'undefined') {\n      config[prop] = config1[prop];\n    }\n  });\n\n  utils.forEach(defaultToConfig2Keys, function defaultToConfig2(prop) {\n    if (typeof config2[prop] !== 'undefined') {\n      config[prop] = config2[prop];\n    } else if (typeof config1[prop] !== 'undefined') {\n      config[prop] = config1[prop];\n    }\n  });\n\n  var axiosKeys = valueFromConfig2Keys\n    .concat(mergeDeepPropertiesKeys)\n    .concat(defaultToConfig2Keys);\n\n  var otherKeys = Object\n    .keys(config2)\n    .filter(function filterAxiosKeys(key) {\n      return axiosKeys.indexOf(key) === -1;\n    });\n\n  utils.forEach(otherKeys, function otherKeysDefaultToConfig2(prop) {\n    if (typeof config2[prop] !== 'undefined') {\n      config[prop] = config2[prop];\n    } else if (typeof config1[prop] !== 'undefined') {\n      config[prop] = config1[prop];\n    }\n  });\n\n  return config;\n};\n","\"use strict\";\n\nmodule.exports = function () {\n\ttry {\n\t\tObject.keys(\"primitive\");\n\t\treturn true;\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\n","exports = module.exports = require(\"../../../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"._3E026I295gY8kBKGpCtNIf,\\n._3B-NR0JQ1ylsdfNUC_35_2,\\n._3v5XjH1bJ4g21b8GCd-z2j {\\n    width: 100%;\\n    height: 100%;\\n}\\n\\n/* to disable user interaction with entity within editor */\\n._1ZwrKcCjmDoUAu7DiZGs_w {\\n    width: 100%;\\n    height: 100%;\\n    position: absolute;\\n    z-index: 1;\\n}\\n\\n._1pKIi4ovCNWS3uFeF_aUb4 {\\n    position: relative;\\n}\\n\\n._1pKIi4ovCNWS3uFeF_aUb4::before {\\n    content: '';\\n    position: absolute;\\n    left: 0;\\n    top: 0;\\n    width: 100%;\\n    height: 100%;\\n    background-color: #656565;\\n    opacity: .8;\\n    border-radius: 4px;\\n}\\n\\n._1kf7IkeeDeY9SAWmP08vBI {\\n    background-size: cover;\\n    background-repeat: no-repeat;\\n    background-position: center;\\n}\\n\", \"\"]);\n\n// exports\nexports.locals = {\n\t\"iframe\": \"_3E026I295gY8kBKGpCtNIf\",\n\t\"video\": \"_3B-NR0JQ1ylsdfNUC_35_2\",\n\t\"mediaEntity\": \"_3v5XjH1bJ4g21b8GCd-z2j\",\n\t\"overlay\": \"_1ZwrKcCjmDoUAu7DiZGs_w\",\n\t\"loadingWrapper\": \"_1pKIi4ovCNWS3uFeF_aUb4\",\n\t\"videoThumbnail\": \"_1kf7IkeeDeY9SAWmP08vBI\"\n};","module.exports = __webpack_public_path__ + \"3Tw0BysUrqQB85A8-Zc4My.svg\";","/* global graphicID */\nimport i18n from 'i18next';\n\n\nimport Dispatcher from '../../app/dispatcher';\nimport invalidateCurrentInfographic from '../../app/main/actions/invalidateCurrentInfographic';\nimport {\n    INFOGRAPHIC_FOOTER_SELECT,\n    INFOGRAPHIC_FOOTER_TOGGLE_FONT_SIZE,\n    INFOGRAPHIC_FOOTER_SHOW_SHARE_DIALOG,\n    INFOGRAPHIC_SET_FOOTER_SHARE_DIALOG_PAGE,\n} from './constants';\nimport AccountLogic from '../../views/account_logic';\n\nexport async function saveCopyright(text) {\n    const data = {\n        key: 'disclaimer',\n        val: text,\n        update_attribute: true,\n    };\n\n    try {\n        const res = await fetch(`/api/infographics/${graphicID}`, {\n            body: JSON.stringify(data),\n            credentials: 'same-origin',\n            headers: {\n                'Content-Type': 'application/json',\n                'csrf-token': AccountLogic.profile.csrfToken,\n            },\n            method: 'PUT',\n        });\n\n        if (!res.ok) throw new Error('Could not save Disclaimer');\n\n        invalidateCurrentInfographic();\n    } catch (e) {\n        Dispatcher.dispatch({\n            type: 'show-message',\n            messageType: 'error',\n            body: i18n.t('app.errors.saving_element'),\n        });\n    }\n}\n\nexport function selectFooter() {\n    Dispatcher.dispatch({\n        type: INFOGRAPHIC_FOOTER_SELECT,\n    });\n}\n\nexport function toggleFooterFontSize() {\n    Dispatcher.dispatch({\n        type: INFOGRAPHIC_FOOTER_TOGGLE_FONT_SIZE,\n    });\n}\n\nexport function showShareDialog(params) {\n    Dispatcher.dispatch({\n        type: INFOGRAPHIC_FOOTER_SHOW_SHARE_DIALOG,\n        visibleShareDialog: params.visibleShareDialog,\n    });\n\n    Dispatcher.dispatch({\n        type: INFOGRAPHIC_SET_FOOTER_SHARE_DIALOG_PAGE,\n        shareDialogPage: params.shareDialogPage || 0,\n    });\n}\n","module.exports = require('./lib/axios');","import React, {PureComponent} from 'react';\nimport PropTypes from 'prop-types';\nimport cx from 'classnames';\n\nimport loadImage from '../../../app/freelayout_editor/loadImage';\nimport Spinner from '../../../widgets/spinner/index';\n\nimport styles from './CompatibilityCoverImage.css';\n\n/**\n * Background image implementation as SVG for IE11 compatibility\n * object-fit solution based on SVG viewbox tricks.\n * Supports automatic *downsample* option for improved performance.\n * @see https://www.sarasoueidan.com/blog/svg-object-fit/\n */\nexport default class CompatibilityCoverImage extends PureComponent {\n    static propTypes = {\n        url: PropTypes.string,\n        style: PropTypes.object,\n        filter: PropTypes.string,\n        downsample: PropTypes.bool,\n    }\n\n    state = {url: null, viewbox: null, containerRect: null};\n\n    offscreenCanvas = document.createElement('canvas');\n\n    static getDerivedStateFromProps(props, state) {\n        if (props.url !== state.url) {\n            // reset image\n            return {viewbox: null};\n        }\n        return state;\n    }\n\n    setImage = (url) =>\n        loadImage(url, true)\n            .then(img => {\n                /* Get block dimensions for SVG image viewbox */\n                const containerRect = this.container.getBoundingClientRect();\n                const scale = img.width > img.height\n                    ? containerRect.width / img.width\n                    : containerRect.height / img.height;\n                const width = img.width * scale;\n                const height = img.height * scale;\n\n                /**\n                 * Improve filter performance (e.g. blur is terrible) by\n                 * downsampling the image (e.g., 4k -> HD-ish) and use that\n                 * as source for filtering.\n                 */\n                if (this.props.downsample) {\n                    this.offscreenCanvas.width = width;\n                    this.offscreenCanvas.height = height;\n                    this.offscreenCanvas.getContext('2d').drawImage(img, 0, 0, width, height);\n                }\n\n                this.setState({\n                    url: this.props.url,\n                    data: this.props.downsample\n                        ? this.offscreenCanvas.toDataURL()\n                        : undefined,\n                    viewbox: `0 0 ${width} ${height}`,\n                    containerRect,\n                });\n            });\n\n    setFillContainerElement = (el) => {\n        if (!el) {\n            return;\n        }\n        this.container = el;\n        this.setImage(this.props.url);\n    }\n\n    render() {\n        if (!this.state.viewbox) {\n            // 1) measure the space where image has to be fit into\n            // 2) show spinner while image is loading\n            return (\n                <div\n                    className={cx(styles.fillContainer, styles.centerContent)}\n                    ref={this.setFillContainerElement}\n                >\n                    <Spinner/>\n                </div>\n            );\n        }\n\n        const {filter, style} = this.props;\n\n        return (\n            <svg\n                xmlns=\"http://www.w3.org/2000/svg\"\n                viewBox={this.state.viewbox}\n                // this corresponds to `object-fit: cover` ↓\n                preserveAspectRatio=\"xMidYMid slice\"\n                width={this.state.containerRect.width}\n                height={this.state.containerRect.height}\n                style={style}\n                className={styles.cannotTouchThis}\n            >\n                <image\n                    xlinkHref={this.state.data || this.state.url}\n                    x=\"0\"\n                    y=\"0\"\n                    width=\"100%\"\n                    height=\"100%\"\n                    filter={filter}\n                />\n            </svg>\n        );\n    }\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar $trimStart = require('../internals/string-trim').start;\nvar forcedStringTrimMethod = require('../internals/forced-string-trim-method');\n\nvar FORCED = forcedStringTrimMethod('trimStart');\n\nvar trimStart = FORCED ? function trimStart() {\n  return $trimStart(this);\n} : ''.trimStart;\n\n// `String.prototype.{ trimStart, trimLeft }` methods\n// https://github.com/tc39/ecmascript-string-left-right-trim\n$({ target: 'String', proto: true, forced: FORCED }, {\n  trimStart: trimStart,\n  trimLeft: trimStart\n});\n","import resolveDesignProperty from '../../../components/FreeLayoutEditor/immutable/resolveDesignProperty';\n\nexport default function getCalloutStyle(callout, design) {\n    const style = {\n        backgroundColor: resolveDesignProperty(design, null, callout.get('backgroundColor')).value,\n    };\n\n    const shadow = callout.get('shadow');\n    if (shadow) {\n        style.boxShadow = `${shadow.get('x') || 0}px ${shadow.get('y') || 0}px ${shadow.get('radius') || 0}px ${shadow.get('spread') || 0}px ${shadow.get('color')}`;\n    }\n\n    return style;\n}\n","\"use strict\";\n\nvar isValue = require(\"./is-value\");\n\nvar forEach = Array.prototype.forEach, create = Object.create;\n\nvar process = function (src, obj) {\n\tvar key;\n\tfor (key in src) obj[key] = src[key];\n};\n\n// eslint-disable-next-line no-unused-vars\nmodule.exports = function (opts1/*, …options*/) {\n\tvar result = create(null);\n\tforEach.call(arguments, function (options) {\n\t\tif (!isValue(options)) return;\n\t\tprocess(Object(options), result);\n\t});\n\treturn result;\n};\n","exports = module.exports = require(\"../../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"._65Q7V7tjpHibAwn5XrMTR {\\n    width: 100%;\\n    height: 100%;\\n    pointer-events: none;\\n}\\n\", \"\"]);\n\n// exports\nexports.locals = {\n\t\"tooltip\": \"_65Q7V7tjpHibAwn5XrMTR\"\n};","var $ = require('../internals/export');\nvar numberIsFinite = require('../internals/number-is-finite');\n\n// `Number.isFinite` method\n// https://tc39.github.io/ecma262/#sec-number.isfinite\n$({ target: 'Number', stat: true }, { isFinite: numberIsFinite });\n","'use strict';\nvar aFunction = require('../internals/a-function');\n\nvar PromiseCapability = function (C) {\n  var resolve, reject;\n  this.promise = new C(function ($$resolve, $$reject) {\n    if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');\n    resolve = $$resolve;\n    reject = $$reject;\n  });\n  this.resolve = aFunction(resolve);\n  this.reject = aFunction(reject);\n};\n\n// 25.4.1.5 NewPromiseCapability(C)\nmodule.exports.f = function (C) {\n  return new PromiseCapability(C);\n};\n","import {\n    is,\n    fromJS,\n    Record,\n    List,\n    Map,\n    Stack,\n    Iterable,\n} from 'immutable';\nimport invariant from 'invariant';\n\nimport InfographicState from './InfographicState';\nimport InfographicContentBlock from './InfographicContentBlock';\nimport Assets from './Assets';\n\nimport PageSize from './PageSize';\n\nimport resolveDesignProperty from './resolveDesignProperty';\nimport {autoLayoutAdminEnabled} from '../../InspectorPanel/panels/PageAutoLayout/utils/autoLayoutBetaFlags';\n\nconst EditorStateRecord = Record({\n    currentContent: null,\n    fonts: List(),\n    customFonts: Map(),\n    undoStack: Stack(),\n    redoStack: Stack(),\n});\n\nexport default class EditorState {\n    static createEmpty() {\n        return EditorState.createFromJSONObject({\n            content: {\n                blocks: {},\n                blockOrder: [],\n                entities: {},\n                layouts: {},\n            },\n        });\n    }\n\n    static createFromJSONObject(json) {\n        const stateObject = {};\n        const contentObject = {};\n        invariant(json.content, `Invalid flex structure. No content found.`);\n        invariant(json.content.blockOrder, `Invalid flex structure. No blockOrder found.`);\n        contentObject.blocks = List(json.content.blockOrder).map(blockKey => {\n            const blockData = json.content.blocks[blockKey];\n            invariant(blockData, `Invalid flex structure. No block with key ${blockKey} found.`);\n            if (autoLayoutAdminEnabled()) {\n                // this logs data needed to add project to sandbox for tests\n                // so you can then copy paste it there for debugging and tuning\n                // just use JSON.stringify on this and then copy/paste to SandboxPages.js\n                console.log('createFromJSONObject', {\n                    name: '',\n                    grid: json.gridSettings,\n                    size: json.pageSize,\n                    block: [blockKey, blockData, json.content.entities],\n                });\n            }\n\n            return InfographicContentBlock.createFromJSONObject(blockKey, blockData, json.content.entities);\n        });\n        contentObject.layouts = fromJS(json.content.layouts || {});\n        if (json.pageSize) {\n            contentObject.pageSize = new PageSize(json.pageSize);\n        }\n        if (json.design) {\n            contentObject.design = fromJS(json.design);\n        }\n        if (json.designDefaults) {\n            contentObject.designDefaults = fromJS(json.designDefaults);\n        }\n        if (json.fonts) {\n            stateObject.fonts = List(json.fonts);\n        }\n        if (json.customFonts) {\n            stateObject.customFonts = Map(json.customFonts);\n        }\n        contentObject.assets = Assets.createFromObject(json.assets);\n        stateObject.currentContent = new InfographicState(contentObject);\n        return new EditorState(EditorStateRecord(stateObject));\n    }\n\n    toJSONObject() {\n        const pageSize = this.getPageSize();\n        const content = this.getCurrentContent();\n        const design = this.getDesign();\n        const designDefaults = this.getDesignDefaults();\n        const fonts = this.getFonts();\n        const assets = this.getAssets();\n\n        const blocks = {};\n        const entities = {};\n        const blockOrder = [];\n\n        for (const block of content.getBlocks()) {\n            const blockKey = block.getKey();\n            const animationSequence = block.getAnimationSequence();\n            blockOrder.push(blockKey);\n            blocks[blockKey] = {\n                design: block.getDesign().toJS(),\n                entities: [],\n                animationSequence: animationSequence ? animationSequence.toArray() : undefined,\n            };\n            for (const entity of block.getEntities()) {\n                const entityKey = entity.getKey();\n                blocks[blockKey].entities.push(entityKey);\n                const rawEntity = entity.toJS();\n                delete rawEntity.blockKey;\n                delete rawEntity.key;\n                entities[entityKey] = rawEntity;\n            }\n        }\n\n        return {\n            fonts: fonts.toJS(),\n            customFonts: this.customFonts.toJS(),\n            pageSize: pageSize.toJS(),\n            design: design.toJS(),\n            designDefaults: designDefaults.toJS(),\n            content: {\n                blocks,\n                blockOrder,\n                entities,\n                layouts: this.getLayouts().toJS(),\n            },\n            assets: assets.toJS(),\n        };\n    }\n\n    static set(editorState, put) {\n        const state = editorState.getImmutable();\n        return new EditorState(state.merge(put));\n    }\n\n    static setPageSize(editorState, size) {\n        const content = editorState.getCurrentContent().set('pageSize', new PageSize(size));\n        return EditorState.set(editorState, {\n            currentContent: content,\n        });\n    }\n\n    static setDesign(editorState, design) {\n        const content = editorState.getCurrentContent().set('design', design);\n        return EditorState.set(editorState, {\n            currentContent: content,\n        });\n    }\n\n    static setDesignDefaults(editorState, defaults) {\n        if (!defaults.has('block') || !defaults.has('entity')) {\n            throw new Error('Invalid desing defaults');\n        }\n        const content = editorState.getCurrentContent().set('designDefaults', defaults);\n        return EditorState.set(editorState, {\n            currentContent: content,\n        });\n    }\n\n    static undo(editorState) {\n        const undoStack = editorState.getUndoStack();\n        const newCurrentContent = undoStack.peek();\n        if (!newCurrentContent) {\n            return editorState;\n        }\n\n        const currentContent = editorState.getCurrentContent();\n        return EditorState.set(editorState, {\n            currentContent: newCurrentContent,\n            undoStack: undoStack.shift(),\n            redoStack: editorState.getRedoStack().unshift(currentContent),\n        });\n    }\n\n    static redo(editorState) {\n        const redoStack = editorState.getRedoStack();\n        const newCurrentContent = redoStack.peek();\n        if (!newCurrentContent) {\n            return editorState;\n        }\n\n        const currentContent = editorState.getCurrentContent();\n        return EditorState.set(editorState, {\n            currentContent: newCurrentContent,\n            redoStack: redoStack.shift(),\n            undoStack: editorState.getUndoStack().unshift(currentContent),\n        });\n    }\n\n    static push(editorState, content) {\n        return EditorState.set(editorState, {\n            currentContent: content,\n            undoStack: editorState.getUndoStack().unshift(content),\n            redoStack: Stack(),\n        });\n    }\n\n    static addFontReference(editorState, font) {\n        const fonts = editorState.getFonts();\n        const exists = fonts.some(f => font.family === f.family);\n        if (exists) return editorState;\n        const newFonts = fonts.push(font).sortBy(f => f.family);\n        return EditorState.set(editorState, {\n            fonts: newFonts,\n        });\n    }\n\n    constructor(immutable) {\n        this._immutable = immutable;\n    }\n\n    getPageSize() {\n        return this.getCurrentContent().getPageSize();\n    }\n\n    getDesign() {\n        return this.getCurrentContent().getDesign();\n    }\n\n    getDesignDefaults() {\n        return this.getCurrentContent().getDesignDefaults();\n    }\n\n    getBlockDesignProperty(blockOrKey, property, resolve = true) {\n        let propValue;\n        if (typeof(blockOrKey) === 'string') {\n            const block = this.getCurrentContent().getBlock(blockOrKey);\n            propValue = block.getDesignProperty(property);\n        } else if (blockOrKey && blockOrKey.getDesignProperty) {\n            propValue = blockOrKey.getDesignProperty(property);\n        }\n\n        if (!propValue) {\n            propValue = this.getDesignDefaults().getIn(['block', property]);\n        }\n\n        if (!resolve) {\n            return propValue;\n        }\n        return traverse(propValue, objectWithPlaceholderValues => {\n            const {match, value} = resolveDesignProperty(this.getDesign(), 'BLOCK', objectWithPlaceholderValues);\n            if (!match) {\n                return objectWithPlaceholderValues;\n            }\n            return value;\n        });\n    }\n\n    getCurrentContent() {\n        return this.getImmutable().get('currentContent');\n    }\n\n    getEntity(key) {\n        return this.getCurrentContent().getEntity(key);\n    }\n\n    getEntities(keys) {\n        return this.getCurrentContent().getEntities(keys);\n    }\n\n    getUndoStack() {\n        return this.getImmutable().get('undoStack');\n    }\n\n    getRedoStack() {\n        return this.getImmutable().get('redoStack');\n    }\n\n    getFonts() {\n        return this.getImmutable().get('fonts');\n    }\n\n    getLayouts() {\n        return this.getCurrentContent().getLayouts();\n    }\n\n    getLayout(name) {\n        const layouts = this.getLayouts();\n        if (!layouts) {\n            return undefined;\n        }\n        return layouts.get(name);\n    }\n\n    getAssets() {\n        return this.getCurrentContent().get('assets');\n    }\n\n    get customFonts() {\n        return this.getImmutable().get('customFonts');\n    }\n\n    contentEquals(other) {\n        if (!other) {\n            return false;\n        }\n        const pageSizeEquals = is(this.getPageSize(), other.getPageSize());\n        const contentEquals = is(this.getCurrentContent(), other.getCurrentContent());\n        return pageSizeEquals && contentEquals;\n    }\n\n    getImmutable() {\n        return this._immutable;\n    }\n\n    moveEntitiesBy(entitiyKeys, dx, dy) {\n        let newState = this;\n        this.getEntities(entitiyKeys).forEach(entity => {\n            newState = newState.setEntity(entity.getKey(), {\n                top: entity.top + dy,\n                left: entity.left + dx,\n            });\n        });\n        return newState;\n    }\n\n    setEntity(entityKey, put, options = {}) {\n        const content = this.getCurrentContent();\n        for (const blockIndex of content.blocks.keys()) {\n            const block = content.blocks.get(blockIndex);\n            const entityIndex = block.getEntities().findIndex(e => e.getKey() === entityKey);\n            if (entityIndex === -1) continue;\n\n            const path = ['currentContent', 'blocks', blockIndex, 'entities', entityIndex];\n            let state;\n            if (options.pushToUndoStack) {\n                state = EditorState.push(this, content).getImmutable();\n            } else {\n                state = this.getImmutable();\n            }\n            if (options.overwrite) {\n                // workaround to replace not unify fields\n                state = state.mergeDeepIn(path,\n                    Object.fromEntries(\n                        Object.entries(put)\n                            .map(([key]) => [key, null])\n                    )\n                );\n            }\n            return new EditorState(state.mergeDeepIn(path, put));\n        }\n        return this;\n    }\n\n    setLayout(layoutName, put) {\n        const content = this.getCurrentContent();\n        const nextContent = content.mergeDeepIn(['layouts', layoutName], put);\n        if (content === nextContent) {\n            return this;\n        }\n        return EditorState.set(this, {currentContent: nextContent});\n    }\n\n    mergeLayouts(layouts) {\n        const content = this.getCurrentContent();\n        const nextContent = content.mergeDeepIn(['layouts'], layouts);\n        if (content === nextContent) {\n            return this;\n        }\n        return EditorState.set(this, {currentContent: nextContent});\n    }\n\n    getAssetURL(id) {\n        return this.getAssets().getURL(id);\n    }\n\n    /**\n     * @param {String} id\n     * @param {String} url\n     * @returns {EditorState}\n     */\n    addAsset(id, url) {\n        return this.addAssets({[id]: url});\n    }\n\n    /**\n     * @param {Immutable.Map|Object.<string, string>} assets\n     * @returns {EditorState}\n     */\n    addAssets(assets) {\n        const updatedAssets = this.getAssets().add(assets);\n        return new EditorState(this.getImmutable().setIn(['currentContent', 'assets'], updatedAssets));\n    }\n\n    /**\n     * @param {string[]} assetIds\n     * @returns {EditorState}\n     */\n    removeAssets(assetIds) {\n        const updatedAssets = this.getAssets().remove(assetIds);\n        return new EditorState(this.getImmutable().setIn(['currentContent', 'assets'], updatedAssets));\n    }\n}\n\nfunction traverse(o, fn) {\n    if (Iterable.isKeyed(o)) {\n        return o.withMutations(mutable => {\n            for (const key of o.keys()) {\n                mutable.set(key, fn(o.get(key)));\n            }\n        });\n    } else if (Iterable.isIndexed(o)) {\n        return o.map(value => traverse(value, fn));\n    }\n    return fn(o);\n}\n","var hiddenKeys = require('../internals/hidden-keys');\nvar isObject = require('../internals/is-object');\nvar has = require('../internals/has');\nvar defineProperty = require('../internals/object-define-property').f;\nvar uid = require('../internals/uid');\nvar FREEZING = require('../internals/freezing');\n\nvar METADATA = uid('meta');\nvar id = 0;\n\nvar isExtensible = Object.isExtensible || function () {\n  return true;\n};\n\nvar setMetadata = function (it) {\n  defineProperty(it, METADATA, { value: {\n    objectID: 'O' + ++id, // object ID\n    weakData: {}          // weak collections IDs\n  } });\n};\n\nvar fastKey = function (it, create) {\n  // return a primitive with prefix\n  if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n  if (!has(it, METADATA)) {\n    // can't set metadata to uncaught frozen object\n    if (!isExtensible(it)) return 'F';\n    // not necessary to add metadata\n    if (!create) return 'E';\n    // add missing metadata\n    setMetadata(it);\n  // return object ID\n  } return it[METADATA].objectID;\n};\n\nvar getWeakData = function (it, create) {\n  if (!has(it, METADATA)) {\n    // can't set metadata to uncaught frozen object\n    if (!isExtensible(it)) return true;\n    // not necessary to add metadata\n    if (!create) return false;\n    // add missing metadata\n    setMetadata(it);\n  // return the store of weak collections IDs\n  } return it[METADATA].weakData;\n};\n\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n  if (FREEZING && meta.REQUIRED && isExtensible(it) && !has(it, METADATA)) setMetadata(it);\n  return it;\n};\n\nvar meta = module.exports = {\n  REQUIRED: false,\n  fastKey: fastKey,\n  getWeakData: getWeakData,\n  onFreeze: onFreeze\n};\n\nhiddenKeys[METADATA] = true;\n","'use strict';\n\nvar createError = require('./createError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n  var validateStatus = response.config.validateStatus;\n  if (!validateStatus || validateStatus(response.status)) {\n    resolve(response);\n  } else {\n    reject(createError(\n      'Request failed with status code ' + response.status,\n      response.config,\n      null,\n      response.request,\n      response\n    ));\n  }\n};\n","import React, {Component} from 'react';\nimport PropTypes from 'prop-types';\nimport cx from 'classnames';\nimport styled from 'styled-components';\n\nimport EditorStateStore from '../../stores/EditorStateStore';\nimport PresentationStore from './store';\nimport {switchPage} from './actions';\nimport animations from './animations.css';\n\nimport {notifiyAboutCustomScroll} from '../../../../components/IntersectionObserver/Observer';\nimport fluxContainer from '../../../../fluxContainer';\n\nconst CONTROL_BUTTON_SPACE = 72;\nconst TWO_PAGES = 2;\n\nconst PageContainer = styled.div`\n    z-index: 1;\n    overflow: visible;\n    position: absolute;\n    left: 50%;\n    top: 50%;\n`;\n\n@fluxContainer({withProps: true})\nexport default class PresentationPage extends Component {\n    static propTypes = {\n        block: PropTypes.any,\n        children: PropTypes.any,\n        width: PropTypes.number.isRequired,\n        height: PropTypes.number.isRequired,\n    };\n\n    static getStores() {\n        return [\n            PresentationStore,\n        ];\n    }\n\n    static calculateState(prevState = {activePage: false}, props) {\n        const index = EditorStateStore.editorState.getCurrentContent().getBlockIndex(props.block.getKey());\n        const activePage = PresentationStore.activePage;\n        const pageCount = EditorStateStore.editorState.getCurrentContent().getBlocks().size;\n        const buttonSpace = (PresentationStore.isFullscreen || pageCount === 1 ? 0 : CONTROL_BUTTON_SPACE);\n\n        if (prevState.activePage !== false) {//there is no transition when first slide is rendered for the firs time\n            const wasActive = prevState.activePage === index;\n            const isActive = activePage === index;\n            const changedActiveState = wasActive !== isActive;\n\n            if (changedActiveState) {\n                notifiyAboutCustomScroll();\n            }\n        }\n\n        return {\n            activePage,\n            blockIndex: index,\n            buttonSpace,\n        };\n    }\n\n    animatedRef = React.createRef();\n\n    transitionEnd = () => {\n        notifiyAboutCustomScroll();\n    };\n\n    componentDidMount() {\n        this.animatedRef.current.addEventListener('transitionend', this.transitionEnd);\n        this.animatedRef.current.addEventListener('transitioncancel', this.transitionEnd);\n    }\n\n    componentWillUnmount() {\n        this.animatedRef.current.removeEventListener('transitionend', this.transitionEnd);\n        this.animatedRef.current.removeEventListener('transitioncancel', this.transitionEnd);\n    }\n\n    gotFocus = () => {\n        if (this.state.activePage !== this.state.blockIndex) {\n            switchPage(this.state.blockIndex);\n        }\n    };\n\n    render() {\n        const index = this.state.blockIndex;\n        let animationClass;\n        if (index === this.state.activePage) {\n            animationClass = animations.currentPage;\n        } else if (index > this.state.activePage) {\n            animationClass = animations.pageAfter;\n        } else if (index < this.state.activePage) {\n            animationClass = animations.pageBefore;\n        }\n        const pageTransform = `translate(0, -${this.state.buttonSpace / 2}px)`;\n        const pagesFromActivePage = Math.abs(index - this.state.activePage);\n        const shouldRenderContent = pagesFromActivePage < TWO_PAGES;\n\n        return (\n            <PageContainer\n                className={cx(\n                    index !== this.state.activePage && animations.inactive,\n                    this.state.transitioning && animations.transitioning,\n                )}\n                aria-hidden={index !== this.state.activePage}\n                style={{\n                    transform: `translate(-${Math.round(this.props.width / 2)}px, -${Math.round(this.props.height / 2)}px)`,\n                }}\n                onFocusCapture={this.gotFocus}\n            >\n                <div ref={this.animatedRef} className={animationClass}>\n                    <div style={{transform: pageTransform}}>\n                        {shouldRenderContent && this.props.children}\n                    </div>\n                </div>\n            </PageContainer>\n        );\n    }\n}\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things.  But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals.  It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n    throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n    throw new Error('clearTimeout has not been defined');\n}\n(function () {\n    try {\n        if (typeof setTimeout === 'function') {\n            cachedSetTimeout = setTimeout;\n        } else {\n            cachedSetTimeout = defaultSetTimout;\n        }\n    } catch (e) {\n        cachedSetTimeout = defaultSetTimout;\n    }\n    try {\n        if (typeof clearTimeout === 'function') {\n            cachedClearTimeout = clearTimeout;\n        } else {\n            cachedClearTimeout = defaultClearTimeout;\n        }\n    } catch (e) {\n        cachedClearTimeout = defaultClearTimeout;\n    }\n} ())\nfunction runTimeout(fun) {\n    if (cachedSetTimeout === setTimeout) {\n        //normal enviroments in sane situations\n        return setTimeout(fun, 0);\n    }\n    // if setTimeout wasn't available but was latter defined\n    if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n        cachedSetTimeout = setTimeout;\n        return setTimeout(fun, 0);\n    }\n    try {\n        // when when somebody has screwed with setTimeout but no I.E. maddness\n        return cachedSetTimeout(fun, 0);\n    } catch(e){\n        try {\n            // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n            return cachedSetTimeout.call(null, fun, 0);\n        } catch(e){\n            // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n            return cachedSetTimeout.call(this, fun, 0);\n        }\n    }\n\n\n}\nfunction runClearTimeout(marker) {\n    if (cachedClearTimeout === clearTimeout) {\n        //normal enviroments in sane situations\n        return clearTimeout(marker);\n    }\n    // if clearTimeout wasn't available but was latter defined\n    if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n        cachedClearTimeout = clearTimeout;\n        return clearTimeout(marker);\n    }\n    try {\n        // when when somebody has screwed with setTimeout but no I.E. maddness\n        return cachedClearTimeout(marker);\n    } catch (e){\n        try {\n            // When we are in I.E. but the script has been evaled so I.E. doesn't  trust the global object when called normally\n            return cachedClearTimeout.call(null, marker);\n        } catch (e){\n            // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n            // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n            return cachedClearTimeout.call(this, marker);\n        }\n    }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n    if (!draining || !currentQueue) {\n        return;\n    }\n    draining = false;\n    if (currentQueue.length) {\n        queue = currentQueue.concat(queue);\n    } else {\n        queueIndex = -1;\n    }\n    if (queue.length) {\n        drainQueue();\n    }\n}\n\nfunction drainQueue() {\n    if (draining) {\n        return;\n    }\n    var timeout = runTimeout(cleanUpNextTick);\n    draining = true;\n\n    var len = queue.length;\n    while(len) {\n        currentQueue = queue;\n        queue = [];\n        while (++queueIndex < len) {\n            if (currentQueue) {\n                currentQueue[queueIndex].run();\n            }\n        }\n        queueIndex = -1;\n        len = queue.length;\n    }\n    currentQueue = null;\n    draining = false;\n    runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n    var args = new Array(arguments.length - 1);\n    if (arguments.length > 1) {\n        for (var i = 1; i < arguments.length; i++) {\n            args[i - 1] = arguments[i];\n        }\n    }\n    queue.push(new Item(fun, args));\n    if (queue.length === 1 && !draining) {\n        runTimeout(drainQueue);\n    }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n    this.fun = fun;\n    this.array = array;\n}\nItem.prototype.run = function () {\n    this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n    throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n    throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","import {\n    Point,\n    Rectangle,\n    distance,\n    rad,\n    centerOf,\n    positiveDeg,\n    rotatePoint,\n    snapValue,\n} from '../../../../../components/FreeLayoutEditor/handlers/handle/utils';\n\nimport InfographicEntity from '../../../../../components/FreeLayoutEditor/immutable/InfographicEntity';\nimport {calculateClippedRectangle} from '../../../../../components/FreeLayoutEditor/util/clippedEntity';\n\nimport {\n    getRoundRectangleFromPoints,\n    fromPctPointOfRectangle,\n    toPctPointOfRectangle,\n    constrainPctValue,\n} from './utils';\n\nconst SNAP_POINT_TRESHOLD = 10;\n\nfunction getSnapPoints(rect) {\n    return [\n        Point(rect.left + (rect.width/2), rect.top),\n        Point(rect.left + rect.width, rect.top + (rect.height/2)),\n        Point(rect.left + (rect.width/2), rect.top + rect.height),\n        Point(rect.left, rect.top + (rect.height/2)),\n    ];\n}\n\nfunction nearestToPoint(points, point) {\n    return points.reduce(function(nearest, potential) {\n        return distance(point, potential) < distance(point, nearest) ? potential : nearest;\n    });\n}\n\nfunction getTargetEntity(entities, toCoords, currentGroup) {\n    for (let index = entities.size - 1; index >= 0; index--) {\n        const entity = entities.get(index);\n        if (entity.isConnector() ||\n            entity.isLine() ||\n            entity.getCalloutKey() ||\n            // don't allow to connect outside group\n            currentGroup && (entity.getKey() === currentGroup || entity.groupKey !== currentGroup)) {\n            continue;\n        }\n        const rect = calculateClippedRectangle(entity);\n        const collisionRect = {\n            left: rect.left - SNAP_POINT_TRESHOLD,\n            top: rect.top - SNAP_POINT_TRESHOLD,\n            right: rect.left + rect.width + SNAP_POINT_TRESHOLD,\n            bottom: rect.top + rect.height + SNAP_POINT_TRESHOLD,\n        };\n        const rotate = rect.transform.rotate;\n        let point = toCoords;\n        if (rotate) {\n            const rotateBack = rad(positiveDeg(-rotate));\n            point = rotatePoint(point, rotateBack, centerOf(rect));\n        }\n        if (collisionRect.left <= point.x &&\n            collisionRect.right >= point.x &&\n            collisionRect.top <= point.y &&\n            collisionRect.bottom >= point.y) {\n            return entity;\n        }\n    }\n    return null;\n}\n\nexport function getPointOnEntity(connection, entity) {\n    const rect = calculateClippedRectangle(entity);\n    const rotate = rad(positiveDeg(rect.transform.rotate));\n    let point = fromPctPointOfRectangle(Point(connection.get('x'), connection.get('y')), rect);\n    if (rotate) {\n        point = rotatePoint(point, rotate, centerOf(rect));\n    }\n    return point;\n}\n\nfunction getPositionAgainstEntity(connection, block) {\n    const connectedEntityKey = connection.get('key');\n    const entity = block.getEntity(connectedEntityKey);\n\n    return getPointOnEntity(connection, entity);\n}\n\nfunction getPositionAgainstBlock(connection, pageSize) {\n    const {width, height} = pageSize;\n    return {\n        x: connection.get('x') * width,\n        y: connection.get('y') * height,\n    };\n}\n\nexport function getPosition(connection, block, pageSize) {\n    return connection.get('type') === 'block' ?\n        getPositionAgainstBlock(connection, pageSize) :\n        getPositionAgainstEntity(connection, block);\n}\n\nexport function getPositions(connector, block, pageSize) {\n    return {\n        from: getPosition(connector.getProperty('from'), block, pageSize),\n        to: getPosition(connector.getProperty('to'), block, pageSize),\n    };\n}\n\nfunction getPositionAgainstBlockGrouped(connection, connector, pageSize) {\n    const x = connection.get('x');\n    const y = connection.get('y');\n    const {width, height} = pageSize;\n    const {left, top, width: entWidth, height: entHeight} = connector;\n\n    return {\n        x: (x * (width/entWidth)) * entWidth - left,\n        y: (y * (height/entHeight)) * entHeight - top,\n    };\n}\n\nfunction getPositionAgainstEntityGrouped(connection, connector, block) {\n    const connectedEntityKey = connection.get('key');\n    const {left: cLeft, top: cTop} = connector;\n    const entity = block.getEntity(connectedEntityKey);\n\n    const point = getPointOnEntity(connection, entity);\n\n    return {\n        x: point.x - cLeft,\n        y: point.y - cTop,\n    };\n}\n\nfunction getPositionGrouped(connectionType, connector, block, pageSize) {\n    const connection = connector.getProperty(connectionType);\n    return connection.get('type') === 'block' ?\n        getPositionAgainstBlockGrouped(connection, connector, pageSize) :\n        getPositionAgainstEntityGrouped(connection, connector, block);\n}\n\nexport function getPositionsGrouped(connector, block, pageSize) {\n    // important to read original connector in grouped readonly mode\n    connector = block.getEntity(connector.getKey());\n    return {\n        from: getPositionGrouped('from', connector, block, pageSize),\n        to: getPositionGrouped('to', connector, block, pageSize),\n    };\n}\n\nfunction getConnectorProps(entity, toCoords, block, pageSize) {\n    if (entity) {\n        let point = toCoords;\n\n        const rect = calculateClippedRectangle(entity);\n        const rotate = rect.transform.rotate;\n\n        if (rotate) {\n            point = rotatePoint(point, rad(positiveDeg(-rotate)), centerOf(rect));\n        }\n\n        let pctPoint = toPctPointOfRectangle(point, rect);\n\n        pctPoint = Point( // snap to point by constraining\n            constrainPctValue(pctPoint.x, SNAP_POINT_TRESHOLD/rect.width),\n            constrainPctValue(pctPoint.y, SNAP_POINT_TRESHOLD/rect.height),\n        );\n\n        return {\n            key: entity.getKey(),\n            type: 'entity',\n            ...pctPoint,\n        };\n    }\n\n    const {width, height} = pageSize;\n    const pctPoint = toPctPointOfRectangle(toCoords, Rectangle(0, 0, width, height));\n\n    return {\n        key: block.getKey(),\n        type: 'block',\n        ...pctPoint,\n    };\n}\n\nexport function resize(connectionType, connectionPt, connector, block, pageSize, groupsInEditMode, snap = false) {\n    const oppConnection = connectionType === 'from' ? 'to' : 'from';\n    const ptsOnBlock = {};\n    const oppConnectionPt = getPosition(connector.getProperty(oppConnection), block, pageSize);\n    ptsOnBlock[oppConnection] = oppConnectionPt;\n    const targetEntity = getTargetEntity(block.getEntities(), connectionPt, groupsInEditMode.last());\n    let props = getConnectorProps(targetEntity, connectionPt, block, pageSize);\n\n    if (targetEntity) {\n        const newConnectionPt = fromPctPointOfRectangle(Point(props.x, props.y), targetEntity.rectangle());\n        ptsOnBlock[connectionType] = newConnectionPt;\n    } else {\n        if (snap) {\n            const dist = distance(oppConnectionPt, connectionPt);\n            const rotationStartPt = Point(oppConnectionPt.x, oppConnectionPt.y - dist);\n            const dAx = rotationStartPt.x - oppConnectionPt.x;\n            const dAy = rotationStartPt.x - oppConnectionPt.y;\n            const dBx = connectionPt.x - oppConnectionPt.x;\n            const dBy = connectionPt.y - oppConnectionPt.y;\n            const angle = Math.PI + Math.atan2(dAx * dBy - dAy * dBx, dAx * dBx + dAy * dBy);\n            const degree_angle = angle * (180 / Math.PI);\n            const targetRotation = snapValue(degree_angle, 45, 45 / 2);\n            const deltaRotation = rad(targetRotation - degree_angle);\n\n            connectionPt = rotatePoint(connectionPt, deltaRotation, oppConnectionPt);\n            // reassign props because connectionPt has changed\n            props = getConnectorProps(targetEntity, connectionPt, block, pageSize);\n        }\n        ptsOnBlock[connectionType] = connectionPt;\n    }\n\n    const changes = getRoundRectangleFromPoints(ptsOnBlock.from, ptsOnBlock.to);\n\n    changes.props = {\n        [connectionType]: props,\n    };\n\n    return {\n        changes,\n        targetEntity,\n    };\n}\n\nexport function create(fromPt, toPt, entity, block, pageSize, groupsInEditMode) {\n    const rect = calculateClippedRectangle(entity);\n    const rotate = rect.transform.rotate;\n    if (rotate) {\n        fromPt = rotatePoint(fromPt, rad(positiveDeg(-rotate)), centerOf(rect));\n    }\n    const anchors = getSnapPoints(rect);\n    const fromPos = nearestToPoint(anchors, fromPt);\n    const entityLocalPct = toPctPointOfRectangle(fromPos, rect);\n    const roundRect = getRoundRectangleFromPoints(toPt, fromPos);\n    const currentGroup = groupsInEditMode.last();\n    const targetEntity = getTargetEntity(block.getEntities(), toPt, currentGroup);\n    const toProps = getConnectorProps(targetEntity, toPt, block, pageSize);\n    const rawConnector = {\n        type: 'CONNECTOR',\n        ...roundRect,\n        props: {\n            from: {\n                key: entity.getKey(),\n                type: 'entity',\n                x: entityLocalPct.x,\n                y: entityLocalPct.y,\n            },\n            to: toProps,\n            opacity: 1,\n            stroke: '{{fillColor|#656565}}',\n            strokeType: 'solid',\n            strokeWidth: 2,\n            markerStart: 'none',\n            markerEnd: 'solid-arrow',\n            accessibility: {\n                enabled: false,\n            },\n        },\n    };\n    if (currentGroup) {\n        rawConnector.groupKey = currentGroup;\n    }\n    return {\n        entity: InfographicEntity.fromRawEntity(rawConnector, block.getKey()),\n        targetEntity,\n    };\n}\n\nexport function getRoundRectangleFromConnector(connector, block, pageSize) {\n    const {from, to} = getPositions(connector, block, pageSize);\n    return getRoundRectangleFromPoints(from, to);\n}\n","import React, {PureComponent} from 'react';\nimport {connect} from 'react-redux';\nimport PropTypes from 'prop-types';\nimport invariant from 'invariant';\n\nimport Animation, {ANIMATION_ONCE} from '../../Animation/Animation.react';\nimport {resetAnimationPreview} from '../../../app/freelayout_editor/actions/animationPreview';\nimport {MaybeRotate} from '../../../app/freelayout_editor/components/MaybeRotate.react';\nimport * as EditorPropTypes from '../../../app/freelayout_editor/types';\n\n/**\n * Preview\n *\n * Container for editor-only previews, e.g. animation\n */\n@connect(null, {resetAnimationPreview})\nexport default class AnimationPreview extends PureComponent {\n    static defaultProps = {\n        registerDOMNode: true,\n    };\n    static propTypes = {\n        entity: PropTypes.any.isRequired,\n        resetAnimationPreview: PropTypes.func.isRequired,\n        preview: EditorPropTypes.Preview.isRequired,\n        children: PropTypes.node,\n    }\n\n    getPreviewAnimation = () => this.props.preview\n        ? this.props.preview.get('animation')\n        : undefined\n\n    resetAnimationOnComplete = () => this.props.resetAnimationPreview(this.props.entity.getKey());\n\n    render() {\n        const {entity, children} = this.props;\n        const animation = this.getPreviewAnimation();\n\n        invariant(animation, 'Preview container has to have non-null content (animation)!');\n\n        // Need to reset n-out animations after they complete\n        // otherwise entity will be hidden/out of bounds\n        let listeners;\n        if (animation.get('regime') === ANIMATION_ONCE) {\n            listeners = {\n                onComplete: this.resetAnimationOnComplete,\n            };\n        }\n        return (\n            /**\n             * If parent (ContentItem) is already rotated, that means its animation also will be rotated.\n             * To have expected animation rotation, we have to double-wrap the animation and the content\n             * in rotation-compensating containers.\n             *\n             * In case there's no rotation, there's also no need for additional wrappers\n             */\n            <MaybeRotate rotation={-entity.getRotate()}>\n                <Animation\n                    {...animation.toObject()}\n                    {...listeners}\n                >\n                    <MaybeRotate rotation={entity.getRotate()}>\n                        {children}\n                    </MaybeRotate>\n                </Animation>\n            </MaybeRotate>\n        );\n    }\n}\n","import {Record} from 'immutable';\nimport PropTypes from 'prop-types';\nimport ImmutablePropTypes from 'react-immutable-proptypes';\n\nconst BASE_SCALE = .5;\nconst BASE_SIZE = 32;\n\nconst MaskRecord = Record({\n    path: null,\n    width: 0,\n    height: 0,\n    clipPathScale: '0 0',\n    pathTransform: {\n        translate: '0 0',\n        origin: '0 0',\n    },\n    rotate: 0,\n    center: {\n        left: 0,\n        top: 0,\n    },\n    boundingBox: {\n        left: 0,\n        top: 0,\n        width: 0,\n        height: 0,\n    },\n});\n\nexport const MaskPropShape = ImmutablePropTypes.contains({\n    path: PropTypes.string.isRequired,\n    width: PropTypes.number.isRequired,\n    height: PropTypes.number.isRequired,\n    clipPathScale: PropTypes.string.isRequired,\n    rotate: PropTypes.number.isRequired,\n    pathTransform: ImmutablePropTypes.contains({\n        translate: PropTypes.string.isRequired,\n        origin: PropTypes.string.isRequired,\n    }).isRequired,\n    center: ImmutablePropTypes.contains({\n        left: PropTypes.number.isRequired,\n        top: PropTypes.number.isRequired,\n    }).isRequired,\n    boundingBox: ImmutablePropTypes.contains({\n        left: PropTypes.number.isRequired,\n        top: PropTypes.number.isRequired,\n        width: PropTypes.number.isRequired,\n        height: PropTypes.number.isRequired,\n    }).isRequired,\n});\n\nexport default class Mask extends MaskRecord {\n    /**\n     * Calculates mask transforms for the current image entity state\n     * when in mask editing mode.\n     *\n     * @param entity\n     * @param baseMask          Mask instance from which some non-changing props are taken\n     */\n    static calculateForEntity({entity, baseMask}) {\n        const heightToWidthRatio = entity.getHeight() / entity.getWidth();\n\n        const scaleX = heightToWidthRatio * BASE_SCALE;\n        const scaleY = BASE_SCALE;\n\n        const entityRotation = entity.getTransform().getRotate();\n\n        const transformX = ((BASE_SIZE / scaleX) - baseMask.width) / 2;\n        const transformY = ((BASE_SIZE / scaleY) - baseMask.height) / 2;\n\n        const center = {\n            left: 0.5,\n            top: 0.5,\n        };\n\n        const width = baseMask.get('width') / BASE_SIZE * scaleX;\n        const height = baseMask.get('height') / BASE_SIZE * scaleY;\n\n        const boundingBox = {\n            left: center.left - (width / 2),\n            top: center.top - (height / 2),\n            width,\n            height,\n        };\n        const pathScaleX = scaleX / BASE_SIZE;\n        const pathScaleY = scaleY / BASE_SIZE;\n\n        return baseMask.merge({\n            center,\n            boundingBox,\n            rotate: -entityRotation,\n            clipPathScale: `${pathScaleX} ${pathScaleY}`,\n            pathTransform: {\n                translate: `${transformX} ${transformY}`,\n                origin: `${baseMask.get('width') / 2} ${baseMask.get('height') / 2}`,\n            },\n        });\n    }\n}\n\n","// `Math.sign` method implementation\n// https://tc39.github.io/ecma262/#sec-math.sign\nmodule.exports = Math.sign || function sign(x) {\n  // eslint-disable-next-line no-self-compare\n  return (x = +x) == 0 || x != x ? x : x < 0 ? -1 : 1;\n};\n","export const SET_VISIBLE_GUIDES = 'SET_VISIBLE_GUIDES';\nexport const RESET_HANDLE = 'RESET_HANDLE';\nexport const SET_ACTIVE_HANDLE = 'SET_ACTIVE_HANDLE';\nexport const START_DRAGGING = 'START_DRAGGING';\nexport const START_RESIZING = 'START_RESIZING';\nexport const START_NAVIGATING = 'START_NAVIGATING';\nexport const UPDATE_ACTIVE_HANDLE = 'UPDATE_ACTIVE_HANDLE';\nexport const SET_CONNECTOR_TARGET_ENTITY = 'SET_CONNECTOR_TARGET_ENTITY';\nexport const SET_CREATED_CONNECTOR = 'SET_CREATED_CONNECTOR';\n","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n  return keys[key] || (keys[key] = uid(key));\n};\n","var setSpecies = require('../internals/set-species');\n\n// `Array[@@species]` getter\n// https://tc39.github.io/ecma262/#sec-get-array-@@species\nsetSpecies('Array');\n","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!./Footer.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!./Footer.css\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!./Footer.css\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","import EditorState from '../immutable/EditorState';\nimport {IMG_ASSET_ID} from '../../../shared/tableChartCellRegex';\n\n/**\n * Returns set with asset ids that are used in passed entities.\n *\n * @param {Immutable.Collection} entities\n * @returns {Set<String>} set with asset ids\n */\nexport function findUsedAssets(entities) {\n    const foundAssets = new Set();\n    for (const entity of entities.values()) {\n        if (entity.type === 'IMAGE') {\n            // Process image entities\n            const assetId = entity.getProperty('assetId');\n            assetId && foundAssets.add(assetId);\n        } else if (entity.type === 'MEDIA' && entity.getProperty('mediaType') === 'video') {\n            // Process media-video entities\n            for (const dataProp of ['imageAssetId', 'assetId']) {\n                const assetId = entity.getProperty('data').get(dataProp);\n                assetId && foundAssets.add(assetId);\n            }\n        } else if (entity.type === 'CHART' && entity.getProperty('chartData').get('chart_type_nr') === 19) {\n            // Process chart-table entities\n            const chartData = entity.getProperty('chartData').get('data');\n            chartData.forEach(sheet => {\n                sheet.forEach(row => {\n                    row.forEach(cell => {\n                        if (!cell) {\n                            return;\n                        }\n                        const cellValue = typeof cell === 'object' ? cell.get('value') : cell;\n                        if (!cellValue || typeof cellValue !== 'string') {\n                            return;\n                        }\n                        const matches = cellValue.match(IMG_ASSET_ID);\n                        const assetId = matches && matches[1];\n                        assetId && foundAssets.add(assetId);\n                    });\n                });\n            });\n        }\n    }\n    return foundAssets;\n}\n\nexport default function cleanupAssets(editorState) {\n    const content = editorState.getCurrentContent();\n    let foundAssets = new Set();\n\n    // Process default background image\n    const background = content.getDesignDefaults().getIn(['block', 'background']);\n    const backgroundAssetId = background && background.get('assetId');\n    backgroundAssetId && foundAssets.add(backgroundAssetId);\n\n    for (const block of content.getBlocks()) {\n        // Process background images of blocks\n        const background = block.getDesignProperty('background');\n        const blockAssetId = background && background.get('assetId');\n        blockAssetId && foundAssets.add(blockAssetId);\n        foundAssets = new Set([...foundAssets, ...findUsedAssets(block.getEntities())]);\n    }\n\n    const filteredAssets = editorState.getAssets().filter((_, key) => foundAssets.has(key));\n    const updatedContent = content.set('assets', filteredAssets);\n    return EditorState.set(editorState, {\n        currentContent: updatedContent,\n    });\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar toObject = require('../internals/to-object');\nvar toPrimitive = require('../internals/to-primitive');\n\nvar FORCED = fails(function () {\n  return new Date(NaN).toJSON() !== null\n    || Date.prototype.toJSON.call({ toISOString: function () { return 1; } }) !== 1;\n});\n\n// `Date.prototype.toJSON` method\n// https://tc39.github.io/ecma262/#sec-date.prototype.tojson\n$({ target: 'Date', proto: true, forced: FORCED }, {\n  // eslint-disable-next-line no-unused-vars\n  toJSON: function toJSON(key) {\n    var O = toObject(this);\n    var pv = toPrimitive(O);\n    return typeof pv == 'number' && !isFinite(pv) ? null : O.toISOString();\n  }\n});\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\n/**\n * Alpha intensity of a input\n *\n * Blends incoming [filter] with source by specified amount of opacity\n *\n * @param {string} in1 incoming image data (e.g. processed graphic) as SVG filter ref-string\n * @param {string} source original image data (e.g. unchanged \"SourceGraphic\") to be blended w/\n * @param {number} amount amount of input data in output (0-1)\n * @param {string} result pointer to output (same as SVG *result*)\n */\nconst IntensityOf = ({in1, source, amount, result}) =>\n    <>\n        <feComponentTransfer in={in1} result=\"adjustedFilter\">\n            <feFuncA type=\"linear\" slope={amount}/>\n        </feComponentTransfer>\n        <feMerge result={result}>\n            <feMergeNode in={source}/>\n            <feMergeNode in=\"adjustedFilter\"/>\n        </feMerge>\n    </>\n;\n\nIntensityOf.propTypes = {\n    in1: PropTypes.string.isRequired,\n    source: PropTypes.string.isRequired,\n    amount: PropTypes.number.isRequired,\n    result: PropTypes.string,\n};\n\nexport default IntensityOf;\n","'use strict';\nvar $ = require('../internals/export');\nvar $reduceRight = require('../internals/array-reduce').right;\nvar sloppyArrayMethod = require('../internals/sloppy-array-method');\n\n// `Array.prototype.reduceRight` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.reduceright\n$({ target: 'Array', proto: true, forced: sloppyArrayMethod('reduceRight') }, {\n  reduceRight: function reduceRight(callbackfn /* , initialValue */) {\n    return $reduceRight(this, callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined);\n  }\n});\n","\"use strict\";\n\nvar isValue         = require(\"type/value/is\")\n  , isPlainFunction = require(\"type/plain-function/is\")\n  , assign          = require(\"es5-ext/object/assign\")\n  , normalizeOpts   = require(\"es5-ext/object/normalize-options\")\n  , contains        = require(\"es5-ext/string/#/contains\");\n\nvar d = (module.exports = function (dscr, value/*, options*/) {\n\tvar c, e, w, options, desc;\n\tif (arguments.length < 2 || typeof dscr !== \"string\") {\n\t\toptions = value;\n\t\tvalue = dscr;\n\t\tdscr = null;\n\t} else {\n\t\toptions = arguments[2];\n\t}\n\tif (isValue(dscr)) {\n\t\tc = contains.call(dscr, \"c\");\n\t\te = contains.call(dscr, \"e\");\n\t\tw = contains.call(dscr, \"w\");\n\t} else {\n\t\tc = w = true;\n\t\te = false;\n\t}\n\n\tdesc = { value: value, configurable: c, enumerable: e, writable: w };\n\treturn !options ? desc : assign(normalizeOpts(options), desc);\n});\n\nd.gs = function (dscr, get, set/*, options*/) {\n\tvar c, e, options, desc;\n\tif (typeof dscr !== \"string\") {\n\t\toptions = set;\n\t\tset = get;\n\t\tget = dscr;\n\t\tdscr = null;\n\t} else {\n\t\toptions = arguments[3];\n\t}\n\tif (!isValue(get)) {\n\t\tget = undefined;\n\t} else if (!isPlainFunction(get)) {\n\t\toptions = get;\n\t\tget = set = undefined;\n\t} else if (!isValue(set)) {\n\t\tset = undefined;\n\t} else if (!isPlainFunction(set)) {\n\t\toptions = set;\n\t\tset = undefined;\n\t}\n\tif (isValue(dscr)) {\n\t\tc = contains.call(dscr, \"c\");\n\t\te = contains.call(dscr, \"e\");\n\t} else {\n\t\tc = true;\n\t\te = false;\n\t}\n\n\tdesc = { get: get, set: set, configurable: c, enumerable: e };\n\treturn !options ? desc : assign(normalizeOpts(options), desc);\n};\n","import i18n from 'i18next';\nimport React, {PureComponent} from 'react';\nimport PropTypes from 'prop-types';\n\nimport style from './Footer.css';\n\nexport default class Footer extends PureComponent {\n    static propTypes = {\n        style: PropTypes.object,\n    }\n\n    render() {\n        return (\n            <div className={style.container} style={this.props.style}>\n                <div className={style.copyright}>\n                    {i18n.t('copyright.rights_reserved', {currentYear: new Date().getFullYear()})}{ '. ' }\n\n                    <a href=\"/terms\" title={i18n.t('copyright.terms')}>\n                        {i18n.t('copyright.terms')}\n                    </a>\n\n                    { ' & '}\n\n                    <a href=\"/privacy\" title={i18n.t('copyright.privacy')}>\n                        {i18n.t('copyright.privacy')}\n                    </a>\n                </div>\n                <div className={style.trademark}>\n                    {i18n.t('copyright.trademark')}\n                </div>\n            </div>\n        );\n    }\n}\n","/* eslint react/no-danger: 0 */\nimport PropTypes from 'prop-types';\n\nimport React, {PureComponent} from 'react';\n\nexport default class Subtitle extends PureComponent {\n    static propTypes = {\n        text: PropTypes.string,\n    };\n\n    render() {\n        return (\n            <h2 className=\"moveable particle chart-title ig-theme-group-text\">\n                <div className=\"bodytitle\">\n                    <div className=\"innertext\" dangerouslySetInnerHTML={{__html: this.props.text}}/>\n                </div>\n            </h2>\n        );\n    }\n}\n","import i18n from 'i18next';\nimport React from 'react';\n\nimport {FilterElementPropTypes} from '../types';\n\n/**\n * Saturation. Colourfulness\n *\n * @param {string} in1 pointer to filter's input (same as SVG *in*)\n * @param {string} result pointer to output (same as SVG *result*)\n * @param {number} amount Saturation level, 0 - black and white, 1 - normal, 2 - 2x pronounced\n */\nexport const Saturation = ({amount, in1, result}) =>\n    <feColorMatrix\n        type=\"saturate\"\n        values={amount.toFixed(2)}\n        in={in1}\n        result={result}\n    />\n;\n\nSaturation.propTypes = FilterElementPropTypes;\n\nexport default {\n    Component: Saturation,\n    get caption() {\n        return i18n.t('inspector.free.filters.saturation');\n    },\n    max: 2,\n    min: 0,\n    default: 1,\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar codeAt = require('../internals/string-multibyte').codeAt;\n\n// `String.prototype.codePointAt` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.codepointat\n$({ target: 'String', proto: true }, {\n  codePointAt: function codePointAt(pos) {\n    return codeAt(this, pos);\n  }\n});\n","var classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n  try {\n    return it[key];\n  } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = function (it) {\n  var O, tag, result;\n  return it === undefined ? 'Undefined' : it === null ? 'Null'\n    // @@toStringTag case\n    : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag\n    // builtinTag case\n    : CORRECT_ARGUMENTS ? classofRaw(O)\n    // ES3 arguments fallback\n    : (result = classofRaw(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : result;\n};\n","export const FREELAYOUT_ACTIVE_PAGE_CHANGED = 'FREELAYOUT_ACTIVE_PAGE_CHANGED';\nexport const FREELAYOUT_SCROLL_START = 'FREELAYOUT_SCROLL_START';\nexport const FREELAYOUT_SCROLL_END = 'FREELAYOUT_SCROLL_END';\nexport const FREELAYOUT_SCROLL_START_PROCESSING_EVENTS = 'FREELAYOUT_SCROLL_START_PROCESSING_EVENTS';\nexport const FREELAYOUT_SCROLL_STOP_PROCESSING_EVENTS = 'FREELAYOUT_SCROLL_STOP_PROCESSING_EVENTS';\n","/* global _ */\nimport i18n from 'i18next';\nimport React, {PureComponent} from 'react';\nimport PropTypes from 'prop-types';\nimport cx from 'classnames';\nimport styled from 'styled-components';\n\nimport {showHeader, hideHeader} from '../WebView.actions';\nimport style from './Header.css';\nimport Avatar from '../../components/Avatar';\nimport ShareDialog from '../../components/Dialogs/ShareDialog.react.js';\nimport PublicDownloadDialog from '../../components/Dialogs/PublicDownloadDialog.react.js';\n\nconst DELTA = 5; // minimum scroll distance in pixels\nconst HEADER_HEIGHT = 80; // component height in pixels\n\nconst HeaderButton = styled.button`\n    display: inline-block;\n    width: 40px;\n    height: 40px;\n    border-radius: 4px;\n    cursor: pointer;\n    box-sizing: border-box;\n    margin-left: 10px;\n    min-width: auto;\n    \n    &:hover {\n        background-color: rgba(235, 235, 238, .6);\n    }\n`;\n\nconst DownLoadButton = styled(HeaderButton)`\n    background:  url(${require('./icon-download-dark.svg')}) #EBEBEE center no-repeat;\n    background-size: 12px;\n`;\n\nconst PresenationButton = styled(HeaderButton)`\n    background: url(${require('./icon-presentation-dark.svg')}) #EBEBEE center no-repeat;\n    background-size: 13px;\n`;\n\nclass Header extends PureComponent {\n    static propTypes = {\n        avatarURL: PropTypes.string,\n        avatarFullName: PropTypes.string,\n        className: PropTypes.string,\n        onPresentationButtonClick: PropTypes.func,\n        hide: PropTypes.bool, // hides header (used in mobile web infographic view scroll down/up)\n        showAvatar: PropTypes.bool,\n        showPresentationButton: PropTypes.bool,\n        showRegisterButton: PropTypes.bool,\n        showShareButton: PropTypes.bool,\n        showDownloadButton: PropTypes.bool,\n        style: PropTypes.object,\n        logoImage: PropTypes.string,\n    }\n\n    constructor(props) {\n        super(props);\n        this.onScroll = _.throttle(this.onScroll.bind(this), 250);\n        this._hideDialogs = this._hideDialogs.bind(this);\n        this.lastScrollTop = 0;\n        this._downloadButton = React.createRef();\n        this.state = {\n            visibleShareDialog: false,\n            visibleDownloadDialog: false,\n        };\n    }\n\n    render() {\n        let avatar;\n        if (this.props.showAvatar) {\n            avatar = (\n                <a\n                    className={style.avatarLink}\n                    href=\"/\"\n                >\n                    <Avatar\n                        avatarImage={this.props.avatarURL}\n                        avatarClass={style.webProfileHeaderAvatar}\n                        fullName={this.props.avatarFullName}\n                    />\n                </a>\n            );\n        }\n\n        let registerButton;\n        if (this.props.showRegisterButton) {\n            registerButton = ([\n                <a\n                    className={style.registerButton}\n                    href={`/signup?utm_source=infogram&utm_medium=webview&utm_campaign=header_signup&utm_content=${_.get(window, 'infographicData.block_id')}`}\n                    key=\"register-button\"\n                >\n                    {i18n.t('web.register')}\n                </a>,\n                <a\n                    className={cx(style.registerButton, style.registerButtonMobile)}\n                    href={`/signup?utm_source=infogram&utm_medium=webview&utm_campaign=header_signup&utm_content=${_.get(window, 'infographicData.block_id')}`}\n                    key=\"register-button-mobile\"\n                >\n                    {i18n.t('web.register_mobile')}\n                </a>,\n            ]);\n        }\n\n        let presentationButton;\n        if (this.props.showPresentationButton) {\n            presentationButton = (\n                <PresenationButton\n                    aria-label=\"Enter fullscreen\"\n                    onClick={this.props.onPresentationButtonClick}\n                />\n            );\n        }\n\n        const displayClass = this.props.hide ? style.hide : style.show;\n\n        let shareButton;\n        if (this.props.showShareButton) {\n            shareButton = (\n                <button\n                    className={cx('icon-share', style.shareButton)}\n                    onClick={this._toggleShareDialog}\n                >\n                    {i18n.t('app.share.share')}\n                </button>\n            );\n        }\n\n        let downloadButton;\n        if (this.props.showDownloadButton) {\n            downloadButton = (\n                <DownLoadButton\n                    ref={this._downloadButton}\n                    onClick={this._toggleDownloadDialog}\n                />\n            );\n        }\n\n        let shareDialog;\n        if (this.state.visibleShareDialog) {\n            shareDialog = <div className=\"headerShareDialog\"><ShareDialog type={'header'} onClose={this._closeShareDialog}/></div>;\n        }\n\n        let publicDownloadDialog;\n        if (this.state.visibleDownloadDialog) {\n            publicDownloadDialog = <PublicDownloadDialog className=\"headerDownloadDialog\" type={'header'} onClose={this._closeDownloadDialog}/>;\n        }\n\n        return (\n            <div>\n                <div style={this.props.style} className={cx(style.container, this.props.className, displayClass)}>\n                    <a className={cx({[style.logoHolder]: !presentationButton && !downloadButton && !shareButton && !avatar && !registerButton})} href={`/?utm_source=infogram&utm_medium=webview&utm_campaign=header_logo&utm_content=${_.get(window, 'infographicData.block_id')}`} title=\"Infogram\" rel=\"home\">\n                        <img\n                            className={cx(style.logoImage, {[style.customLogo]: !!this.props.logoImage})}\n                            src={this.props.logoImage || '/i/logo/dark.svg'}\n                            alt={i18n.t('infogram')}\n                        />\n                    </a>\n\n                    <div className={style.buttons}>\n                        { presentationButton }\n                        { downloadButton }\n                        { shareButton }\n                        { avatar || registerButton }\n                    </div>\n\n                </div>\n                { shareDialog }\n                { publicDownloadDialog }\n            </div>\n        );\n    }\n\n    componentDidMount() {\n        window.addEventListener('scroll', this.onScroll);\n        window.addEventListener('click', this._hideDialogs, false);\n    }\n\n    componentWillUnmount() {\n        window.removeEventListener('scroll', this.onScroll);\n        window.removeEventListener('click', this._hideDialogs, false);\n    }\n\n    _toggleDownloadDialog = () => {\n        this.setState({\n            visibleDownloadDialog: !this.state.visibleDownloadDialog,\n            visibleShareDialog: false,\n        });\n    }\n\n    _toggleShareDialog = () => {\n        this.setState({\n            visibleShareDialog: !this.state.visibleShareDialog,\n            visibleDownloadDialog: false,\n        });\n    }\n\n    _closeShareDialog = () => {\n        this.setState({\n            visibleShareDialog: false,\n        });\n    }\n\n    _closeDownloadDialog = () => {\n        this.setState({\n            visibleDownloadDialog: false,\n        });\n    }\n\n    _hideDialogs = (e) => {\n        let container = document.getElementsByClassName('headerShareDialog')[0];\n        if (container && !container.contains(e.target) && e.target.className.indexOf('icon-share') === -1 && e.target.className.indexOf('dropDownItem') === -1) {\n            this._closeShareDialog();\n        }\n\n        container = document.getElementsByClassName('headerDownloadDialog')[0];\n        if (container && !container.contains(e.target) && e.target !== this._downloadButton.current) {\n            this._closeDownloadDialog();\n        }\n    }\n\n    onScroll = () => {\n        const scrollY = document.documentElement.scrollTop || document.body.scrollTop || 0;\n\n        if (Math.abs(this.lastScrollTop - scrollY) <= DELTA) return;\n\n        if (scrollY > this.lastScrollTop && scrollY > HEADER_HEIGHT){\n            hideHeader();\n        } else if (scrollY < this.getDocHeight()) {\n            showHeader();\n        }\n\n        this.lastScrollTop = scrollY;\n    }\n\n    getDocHeight() {\n        return Math.max(\n            document.body.scrollHeight, document.documentElement.scrollHeight,\n            document.body.offsetHeight, document.documentElement.offsetHeight,\n            document.body.clientHeight, document.documentElement.clientHeight\n        );\n    }\n}\n\nexport default Header;\n","\"use strict\";\n\nvar keys  = require(\"../keys\")\n  , value = require(\"../valid-value\")\n  , max   = Math.max;\n\nmodule.exports = function (dest, src/*, …srcn*/) {\n\tvar error, i, length = max(arguments.length, 2), assign;\n\tdest = Object(value(dest));\n\tassign = function (key) {\n\t\ttry {\n\t\t\tdest[key] = src[key];\n\t\t} catch (e) {\n\t\t\tif (!error) error = e;\n\t\t}\n\t};\n\tfor (i = 1; i < length; ++i) {\n\t\tsrc = arguments[i];\n\t\tkeys(src).forEach(assign);\n\t}\n\tif (error !== undefined) throw error;\n\treturn dest;\n};\n","var $ = require('../internals/export');\nvar fround = require('../internals/math-fround');\n\n// `Math.fround` method\n// https://tc39.github.io/ecma262/#sec-math.fround\n$({ target: 'Math', stat: true }, { fround: fround });\n","import React from 'react';\n\nconst context = React.createContext({\n    chartNamespace: '', // A string to prefix all chart ids so that they dont clash.\n});\nexport const EditorContextProvider = context.Provider;\nexport const withEditorContext = (Component) => (function ContextWrapper(props = {}) {\n    return (\n        <context.Consumer>\n            {context => <Component {...props} editorContext={context}/>}\n        </context.Consumer>\n    );\n});\n","import PropTypes from 'prop-types';\nimport React, {PureComponent} from 'react';\nimport cx from 'classnames';\nimport {createPortalNode, InPortal, OutPortal} from 'react-reverse-portal';\n\nimport {\n    setElementForEntity,\n    removeElementForEntity,\n} from '../dom';\nimport {calculateClippedRectangle} from '../util/clippedEntity';\nimport * as EditorPropTypes from '../../../app/freelayout_editor/types';\nimport AnimationPreview from '../util/AnimationPreview.react';\n\nimport css from './ContentItem.css';\n\nfunction initContentNode(className) {\n    const node = createPortalNode();\n    node.className = className;\n    return node;\n}\n\nexport default class ContentItem extends PureComponent {\n    static defaultProps = {\n        registerDOMNode: true,\n    };\n    static propTypes = {\n        entity: PropTypes.any.isRequired,\n        design: PropTypes.any.isRequired,\n        assets: PropTypes.shape({getURL: PropTypes.func.isRequired}),\n        onMouseDown: PropTypes.func,\n        onMouseUp: PropTypes.func,\n        onMouseLeave: PropTypes.func,\n        onMouseHover: PropTypes.func,\n        onDoubleClick: PropTypes.func,\n        renderItemContentsFn: PropTypes.func,\n        scaleX: PropTypes.number.isRequired,\n        scaleY: PropTypes.number.isRequired,\n        stackingOrder: PropTypes.number.isRequired,\n        groupsInEditMode: PropTypes.object,\n        blockGroupIsInEdit: PropTypes.bool,\n        isVisibleInEditMode: PropTypes.bool,\n        commenting: PropTypes.bool,\n        block: PropTypes.any, // used in ReadOnlyGroup and Connector only\n        commentingIsAvailable: PropTypes.bool, // used in editable contents rendering\n        onAddComment: PropTypes.func, // used in editable contents rendering\n        groupMode: PropTypes.bool,\n        readOnly: PropTypes.bool,\n        inEditMode: PropTypes.bool,\n        registerDOMNode: PropTypes.bool,\n        preview: EditorPropTypes.Preview,\n    }\n\n    cachedContentNode = initContentNode(css.portalNode);\n\n    constructor(props) {\n        super(props);\n        this._handleMouseDown = this._handleMouseDown.bind(this);\n        this._handleMouseUp = this._handleMouseUp.bind(this);\n        this._handleMouseLeave = this._handleMouseLeave.bind(this);\n        this._handleMouseMove = this._handleMouseMove.bind(this);\n        this._setEntityElement = this._setEntityElement.bind(this);\n        this._handleDoubleClick = this._handleDoubleClick.bind(this);\n    }\n\n    getPreviewAnimation = () => this.props.preview\n        ? this.props.preview.get('animation')\n        : undefined\n\n    MaybePreview = ({children = null}) => {\n        const animation = this.getPreviewAnimation();\n        if (!animation) {\n            return children;\n        }\n\n        return (\n            <AnimationPreview\n                preview={this.props.preview}\n                entity={this.props.entity}\n            >\n                {children}\n            </AnimationPreview>\n        );\n    }\n\n    Content = () => {\n        if (!this.props.renderItemContentsFn) {\n            return null;\n        }\n\n        const {\n            entity,\n            design,\n            scaleX,\n            scaleY,\n            renderItemContentsFn,\n        } = this.props;\n        const rotate = entity.getTransform().getRotate() || 0;\n        const renderedContents = renderItemContentsFn(\n            entity,\n            design,\n            {scaleX, scaleY, rotate},\n            this.props,\n        );\n\n        /**\n         * If this content item is not rendered in editor,\n         * we can simplify and optimise the structure\n         */\n        if (!this.props.inEditMode) {\n            return renderedContents;\n        }\n\n        //TODO make ContentItem component type agnostic\n        if (entity.type !== 'CHART') {\n            return (\n                <this.MaybePreview>\n                    {renderedContents}\n                </this.MaybePreview>\n            );\n        }\n\n        /**\n         * Since there might be animation preview in editor requested,\n         * we preemptively cache content to avoid unnecessary mount/unmount\n         * due to parent change of the same component.\n         *\n         * Cases when this is necessary:\n         * 1) charts play animation or at least blink on every mount\n         * 2) texts steal input focus on mount\n         *\n         * These issues lead to lesser UI/UX experience when previewing\n         * animations in editor.\n         *\n         * More on technology used:\n         * @see https://github.com/httptoolkit/react-reverse-portal\n         */\n        return (\n            <>\n                {/* Store rendered content in cache node */}\n                <InPortal node={this.cachedContentNode}>\n                    {renderedContents}\n                </InPortal>\n                <this.MaybePreview>\n                    {/*\n                        Render stored content without mount\n                        no matter \"who is your daddy\"\n                    */}\n                    <OutPortal node={this.cachedContentNode}/>\n                </this.MaybePreview>\n            </>\n        );\n    }\n\n    render() {\n        const {\n            entity,\n            scaleX,\n            scaleY,\n            groupsInEditMode,\n            blockGroupIsInEdit,\n        } = this.props;\n\n        const visibleRect = calculateClippedRectangle(entity);\n        const transform = entity.getTransform();\n        const rotate = transform.getRotate() || 0;\n        let onMouseMove = this._handleMouseMove;\n\n        let style;\n        if (this.props.groupMode && this.props.readOnly) {\n            style = {\n                zIndex: this.props.stackingOrder,\n            };\n        } else {\n            style = {\n                top: visibleRect.top * scaleY,\n                left: visibleRect.left * scaleX,\n                width: visibleRect.width * scaleX,\n                height: visibleRect.height * scaleY,\n                zIndex: this.props.stackingOrder,\n            };\n\n            // Inside maps translate3d is used for styling elements. For correct stacking order (based on z-index),\n            // content items are moved to the same z-layer by adding translate3d.\n            const cssTransform = `rotate(${rotate}deg) scale(${transform.flipHorizontal ? -1 : 1}, ${transform.flipVertical ? -1 : 1}) translate3d(0, 0, 0)`;\n            style.WebkitTransform = cssTransform;\n            style.transform = cssTransform;\n\n            if (entity.isConnector()) {\n                onMouseMove = null;\n                style.top = 0;\n                style.left = 0;\n                style.width = '100%';\n                style.height = '100%';\n                style.pointerEvents = 'none';\n            }\n\n            if (blockGroupIsInEdit) {\n                style.opacity = 0.2;\n\n                if (groupsInEditMode.includes(entity.getKey())) {\n                    style.pointerEvents = 'none';\n                }\n                if (this.props.isVisibleInEditMode) {\n                    style.opacity = 1;\n                }\n            }\n        }\n\n        const withInteractivityHoverEffect = !this.props.inEditMode && (entity.getCallout() || entity.getProperty('link'));\n\n        const itemClassName = cx(\n            'InfographicEditor-Contents-Item',\n            {\n                [css.commenting]: this.props.commenting,\n                [css.withInteractivityHoverEffect]: withInteractivityHoverEffect,\n            }\n        );\n\n\n        const accessibility = entity.getAccessibility();\n        const ariaHidden = !this.props.inEditMode && accessibility && !accessibility.enabled;\n\n        return (\n                <div\n                    className={itemClassName}\n                    style={style}\n                    onDoubleClick={this._handleDoubleClick}\n                    onMouseDown={this._handleMouseDown}\n                    onMouseUp={this._handleMouseUp}\n                    onMouseLeave={this._handleMouseLeave}\n                    onMouseMove={onMouseMove}\n                    ref={this.props.registerDOMNode && this._setEntityElement}\n                    /* Hide item [e.g. from screen readers] if accessibility options not enabled */\n                    aria-hidden={ariaHidden ? true : undefined}\n                    role={ariaHidden ? 'presentation' : undefined}\n                >\n                    <this.Content/>\n                </div>\n        );\n    }\n\n    _setEntityElement(e) {\n        if (e) {\n            setElementForEntity(this.props.entity.getKey(), e);\n        } else {\n            removeElementForEntity(this.props.entity.getKey());\n        }\n    }\n\n    _handleDoubleClick(e) {\n        this.props.onDoubleClick && this.props.onDoubleClick(this.props.entity, e);\n    }\n\n    _handleMouseDown(e) {\n        this.props.onMouseDown && this.props.onMouseDown(this.props.entity, e);\n    }\n\n    _handleMouseUp(e) {\n        this.props.onMouseUp && this.props.onMouseUp(this.props.entity, e);\n    }\n\n    _handleMouseLeave(e) {\n        this.props.onMouseLeave && this.props.onMouseLeave(this.props.entity, e);\n    }\n\n    _handleMouseMove(e) {\n        if (this.props.onMouseHover) {\n            this.props.onMouseHover(this.props.entity, e);\n        }\n    }\n}\n","\n/**\n * When source maps are enabled, `style-loader` uses a link element with a data-uri to\n * embed the css on the page. This breaks all relative urls because now they are relative to a\n * bundle instead of the current page.\n *\n * One solution is to only use full urls, but that may be impossible.\n *\n * Instead, this function \"fixes\" the relative urls to be absolute according to the current page location.\n *\n * A rudimentary test suite is located at `test/fixUrls.js` and can be run via the `npm test` command.\n *\n */\n\nmodule.exports = function (css) {\n  // get current location\n  var location = typeof window !== \"undefined\" && window.location;\n\n  if (!location) {\n    throw new Error(\"fixUrls requires window.location\");\n  }\n\n\t// blank or null?\n\tif (!css || typeof css !== \"string\") {\n\t  return css;\n  }\n\n  var baseUrl = location.protocol + \"//\" + location.host;\n  var currentDir = baseUrl + location.pathname.replace(/\\/[^\\/]*$/, \"/\");\n\n\t// convert each url(...)\n\t/*\n\tThis regular expression is just a way to recursively match brackets within\n\ta string.\n\n\t /url\\s*\\(  = Match on the word \"url\" with any whitespace after it and then a parens\n\t   (  = Start a capturing group\n\t     (?:  = Start a non-capturing group\n\t         [^)(]  = Match anything that isn't a parentheses\n\t         |  = OR\n\t         \\(  = Match a start parentheses\n\t             (?:  = Start another non-capturing groups\n\t                 [^)(]+  = Match anything that isn't a parentheses\n\t                 |  = OR\n\t                 \\(  = Match a start parentheses\n\t                     [^)(]*  = Match anything that isn't a parentheses\n\t                 \\)  = Match a end parentheses\n\t             )  = End Group\n              *\\) = Match anything and then a close parens\n          )  = Close non-capturing group\n          *  = Match anything\n       )  = Close capturing group\n\t \\)  = Match a close parens\n\n\t /gi  = Get all matches, not the first.  Be case insensitive.\n\t */\n\tvar fixedCss = css.replace(/url\\s*\\(((?:[^)(]|\\((?:[^)(]+|\\([^)(]*\\))*\\))*)\\)/gi, function(fullMatch, origUrl) {\n\t\t// strip quotes (if they exist)\n\t\tvar unquotedOrigUrl = origUrl\n\t\t\t.trim()\n\t\t\t.replace(/^\"(.*)\"$/, function(o, $1){ return $1; })\n\t\t\t.replace(/^'(.*)'$/, function(o, $1){ return $1; });\n\n\t\t// already a full url? no change\n\t\tif (/^(#|data:|http:\\/\\/|https:\\/\\/|file:\\/\\/\\/|\\s*$)/i.test(unquotedOrigUrl)) {\n\t\t  return fullMatch;\n\t\t}\n\n\t\t// convert the url to a full url\n\t\tvar newUrl;\n\n\t\tif (unquotedOrigUrl.indexOf(\"//\") === 0) {\n\t\t  \t//TODO: should we add protocol?\n\t\t\tnewUrl = unquotedOrigUrl;\n\t\t} else if (unquotedOrigUrl.indexOf(\"/\") === 0) {\n\t\t\t// path should be relative to the base url\n\t\t\tnewUrl = baseUrl + unquotedOrigUrl; // already starts with '/'\n\t\t} else {\n\t\t\t// path should be relative to current directory\n\t\t\tnewUrl = currentDir + unquotedOrigUrl.replace(/^\\.\\//, \"\"); // Strip leading './'\n\t\t}\n\n\t\t// send back the fixed url(...)\n\t\treturn \"url(\" + JSON.stringify(newUrl) + \")\";\n\t});\n\n\t// send back the fixed css\n\treturn fixedCss;\n};\n","var $ = require('../internals/export');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\n\nvar fromCharCode = String.fromCharCode;\nvar nativeFromCodePoint = String.fromCodePoint;\n\n// length should be 1, old FF problem\nvar INCORRECT_LENGTH = !!nativeFromCodePoint && nativeFromCodePoint.length != 1;\n\n// `String.fromCodePoint` method\n// https://tc39.github.io/ecma262/#sec-string.fromcodepoint\n$({ target: 'String', stat: true, forced: INCORRECT_LENGTH }, {\n  fromCodePoint: function fromCodePoint(x) { // eslint-disable-line no-unused-vars\n    var elements = [];\n    var length = arguments.length;\n    var i = 0;\n    var code;\n    while (length > i) {\n      code = +arguments[i++];\n      if (toAbsoluteIndex(code, 0x10FFFF) !== code) throw RangeError(code + ' is not a valid code point');\n      elements.push(code < 0x10000\n        ? fromCharCode(code)\n        : fromCharCode(((code -= 0x10000) >> 10) + 0xD800, code % 0x400 + 0xDC00)\n      );\n    } return elements.join('');\n  }\n});\n","const {\n    LINE,\n    LINE_ERROR_MARGIN,\n    BAR,\n    BAR_STACKED,\n    BAR_GROUPED,\n    BAR_STACKED_PERCENT,\n    BAR_RADIAL,\n    BAR_RACE,\n    COLUMN,\n    COLUMN_STACKED,\n    COLUMN_GROUPED,\n    COLUMN_STACKED_PERCENT,\n    GANTT,\n    PIE,\n    DOUGHNUT,\n    PIE_IRREGULAR,\n    SEMI_CIRCLE,\n    COLUMN_LINE,\n    LINE_LINE,\n    COMBO_GROUPED,\n    COMBO_STACKED,\n    AREA,\n    AREA_STACKED,\n    AREA_STACKED_PERCENT,\n    STREAM_GRAPH,\n    AREA_STEPPED,\n    SCATTER,\n    SCATTER_GROUPED,\n    DOT_PLOT,\n    BUBBLE,\n    BUBBLE_PLOT,\n    PICTORIAL_GRID,\n    PICTORIAL_SIZE,\n    PICTORIAL_BAR,\n    PYRAMID,\n    FUNNEL,\n    TABLE,\n    GAUGE,\n    BAR_PROGRESS,\n    WORDCLOUD,\n    TREEMAP,\n    CANDLESTICK,\n    WATERFALL,\n    TIMER,\n    FACTS_AND_FIGURES,\n    MAP,\n} = require('./chart_constants');\n\nconst dummy = require('./chart_data.json5');\n\nconst data = (i18n) => ({\n    [BAR]: {\n        chartComponentMetaData: {\n            animated: true\n        },\n        codeName: 'bar',\n        class: 'chart-bar',\n        icon: 'bar-chart',\n        name: 'Bar',\n        dummy: dummy.books,\n        dummySingleSheet: dummy.gdp2010,\n        i18n: i18n.t('app.add_chart.bar'),\n        fullTitle: i18n.t('app.chart_titles.bar'),\n        switchPossible: true,\n        custom: {\n            singleColor: {\n                enabled: true\n            },\n            absoluteDistribution: true,\n            useAllColumns: true,\n            enableHeight: true,\n            axis: {\n                x: {\n                    affix: true\n                },\n                alpha: 0.2,\n            },\n            labels: {\n                graph: {\n                    item: {\n                        format: {\n                            affix: true\n                        }\n                    }\n                },\n                tooltip: {\n                    format: {\n                        x: {\n                            affix: true\n                        }\n                    }\n                }\n            }\n        }\n    },\n    [BAR_STACKED]: {\n        chartComponentMetaData: {\n            animated: true\n        },\n        codeName: 'bar-stacked',\n        class: 'chart-bar',\n        icon: 'bar-stacked',\n        name: 'Stacked bar',\n        dummy: dummy.movies,\n        i18n: i18n.t('app.add_chart.bar-stacked'),\n        fullTitle: i18n.t('app.chart_titles.bar-stacked'),\n        switchPossible: true,\n        custom: {\n            absoluteDistribution: true,\n            axis: {\n                x: {\n                    affix: true\n                },\n                alpha: 0.2,\n            },\n            labels: {\n                graph: {\n                    item: {\n                        format: {\n                            affix: true\n                        }\n                    }\n                },\n                tooltip: {\n                    format: {\n                        x: {\n                            affix: true\n                        }\n                    }\n                }\n            }\n        }\n    },\n    [BAR_GROUPED]: {\n        chartComponentMetaData: {\n            animated: true\n        },\n        codeName: 'bar-grouped',\n        class: 'chart-bar',\n        icon: 'grouped-bar',\n        name: 'Grouped bar',\n        dummy: dummy.literature,\n        i18n: i18n.t('app.add_chart.bar-grouped'),\n        fullTitle: i18n.t('app.chart_titles.bar-grouped'),\n        switchPossible: true,\n        custom: {\n            absoluteDistribution: true,\n            axis: {\n                x: {\n                    affix: true\n                },\n                alpha: 0.2,\n            },\n            labels: {\n                graph: {\n                    item: {\n                        format: {\n                            affix: true\n                        }\n                    }\n                },\n                tooltip: {\n                    format: {\n                        x: {\n                            affix: true\n                        }\n                    }\n                }\n            }\n        }\n    },\n    [BAR_RADIAL]: {\n        chartComponentMetaData: {\n            animated: true\n        },\n        codeName: 'bar-radial',\n        class: 'chart-bar-radial',\n        icon: 'radial',\n        name: 'Radial',\n        dummy: dummy.devices,\n        dummySingleSheet: dummy.gdp2010,\n        i18n: i18n.t('app.add_chart.radial'),\n        fullTitle: i18n.t('app.chart_titles.radial'),\n        switchPossible: true,\n        custom: {\n            useAllColumns: true\n        }\n    },\n    [BAR_STACKED_PERCENT]: {\n        chartComponentMetaData: {\n            animated: true\n        },\n        codeName: 'bar-stacked-percent',\n        class: 'chart-bar',\n        icon: 'bar-stacked',\n        name: '100% Stacked bar',\n        dummy: dummy.percent,\n        i18n: i18n.t('app.add_chart.bar-stacked-percent'),\n        fullTitle: i18n.t('app.chart_titles.bar-stacked-percent'),\n        switchPossible: true,\n        custom: {\n            absoluteDistribution: true,\n            axis: {\n                x: {\n                    affix: true\n                },\n                alpha: 0.2,\n            },\n            labels: {\n                graph: {\n                    item: {\n                        format: {\n                            affix: true\n                        }\n                    }\n                },\n                tooltip: {\n                    format: {\n                        x: {\n                            affix: true\n                        }\n                    }\n                }\n            }\n        },\n    },\n    [BAR_RACE]: {\n        chartComponentMetaData: {\n            animated: true\n        },\n        codeName: 'bar-race',\n        class: 'chart-bar-race',\n        icon: 'bar-chart',\n        name: 'Bar Race',\n        dummy: dummy.arrivals,\n        dummySingleSheet: dummy.arrivals,\n        i18n: i18n.t('app.add_chart.bar-race'),\n        fullTitle: i18n.t('app.chart_titles.bar-race'),\n        switchPossible: true,\n        custom: {\n            singleColor: {\n                enabled: false\n            },\n            absoluteDistribution: false,\n            enableHeight: true,\n            axis: {\n                x: {\n                    affix: true\n                },\n                alpha: 0.2,\n            },\n            labels: {\n                graph: {\n                    item: {\n                        format: {\n                            affix: true\n                        }\n                    }\n                },\n                tooltip: {\n                    format: {\n                        x: {\n                            affix: true\n                        }\n                    }\n                }\n            }\n        },\n        new: true\n    },\n    [COLUMN]: {\n        chartComponentMetaData: {\n            animated: true\n        },\n        codeName: 'column',\n        class: 'chart-column',\n        icon: 'column-chart',\n        name: 'Column',\n        dummy: dummy.books2,\n        dummySingleSheet: dummy.gdp2010,\n        i18n: i18n.t('app.add_chart.column'),\n        fullTitle: i18n.t('app.chart_titles.column'),\n        switchPossible: true,\n        custom: {\n            singleColor: {\n                enabled: true\n            },\n            categoryWidthAuto: true,\n            absoluteDistribution: true,\n            useAllColumns: true,\n            categoryLayout: 'tilted',\n            axis: {\n                y: {\n                    affix: true\n                },\n                alpha: 0.2,\n            },\n            labels: {\n                graph: {\n                    item: {\n                        format: {\n                            affix: true\n                        }\n                    }\n                },\n                tooltip: {\n                    format: {\n                        y: {\n                            affix: true\n                        }\n                    }\n                }\n            }\n        }\n    },\n    [COLUMN_STACKED]: {\n        chartComponentMetaData: {\n            animated: true\n        },\n        codeName: 'column-stacked',\n        class: 'chart-column',\n        icon: 'column-stacked',\n        name: 'Stacked column',\n        dummy: dummy.movies2,\n        i18n: i18n.t('app.add_chart.column-stacked'),\n        fullTitle: i18n.t('app.chart_titles.column-stacked'),\n        switchPossible: true,\n        custom: {\n            categoryWidthAuto: true,\n            absoluteDistribution: true,\n            categoryLayout: 'tilted',\n            axis: {\n                y: {\n                    affix: true\n                },\n                alpha: 0.2,\n            },\n            labels: {\n                graph: {\n                    item: {\n                        format: {\n                            affix: true\n                        }\n                    }\n                },\n                tooltip: {\n                    format: {\n                        y: {\n                            affix: true\n                        }\n                    }\n                }\n            }\n        }\n    },\n    [COLUMN_GROUPED]: {\n        chartComponentMetaData: {\n            animated: true\n        },\n        codeName: 'column-grouped',\n        class: 'chart-column',\n        icon: 'grouped-column',\n        name: 'Grouped column',\n        dummy: dummy.lifeExpectancy,\n        i18n: i18n.t('app.add_chart.column-grouped'),\n        fullTitle: i18n.t('app.chart_titles.column-grouped'),\n        switchPossible: true,\n        custom: {\n            categoryWidthAuto: true,\n            absoluteDistribution: true,\n            categoryLayout: 'tilted',\n            axis: {\n                alpha: 0.2,\n            },\n            labels: {\n                graph: {\n                    item: {\n                        format: {\n                            affix: true\n                        }\n                    }\n                },\n                tooltip: {\n                    format: {\n                        y: {\n                            affix: true\n                        }\n                    }\n                }\n            }\n        }\n    },\n    [COLUMN_STACKED_PERCENT]: {\n        chartComponentMetaData: {\n            animated: true\n        },\n        codeName: 'column-stacked-percent',\n        class: 'chart-column',\n        icon: 'column-stacked',\n        name: '100% Stacked column',\n        dummy: dummy.percent,\n        i18n: i18n.t('app.add_chart.column-stacked-percent'),\n        fullTitle: i18n.t('app.chart_titles.column-stacked-percent'),\n        switchPossible: true,\n        custom: {\n            categoryWidthAuto: true,\n            absoluteDistribution: true,\n            categoryLayout: 'tilted',\n            axis: {\n                y: {\n                    affix: true\n                },\n                alpha: 0.2,\n            },\n            labels: {\n                graph: {\n                    item: {\n                        format: {\n                            affix: true\n                        }\n                    }\n                },\n                tooltip: {\n                    format: {\n                        y: {\n                            affix: true\n                        }\n                    }\n                }\n            }\n        },\n    },\n    [PIE]: {\n        chartComponentMetaData: {\n            animated: true\n        },\n        codeName: 'pie',\n        class: 'chart-pie',\n        icon: 'pie-chart',\n        name: 'Pie',\n        dummy: dummy.entertainment,\n        dummySingleSheet: dummy.area,\n        i18n: i18n.t('app.add_chart.pie-chart'),\n        fullTitle: i18n.t('app.chart_titles.pie-chart'),\n        switchPossible: true,\n        custom: {\n            showLabels: false,\n            showInLineValues: true,\n            showInLineName: true,\n            showInLinePercent: true,\n        },\n    },\n    [DOUGHNUT]: {\n        chartComponentMetaData: {\n            animated: true\n        },\n        codeName: 'pie-doughnut',\n        class: 'chart-pie',\n        icon: 'doughnut',\n        name: 'Doughnut',\n        dummy: dummy.entertainment,\n        dummySingleSheet: dummy.area,\n        i18n: i18n.t('app.add_chart.doughnut'),\n        fullTitle: i18n.t('app.chart_titles.doughnut'),\n        switchPossible: true,\n        custom: {\n            showLabels: false,\n            showInLineValues: true,\n            showInLineName: true,\n            showInLinePercent: true,\n        },\n    },\n    [PIE_IRREGULAR]: {\n        chartComponentMetaData: {\n            animated: true\n        },\n        codeName: 'pie-irregular',\n        class: 'chart-pie',\n        icon: 'irregular',\n        name: 'Irregural',\n        dummy: dummy.entertainment,\n        dummySingleSheet: dummy.area,\n        i18n: i18n.t('app.add_chart.pie-irregular'),\n        fullTitle: i18n.t('app.chart_titles.pie-irregular'),\n        switchPossible: true,\n        custom: {\n            showLabels: false,\n            showInLineValues: true,\n            showInLineName: true,\n            showInLinePercent: true,\n        },\n    },\n    [SEMI_CIRCLE]: {\n        chartComponentMetaData: {\n            animated: true\n        },\n        codeName: 'pie-semi-circle',\n        class: 'chart-pie',\n        icon: 'semicircle',\n        name: 'Semi circle',\n        dummy: dummy.elections,\n        dummySingleSheet: dummy.area,\n        i18n: i18n.t('app.add_chart.pie-semi-circle'),\n        fullTitle: i18n.t('app.chart_titles.pie-semi-circle'),\n        switchPossible: true,\n        custom: {\n            showLabels: false,\n            showInLineValues: true,\n            showInLineName: true,\n            showInLinePercent: true,\n        },\n    },\n    [LINE]: {\n        chartComponentMetaData: {\n            animated: true\n        },\n        codeName: 'line',\n        class: 'chart-line',\n        icon: 'line-chart',\n        name: 'Line',\n        dummy: dummy['2011-2016'],\n        i18n: i18n.t('app.add_chart.line'),\n        fullTitle: i18n.t('app.chart_titles.line'),\n        switchPossible: true,\n        custom: {\n            categoryLayout: 'tilted',\n            axis: {\n                x: {\n                    grid: false,\n                    affix: true\n                },\n                y: {\n                    affix: true\n                },\n                alpha: 0.2,\n            },\n            labels: {\n                graph: {\n                    item: {\n                        format: {\n                            affix: true\n                        }\n                    }\n                },\n                tooltip: {\n                    format: {\n                        x: {\n                            affix: true\n                        },\n                        y: {\n                            affix: true\n                        }\n                    }\n                }\n            }\n        }\n    },\n    [LINE_ERROR_MARGIN]: {\n        chartComponentMetaData: {\n            animated: true\n        },\n        codeName: 'line-error-margin',\n        class: 'chart-line',\n        icon: 'line-error-chart',\n        name: 'Line Error Margin',\n        dummy: dummy.errorMargin,\n        i18n: i18n.t('app.add_chart.line-error-margin'),\n        fullTitle: i18n.t('app.chart_titles.line-error-margin'),\n        switchPossible: true,\n        custom: {\n            categoryLayout: 'tilted',\n            axis: {\n                x: {\n                    grid: false,\n                    affix: true\n                },\n                y: {\n                    affix: true\n                },\n                alpha: 0.2,\n            },\n            labels: {\n                graph: {\n                    item: {\n                        format: {\n                            affix: true\n                        }\n                    }\n                },\n                tooltip: {\n                    format: {\n                        x: {\n                            affix: true\n                        },\n                        y: {\n                            affix: true\n                        }\n                    }\n                }\n            }\n        }\n    },\n    [AREA_STACKED]: {\n        chartComponentMetaData: {\n            animated: true\n        },\n        codeName: 'area-stacked',\n        class: 'chart-area',\n        icon: 'area-chart-basic',\n        name: 'Area Stacked',\n        dummy: dummy['1970-2015'],\n        custom: {\n            showPoints: true,\n            absoluteDistribution: true,\n            categoryLayout: 'tilted',\n            axis: {\n                x: {\n                    grid: false,\n                },\n                y: {\n                    grid: false,\n                    affix: true\n                },\n                alpha: 0.2,\n            },\n            labels: {\n                graph: {\n                    item: {\n                        format: {\n                            affix: true\n                        }\n                    }\n                },\n                tooltip: {\n                    format: {\n                        y: {\n                            affix: true\n                        }\n                    }\n                }\n            }\n        },\n        i18n: i18n.t('app.add_chart.area_stacked'),\n        fullTitle: i18n.t('app.chart_titles.area-stacked'),\n        switchPossible: true\n    },\n    [AREA]: {\n        chartComponentMetaData: {\n            animated: true\n        },\n        codeName: 'area',\n        class: 'chart-area',\n        icon: 'area-chart',\n        name: 'Area',\n        dummy: dummy['1975-2020'],\n        custom: {\n            showPoints: true,\n            absoluteDistribution: true,\n            categoryLayout: 'tilted',\n            axis: {\n                x: {\n                    grid: false,\n                },\n                y: {\n                    grid: false,\n                    affix: true\n                },\n                alpha: 0.2,\n            },\n            labels: {\n                graph: {\n                    item: {\n                        format: {\n                            affix: true\n                        }\n                    }\n                },\n                tooltip: {\n                    format: {\n                        y: {\n                            affix: true\n                        }\n                    }\n                }\n            }\n\n        },\n        i18n: i18n.t('app.add_chart.area-chart'),\n        fullTitle: i18n.t('app.chart_titles.area-chart'),\n        switchPossible: true\n    },\n    [STREAM_GRAPH]: {\n        chartComponentMetaData: {\n            animated: true\n        },\n        codeName: 'area-stream',\n        class: 'chart-area',\n        icon: 'stream-chart',\n        name: 'Stream graph',\n        dummy: dummy.powerSources,\n        i18n: i18n.t('app.add_chart.stream_graph'),\n        fullTitle: i18n.t('app.chart_titles.stream-graph'),\n        switchPossible: true,\n        custom: {\n            absoluteDistribution: true,\n            categoryLayout: 'tilted',\n            axis: {\n                x: {\n                    grid: false,\n                },\n                y: {\n                    grid: false,\n                },\n                alpha: 0.2,\n            }\n        }\n    },\n    [AREA_STEPPED]: {\n        chartComponentMetaData: {\n            animated: true\n        },\n        codeName: 'area-stepped',\n        class: 'chart-area',\n        icon: 'stepped-area',\n        name: 'Stepped area',\n        dummy: dummy.powerSources,\n        i18n: i18n.t('app.add_chart.stepped_area'),\n        fullTitle: i18n.t('app.chart_titles.stepped-area'),\n        switchPossible: true,\n        custom: {\n            absoluteDistribution: true,\n            categoryLayout: 'tilted',\n            axis: {\n                x: {\n                    grid: false,\n                },\n                y: {\n                    grid: false,\n                    affix: true,\n                },\n                alpha: 0.2,\n            },\n            labels: {\n                graph: {\n                    item: {\n                        format: {\n                            affix: true\n                        }\n                    }\n                },\n                tooltip: {\n                    format: {\n                        y: {\n                            affix: true\n                        }\n                    }\n                }\n            }\n        }\n    },\n    [SCATTER_GROUPED]: {\n        chartComponentMetaData: {\n            animated: true\n        },\n        codeName: 'scatter',\n        class: 'chart-scatter',\n        name: 'Grouped Scatter ',\n        icon: 'grouped-scatter',\n        dummy: dummy.revenue,\n        i18n: i18n.t('app.add_chart.scatter-grouped-chart'),\n        fullTitle: i18n.t('app.chart_titles.scatter-grouped-chart'),\n        switchPossible: true,\n        custom: {\n            categoryLayout: 'tilted',\n            axis: {\n                x: {\n                    grid: false,\n                },\n                y: {\n                    grid: false,\n                },\n                alpha: 0.2,\n            },\n            xlabel: \"Revenue\",\n            ylabel: \"Costs\",\n        }\n    },\n    [DOT_PLOT]: {\n        chartComponentMetaData: {\n            animated: true\n        },\n        codeName: 'scatter-dotplot',\n        class: 'chart-scatter',\n        icon: 'dot-plot',\n        name: 'Dot plot',\n        dummy: dummy.revenueTotal,\n        i18n: i18n.t('app.add_chart.dot_plot'),\n        fullTitle: i18n.t('app.add_chart.dot_plot'),\n        switchPossible: true,\n        custom: {\n            categoryLayout: 'tilted',\n            axis: {\n                x: {\n                    grid: false,\n                },\n                y: {\n                    grid: false,\n                },\n                alpha: 0.2,\n            }\n        }\n    },\n    [SCATTER]: {\n        chartComponentMetaData: {\n            animated: true\n        },\n        codeName: 'scatter-basic',\n        class: 'chart-scatter',\n        icon: 'scatter-chart',\n        name: 'Scatter',\n        dummy: dummy.galaxy,\n        i18n: i18n.t('app.add_chart.scatter-chart'),\n        fullTitle: i18n.t('app.chart_titles.scatter-chart'),\n        switchPossible: true,\n        custom: {\n            singleColor: {\n                enabled: true,\n            },\n            showLabels: false,\n            axis: {\n                x: {\n                    grid: false,\n                },\n                y: {\n                    grid: false,\n                },\n                alpha: 0.2,\n            },\n            categoryLayout: 'tilted',\n            xlabel: \"Distance from Earth (million light-years)\",\n            ylabel: \"Recession velocity (km/s) \",\n        }\n    },\n    [BUBBLE]: {\n        chartComponentMetaData: {\n            animated: true\n        },\n        codeName: 'bubble',\n        class: 'chart-bubble',\n        icon: 'bubble-chart',\n        name: 'Bubble',\n        dummy: dummy.revenueTotalStores,\n        i18n: i18n.t('app.add_chart.bubble-chart'),\n        fullTitle: i18n.t('app.chart_titles.bubble-chart'),\n        switchPossible: true,\n        custom: {\n            categoryLayout: 'tilted',\n            axis: {\n                x: {\n                    grid: false,\n                },\n                y: {\n                    grid: false,\n                },\n                alpha: 0.2,\n            },\n            xlabel: \"Total revenue\",\n            ylabel: \"Total costs\",\n        }\n    },\n    [BUBBLE_PLOT]: {\n        chartComponentMetaData: {\n            animated: true\n        },\n        codeName: 'bubble-plot',\n        class: 'chart-bubble',\n        icon: 'bubble-plot',\n        name: 'Bubble plot',\n        dummy: dummy.weeks,\n        i18n: i18n.t('app.add_chart.bubble-plot'),\n        fullTitle: i18n.t('app.chart_titles.bubble-plot'),\n        switchPossible: true,\n        custom: {\n            categoryLayout: 'tilted',\n            showLabels: false,\n            axis: {\n                x: {\n                    grid: false,\n                },\n                y: {\n                    grid: false,\n                },\n                alpha: 0.5,\n            },\n            xlabel: \"Number of service requests\",\n        }\n    },\n    [PICTORIAL_GRID]: {\n        chartComponentMetaData: {\n            animated: true\n        },\n        codeName: 'pictochart',\n        class: 'chart-pictochart',\n        icon: 'pictorial',\n        name: 'Pictorial',\n        dummy: dummy.population1950,\n        i18n: i18n.t('app.add_chart.pictorial'),\n        fullTitle: i18n.t('app.chart_titles.pictorial'),\n        switchPossible: true\n    },\n    [PICTORIAL_SIZE]: {\n        chartComponentMetaData: {\n            animated: true\n        },\n        codeName: 'pictochart-sizes',\n        class: 'chart-pictochart',\n        icon: 'size-comparison',\n        name: 'Size',\n        dummy: dummy.populationArea,\n        i18n: i18n.t('app.add_chart.size_comparison'),\n        fullTitle: i18n.t('app.chart_titles.size-comparison'),\n        switchPossible: true,\n        custom: {\n            useAllColumns: true,\n            showInLineValues: true\n        }\n    },\n    [PICTORIAL_BAR]: {\n        chartComponentMetaData: {\n            animated: true\n        },\n        codeName: 'pictochart-pictorial',\n        class: 'chart-pictochart',\n        icon: 'pictorial-bar',\n        name: 'Pictorial bar',\n        dummy: dummy.tasks,\n        i18n: i18n.t('app.add_chart.pictorial_bar'),\n        fullTitle: i18n.t('app.chart_titles.pictorial-bar'),\n        switchPossible: false\n    },\n    [PYRAMID]: {\n        chartComponentMetaData: {\n            animated: true\n        },\n        codeName: 'hierarchy-pyramid',\n        class: 'chart-hierarchy',\n        icon: 'hierarchy',\n        name: 'Pyramid',\n        custom: {\n            regularEdge: true,\n            direction: 'up',\n            endType: 'zero'\n        },\n        dummy: dummy.maslowPyramid,\n        i18n: i18n.t('app.add_chart.pyramid'),\n        fullTitle: i18n.t('app.add_chart.pyramid'),\n        switchPossible: true\n    },\n    [FUNNEL]: {\n        chartComponentMetaData: {\n            animated: true\n        },\n        codeName: 'hierarchy-funnel',\n        class: 'chart-hierarchy',\n        icon: 'funnel',\n        name: 'Funnel',\n        custom: {\n            regularEdge: false,\n            direction: 'down',\n            endType: 'asis'\n        },\n        dummy: dummy.companies,\n        dummySingleSheet: dummy.company,\n        i18n: i18n.t('app.add_chart.funnel'),\n        fullTitle: i18n.t('app.chart_titles.funnel'),\n        switchPossible: true\n    },\n    [TABLE]: {\n        chartComponentMetaData: {\n            animated: false\n        },\n        codeName: 'table',\n        class: 'chart-table',\n        icon: 'table',\n        name: 'Table',\n        dummy: dummy.universities,\n        custom: {\n            verticalHeader: false,\n            styleName: false,\n            dynamicWidth: true,\n            A1cell: true,\n            searchFirstRow: true\n        },\n        i18n: i18n.t('app.add_chart.table'),\n        fullTitle: i18n.t('app.add_chart.table'),\n        switchPossible: true\n    },\n    [GAUGE]: {\n        chartComponentMetaData: {\n            animated: true\n        },\n        codeName: 'progress-gauge',\n        class: 'chart-gauge',\n        icon: 'gauge',\n        name: 'Gauge',\n        dummy: dummy.goals,\n        i18n: i18n.t('app.add_chart.gauge'),\n        fullTitle: i18n.t('app.chart_titles.gauge'),\n        switchPossible: false,\n        custom: {\n            useAllColumns: true\n        }\n    },\n    [BAR_PROGRESS]: {\n        chartComponentMetaData: {\n            animated: true\n        },\n        codeName: 'progress-bar',\n        class: 'chart-progress',\n        icon: 'progress-bar',\n        name: 'Progress bar',\n        dummy: dummy.projects,\n        i18n: i18n.t('app.add_chart.progress_bar'),\n        fullTitle: i18n.t('app.add_chart.progress_bar'),\n        switchPossible: false,\n        custom: {\n            useAllColumns: true\n        },\n        dimensions: {\n            flex: {\n                height: 172,\n                width: 490\n            }\n        }\n    },\n    [WORDCLOUD]: {\n        chartComponentMetaData: {\n            animated: true\n        },\n        codeName: 'wordcloud',\n        class: 'chart-cloud',\n        icon: 'wordcloud',\n        name: 'Word cloud',\n        dummy: dummy.brands,\n        i18n: i18n.t('app.add_chart.wordcloud'),\n        fullTitle: i18n.t('app.add_chart.wordcloud'),\n        switchPossible: true,\n        custom: {\n            rotate: '[0]'\n        }\n    },\n    [TREEMAP]: {\n        chartComponentMetaData: {\n            animated: true\n        },\n        codeName: 'treemap',\n        class: 'chart-treemap',\n        icon: 'treemap',\n        name: 'Treemap',\n        dummy: dummy.areaPopulation,\n        custom: {\n            labelPosition: 'north-west',\n            showInLineValues: true\n        },\n        i18n: i18n.t('app.add_chart.tree_map'),\n        fullTitle: i18n.t('app.chart_titles.tree-map'),\n        switchPossible: true\n    },\n    [CANDLESTICK]: {\n        chartComponentMetaData: {\n            animated: true\n        },\n        codeName: 'candlestick',\n        class: 'chart-candle',\n        icon: 'candlestick',\n        name: 'Candle stick',\n        dummy: dummy.stocks,\n        i18n: i18n.t('app.add_chart.candlestick'),\n        fullTitle: i18n.t('app.chart_titles.candlestick'),\n        switchPossible: false,\n        custom: {\n            categoryLayout: 'tilted',\n            dataInputFormat: {\n                date: '%d-%m-%Y'\n            },\n            axis: {\n                alpha: 0.2,\n            },\n            labels: {\n                axis: {\n                    x: {\n                        tick: {\n                            timeFormat: '%d-%m-%Y'\n                        }\n                    }\n                }\n            }\n        }\n    },\n    [WATERFALL]: {\n        chartComponentMetaData: {\n            animated: true\n        },\n        codeName: 'waterfall',\n        class: 'chart-waterfall',\n        icon: 'interface-waterfall',\n        name: 'Waterfall',\n        dummy: dummy.unitsInStock,\n        i18n: i18n.t('app.add_chart.waterfall'),\n        fullTitle: i18n.t('app.chart_titles.waterfall'),\n        switchPossible: true,\n        custom: {\n            useAllColumns: true,\n            axis: {\n                alpha: 0.2,\n            },\n            labels: {\n                graph: {\n                    item: {\n                        value: {\n                            color: {\n                                method: 'contrast',\n                                contrast: {\n                                    dark: '#000000',\n                                    light: '#ffffff'\n                                }\n                            }\n                        }\n                    }\n                }\n            }\n        }\n    },\n    [FACTS_AND_FIGURES]: {\n        chartComponentMetaData: {\n            animated: true\n        },\n        codeName: 'facts-figures',\n        dummy: dummy.pencil,\n        class: 'chart-figures',\n        name: 'Facts & Figures',\n        i18n: i18n.t('app.add_chart.facts-and-figures'),\n        fullTitle: i18n.t('app.add_chart.facts-and-figures'),\n    },\n    [TIMER]: {\n        chartComponentMetaData: {\n            animated: true\n        },\n        codeName: 'timer',\n        dummy: [],\n        class: 'chart-timer',\n        name: 'Timer',\n        i18n: i18n.t('app.add_chart.timer'),\n        fullTitle: i18n.t('app.add_chart.timer'),\n        dimensions: {\n            flex: {\n                height: 110,\n                width: 490\n            }\n        }\n    },\n    [MAP]: {\n        chartComponentMetaData: {\n            animated: false,\n        },\n        codeName: 'map',\n        class: 'chart-map',\n        name: 'Map',\n        dummy: [],\n        i18n: i18n.t('app.freelayout_editor.entity_type_MAP'),\n        fullTitle: i18n.t('app.freelayout_editor.entity_type_MAP'),\n    },\n    [COLUMN_LINE]: {\n        chartComponentMetaData: {\n            animated: true\n        },\n        codeName: 'column-line',\n        class: 'chart-column-line',\n        icon: 'multiple-axes',\n        name: 'Column-Line',\n        dummy: dummy.unemployment,\n        i18n: i18n.t('app.add_chart.column_line'),\n        fullTitle: i18n.t('app.chart_titles.column-line'),\n        switchPossible: true,\n\n        custom: {\n            useSIPrefixes: true,\n            categoryLayout: 'tilted',\n            labels: {\n                graph: {\n                    item: {\n                        format: {\n                            affix: true\n                        }\n                    }\n                },\n                tooltip: {\n                    format: {\n                        y: {\n                            affix: true\n                        },\n                        y2: {\n                            affix: true\n                        }\n                    }\n                }\n            },\n            axis: {\n                x: {\n                    grid: false,\n                },\n                y: {\n                    affix: true\n                },\n                y2: {\n                    affix: true,\n                    decimalPlaces: false,\n                    decimalPlacesValue: 2\n                },\n                alpha: 0.2,\n            }\n        }\n    },\n    [LINE_LINE]: {\n        chartComponentMetaData: {\n            animated: true\n        },\n        codeName: 'line-line',\n        class: 'chart-line-line',\n        icon: 'doubleline',\n        name: 'Line-Line',\n        dummy: dummy.unemployment,\n        i18n: i18n.t('app.add_chart.line_line'),\n        fullTitle: i18n.t('app.chart_titles.line-line'),\n        switchPossible: true,\n        custom: {\n            useSIPrefixes: true,\n            categoryLayout: 'tilted',\n            labels: {\n                graph: {\n                    item: {\n                        format: {\n                            affix: true\n                        }\n                    }\n                },\n                tooltip: {\n                    format: {\n                        y: {\n                            affix: true\n                        },\n                        y2: {\n                            affix: true\n                        }\n                    }\n                }\n            },\n            axis: {\n                y: {\n                    affix: true\n                },\n                y2: {\n                    affix: true,\n                    decimalPlaces: false,\n                    decimalPlacesValue: 2\n                },\n                alpha: 0.2,\n            }\n        }\n    },\n    [AREA_STACKED_PERCENT]: {\n        chartComponentMetaData: {\n            animated: true\n        },\n        codeName: 'area-stacked-percent',\n        class: 'chart-area',\n        icon: 'area-percent',\n        name: '100% Area',\n        dummy: dummy['1970-2015'],\n        custom: {\n            showPoints: true,\n            categoryLayout: 'tilted',\n            axis: {\n                x: {\n                    grid: false,\n                },\n                y: {\n                    grid: false,\n                    affix: true\n                },\n                alpha: 0.2,\n            },\n            labels: {\n                graph: {\n                    item: {\n                        format: {\n                            affix: true\n                        }\n                    }\n                },\n                tooltip: {\n                    format: {\n                        y: {\n                            affix: true\n                        }\n                    }\n                }\n            }\n        },\n        i18n: i18n.t('app.add_chart.area_stacked_percent'),\n        fullTitle: i18n.t('app.chart_titles.area-stacked-percent'),\n        switchPossible: true\n    },\n    [GANTT]: {\n        chartComponentMetaData: {\n            animated: true\n        },\n        codeName: 'gantt',\n        class: 'chart-gantt',\n        icon: 'chart-gantt',\n        name: 'Gantt',\n        dummy: dummy.project,\n        custom: {\n            categoryLayout: 'tilted',\n            dataInputFormat: {\n                date: '%d-%m-%Y'\n            },\n            axis: {\n                alpha: 0.2,\n            },\n            labels: {\n                axis: {\n                    x: {\n                        tick: {\n                            enabled: true,\n                            timeFormat: '%d-%m-%Y'\n                        }\n                    },\n                    y: {\n                        tick: {\n                            enabled: true\n                        }\n                    },\n                },\n                graph: {\n                    item: {\n                        value: {\n                            color: {\n                                method: 'contrast',\n                                contrast: {\n                                    dark: '#000000',\n                                    light: '#ffffff'\n                                }\n                            }\n                        }\n                    }\n                }\n            }\n        },\n        i18n: i18n.t('app.add_chart.gantt'),\n        fullTitle: i18n.t('app.chart_titles.gantt'),\n        switchPossible: true\n    },\n    [COMBO_GROUPED]: {\n        chartComponentMetaData: {\n            animated: true\n        },\n        codeName: 'combo-grouped',\n        class: 'chart-combo-grouped',\n        icon: 'group-mix',\n        name: 'Combo grouped',\n        dummy: dummy.lifeExpectancy,\n        custom: {\n            showPoints: true,\n            categoryLayout: 'tilted',\n            useSIPrefixes: true,\n            labels: {\n                graph: {\n                    item: {\n                        format: {\n                            affix: true\n                        }\n                    }\n                },\n                tooltip: {\n                    format: {\n                        y: {\n                            affix: true\n                        },\n                        y2: {\n                            affix: true\n                        }\n                    }\n                }\n            },\n            axis: {\n                x: {\n                    grid: false,\n                },\n                y: {\n                    affix: true\n                },\n                y2: {\n                    affix: true,\n                    decimalPlaces: false,\n                    decimalPlacesValue: 2\n                },\n                alpha: 0.2,\n            }\n        },\n        i18n: i18n.t('app.add_chart.combo_grouped'),\n        fullTitle: i18n.t('app.chart_titles.combo-grouped'),\n        switchPossible: true,\n        sheets_settings: [{\n            series: {\n                types: ['column', 'column', 'column', 'column', 'line'],\n                axis: [1, 1, 1, 1, 2]\n            }\n        }],\n        pro: true\n    },\n    [COMBO_STACKED]: {\n        chartComponentMetaData: {\n            animated: true\n        },\n        codeName: 'combo-stacked',\n        class: 'chart-combo-stacked',\n        icon: 'stacked-line-combo',\n        name: 'Combo stacked',\n        dummy: dummy.population,\n        custom: {\n            showPoints: true,\n            categoryLayout: 'tilted',\n            useSIPrefixes: true,\n            labels: {\n                graph: {\n                    item: {\n                        format: {\n                            affix: true\n                        }\n                    }\n                },\n                tooltip: {\n                    format: {\n                        y: {\n                            affix: true\n                        },\n                        y2: {\n                            affix: true\n                        }\n                    }\n                }\n            },\n            axis: {\n                x: {\n                    grid: false,\n                },\n                y: {\n                    affix: true\n                },\n                y2: {\n                    affix: true,\n                    decimalPlaces: false,\n                    decimalPlacesValue: 2\n                },\n                alpha: 0.2,\n            }\n        },\n        i18n: i18n.t('app.add_chart.combo_stacked'),\n        fullTitle: i18n.t('app.chart_titles.combo-stacked'),\n        switchPossible: true,\n        sheets_settings: [{\n            series: {\n                types: ['column', 'column', 'column', 'column', 'line'],\n                axis: [1, 1, 1, 1, 2]\n            }\n        }],\n        pro: true\n    },\n});\n\nmodule.exports = data;\n","import memoize from '@emotion/memoize';\n\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|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|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);\n\nexport default index;\n","import PropTypes from 'prop-types';\nimport React, {PureComponent} from 'react';\n\nconst strokeDasharray = (type, width) => {\n    return {\n        dashed: `${2 * width}, ${width}`,\n        dotted: `${width}, ${width}`,\n    }[type];\n};\n\nexport default class Polygon extends PureComponent {\n    static propTypes = {\n        design: PropTypes.any.isRequired,\n        entity: PropTypes.shape({\n            getProperty: PropTypes.func.isRequired,\n        }).isRequired,\n    };\n\n    static defaultShapeProps = ({type}, options) => {\n        const width = options.elementWidth || 200;\n        const height = width;\n        return {\n            props: {\n                opacity: 1,\n                stroke: '{{strokeColor|#656565}}',\n                strokeWidth: 0,\n                strokeType: 'solid',\n                fill: '{{fillColor|#656565}}',\n                type,\n                data: '',\n                viewBox: '0 0 100 100',\n            },\n            width,\n            height,\n        };\n    };\n\n    render() {\n        const {\n            entity,\n            design,\n        } = this.props;\n\n        const strokeWidth = entity.getProperty('strokeWidth', design);\n        const viewBox = entity.getProperty('viewBox', design);\n\n        const props = {\n            pointerEvents: 'auto',\n            d: entity.getProperty('data', design),\n            strokeWidth,\n            fill: entity.getProperty('fill', design),\n            stroke: entity.getProperty('stroke', design),\n            strokeDasharray: strokeDasharray(entity.getProperty('strokeType', design), strokeWidth),\n        };\n        return (\n            <svg width=\"100%\" height=\"100%\" overflow=\"visible\" viewBox={viewBox} preserveAspectRatio=\"none\">\n                <path {...props}/>\n            </svg>\n        );\n    }\n}\n","import {flattenEntities} from './flatten';\n\nexport default function rearrangeEntitiesWithinGroup(editorState, group, block) {\n    const childEntities = [];\n    const groupChildrenEntities = editorState.getEntities(group.getChildrenKeys());\n    const flatEntities = flattenEntities(editorState, groupChildrenEntities);\n    const unmovedEntities = block.getEntities().filter(e => {\n        if ([...flatEntities.keys()].includes(e.getKey())) {\n            childEntities.push(e);\n            return false;\n        }\n        return true;\n    });\n    const groupIndex = unmovedEntities.findIndex(e => e.key === group.getKey());\n    const orderedEntities = unmovedEntities.splice(groupIndex, 0, ...childEntities);\n    block = block.set('entities', orderedEntities);\n    return block;\n}\n","\nimport React, {PureComponent} from 'react';\nimport PropTypes from 'prop-types';\nimport ImmutablePropTypes from 'react-immutable-proptypes';\n\nimport filtersLibrary, {adjustments, presets} from './filters';\n\nimport styles from './DynamicFiltersProvider.css';\n\nexport const input = idx => idx ? `fe${idx - 1}` : 'SourceGraphic';\nexport const output = idx => `fe${idx}`;\n\n/**\n * Filters must be in strict sequence to avoid unwanted artefacts\n * Rules are: always presets first (and there should be just one),\n * follow adjustments in alphabetical order\n */\nconst sequence = [\n    ...Object.keys(presets).sort(),\n    ...Object.keys(adjustments).sort(),\n];\nconst filterSequence = (a, b) => sequence.indexOf(a[0]) - sequence.indexOf(b[0]);\n\n/**\n * This component provides individual filter definition for\n * every object that is custom constructed\n */\nexport default class DynamicFiltersProvider extends PureComponent {\n    static propTypes = {\n        filters: ImmutablePropTypes.mapOf(\n            PropTypes.number, PropTypes.string\n        ),\n        id: PropTypes.string.isRequired,\n    }\n\n    definition = ([name, amount], idx) => {\n        const FilterComponent = filtersLibrary[name].Component;\n        return (\n            <FilterComponent\n                in1={input(idx)}\n                amount={amount}\n                result={output(idx)}\n                key={name}\n            />\n        );\n    }\n\n    render() {\n        const {filters} = this.props;\n\n        if (!filters || filters.isEmpty()) {\n            return null;\n        }\n\n        return (\n            <svg xmlns=\"http://www.w3.org/2000/svg\" className={styles.takeNoSpace}>\n                <defs>\n                    <filter\n                        id={this.props.id}\n                        // Consider using *objectBoundingBox* if\n                        // position/dimensions needed (e.g. feSpotLight, fePointLight)\n                        // however note that e.g. Blur filter must be adjusted.\n                        // Also, seems Safari runs subjectively better on userSpace\n                        primitiveUnits=\"userSpaceOnUse\"\n                        // to have better visual compatibility with Safari\n                        colorInterpolationFilters=\"sRGB\"\n                        x=\"0\" y=\"0\" width=\"100%\" height=\"100%\"\n                    >\n                        {filters.entrySeq().sort(filterSequence).map(this.definition)}\n                    </filter>\n                </defs>\n            </svg>\n        );\n    }\n}\n","/* global $ */\n\nimport {currentBrowserIsIE} from './isIE';\n\nfunction loadStylesheet(url) {\n    return new Promise((resolve, reject) => {\n        var $styleElement = $('<link rel=\"stylesheet\" type=\"text/css\" href=\"' + url + '\" />');\n        var hasOnloadEvent = ('onload' in $styleElement[0]) && !currentBrowserIsIE;\n\n        var performCallback = function() {\n            resolve($styleElement[0]);\n        };\n\n        if (hasOnloadEvent) {\n            $styleElement.on('load', performCallback);\n            $styleElement.on('error', reject);\n            $('head').append($styleElement);\n        } else {\n            $.get(url, function(contents) {\n                $styleElement = $('<style></style>');\n                $styleElement.text(contents);\n                $('head').append($styleElement);\n                performCallback();\n            }).fail((response) => {\n                reject(response);\n            });\n        }\n    });\n}\n\nvar uniqueClassName = 'ig-stylesheet-unique';\n\nfunction removeUnique() {\n    return $('head .' + uniqueClassName).remove();\n}\n\nlet lastUnique;\nlet lastUniquePromise;\n\nfunction styleElementPresent(url) {\n    return $(`link[href='${url}']`).length === 1;\n}\n\nfunction loadAsUnique(url, callback, onError) {\n    if (lastUnique !== url || !styleElementPresent(url)) {\n        removeUnique();\n        lastUnique = url;\n        lastUniquePromise = loadStylesheet(url)\n            .then(styleElement => {\n                $(styleElement).addClass(uniqueClassName);\n            });\n    }\n\n    lastUniquePromise.then(styleElement => {\n        if (callback) {\n            callback(styleElement);\n        }\n    }).catch(onError);\n}\n\nexport default {\n    loadUnique: loadAsUnique,\n    removeUnique: removeUnique,\n};\n","const _ = require('lodash');\n\nconst COLOR_REFS_TO_SYNC = [\n    'pointStrokeColor',\n    'polygonStrokeColor',\n    'sliceStrokeColor',\n    'gaugeStrokeColor',\n    'inactive',\n    'textColor',\n    'axis', // not a color but holds color paths underneath\n    'labels', // the same as axis\n    'trendline.color',\n    'coldColor',\n    'hotColor',\n];\nconst AXIS_LABELS = ['axis', 'labels'];\nconst AXIS_LABELS_REFS = [\n    'legend.color',\n    'regionNames.color',\n    'color',\n    'axis.x.title.color',\n    'axis.x.tick.color',\n    'axis.y.title.color',\n    'axis.y.tick.color',\n    'axis.y2.title.color',\n    'axis.y2.tick.color',\n    'graph.item.value.color.contrast.dark',\n    'graph.item.value.color.contrast.light',\n    'graph.item.value.color.manual.fill',\n    'graph.item.value.color.manual.stroke',\n    'graph.item.name.color',\n];\n\nfunction chartColorsSync(props, replace) {\n    for (const key of COLOR_REFS_TO_SYNC) {\n        if (!_.has(props, key)) {\n            continue;\n        }\n        if (AXIS_LABELS.indexOf(key) > -1) {\n            for (const ref of AXIS_LABELS_REFS) {\n                replace(`${key}.${ref}`);\n            }\n        } else {\n            replace(key);\n        }\n    }\n}\n\nmodule.exports = chartColorsSync;\n","import {OVERLAY_CALLOUT_SCALE} from '../constants/config';\n\nexport default function getCalloutScale(callout, pageSize, {scaleX = 1, scaleY = 1, forceOverlay = false} = {}) {\n    if (forceOverlay || callout.get('type') === 'overlay') {\n        const overlayScale = Math.min(\n            pageSize.width * scaleX * OVERLAY_CALLOUT_SCALE / callout.get('width'),\n            pageSize.height * scaleY * OVERLAY_CALLOUT_SCALE / callout.get('height')\n        );\n        return {scaleX: overlayScale, scaleY: overlayScale};\n    }\n    return {scaleX, scaleY};\n}\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n *  ```js\n *  function f(x, y, z) {}\n *  var args = [1, 2, 3];\n *  f.apply(null, args);\n *  ```\n *\n * With `spread` this example can be re-written.\n *\n *  ```js\n *  spread(function(x, y, z) {})([1, 2, 3]);\n *  ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n  return function wrap(arr) {\n    return callback.apply(null, arr);\n  };\n};\n","import PropTypes from 'prop-types';\nimport React, {PureComponent} from 'react';\nimport invariant from 'invariant';\n\nimport Flickr from './Flickr.react';\nimport Youtube from './Youtube.react';\nimport Vimeo from './Vimeo.react';\nimport Slideshare from './Slideshare.react';\nimport Link from './Link.react';\nimport Iframe from './Iframe.react';\nimport EditableVideo from './EditableVideo.react';\nimport Video from './Video.react';\n\nconst mediaTypeMap = {\n    flickr: Flickr,\n    youtube: Youtube,\n    vimeo: Vimeo,\n    slideshare: Slideshare,\n    link: Link,\n    video: Video,\n    iframe: Iframe,\n};\n\nconst editableMediaTypeMap = {\n    video: EditableVideo,\n};\n\nexport async function initialPropsForData({mediaType, data}, options) {\n    const component = mediaTypeMap[mediaType];\n    return component.initialPropsForData(data, options);\n}\n\nexport default class MediaComponent extends PureComponent {\n    static propTypes = {\n        inEditMode: PropTypes.bool,\n        entity: PropTypes.shape({\n            getProperty: PropTypes.func.isRequired,\n            getWidth: PropTypes.func.isRequired,\n            getHeight: PropTypes.func.isRequired,\n            getKey: PropTypes.func.isRequired,\n        }).isRequired,\n        scaleX: PropTypes.number.isRequired,\n        scaleY: PropTypes.number.isRequired,\n        renderThumbnail: PropTypes.bool,\n        assets: PropTypes.shape({getURL: PropTypes.func.isRequired}),\n    };\n\n    state = {};\n\n    static getDerivedStateFromProps(nextProps, prevState) {\n        if (!prevState.entityData || !prevState.mediaType\n            || nextProps.entity.getProperty('data').get('url') !== prevState.entityData.url\n            || nextProps.entity.getProperty('data').get('id') !== prevState.entityData.id\n            || nextProps.entity.getProperty('data').get('assetId') !== prevState.entityData.assetId\n            || nextProps.entity.getProperty('data').get('imageAssetId') !== prevState.entityData.imageAssetId\n        ) {\n            const {entity} = nextProps;\n            const mediaType = entity.getProperty('mediaType') || entity.getProperty('type');\n            const entityData = entity.getProperty('data').toJS();\n\n            return {\n                entityData,\n                mediaType,\n            };\n        }\n\n        return null;\n    }\n\n    render() {\n        const {entity, inEditMode, scaleX, scaleY, renderThumbnail, assets} = this.props;\n        const {mediaType, entityData} = this.state;\n        const Component = inEditMode && editableMediaTypeMap[mediaType] || mediaTypeMap[mediaType];\n        invariant(!!Component, `Unknown MEDIA type '${mediaType}'`);\n        if (!Component) return null;\n\n        return (\n            <Component\n                mediaType={mediaType}\n                scaleX={scaleX}\n                scaleY={scaleY}\n                width={entity.getWidth()}\n                height={entity.getHeight()}\n                inEditMode={inEditMode}\n                playback={entity.getProperty('playback')}\n                opacity={entity.getProperty('opacity')}\n                entityKey={entity.getKey()}\n                renderThumbnail={renderThumbnail}\n                assets={assets}\n                {...entityData}\n            />\n        );\n    }\n}\n","var $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar expm1 = require('../internals/math-expm1');\n\nvar abs = Math.abs;\nvar exp = Math.exp;\nvar E = Math.E;\n\nvar FORCED = fails(function () {\n  return Math.sinh(-2e-17) != -2e-17;\n});\n\n// `Math.sinh` method\n// https://tc39.github.io/ecma262/#sec-math.sinh\n// V8 near Chromium 38 has a problem with very small numbers\n$({ target: 'Math', stat: true, forced: FORCED }, {\n  sinh: function sinh(x) {\n    return abs(x = +x) < 1 ? (expm1(x) - expm1(-x)) / 2 : (exp(x - 1) - exp(-x - 1)) * (E / 2);\n  }\n});\n","let l = console;\n\nexport function setLogger(logger) {\n    l = logger;\n}\n\nexport function logError(message, error) {\n    l.error(message, error);\n}\n\nexport function logInfo(message, object) {\n    l.info(message, object);\n}\n\nexport function logWarning(message, object) {\n    l.warn(message, object);\n}\n\n","import AppDispatcher from '../../../app/dispatcher';\nimport {PUSH_BOUND_UNDO_STACK} from '../constants/EditorConstants.js';\n\n\nexport default function pushBoundUndoStack() {\n    AppDispatcher.dispatch({\n        type: PUSH_BOUND_UNDO_STACK,\n    });\n}\n","module.exports = {'2011-2016':[[['','North America','Asia','Europe','South America'],['2011','7,664','747','5,334','2,546'],['2012','10,286','1,195','4,731','1,909'],['2013','13,094','2,277','7,572','2,798'],['2014','14,964','5,943','5,195','3,378'],['2015','17,968','11,385','4,116','3,371'],['2016','18,566','15,245','6,025','4,087']]],slopegraph:[[['','North America','Asia','Europe','South America'],['2007','7,664','747','5,334','2,546'],['2017','10,286','4195','4,731','1,909']]],books:[[['','2010','2020'],['Romance','17,700','18,124'],['Comics','11,789','11,012'],['Mystery','10,500','14,792'],['History','8,278','6,975'],['Travel','4,367','4,961']]],movies:[[['','Fantasy','Drama','Romance','Mystery','Science'],['2014','204,502','159,071','103,967','99,964','96,345'],['2015','180,351','170,581','80,013','94,101','45,055'],['2016','160,281','180,256','118,033','90,660','34,014'],['2017','150,895','143,027','108,912','90,109','39,401']]],literature:[[['','2014','2015','2016'],['Fantasy','204,502','180,351','160,281'],['Drama','159,071','170,581','180,256'],['Romance','103,967','80,013','118,033'],['Mystery','99,964','94,101','90,660'],['Science','96,345','45,055','34,014']]],devices:[[['','France','Germany'],['Smartphones','79','17'],['Tablets','41','70'],['Laptops','14','30']]],books2:[[['','Books'],['Romance','17,700'],['Comics','11,789'],['Mystery','10,500'],['History','8,278'],['Travel','4,367']]],movies2:[[['','Fantasy','Drama','Romance'],['2013','204,502','180,351','160,281'],['2014','159,071','170,581','180,256'],['2015','103,967','80,013','118,033'],['2016','99,964','94,101','90,660'],['2017','96,345','45,055','34,014']]],lifeExpectancy:[[['','USA','China','Japan','Germany','France'],['GDP 2010','14,964','5,943','5,495','3,378','2,648'],['GDP 2005','13,094','2,277','4,572','2,798','2,182']]],entertainment:[[['','Books','Movies'],['Fantasy','20,502','8,301'],['Romance','29,071','29,222'],['Drama','10,967','10,013']]],elections:[[['','2012 Elections','2016 Elections'],['Party A','40,502','34,301'],['Party B','49,071','59,222'],['Party C','3,967','5,013'],['Party D','12,698','16,879']]],unemployment:[[['US GDP and unemployment','Sales (USD)','Conversion rate (%)'],['2002','10,980.2','5.90'],['2003','11,512.2','6.10'],['2004','12,277.0','5.60'],['2005','13,095.4','5.20'],['2006','13,857.9','4.70'],['2007','14,480.3','4.70'],['2008','14,720.3','5.90'],['2009','14,417.9','9.40'],['2010','14,958.3','9.70'],['2011','15,533.8','9.00'],['2012','16,155.5','8.10'],['2013','16,691.2','7.70'],['2014','17,393.1','6.20'],['2015','18036.6','5.50'],['2016','18569.1','4.70']]],population:[[['','North','South','East','West','Life Expectancy'],['1970','29178333','29956696','31374573','46645710','67.1'],['1975','29178333','29201925','28447154','48033996','68.4'],['1980','20155200','28447154','42480855','32762858','68.4'],['1985','30036394','27692383','48033996','34485323','72.9'],['1990','30144404','26937611','25428069','39013950','74.1'],['1995','25922744','26182840','30036394','39768722','75.4'],['2000','22375722','25428069','22227076','38259179','76.4'],['2005','23144371','30144404','21187389','42787806','78.2'],['2010','20838424','34485323','25346138','42033035','79.6'],['2015','17763826','33730552','20155200','39768669','80.4']]],'1975-2020':[[['','North America','South America','Europe','Asia'],['1975','4,665','2,996','3,137','2,918'],['1980','4,803','2,920','2,845','2,918'],['1985','3,276','2,845','4,248','2,016'],['1990','3,449','2,769','4,803','3,004'],['1995','3,901','2,694','2,543','3,014'],['2000','3,977','2,618','3,004','2,592'],['2005','3,826','2,543','2,223','2,238'],['2010','4,279','3,014','2,119','2,314'],['2015','4,203','3,449','2,535','2,084'],['2020','3,977','3,373','2,016','1,776']]],'1970-2015':[[['','North America','South America','Europe','Asia'],['1970','46645710','29956696','31374573','29178333'],['1975','48033996','29201925','28447154','29178333'],['1980','32762858','28447154','42480855','20155200'],['1985','34485323','27692383','48033996','30036394'],['1990','39013950','26937611','25428069','30144404'],['1995','39768722','26182840','30036394','25922744'],['2000','38259179','25428069','22227076','22375722'],['2005','42787806','30144404','21187389','23144371'],['2010','42033035','34485323','25346138','20838424'],['2015','39768669','33730552','20155200','17763826']]],powerSources:[[['','Solar Power','Wind Power','Hydroelectric','Others'],['1970','645710','2956696','3174573','2918333'],['1980','8033996','2901925','2447154','9178333'],['1990','32762858','2847154','4248085','2015520'],['2000','34485323','7692383','4033996','3003639'],['2010','39013950','26937611','25428069','30144404'],['2020','39768722','26182840','30036394','25922744'],['2030','38259179','25428069','22227076','22375722'],['2040','42787806','30144404','21187389','23144371'],['2050','42033035','34485323','25346138','20838424']]],galaxy:[[['country','Distance (Mly)','Recession velocity (km/s)'],['Centaurus Galaxy Group','11.9','299'],['Sculptor Galaxy','12.7','243'],['Cane M94 Group','13','483'],['Canes Venatici II Group','26.1','308'],['Leo Triplet Galaxy','35.1','662'],['Leo Group','38','680'],['Draco NGC 5866','80','672'],['Ursa Major Group','55.1','1016'],['Virgo Cluster','59','1,139'],['Fornax Cluster','62','1,379'],['Puppis','95','2,100'],['Antlia Cluster','133','2,608'],['Centaurus Cluster','170','3,298'],['Pegasus','180','3,840']]],revenue:[[['country','Total Revenue','Total Costs','Stores','region'],['United States','48,890','48,112','152','America'],['China','16,430','8,400','20','Asia'],['Japan','35,510','45,314','96','Asia'],['Germany','40170','39,491','87','Europe'],['France','35,860','35,246','74','Europe'],['Brazil','11,500','11,640','51','America'],['United Kingdom','36,970','35,657','101','Europe'],['Italy','38,350','32,647','60','Europe'],['India','3,640','3,637','14','Asia'],['Russia','20,050','21,246','48','Europe'],['Canada','39,830','40,370','89','America'],['Australia','36,910','39,721','69','Oceania'],['Spain','31,930','32,045','25','Europe'],['Mexico','15,120','15,266','24','America'],['South Korea','30,290','30,286','18','Asia']]],revenueTotal:[[['','Total Revenue','Total Costs'],['United States','48,890','28,112'],['Angola','8,430','4,400'],['Japan','35,510','14,314'],['Germany','40,170','19,491'],['France','35,860','15,246'],['Brazil','11,500','6,640'],['United Kingdom','36,970','15,657'],['Italy','32,350','12,647'],['Russia','20,050','11,246'],['Canada','39,830','20,370'],['Australia','36,910','19,721'],['Spain','31,930','12,045'],['Mexico','15,120','5,266'],['South Korea','30,290','10,286']]],revenueTotalStores:[[['country','Total Revenue','Total Costs','Stores','region'],['United States','48,890','48,112','152','America'],['China','8,430','38,400','20','Asia'],['Japan','35,510','34,314','96','Asia'],['Germany','40170','39,491','87','Europe'],['France','35,860','5,246','74','Europe'],['Brazil','55,500','11,640','21','America'],['United Kingdom','36,970','35,657','101','Europe'],['India','3,640','3,637','14','Asia'],['Russia','20,050','21,246','48','Europe'],['Canada','59,830','40,370','89','America'],['Spain','31,930','32,045','25','Europe'],['Mexico','15,120','15,266','24','America'],['South Korea','30,290','10,286','18','Asia']]],weeks:[[['Geography','Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday'],['Week 1','6','4','6','11','13','20','31'],['Week 2','36.7','62','76','8','14','33','61'],['Week 3','18.2','62','20','9','63','7','59'],['Week 4','56.6','78','33','17','45','32','22']]],tasks:[[['','2016','2017'],['Value or percentage','85%','60%'],['How many icons to use?','10','10'],['Legend','% of tasks completed','% of tasks completed'],['Text next to the bar','85%','60%']]],universities:[[['','','University','No. of FTE Students','No. of students per staff','International Students'],['[img=https://graphics.jifo.co/flags_lipis/gb.svg]','[img=https://images.jifo.co/75759_1505901714298.png]','University of Oxford','20,409','11.2','38%'],['[img=https://graphics.jifo.co/flags_lipis/gb.svg]','[img=https://images.jifo.co/75759_1505902456494.svg]','University of Cambridge','18,389','10.9','35%'],['[img=https://graphics.jifo.co/flags_lipis/us.svg]','[img=https://images.jifo.co/75759_1505902563261.png]','California Institute of Technology','2,209','6.5','27%'],['[img=https://graphics.jifo.co/flags_lipis/us.svg]','[img=https://images.jifo.co/75759_1505902598934.png]','Stanford University','15,845','7.5','22%'],['[img=https://graphics.jifo.co/flags_lipis/us.svg]','[img=https://images.jifo.co/75759_1505902657138.png]','Massachusetts Institute of Technology','11,177','8.7','34%'],['[img=https://graphics.jifo.co/flags_lipis/us.svg]','[img=https://images.jifo.co/75759_1505902693425.png]','Harvard University','20,326','8.9','26%'],['[img=https://graphics.jifo.co/flags_lipis/us.svg]','[img=https://images.jifo.co/75759_1505902760783.png]','Princeton University','7,955','8.3','24%'],['[img=https://graphics.jifo.co/flags_lipis/gb.svg]','[img=https://images.jifo.co/75759_1505902793196.png]','Imperial College London','15,857','11.4','55%'],['[img=https://graphics.jifo.co/flags_lipis/us.svg]','[img=https://images.jifo.co/75759_1505902829090.png]','University of Chicago','13,525','6.2','25%']]],goals:[[['title','Goal A','Goal B'],['MIN','Start','Start'],['MAX','Finish','Finish'],['Value','70%','45%'],['Label','Current status: on track','Current status: behind schedule']]],project:[[['','From','To','Details'],['Planning','04-01-2018','08-01-2018','Identify key goals'],['Research','08-01-2018','12-01-2018','Collect requirements from stakeholders'],['Design','12-01-2018','15-01-2018','Create a prototype'],['Development','15-01-2018','22-01-2018','Development of the product'],['Review','22-01-2018','30-01-2018','Test the product']]],population1950:[[['Population','1950','1960','1970','1980'],['USA','151,869','179,980','203,985','227,225'],['Japan','83,806','94,092','104,345','116,808'],['Germany','68,375','72,481','72,481','78,298'],['Brazil','53,444','71,412','94,931','12,1064'],['United Kingdom','50,128','52,373','55,633','56,315']]],percent:[[['','USA','China','Japan','Germany','France'],['1995','7,664','747','5,334','2,546','1,596'],['2000','10,286','1,195','4,731','1,909','1,356'],['2005','13,094','2,277','4,572','2,798','2,182'],['2010','14,964','5,943','5,495','3,378','2,648'],['2015','17,968','11,385','4,116','3,371','2,423']]],areaPopulation:[[['','Area (km2)','Population'],['Asia','43,820,000','4,164,252,000'],['Africa','30,370,000','1,022,234,000'],['North America','24,490,000','542,056,000'],['South America','17,840,000','392,555,000'],['Antarctica','13,720,000','4,490'],['Europe','10,180,000','738,199,000'],['Australia','9,008,500','29,127,000']]],pencil:[[['100,000','Number of times average human heart beats per day.','profilePath'],['50,000','Number of English words the average lead pencil writes during its life span.','upPath']]],unitsInStock:[[['Position','Company A','Company B'],['Units in Stock','217','400'],['Damaged','-55','-120'],['Refurbished','37','30'],['Saleable Units','199','310']]],stocks:[[['Day','Open','High','Low','Close'],['1-06-2018','1.53','2.31','1.52','1.89'],['2-06-2018','2.20','2.48','1.73','2.46'],['3-06-2018','2.55','2.93','2.41','2.86'],['4-06-2018','2.11','2.57','1.62','1.79'],['5-06-2018','1.82','1.83','1.24','1.79'],['6-06-2018','1.25','1.26','0.65','1.29'],['7-06-2018','1.22','1.52','0.75','1.11'],['8-06-2018','1.13','1.15','0.78','0.79'],['9-06-2018','1.04','1.72','0.77','1.00'],['10-06-2018','1.86','1.96','1.47','1.66'],['11-06-2018','1.75','2.65','1.74','2.58'],['12-06-2018','2.47','2.58','2.23','2.32'],['13-06-2018','2.56','2.67','2.04','2.37'],['14-06-2018','2.37','2.53','2.17','2.44'],['15-06-2018','2.78','2.89','1.89','1.95'],['16-06-2018','1.16','2.45','1.76','1.77'],['17-06-2018','1.78','1.78','1.22','1.31'],['18-06-2018','1.46','1.72','0.93','1.00'],['19-06-2018','1.05','1.11','0.31','0.53']]],brands:[[['','USA','UK'],['Smith','0.88','1.26'],['Johnson','0.69','0.37'],['Williams','0.57','0.39'],['Jones','0.51','0.75'],['Brown','0.51','0.56'],['Miller','0.42','0.15'],['Davis','0.4','0.19'],['Garcia','0.32','0.009'],['Rodriguez','0.3','0.006'],['Wilson','0.29','0.39'],['Martinez','0.29','0.005'],['Anderson','0.28','0.15'],['Taylor','0.27','0.59'],['Thomas','0.26','0.39'],['Moore','0.26','0.23'],['Hernandez','0.26','0.003'],['Jackson','0.25','0.27'],['Martin','0.25','0.25'],['Thompson','0.24','0.31'],['White','0.24','0.3'],['Robinson','0.19','0.32'],['Walker','0.19','0.3'],['Hall','0.18','0.28'],['Wright','0.16','0.32'],['Green','0.15','0.28'],['Roberts','0.14','0.28'],['Evans','0.12','0.3'],['Wood','0.09','0.27'],['Clarke','0.02','0.26'],['Davies','0.01','0.34']]],projects:[[['','Project A','Project B','Project C'],['Complete','70','30','50'],['In progress','','15','10'],['Incomplete','','','40']]],companies:[[['','Company A','Company B'],['Start','120','100'],['Stage 1','100','50'],['Stage 2','80','30'],['Stage 3','60','25'],['Finish','40','23']]],maslowPyramid:[[['','Number'],['Physiological needs','8'],['Safety and security','5'],['Love and belonging','3'],['Self-esteem','2'],['Self-actualization','1']]],populationArea:[[['','Population','Area'],['USA',322,9.5],['Brazil',205,8.5],['Japan',127,0.4]]],gdp2010:[[['','GDP 2010'],['USA','14,964'],['China','5,943'],['Japan','5,495'],['Germany','3,378'],['France','2,648']]],area:[[['','Area'],['Eurasia','36.2'],['Americas','28.3'],['Africa','20.3'],['Antarctica','9.1'],['Oceania','6.1']]],company:[[['','Company A'],['Start','120'],['Stage 1','100'],['Stage 2','80'],['Stage 3','60'],['Finish','40']]],errorMargin:[[['','Poll','Error -','Error +','Group'],['15/10/2016','38%','35%','41%','Poll'],['21/10/2016','37%','33%','41%','Poll'],['28/10/2016','39%','36%','42%','Poll'],['03/11/2016','25%','20%','30%','Poll'],['07/11/2016','18%','15%','21%','Poll']]],arrivals:[[['','2007','2008','2009','2010','2011','2012','2013','2014','2015','2016'],['New York City','7664','10286','13094','14964','17968','18566','18033','19867','20001','21265'],['Bangkok','947','1195','2277','5943','11385','15245','15298','16981','20547','20744'],['Singapore','5334','4731','7572','5195','4116','6025','8033','8974','10365','11244'],['Dubai','2546','1909','2798','3378','3371','4087','4877','5111','5642','7002'],['Hong Kong','1391','2904','3103','3544','3265','3981','4021','4544','4873','5023'],['Istanbul','837','899','936','945','978','1005','1024','1206','1844','1952'],['Kuala Lumpur','700','745','788','825','832','963','974','1025','1455','1876'],['London','325','369','487','402','499','536','578','690','742','755'],['Macau','9700','8375','7749','8176','9925','9360','10268','11241','12308','13391']]]}","\nimport {css, keyframes} from 'styled-components';\n\n/**\n * Generated from Animation.css (https://daneden.github.io/animate.css/)\n*/\n\nexport const animated = () => css`\n    animation-fill-mode: both;\n    will-change: transform;\n    transform: translateZ(0);\n    height: 100%;\n`;\nexport const bounceSetup = () => css`\n    transform-origin: center bottom;\n`;\nexport const bounceStartState = () => css`\n    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n    transform: translate3d(0, 0, 0);\n`;\nexport const bounce = () => keyframes`\n    from,\n    20%,\n    53%,\n    80%,\n    to {\n        ${bounceStartState()}\n    }\n    40%,\n    43% {\n        animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);\n        transform: translate3d(0, -30px, 0);\n    }\n    70% {\n        animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);\n        transform: translate3d(0, -15px, 0);\n    }\n    90% {\n        transform: translate3d(0, -4px, 0);\n    }\n`;\n\nexport const flashStartState = () => css`\n    opacity: 1;\n`;\nexport const flash = () => keyframes`\n    from,\n    50%,\n    to {\n        ${flashStartState()}\n    }\n    25%,\n    75% {\n        opacity: 0;\n    }\n`;\n\nexport const pulseStartState = () => css`\n    transform: scale3d(1, 1, 1);\n`;\nexport const pulse = () => keyframes`\n    from {\n        ${pulseStartState()}\n    }\n    50% {\n        transform: scale3d(1.05, 1.05, 1.05);\n    }\n    to {\n        ${pulseStartState()}\n    }\n`;\n\nexport const rubberBandStartState = () => css`\n    transform: scale3d(1, 1, 1);\n`;\nexport const rubberBand = () => keyframes`\n    from {\n        ${rubberBandStartState()}\n    }\n    30% {\n        transform: scale3d(1.25, 0.75, 1);\n    }\n    40% {\n        transform: scale3d(0.75, 1.25, 1);\n    }\n    50% {\n        transform: scale3d(1.15, 0.85, 1);\n    }\n    65% {\n        transform: scale3d(0.95, 1.05, 1);\n    }\n    75% {\n        transform: scale3d(1.05, 0.95, 1);\n    }\n    to {\n        ${rubberBandStartState()}\n    }\n`;\n\nexport const shakeStartState = () => css`\n    transform: translate3d(0, 0, 0);\n`;\nexport const shake = () => keyframes`\n    from,\n    to {\n        ${shakeStartState()}\n    }\n    10%,\n    30%,\n    50%,\n    70%,\n    90% {\n        transform: translate3d(-10px, 0, 0);\n    }\n    20%,\n    40%,\n    60%,\n    80% {\n        transform: translate3d(10px, 0, 0);\n    }\n`;\n\nexport const headShakeSetup = () => css`\n    animation-timing-function: ease-in-out;\n`;\nexport const headShakeStartState = () => css`\n    transform: translateX(0);\n`;\nexport const headShake = () => keyframes`\n    0% {\n        ${headShakeStartState()}\n    }\n    6.5% {\n        transform: translateX(-6px) rotateY(-9deg);\n    }\n    18.5% {\n        transform: translateX(5px) rotateY(7deg);\n    }\n    31.5% {\n        transform: translateX(-3px) rotateY(-5deg);\n    }\n    43.5% {\n        transform: translateX(2px) rotateY(3deg);\n    }\n    50% {\n        transform: translateX(0);\n    }\n`;\n\nexport const swingSetup = () => css`\n    transform-origin: top center;\n`;\nexport const swingStartState = () => css`\n    transform: none;\n`;\nexport const swingEndState = () => css`\n    transform: rotate3d(0, 0, 1, 0deg);\n`;\nexport const swing = () => keyframes`\n    from {\n        ${swingStartState()}\n    }\n    20% {\n        transform: rotate3d(0, 0, 1, 15deg);\n    }\n    40% {\n        transform: rotate3d(0, 0, 1, -10deg);\n    }\n    60% {\n        transform: rotate3d(0, 0, 1, 5deg);\n    }\n    80% {\n        transform: rotate3d(0, 0, 1, -5deg);\n    }\n    to {\n        ${swingEndState()}\n    }\n`;\n\nexport const tadaStartState = () => css`\n    transform: scale3d(1, 1, 1);\n`;\nexport const tada = () => keyframes`\n    from,\n    to {\n        ${tadaStartState()}\n    }\n    10%,\n    20% {\n        transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg);\n    }\n    30%,\n    50%,\n    70%,\n    90% {\n        transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);\n    }\n    40%,\n    60%,\n    80% {\n        transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);\n    }\n`;\n\nexport const wobbleStartState = () => css`\n    transform: translate3d(0, 0, 0);\n`;\nexport const wobble = () => keyframes`\n    from,\n    to {\n        ${wobbleStartState()}\n    }\n    15% {\n        transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);\n    }\n    30% {\n        transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);\n    }\n    45% {\n        transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);\n    }\n    60% {\n        transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);\n    }\n    75% {\n        transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);\n    }\n`;\n\nexport const jelloSetup = () => css`\n    transform-origin: center;\n`;\nexport const jelloStartState = () => css`\n    transform: translate3d(0, 0, 0);\n`;\nexport const jello = () => keyframes`\n    from,\n    11.1%,\n    to {\n        ${jelloStartState()}\n    }\n    22.2% {\n        transform: skewX(-12.5deg) skewY(-12.5deg);\n    }\n    33.3% {\n        transform: skewX(6.25deg) skewY(6.25deg);\n    }\n    44.4% {\n        transform: skewX(-3.125deg) skewY(-3.125deg);\n    }\n    55.5% {\n        transform: skewX(1.5625deg) skewY(1.5625deg);\n    }\n    66.6% {\n        transform: skewX(-0.78125deg) skewY(-0.78125deg);\n    }\n    77.7% {\n        transform: skewX(0.390625deg) skewY(0.390625deg);\n    }\n    88.8% {\n        transform: skewX(-0.1953125deg) skewY(-0.1953125deg);\n    }\n`;\n\nexport const bounceInSetup = () => css`\n    animation-duration: 0.75s;\n`;\nexport const bounceInStartState = () => css`\n    opacity: 0;\n    transform: scale3d(0.3, 0.3, 0.3);\n`;\nexport const bounceInEndState = () => css`\n    opacity: 1;\n    transform: scale3d(1, 1, 1);\n`;\nexport const bounceIn = () => keyframes`\n    from,\n    20%,\n    40%,\n    60%,\n    80%,\n    to {\n        animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n    }\n    0% {\n        ${bounceInStartState()}\n    }\n    20% {\n        transform: scale3d(1.1, 1.1, 1.1);\n    }\n    40% {\n        transform: scale3d(0.9, 0.9, 0.9);\n    }\n    60% {\n        opacity: 1;\n        transform: scale3d(1.03, 1.03, 1.03);\n    }\n    80% {\n        transform: scale3d(0.97, 0.97, 0.97);\n    }\n    to {\n        ${bounceInEndState()}\n    }\n`;\n\nexport const bounceInDownStartState = () => css`\n    opacity: 0;\n    transform: translate3d(0, -3000px, 0);\n`;\nexport const bounceInDownEndState = () => css`\n    transform: translate3d(0, 0, 0);\n`;\nexport const bounceInDown = () => keyframes`\n    from,\n    60%,\n    75%,\n    90%,\n    to {\n        animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n    }\n    0% {\n        ${bounceInDownStartState()}\n    }\n    60% {\n        opacity: 1;\n        transform: translate3d(0, 25px, 0);\n    }\n    75% {\n        transform: translate3d(0, -10px, 0);\n    }\n    90% {\n        transform: translate3d(0, 5px, 0);\n    }\n    to {\n        ${bounceInDownEndState()}\n    }\n`;\n\nexport const bounceInLeftStartState = () => css`\n    opacity: 0;\n    transform: translate3d(-3000px, 0, 0);\n`;\nexport const bounceInLeftEndState = () => css`\n    transform: translate3d(0, 0, 0);\n`;\nexport const bounceInLeft = () => keyframes`\n    from,\n    60%,\n    75%,\n    90%,\n    to {\n        animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n    }\n    0% {\n        ${bounceInLeftStartState()}\n    }\n    60% {\n        opacity: 1;\n        transform: translate3d(25px, 0, 0);\n    }\n    75% {\n        transform: translate3d(-10px, 0, 0);\n    }\n    90% {\n        transform: translate3d(5px, 0, 0);\n    }\n    to {\n        ${bounceInLeftEndState()}\n    }\n`;\n\nexport const bounceInRightStartState = () => css`\n    opacity: 0;\n    transform: translate3d(3000px, 0, 0);\n`;\nexport const bounceInRightEndState = () => css`\n    transform: translate3d(0, 0, 0);\n`;\nexport const bounceInRight = () => keyframes`\n    from,\n    60%,\n    75%,\n    90%,\n    to {\n        animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n    }\n    from {\n        ${bounceInRightStartState()}\n    }\n    60% {\n        opacity: 1;\n        transform: translate3d(-25px, 0, 0);\n    }\n    75% {\n        transform: translate3d(10px, 0, 0);\n    }\n    90% {\n        transform: translate3d(-5px, 0, 0);\n    }\n    to {\n        ${bounceInRightEndState()}\n    }\n`;\n\nexport const bounceInUpStartState = () => css`\n    opacity: 0;\n    transform: translate3d(0, 3000px, 0);\n`;\nexport const bounceInUpEndState = () => css`\n    transform: translate3d(0, 0, 0);\n`;\nexport const bounceInUp = () => keyframes`\n    from,\n    60%,\n    75%,\n    90%,\n    to {\n        animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n    }\n    from {\n        ${bounceInUpStartState()}\n    }\n    60% {\n        opacity: 1;\n        transform: translate3d(0, -20px, 0);\n    }\n    75% {\n        transform: translate3d(0, 10px, 0);\n    }\n    90% {\n        transform: translate3d(0, -5px, 0);\n    }\n    to {\n        ${bounceInUpEndState()}\n    }\n`;\n\nexport const bounceOutStartState = () => css`\n    transform: none;\n`;\nexport const bounceOutEndState = () => css`\n    opacity: 0;\n    transform: scale3d(0.3, 0.3, 0.3);\n`;\nexport const bounceOut = () => keyframes`\n    from {\n        ${bounceOutStartState()}\n    }\n    20% {\n        transform: scale3d(0.9, 0.9, 0.9);\n    }\n    50%,\n    55% {\n        opacity: 1;\n        transform: scale3d(1.1, 1.1, 1.1);\n    }\n    to {\n        ${bounceOutEndState()}\n    }\n`;\n\nexport const bounceOutSetup = () => css`\n    animation-duration: 0.75s;\n`;\nexport const bounceOutDownStartState = () => css`\n    transform: none;\n`;\nexport const bounceOutDownEndState = () => css`\n    opacity: 0;\n    transform: translate3d(0, 2000px, 0);\n`;\nexport const bounceOutDown = () => keyframes`\n    from {\n        ${bounceOutDownStartState()}\n    }\n    20% {\n        transform: translate3d(0, 10px, 0);\n    }\n    40%,\n    45% {\n        opacity: 1;\n        transform: translate3d(0, -20px, 0);\n    }\n    to {\n        ${bounceOutEndState()}\n    }\n`;\n\nexport const bounceOutLeftStartState = () => css`\n    opacity: 1;\n    transform: none;\n`;\nexport const bounceOutLeftEndState = () => css`\n    opacity: 0;\n    transform: translate3d(-2000px, 0, 0);\n`;\nexport const bounceOutLeft = () => keyframes`\n    from {\n        ${bounceOutLeftStartState()}\n    }\n    20% {\n        transform: translate3d(20px, 0, 0);\n    }\n    to {\n        ${bounceOutLeftEndState()}\n    }\n`;\n\nexport const bounceOutRightStartState = () => css`\n    opacity: 1;\n    transform: none;\n`;\nexport const bounceOutRightEndState = () => css`\n    opacity: 0;\n    transform: translate3d(2000px, 0, 0);\n`;\nexport const bounceOutRight = () => keyframes`\n    from {\n        ${bounceOutRightStartState()}\n    }\n    20% {\n        transform: translate3d(-20px, 0, 0);\n    }\n    to {\n        ${bounceOutRightEndState()}\n    }\n`;\n\nexport const bounceOutUpStartState = () => css`\n    transform: none;\n`;\nexport const bounceOutUpEndState = () => css`\n    opacity: 0;\n    transform: translate3d(0, -2000px, 0);\n`;\nexport const bounceOutUp = () => keyframes`\n    from {\n        ${bounceOutUpStartState()}\n    }\n    20% {\n        transform: translate3d(0, -10px, 0);\n    }\n    40%,\n    45% {\n        opacity: 1;\n        transform: translate3d(0, 20px, 0);\n    }\n    to {\n        ${bounceOutUpEndState()}\n    }\n`;\n\nexport const fadeInStartState = () => css`\n    opacity: 0;\n`;\nexport const fadeInEndState = () => css`\n    opacity: 1;\n`;\nexport const fadeIn = () => keyframes`\n    from {\n        ${fadeInStartState()}\n    }\n    to {\n        ${fadeInEndState()}\n    }\n`;\n\nexport const fadeInDownStartState = (distance) => css`\n    opacity: 0;\n    transform: translate3d(0, ${Math.round(distance * -100)}%, 0);\n`;\nexport const fadeInDownEndState = () => css`\n    opacity: 1;\n    transform: translate3d(0, 0, 0);\n`;\nexport const fadeInDown = (distance) => keyframes`\n    from {\n        ${fadeInDownStartState(distance)}\n    }\n    to {\n        ${fadeInDownEndState()}\n    }\n`;\n\nexport const fadeInDownBigStartState = () => css`\n    opacity: 0;\n    transform: translate3d(0, -2000px, 0);\n`;\nexport const fadeInDownBigEndState = () => css`\n    opacity: 1;\n    transform: translate3d(0, 0, 0);\n`;\nexport const fadeInDownBig = () => keyframes`\n    from {\n        ${fadeInDownBigStartState()}\n    }\n    to {\n        ${fadeInDownBigEndState()}\n    }\n`;\n\nexport const fadeInLeftStartState = (distance) => css`\n    opacity: 0;\n    transform: translate3d(${Math.round(distance * -100)}%, 0, 0);\n`;\nexport const fadeInLeftEndState = () => css`\n    opacity: 1;\n    transform: translate3d(0, 0, 0);\n`;\nexport const fadeInLeft = (distance) => keyframes`\n    from {\n        ${fadeInLeftStartState(distance)}\n    }\n    to {\n        ${fadeInLeftEndState()}\n    }\n`;\n\nexport const fadeInLeftBigStartState = () => css`\n    opacity: 0;\n    transform: translate3d(-2000px, 0, 0);\n`;\nexport const fadeInLeftBigEndState = () => css`\n    opacity: 1;\n    transform: translate3d(0, 0, 0);\n`;\nexport const fadeInLeftBig = () => keyframes`\n    from {\n        ${fadeInLeftBigStartState()}\n    }\n    to {\n        ${fadeInLeftBigEndState()}\n    }\n`;\n\nexport const fadeInRightStartState = (distance) => css`\n    opacity: 0;\n    transform: translate3d(${Math.round(distance * 100)}%, 0, 0);\n`;\nexport const fadeInRightEndState = () => css`\n    opacity: 1;\n    transform: translate3d(0, 0, 0);\n`;\nexport const fadeInRight = (distance) => keyframes`\n    from {\n        ${fadeInRightStartState(distance)}\n    }\n    to {\n        ${fadeInRightEndState()}\n    }\n`;\n\nexport const fadeInRightBigStartState = () => css`\n    opacity: 0;\n    transform: translate3d(2000px, 0, 0);\n`;\nexport const fadeInRightBigEndState = () => css`\n    opacity: 1;\n    transform: translate3d(0, 0, 0);\n`;\nexport const fadeInRightBig = () => keyframes`\n    from {\n        ${fadeInRightBigStartState()}\n    }\n    to {\n        ${fadeInRightBigEndState()}\n    }\n`;\n\nexport const fadeInUpStartState = (distance) => css`\n    opacity: 0;\n    transform: translate3d(0, ${Math.round(distance * 100)}%, 0);\n`;\nexport const fadeInUpEndState = () => css`\n    opacity: 1;\n    transform: translate3d(0, 0, 0);\n`;\nexport const fadeInUp = (distance) => keyframes`\n    from {\n        ${fadeInUpStartState(distance)}\n    }\n    to {\n        ${fadeInUpEndState()}\n    }\n`;\n\nexport const fadeInUpBigStartState = () => css`\n    opacity: 0;\n    transform: translate3d(0, 2000px, 0);\n`;\nexport const fadeInUpBigEndState = () => css`\n    opacity: 1;\n    transform: translate3d(0, 0, 0);\n`;\nexport const fadeInUpBig = () => keyframes`\n    from {\n        ${fadeInUpBigStartState()}\n    }\n    to {\n        ${fadeInUpBigEndState()}\n    }\n`;\n\nexport const fadeOutStartState = () => css`\n    opacity: 1;\n`;\nexport const fadeOutEndState = () => css`\n    opacity: 0;\n`;\nexport const fadeOut = () => keyframes`\n    from {\n        ${fadeOutStartState()}\n    }\n    to {\n        ${fadeOutEndState()}\n    }\n`;\n\nexport const fadeOutDownStartState = () => css`\n    opacity: 1;\n`;\nexport const fadeOutDownEndState = (distance) => css`\n    opacity: 0;\n    transform: translate3d(0, ${Math.round(distance * 100)}%, 0);\n`;\nexport const fadeOutDown = (distance) => keyframes`\n    from {\n        ${fadeOutDownStartState()}\n    }\n    to {\n        ${fadeOutDownEndState(distance)}\n    }\n`;\n\nexport const fadeOutDownBigStartState = () => css`\n    opacity: 1;\n`;\nexport const fadeOutDownBigEndState = () => css`\n    opacity: 0;\n    transform: translate3d(0, 2000px, 0);\n`;\nexport const fadeOutDownBig = () => keyframes`\n    from {\n        ${fadeOutDownBigStartState()}\n    }\n    to {\n        ${fadeOutDownBigEndState()}\n    }\n`;\n\nexport const fadeOutLeftStartState = () => css`\n    opacity: 1;\n`;\nexport const fadeOutLeftEndState = (distance) => css`\n    opacity: 0;\n    transform: translate3d(${Math.round(distance * -100)}%, 0, 0);\n`;\nexport const fadeOutLeft = (distance) => keyframes`\n    from {\n        ${fadeOutLeftStartState()}\n    }\n    to {\n        ${fadeOutLeftEndState(distance)}\n    }\n`;\n\nexport const fadeOutLeftBigStartState = () => css`\n    opacity: 1;\n`;\nexport const fadeOutLeftBigEndState = () => css`\n    opacity: 0;\n    transform: translate3d(-2000px, 0, 0);\n`;\nexport const fadeOutLeftBig = () => keyframes`\n    from {\n        ${fadeOutLeftBigStartState()}\n    }\n    to {\n        ${fadeOutLeftBigEndState()}\n    }\n`;\n\nexport const fadeOutRightStartState = () => css`\n    opacity: 1;\n`;\nexport const fadeOutRightEndState = (distance) => css`\n    opacity: 0;\n    transform: translate3d(${Math.round(distance * 100)}%, 0, 0);\n`;\nexport const fadeOutRight = (distance) => keyframes`\n    from {\n        ${fadeOutRightStartState()}\n    }\n    to {\n        ${fadeOutRightEndState(distance)}\n    }\n`;\n\nexport const fadeOutRightBigStartState = () => css`\n    opacity: 1;\n`;\nexport const fadeOutRightBigEndState = () => css`\n    opacity: 0;\n    transform: translate3d(2000px, 0, 0);\n`;\nexport const fadeOutRightBig = () => keyframes`\n    from {\n        ${fadeOutRightBigStartState()}\n    }\n    to {\n        ${fadeOutRightBigEndState()}\n    }\n`;\n\nexport const fadeOutUpStartState = () => css`\n    opacity: 1;\n`;\nexport const fadeOutUpEndState = (distance) => css`\n    opacity: 0;\n    transform: translate3d(0, ${Math.round(distance * -100)}%, 0);\n`;\nexport const fadeOutUp = (distance) => keyframes`\n    from {\n        ${fadeOutUpStartState()}\n    }\n    to {\n        ${fadeOutUpEndState(distance)}\n    }\n`;\n\nexport const fadeOutUpBigStartState = () => css`\n    opacity: 1;\n`;\nexport const fadeOutUpBigEndState = () => css`\n    opacity: 0;\n    transform: translate3d(0, -2000px, 0);\n`;\nexport const fadeOutUpBig = () => keyframes`\n    from {\n        ${fadeOutUpBigStartState()}\n    }\n    to {\n        ${fadeOutUpBigEndState()}\n    }\n`;\n\nexport const flipSetup = () => css`\n    backface-visibility: visible;\n`;\nexport const flipStartState = () => css`\n    transform: perspective(400px) rotate3d(0, 1, 0, -360deg);\n`;\nexport const flipEndState = () => css`\n    transform: perspective(400px);\n`;\nexport const flip = () => keyframes`\n    from {\n        ${flipStartState()}\n        animation-timing-function: ease-out;\n    }\n    40% {\n        transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg);\n        animation-timing-function: ease-out;\n    }\n    50% {\n        transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg);\n        animation-timing-function: ease-in;\n    }\n    80% {\n        transform: perspective(400px) scale3d(0.95, 0.95, 0.95);\n        animation-timing-function: ease-in;\n    }\n    to {\n        ${flipEndState()}\n        animation-timing-function: ease-in;\n    }\n`;\n\nexport const flipInXSetup = () => css`\n    backface-visibility: visible !important;\n`;\nexport const flipInXStartState = () => css`\n    transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\n    opacity: 0;\n`;\nexport const flipInXEndState = () => css`\n    transform: perspective(400px);\n`;\nexport const flipInX = () => keyframes`\n    from {\n        ${flipInXStartState()}\n        animation-timing-function: ease-in;\n    }\n    40% {\n        transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\n        animation-timing-function: ease-in;\n    }\n    60% {\n        transform: perspective(400px) rotate3d(1, 0, 0, 10deg);\n        opacity: 1;\n    }\n    80% {\n        transform: perspective(400px) rotate3d(1, 0, 0, -5deg);\n    }\n    to {\n        ${flipInXEndState()}\n    }\n`;\n\nexport const flipInYSetup = () => css`\n    backface-visibility: visible !important;\n`;\nexport const flipInYStartState = () => css`\n    transform: perspective(400px) rotate3d(0, 1, 0, 90deg);\n    opacity: 0;\n`;\nexport const flipInYEndState = () => css`\n    transform: perspective(400px);\n`;\nexport const flipInY = () => keyframes`\n    from {\n        ${flipInYStartState()}\n        animation-timing-function: ease-in;\n    }\n    40% {\n        transform: perspective(400px) rotate3d(0, 1, 0, -20deg);\n        animation-timing-function: ease-in;\n    }\n    60% {\n        transform: perspective(400px) rotate3d(0, 1, 0, 10deg);\n        opacity: 1;\n    }\n    80% {\n        transform: perspective(400px) rotate3d(0, 1, 0, -5deg);\n    }\n    to {\n        ${flipInYEndState()}\n    }\n`;\n\nexport const flipOutXSetup = () => css`\n    animation-duration: 0.75s;\n    backface-visibility: visible !important;\n`;\nexport const flipOutXStartState = () => css`\n    transform: perspective(400px);\n`;\nexport const flipOutXEndState = () => css`\n    transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\n    opacity: 0;\n`;\nexport const flipOutX = () => keyframes`\n    from {\n        ${flipOutXStartState()}\n    }\n    30% {\n        transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\n        opacity: 1;\n    }\n    to {\n        ${flipOutXEndState()}\n    }\n`;\n\nexport const flipOutYSetup = () => css`\n    animation-duration: 0.75s;\n    backface-visibility: visible !important;\n`;\nexport const flipOutYStartState = () => css`\n    transform: perspective(400px);\n`;\nexport const flipOutYEndState = () => css`\n    transform: perspective(400px) rotate3d(0, 1, 0, 90deg);\n    opacity: 0;\n`;\nexport const flipOutY = () => keyframes`\n    from {\n        ${flipOutYStartState()}\n    }\n    30% {\n        transform: perspective(400px) rotate3d(0, 1, 0, -15deg);\n        opacity: 1;\n    }\n    to {\n        ${flipOutYEndState()}\n    }\n`;\n\nexport const lightSpeedInSetup = () => css`\n    animation-timing-function: ease-out;\n`;\nexport const lightSpeedInStartState = (distance) => css`\n    transform: translate3d(${Math.round(distance * 100)}%, 0, 0) skewX(-30deg);\n    opacity: 0;\n`;\nexport const lightSpeedInEndState = () => css`\n    transform: translate3d(0, 0, 0);\n    opacity: 1;\n`;\nexport const lightSpeedIn = (distance) => keyframes`\n    from {\n        ${lightSpeedInStartState(distance)}\n    }\n    60% {\n        transform: skewX(20deg);\n        opacity: 1;\n    }\n    80% {\n        transform: skewX(-5deg);\n        opacity: 1;\n    }\n    to {\n        ${lightSpeedInEndState()}\n    }\n`;\n\nexport const lightSpeedOutSetup = () => css`\n    animation-timing-function: ease-in;\n`;\nexport const lightSpeedOutStartState = () => css`\n    opacity: 1;\n`;\nexport const lightSpeedOutEndState = (distance) => css`\n    transform: translate3d(${Math.round(distance * 100)}%, 0, 0) skewX(30deg);\n    opacity: 0;\n`;\nexport const lightSpeedOut = (distance) => keyframes`\n    from {\n        ${lightSpeedOutStartState()}\n    }\n    to {\n        ${lightSpeedOutEndState(distance)}\n    }\n`;\n\nexport const rotateInStartState = () => css`\n    transform-origin: center;\n    transform: rotate3d(0, 0, 1, -200deg);\n    opacity: 0;\n`;\nexport const rotateInEndState = () => css`\n    transform-origin: center;\n    transform: translate3d(0, 0, 0);\n    opacity: 1;\n`;\nexport const rotateIn = () => keyframes`\n    from {\n        ${rotateInStartState()}\n    }\n    to {\n        ${rotateInEndState()}\n    }\n`;\n\nexport const rotateInDownLeftStartState = () => css`\n    transform-origin: left bottom;\n    transform: rotate3d(0, 0, 1, -45deg);\n    opacity: 0;\n`;\nexport const rotateInDownLeftEndState = () => css`\n    transform-origin: left bottom;\n    transform: translate3d(0, 0, 0);\n    opacity: 1;\n`;\nexport const rotateInDownLeft = () => keyframes`\n    from {\n        ${rotateInDownLeftStartState()}\n    }\n    to {\n        ${rotateInDownLeftEndState()}\n    }\n`;\n\nexport const rotateInDownRightStartState = () => css`\n    transform-origin: right bottom;\n    transform: rotate3d(0, 0, 1, 45deg);\n    opacity: 0;\n`;\nexport const rotateInDownRightEndState = () => css`\n    transform-origin: right bottom;\n    transform: translate3d(0, 0, 0);\n    opacity: 1;\n`;\nexport const rotateInDownRight = () => keyframes`\n    from {\n        ${rotateInDownRightStartState()}\n    }\n    to {\n        ${rotateInDownRightEndState()}\n    }\n`;\n\nexport const rotateInUpLeftStartState = () => css`\n    transform-origin: left bottom;\n    transform: rotate3d(0, 0, 1, 45deg);\n    opacity: 0;\n`;\nexport const rotateInUpLeftEndState = () => css`\n    transform-origin: left bottom;\n    transform: translate3d(0, 0, 0);\n    opacity: 1;\n`;\nexport const rotateInUpLeft = () => keyframes`\n    from {\n        ${rotateInUpLeftStartState()}\n    }\n    to {\n        ${rotateInUpLeftEndState()}\n    }\n`;\n\nexport const rotateInUpRightStartState = () => css`\n    transform-origin: right bottom;\n    transform: rotate3d(0, 0, 1, -90deg);\n    opacity: 0;\n`;\nexport const rotateInUpRightEndState = () => css`\n    transform-origin: right bottom;\n    transform: translate3d(0, 0, 0);\n    opacity: 1;\n`;\nexport const rotateInUpRight = () => keyframes`\n    from {\n        ${rotateInUpRightStartState()}\n    }\n    to {\n        ${rotateInUpRightEndState()}\n    }\n`;\n\nexport const rotateOutStartState = () => css`\n    transform-origin: center;\n    opacity: 1;\n`;\nexport const rotateOutEndState = () => css`\n    transform-origin: center;\n    transform: rotate3d(0, 0, 1, 200deg);\n    opacity: 0;\n`;\nexport const rotateOut = () => keyframes`\n    from {\n        ${rotateOutStartState()}\n    }\n    to {\n        ${rotateOutEndState()}\n    }\n`;\n\nexport const rotateOutDownLeftStartState = () => css`\n    transform-origin: left bottom;\n    opacity: 1;\n`;\nexport const rotateOutDownLeftEndState = () => css`\n    transform-origin: left bottom;\n    transform: rotate3d(0, 0, 1, 45deg);\n    opacity: 0;\n`;\nexport const rotateOutDownLeft = () => keyframes`\n    from {\n        ${rotateOutDownLeftStartState()}\n    }\n    to {\n        ${rotateOutDownLeftEndState()}\n    }\n`;\n\nexport const rotateOutDownRightStartState = () => css`\n    transform-origin: right bottom;\n    opacity: 1;\n`;\nexport const rotateOutDownRightEndState = () => css`\n    transform-origin: right bottom;\n    transform: rotate3d(0, 0, 1, -45deg);\n    opacity: 0;\n`;\nexport const rotateOutDownRight = () => keyframes`\n    from {\n        ${rotateOutDownRightStartState()}\n    }\n    to {\n        ${rotateOutDownRightEndState()}\n    }\n`;\n\nexport const rotateOutUpLeftStartState = () => css`\n    transform-origin: left bottom;\n    opacity: 1;\n`;\nexport const rotateOutUpLeftEndState = () => css`\n    transform-origin: left bottom;\n    transform: rotate3d(0, 0, 1, -45deg);\n    opacity: 0;\n`;\nexport const rotateOutUpLeft = () => keyframes`\n    from {\n        ${rotateOutUpLeftStartState()}\n    }\n    to {\n        ${rotateOutUpLeftEndState()}\n    }\n`;\n\nexport const rotateOutUpRightStartState = () => css`\n    transform-origin: right bottom;\n    opacity: 1;\n`;\nexport const rotateOutUpRightEndState = () => css`\n    transform-origin: right bottom;\n    transform: rotate3d(0, 0, 1, 90deg);\n    opacity: 0;\n`;\nexport const rotateOutUpRight = () => keyframes`\n    from {\n        ${rotateOutUpRightStartState()}\n    }\n    to {\n        ${rotateOutUpRightEndState()}\n    }\n`;\n\nexport const hingeSetup = () => css`\n    animation-duration: 2s;\n`;\nexport const hingeStartState = () => css`\n    transform-origin: top left;\n    animation-timing-function: ease-in-out;\n`;\nexport const hingeEndState = () => css`\n    transform: translate3d(0, 700px, 0);\n    opacity: 0;\n`;\nexport const hinge = () => keyframes`\n    0% {\n        ${hingeStartState()}\n    }\n    20%,\n    60% {\n        transform: rotate3d(0, 0, 1, 80deg);\n        transform-origin: top left;\n        animation-timing-function: ease-in-out;\n    }\n    40%,\n    80% {\n        transform: rotate3d(0, 0, 1, 60deg);\n        transform-origin: top left;\n        animation-timing-function: ease-in-out;\n        opacity: 1;\n    }\n    to {\n        ${hingeEndState()}\n    }\n`;\n\nexport const jackInTheBoxStartState = () => css`\n    opacity: 0;\n    transform: scale(0.1) rotate(30deg);\n    transform-origin: center bottom;\n`;\nexport const jackInTheBoxEndState = () => css`\n    opacity: 1;\n    transform: scale(1);\n`;\nexport const jackInTheBox = () => keyframes`\n    from {\n        ${jackInTheBoxStartState()}\n    }\n    50% {\n        transform: rotate(-10deg);\n    }\n    70% {\n        transform: rotate(3deg);\n    }\n    to {\n        ${jackInTheBoxEndState()}\n    }\n`;\n\nexport const rollInStartState = (distance) => css`\n    opacity: 0;\n    transform: translate3d(${Math.round(distance * -100)}%, 0, 0) rotate3d(0, 0, 1, -120deg);\n`;\nexport const rollInEndState = () => css`\n    opacity: 1;\n    transform: translate3d(0, 0, 0);\n`;\nexport const rollIn = (distance) => keyframes`\n    from {\n        ${rollInStartState(distance)}\n    }\n    to {\n        ${rollInEndState()}\n    }\n`;\n\nexport const rollOutStartState = () => css`\n    opacity: 1;\n`;\nexport const rollOutEndState = (distance) => css`\n    opacity: 0;\n    transform: translate3d(${Math.round(distance * 100)}%, 0, 0) rotate3d(0, 0, 1, 120deg);\n`;\nexport const rollOut = (distance) => keyframes`\n    from {\n        ${rollOutStartState()}\n    }\n    to {\n        ${rollOutEndState(distance)}\n    }\n`;\n\nexport const zoomInStartState = () => css`\n    opacity: 0;\n    transform: scale3d(0.3, 0.3, 0.3);\n`;\nexport const zoomInEndState = () => css`\n    opacity: 1;\n    transform: none;\n`;\nexport const zoomIn = () => keyframes`\n    from {\n        ${zoomInStartState()}\n    }\n    50% {\n        opacity: 1;\n    }\n    to {\n        ${zoomInEndState()}\n    }\n`;\n\nexport const zoomInDownStartState = () => css`\n    opacity: 0;\n    transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0);\n`;\nexport const zoomInDownEndState = () => css`\n    opacity: 1;\n    transform: none;\n`;\nexport const zoomInDown = () => keyframes`\n    from {\n        animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\n        ${zoomInDownStartState()}\n    }\n    60% {\n        animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);\n        transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);\n    }\n    to {\n        ${zoomInDownEndState()}\n    }\n`;\n\nexport const zoomInLeftStartState = () => css`\n    opacity: 0;\n    transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0);\n`;\nexport const zoomInLeftEndState = () => css`\n    opacity: 1;\n    transform: none;\n`;\nexport const zoomInLeft = () => keyframes`\n    from {\n        ${zoomInLeftStartState()}\n        animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\n    }\n    60% {\n        transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0);\n        animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);\n    }\n    to {\n        ${zoomInLeftEndState()}\n    }\n`;\n\nexport const zoomInRightStartState = () => css`\n    opacity: 0;\n    transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0);\n`;\nexport const zoomInRightEndState = () => css`\n    opacity: 1;\n    transform: none;\n`;\nexport const zoomInRight = () => keyframes`\n    from {\n        ${zoomInRightStartState()}\n        animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\n    }\n    60% {\n        transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0);\n        animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);\n    }\n    to {\n        ${zoomInRightEndState()}\n    }\n`;\n\nexport const zoomInUpStartState = () => css`\n    opacity: 0;\n    transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0);\n`;\nexport const zoomInUpEndState = () => css`\n    opacity: 1;\n    transform: none;\n`;\nexport const zoomInUp = () => keyframes`\n    from {\n        ${zoomInUpStartState()}\n        animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\n    }\n    60% {\n        transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);\n        animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);\n    }\n    to {\n        ${zoomInUpEndState()}\n    }\n`;\n\nexport const zoomOutStartState = () => css`\n    opacity: 1;\n`;\nexport const zoomOutEndState = () => css`\n    opacity: 0;\n`;\nexport const zoomOut = () => keyframes`\n    from {\n        ${zoomOutStartState()}\n    }\n    50% {\n        opacity: 0;\n        transform: scale3d(0.3, 0.3, 0.3);\n    }\n    to {\n        ${zoomOutEndState()}\n    }\n`;\n\nexport const zoomOutDownStartState = () => css`\n    opacity: 1;\n    transform: none;\n`;\nexport const zoomOutDownEndState = () => css`\n    opacity: 0;\n    transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0);\n    transform-origin: center bottom;\n`;\nexport const zoomOutDown = () => keyframes`\n    from {\n        ${zoomOutDownStartState()}\n    }\n    40% {\n        transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);\n        animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\n    }\n    to {\n        ${zoomOutDownEndState()}\n        animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);\n    }\n`;\n\nexport const zoomOutLeftStartState = () => css`\n    opacity: 1;\n    transform: none;\n`;\nexport const zoomOutLeftEndState = () => css`\n    opacity: 0;\n    transform: scale(0.1) translate3d(-2000px, 0, 0);\n    transform-origin: left center;\n`;\nexport const zoomOutLeft = () => keyframes`\n    from {\n        ${zoomOutLeftStartState()}\n    }\n    40% {\n        transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0);\n    }\n    to {\n        ${zoomOutLeftEndState()}\n    }\n`;\n\nexport const zoomOutRightStartState = () => css`\n    opacity: 1;\n    transform: none;\n`;\nexport const zoomOutRightEndState = () => css`\n    opacity: 0;\n    transform: scale(0.1) translate3d(2000px, 0, 0);\n    transform-origin: right center;\n`;\nexport const zoomOutRight = () => keyframes`\n    from {\n        ${zoomOutRightStartState()}\n    }\n    40% {\n        transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0);\n    }\n    to {\n        ${zoomOutRightEndState()}\n    }\n`;\n\nexport const zoomOutUpStartState = () => css`\n    opacity: 1;\n    transform: none;\n`;\nexport const zoomOutUpEndState = () => css`\n    opacity: 0;\n    transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0);\n    transform-origin: center bottom;\n`;\nexport const zoomOutUp = () => keyframes`\n    from {\n        ${zoomOutUpStartState()}\n    }\n    40% {\n        transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);\n        animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\n    }\n    to {\n        ${zoomOutUpEndState()}\n        animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);\n    }\n`;\n\nexport const slideInDownStartState = (distance) => css`\n    transform: translate3d(0, ${Math.round(-100 * distance)}%, 0);\n    visibility: visible;\n`;\nexport const slideInDownEndState = () => css`\n    transform: translate3d(0, 0, 0);\n`;\nexport const slideInDown = (distance) => keyframes`\n    from {\n        ${slideInDownStartState(distance)}\n    }\n    to {\n        ${slideInDownEndState()}\n    }\n`;\n\nexport const slideInLeftStartState = (distance) => css`\n    transform: translate3d(${Math.round(distance * -100)}%, 0, 0);\n    visibility: visible;\n`;\nexport const slideInLeftEndState = () => css`\n    transform: translate3d(0, 0, 0);\n`;\nexport const slideInLeft = (distance) => keyframes`\n    from {\n        ${slideInLeftStartState(distance)}\n    }\n    to {\n        ${slideInLeftEndState()}\n    }\n`;\n\nexport const slideInRightStartState = (distance) => css`\n    transform: translate3d(${Math.round(distance * 100)}%, 0, 0);\n    visibility: visible;\n`;\nexport const slideInRightEndState = () => css`\n`;\nexport const slideInRight = (distance) => keyframes`\n    from {\n        ${slideInRightStartState(distance)}\n    }\n    to {\n        ${slideInRightEndState()}\n    }\n`;\n\nexport const slideInUpStartState = (distance) => css`\n    transform: translate3d(0, ${Math.round(distance * 100)}%, 0);\n    visibility: visible;\n`;\nexport const slideInUpEndState = () => css`\n    transform: translate3d(0, 0, 0);\n`;\nexport const slideInUp = (distance) => keyframes`\n    from {\n        ${slideInUpStartState(distance)}\n    }\n    to {\n        ${slideInUpEndState()}\n    }\n`;\n\nexport const slideOutDownStartState = () => css`\n    transform: translate3d(0, 0, 0);\n`;\nexport const slideOutDownEndState = (distance) => css`\n    visibility: hidden;\n    transform: translate3d(0, ${Math.round(distance * 100)}%, 0);\n`;\nexport const slideOutDown = (distance) => keyframes`\n    from {\n        ${slideOutDownStartState()}\n    }\n    to {\n        ${slideOutDownEndState(distance)}\n    }\n`;\n\nexport const slideOutLeftStartState = () => css`\n    transform: translate3d(0, 0, 0);\n`;\nexport const slideOutLeftEndState = (distance) => css`\n    visibility: hidden;\n    transform: translate3d(${Math.round(distance * -100)}%, 0, 0);\n`;\nexport const slideOutLeft = (distance) => keyframes`\n    from {\n        ${slideOutLeftStartState()}\n    }\n    to {\n        ${slideOutLeftEndState(distance)}\n    }\n`;\n\nexport const slideOutRightStartState = () => css`\n    transform: translate3d(0, 0, 0);\n`;\nexport const slideOutRightEndState = (distance) => css`\n    visibility: hidden;\n    transform: translate3d(${Math.round(distance * 100)}%, 0, 0);\n`;\nexport const slideOutRight = (distance) => keyframes`\n    from {\n        ${slideOutRightStartState()}\n    }\n    to {\n        ${slideOutRightEndState(distance)}\n    }\n`;\nexport const slideOutUpStartState = () => css`\n    transform: translate3d(0, 0, 0);\n`;\nexport const slideOutUpEndState = (distance) => css`\n    visibility: hidden;\n    transform: translate3d(0, ${Math.round(distance * -100)}%, 0);\n`;\nexport const slideOutUp = (distance) => keyframes`\n    from {\n        ${slideOutUpStartState()}\n    }\n    to {\n        ${slideOutUpEndState(distance)}\n    }\n`;\n","var $ = require('../internals/export');\nvar $values = require('../internals/object-to-array').values;\n\n// `Object.values` method\n// https://tc39.github.io/ecma262/#sec-object.values\n$({ target: 'Object', stat: true }, {\n  values: function values(O) {\n    return $values(O);\n  }\n});\n","export {default} from './EngagementAnalytics';\n","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!./PasswordPrompt.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!./PasswordPrompt.css\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!./PasswordPrompt.css\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","'use strict';\nvar $ = require('../internals/export');\nvar flattenIntoArray = require('../internals/flatten-into-array');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar toInteger = require('../internals/to-integer');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\n// `Array.prototype.flat` method\n// https://github.com/tc39/proposal-flatMap\n$({ target: 'Array', proto: true }, {\n  flat: function flat(/* depthArg = 1 */) {\n    var depthArg = arguments.length ? arguments[0] : undefined;\n    var O = toObject(this);\n    var sourceLen = toLength(O.length);\n    var A = arraySpeciesCreate(O, 0);\n    A.length = flattenIntoArray(A, O, O, sourceLen, 0, depthArg === undefined ? 1 : toInteger(depthArg));\n    return A;\n  }\n});\n","/* global PREZIGRAM */\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport {ThemeProvider} from 'styled-components';\n\nimport AppProvider from '../AppProvider.react';\nimport PrezigramTheme from '../../contexts/theme/prezigram';\n\nlet container = document.getElementById('dialog-container');\n\n// if is not defined static (e.g. in Prezigram) - make one\nif (!container) {\n    container = document.createElement('div');\n    container.id = 'dialog-container';\n    document.body.appendChild(container);\n}\n\nexport function showDialog(component, props) {\n    requestAnimationFrame(() => {\n        const {theme = PREZIGRAM ? PrezigramTheme : {}, ...componentProps} = props;\n        const element = React.createElement(component, {onClose, ...componentProps});\n        ReactDOM.unmountComponentAtNode(container); // unmounting previous popup if it exists\n        ReactDOM.render(\n            <AppProvider>\n                <ThemeProvider theme={theme}>\n                    {element}\n                </ThemeProvider>\n            </AppProvider>,\n            container\n        );\n    });\n}\n\nexport function close() {\n    onClose();\n}\n\nfunction onClose() {\n    ReactDOM.unmountComponentAtNode(container);\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/forced-string-html-method');\n\n// `String.prototype.blink` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.blink\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('blink') }, {\n  blink: function blink() {\n    return createHTML(this, 'blink', '', '');\n  }\n});\n","/* global PREZIGRAM */\nimport {fromJS} from 'immutable';\nimport {glassboxWebPrezigram} from '@prezi/client-logger-module';\n\nimport {removeCalloutEntity} from '../../../components/FreeLayoutEditor/modifier/removeCallout';\nimport adjustCalloutToPaddings from '../utils/adjustCalloutToPaddings';\nimport {getCalloutPaddingsByKey} from '../utils/getCalloutPaddings';\nimport {logRemoveCalloutWebJs} from '../../../../../glassbox/client_logger';\nimport getProjectIdFromUrl from '../../../components/FreeLayoutEditor/util/getProjectIdFromUrl';\n\n\nexport default function cleanupCallouts(updatedState, originalState, removedCallouts, removedEntities) {\n    removedCallouts.forEach(entity => updatedState = removeCalloutEntity(updatedState, entity));\n\n    for (const entity of removedEntities) {\n        if (!entity.getCalloutKey()) {\n            continue;\n        }\n\n        const block = updatedState.getCurrentContent().getBlock(entity.getBlockKey());\n        const entityWithCallout = block.getEntity(entity.getCalloutKey());\n        if (!entityWithCallout || !entityWithCallout.getCallout()) {\n            // cleanup of removed callout entity is already done while processing removed callouts\n            continue;\n        }\n\n        let calloutEntities = entityWithCallout.getCallout().get('entities');\n        const indexInCallout = calloutEntities.findIndex(key => key === entity.getKey());\n        calloutEntities = calloutEntities.delete(indexInCallout);\n\n        if (calloutEntities.isEmpty()) {\n            updatedState = updatedState.setEntity(entityWithCallout.getKey(), {props: {callout: undefined}});\n            if (PREZIGRAM) {\n                glassboxWebPrezigram.logRemoveGramCallout({\n                    prezi_oid: getProjectIdFromUrl(),\n                });\n            } else {\n                logRemoveCalloutWebJs({});\n            }\n            continue;\n        }\n\n        let paddings = getCalloutPaddingsByKey(originalState, entity.getCalloutKey());\n        const minHorizontal = Math.min(paddings.get('horizontal').get('left'), paddings.get('horizontal').get('right'));\n        const minVertical = Math.min(paddings.get('vertical').get('top'), paddings.get('vertical').get('bottom'));\n        paddings = fromJS({\n            horizontal: {\n                left: minHorizontal,\n                between: 0,\n                right: minHorizontal,\n            },\n            vertical: {\n                top: minVertical,\n                between: 0,\n                bottom: minVertical,\n            },\n        });\n\n        const entities = block.getEntitiesByKeys(calloutEntities, {orderByKeys: true});\n        const {calloutChanges, contentChanges} = adjustCalloutToPaddings(entityWithCallout.getCallout().get('alignment'), entities, paddings);\n        Object.keys(contentChanges).forEach(key => {\n            updatedState = updatedState.setEntity(key, contentChanges[key]);\n        });\n        updatedState = updatedState.setEntity(entityWithCallout.getKey(), {props: {callout: {...calloutChanges, entities: null}}});\n        updatedState = updatedState.setEntity(entityWithCallout.getKey(), {props: {callout: {entities: calloutEntities}}});\n    }\n\n    return updatedState;\n}\n","import React from 'react';\nimport invariant from 'invariant';\n\nimport createTextComponent from './createTextComponent.react';\n\nexport default createTextComponent((entity) => {\n    invariant(entity.getType() === 'TEXT' || entity.getType() === 'SHAPE', 'Entity is not of type TEXT');\n    return (\n        //eslint-disable-next-line react/no-danger\n        <div dangerouslySetInnerHTML={{__html: entity.getProperty('contentHTML')}}/>\n    );\n});\n","'use strict';\nvar aFunction = require('../internals/a-function');\nvar isObject = require('../internals/is-object');\n\nvar slice = [].slice;\nvar factories = {};\n\nvar construct = function (C, argsLength, args) {\n  if (!(argsLength in factories)) {\n    for (var list = [], i = 0; i < argsLength; i++) list[i] = 'a[' + i + ']';\n    // eslint-disable-next-line no-new-func\n    factories[argsLength] = Function('C,a', 'return new C(' + list.join(',') + ')');\n  } return factories[argsLength](C, args);\n};\n\n// `Function.prototype.bind` method implementation\n// https://tc39.github.io/ecma262/#sec-function.prototype.bind\nmodule.exports = Function.bind || function bind(that /* , ...args */) {\n  var fn = aFunction(this);\n  var partArgs = slice.call(arguments, 1);\n  var boundFunction = function bound(/* args... */) {\n    var args = partArgs.concat(slice.call(arguments));\n    return this instanceof boundFunction ? construct(fn, args.length, args) : fn.apply(that, args);\n  };\n  if (isObject(fn.prototype)) boundFunction.prototype = fn.prototype;\n  return boundFunction;\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar nativeGetOwnPropertyNames = require('../internals/object-get-own-property-names').f;\n\nvar toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n  ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n  try {\n    return nativeGetOwnPropertyNames(it);\n  } catch (error) {\n    return windowNames.slice();\n  }\n};\n\n// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nmodule.exports.f = function getOwnPropertyNames(it) {\n  return windowNames && toString.call(it) == '[object Window]'\n    ? getWindowNames(it)\n    : nativeGetOwnPropertyNames(toIndexedObject(it));\n};\n","import adjustCalloutToPaddings from '../../../../app/callouts/utils/adjustCalloutToPaddings';\n\nexport default function arrangeCalloutAfterTransformations(editorState, entityWithCallout, entities, paddings) {\n    const callout = entityWithCallout.getCallout();\n    const block = editorState.getCurrentContent().getBlock(entityWithCallout.getBlockKey());\n    const updatedEntities = block.getEntitiesByKeys(callout.get('entities'), {orderByKeys: true});\n    const {calloutChanges, contentChanges} = adjustCalloutToPaddings(callout.get('alignment'), updatedEntities, paddings);\n\n    editorState = editorState.setEntity(entityWithCallout.getKey(), {props: {callout: calloutChanges}});\n    Object.keys(contentChanges).forEach(key => {\n        editorState = editorState.setEntity(key, contentChanges[key]);\n    });\n    return editorState;\n}\n","var escape = require(\"../../../../../../node_modules/css-loader/lib/url/escape.js\");\nexports = module.exports = require(\"../../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"._1yzKuos6x2F3KgqOaMuNgV {\\n    position: fixed;\\n    top: 0;\\n    bottom: 0;\\n    right: 0;\\n    left: 0;\\n    background: #000;\\n    overflow-y: auto;\\n    overflow-x: hidden;\\n}\\n\\n._1SUhqVjcxpR8F7gnZtUICu {\\n    position: relative;\\n}\\n\\n/* Safari 9+ */\\n@supports (-webkit-marquee-repetition:infinite) and (object-fit:fill) {\\n    ._12nWfdbWfVJcT6n88uWPzG {\\n        display: none;\\n    }\\n}\\n\\n._1KNxVQCmPltg0zc5K4DweB {\\n    position: fixed;\\n    z-index: 1;\\n    left: 10px;\\n    top: 70px;\\n    font-size: 11px;\\n    padding: 4px 8px;\\n    background: rgba(101, 101, 101, 0.8);\\n    color: #fff;\\n    border-radius: 4px;\\n    transition: top 200ms;\\n}\\n\\n._1_IZNv8v2N1cdc1IMLKrVY {\\n    top: 10px;\\n}\\n\\n._3vvt1Y4INVzgfDYS9solvZ:hover ._1J3dBs0YB4MJmo98_BUzfR {\\n    display: block;\\n    opacity: 0.8;\\n}\\n\\n/* Disable position: sticky when slides because\\n   Safari does not like when sticky element has parent with overflow:hidden */\\n.WMajqLYwtvOUrbZKARFq ._1J3dBs0YB4MJmo98_BUzfR {\\n    position: static;\\n    margin-top: 0px;\\n}\\n\\n._7EVB7YIumRC3CG9qPkYwC {\\n    width: 0;\\n    height: 0;\\n}\\n\\n._23SyAD7HsX7bJcCNDyi3Zs {\\n    pointer-events: none;\\n}\\n\\n._2dY3ic77WAyywGdpYKLqk8 {\\n    z-index: 4;\\n    height: 74px;\\n    bottom: -2px;\\n    left: 0px;\\n    right: 0px;\\n    position: absolute;\\n    pointer-events: auto;\\n}\\n\\n.LvPh311Juwy6NZP3yVS4S {\\n    background: #eeeeee;\\n}\\n\\n._1yzKuos6x2F3KgqOaMuNgV ._2dY3ic77WAyywGdpYKLqk8 {\\n    background: none;\\n    max-width: 220px;\\n    margin: 0 auto;\\n}\\n\\n._2eo8fWibuA054tuZNprAEG {\\n    position: absolute;\\n    bottom: 0;\\n    height: 5px;\\n    left: 0;\\n    right: 0;\\n}\\n\\n._1zTN1hJ0PdqEFdfevnNFbS {\\n    border-top: 1px solid #E0E0E4;\\n    border-left: 1px solid #E0E0E4;\\n    border-right: 1px solid #E0E0E4;\\n    position: absolute;\\n    top: -1px;\\n    left: -1px;\\n    right: -1px;\\n    bottom: -1px;\\n}\\n._3vOrfsljHopHZmEiQPNi5w {\\n    border-bottom: 1px solid #E0E0E4;\\n}\\n._3CrxKXh6UXwieVOjLidutO {\\n    margin-bottom: 68px;\\n}\\n\\n._2arWa0iSK2K9pLOl6cPgV2 {\\n    position: fixed;\\n    z-index: 5;\\n    top: 10px;\\n    right: 10px;\\n    width: 20px;\\n    height: 20px;\\n    background: url(\" + escape(require(\"./icon-cancel.svg\")) + \") #656565 center no-repeat;\\n    background-size: 14px;\\n    opacity: .8;\\n    border-radius: 50%;\\n}\\n\\n._3SNFBfXT2IM8AL9UaPFAxe {\\n  opacity: 0.01;\\n}\\n._3rK5_M6pKQXKW2_Nivmbt2 {\\n  opacity: 1;\\n  transition: opacity 500ms ease-in;\\n}\\n.OxlDFN3uk4mp5gsKAbrp {\\n  opacity: 1;\\n}\\n.ZA7bMkdTUxbd8sGgzyjuS {\\n  opacity: 0.01;\\n  transition: opacity 300ms ease-in;\\n}\\n\\n@media screen and (max-width: 960px) {\\n    ._2kuE2it2PUZbu3JX10-XSA {\\n        margin-bottom: 10px;\\n    }\\n}\\n\", \"\"]);\n\n// exports\nexports.locals = {\n\t\"fullscreenWrapper\": \"_1yzKuos6x2F3KgqOaMuNgV\",\n\t\"pageWrapper\": \"_1SUhqVjcxpR8F7gnZtUICu\",\n\t\"mobilePagging\": \"_12nWfdbWfVJcT6n88uWPzG\",\n\t\"scrollProgress\": \"_1KNxVQCmPltg0zc5K4DweB\",\n\t\"scrollProgressNoHeader\": \"_1_IZNv8v2N1cdc1IMLKrVY\",\n\t\"container\": \"_3vvt1Y4INVzgfDYS9solvZ\",\n\t\"sideButton\": \"_1J3dBs0YB4MJmo98_BUzfR\",\n\t\"slidesContainer\": \"WMajqLYwtvOUrbZKARFq\",\n\t\"editor\": \"_7EVB7YIumRC3CG9qPkYwC\",\n\t\"controlsWrapper\": \"_23SyAD7HsX7bJcCNDyi3Zs\",\n\t\"controlBox\": \"_2dY3ic77WAyywGdpYKLqk8\",\n\t\"controlBoxShareDialog\": \"LvPh311Juwy6NZP3yVS4S\",\n\t\"progressBar\": \"_2eo8fWibuA054tuZNprAEG\",\n\t\"borderElement\": \"_1zTN1hJ0PdqEFdfevnNFbS\",\n\t\"borderElementBottomBorder\": \"_3vOrfsljHopHZmEiQPNi5w\",\n\t\"borderElementWithControls\": \"_3CrxKXh6UXwieVOjLidutO\",\n\t\"closeFullScreenButton\": \"_2arWa0iSK2K9pLOl6cPgV2\",\n\t\"animationEnter\": \"_3SNFBfXT2IM8AL9UaPFAxe\",\n\t\"animationEnterActive\": \"_3rK5_M6pKQXKW2_Nivmbt2\",\n\t\"animationExit\": \"OxlDFN3uk4mp5gsKAbrp\",\n\t\"animationExitActive\": \"ZA7bMkdTUxbd8sGgzyjuS\",\n\t\"scrollPageWrapper\": \"_2kuE2it2PUZbu3JX10-XSA\"\n};","export const PREZIGRAM_UPLOAD_NEW_ENTITIES = 'prezigram-upload-new-entities';\nexport const PREZIGRAM_UPLOAD_MEDIA = 'prezigram-upload-media';\n\nexport const PREZIGRAM_UPLOAD_REQUEST = 'prezigram-upload-request';\nexport const PREZIGRAM_UPLOAD_SUCCEDED = 'prezigram-upload-succeded';\nexport const PREZIGRAM_UPLOAD_FAILED = 'prezigram-upload-failed';\nexport const PREZIGRAM_UPLOAD_FINISHED = 'prezigram-upload-finished';\n","var DESCRIPTORS = require('../internals/descriptors');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPrimitive = require('../internals/to-primitive');\nvar has = require('../internals/has');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\nvar nativeGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? nativeGetOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n  O = toIndexedObject(O);\n  P = toPrimitive(P, true);\n  if (IE8_DOM_DEFINE) try {\n    return nativeGetOwnPropertyDescriptor(O, P);\n  } catch (error) { /* empty */ }\n  if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]);\n};\n","import PropTypes from 'prop-types';\nimport React from 'react';\nimport styled from 'styled-components';\n\nconst Buttons = styled.div`\n    background-color: white;\n    position: absolute;\n    bottom: 0;\n    min-height: 80px;\n    width: 100%;\n    border-bottom-left-radius: 4px;\n    border-bottom-right-radius: 4px;\n`;\n\nclass DialogButtons extends React.PureComponent {\n    static propTypes = {\n        className: PropTypes.string,\n        children: PropTypes.any,\n    };\n\n    render() {\n        return <Buttons {...this.props} className={this.props.className}>{this.props.children}</Buttons>;\n    }\n}\n\nexport default DialogButtons;\n","export default function dispatchEvent(on, eventName) {\n    let event;\n    if (typeof(Event) === 'function') {\n        event = new Event(eventName);\n    } else {\n        event = document.createEvent('Event');\n        event.initEvent(eventName, true, true);\n    }\n\n    on.dispatchEvent(event);\n}\n","import React, {Component} from 'react';\nimport PropTypes from 'prop-types';\nimport {Container} from 'flux/utils';\nimport cx from 'classnames';\n\nimport PresentationStore from './store';\nimport EditorStateStore from '../../stores/EditorStateStore';\nimport PageThumbnail from '../../../../components/PageThumbnail/PageThumbnail.react';\n\nimport {switchPage} from './actions';\n\nimport style from './ProgressBarNavigation.css';\n\nclass ProgressBarNavigation extends Component {\n    static propTypes = {\n        pageSwitchFunction: PropTypes.func,\n        activePage: PropTypes.number,\n    };\n\n    static defaultProps = {\n        pageSwitchFunction: null,\n        activePage: null,\n    };\n\n    static getStores() {\n        return [\n            PresentationStore,\n            EditorStateStore,\n        ];\n    }\n\n    static calculateState() {\n        const activePage = PresentationStore.activePage;\n        const editorState = EditorStateStore.editorState;\n        const blocks = editorState.getCurrentContent().getBlocks();\n        const pageCount = blocks.size;\n        const pageIds = blocks.map(block => block.getKey());\n\n        const pageSize = editorState.getPageSize();\n        const thumbSize = {height: 125, width: 223};\n        const aspectRatio = pageSize.width / pageSize.height;\n        if (aspectRatio >= 1) {\n            thumbSize.height = 125;\n            thumbSize.width = thumbSize.height * aspectRatio;\n            if (thumbSize.width > 223) {\n                thumbSize.width = 223;\n            }\n        } else {\n            thumbSize.width = 223;\n            thumbSize.height = thumbSize.width / aspectRatio;\n            if (thumbSize.height > 125) {\n                thumbSize.height = 125;\n                thumbSize.width = 125 * aspectRatio;\n            }\n        }\n\n        const thumbWidth = thumbSize.width;\n\n        return {\n            activePage,\n            segmentWidth: `${100 / pageCount}%`,\n            pageCount,\n            pageIds,\n            thumbWidth,\n        };\n    }\n\n    onMouseMove = (e) => {\n        const target = e.target;\n        const pageIndex = parseInt(target.getAttribute('data-index'));\n        const progressBar = document.getElementById('progress_bar').getBoundingClientRect();\n\n        const segment = target.getBoundingClientRect();\n        const marginLeft = 15;\n        const marginRight = 25;\n        let stickyThumbnail = false;\n\n        let coordX = e.clientX - segment.left - this.state.thumbWidth / 2;\n        if (e.clientX - this.state.thumbWidth / 2 < progressBar.left + marginLeft) { //Stick to left\n            coordX = marginLeft;\n            stickyThumbnail = true;\n        } else if (e.clientX + this.state.thumbWidth / 2 > progressBar.right - marginRight) { //Stick to right\n            coordX = progressBar.width - this.state.thumbWidth - marginRight;\n            stickyThumbnail = true;\n        }\n        const thumbnailStyle = {left: `${coordX}px`};\n        this.setState({\n            visibleThumbnail: pageIndex,\n            thumbnailStyle,\n            stickyThumbnail,\n        });\n    }\n\n    onMouseOut = () => {\n        this.setState({\n            visibleThumbnail: false,\n        });\n    }\n\n    switchPage = (e) => {\n        const pageIndex = parseInt(e.target.getAttribute('data-index'));\n        if (this.props.pageSwitchFunction) {\n            this.props.pageSwitchFunction(pageIndex);\n            this.setState({\n                activePage: pageIndex,\n            });\n        } else {\n            switchPage(pageIndex);\n        }\n    }\n\n    render() {\n        const {\n            segmentWidth,\n            pageCount,\n            visibleThumbnail,\n            pageIds,\n            thumbnailStyle,\n            stickyThumbnail,\n        } = this.state;\n\n        const activePage = this.props.pageSwitchFunction ? this.props.activePage : this.state.activePage;\n        const barWidth = `${(activePage + 1) * 100 / this.state.pageCount}%`;\n        const segments = [];\n\n        pageIds.forEach((pageId, index) => {\n            let thumb;\n            if (visibleThumbnail === index) {\n                thumb = (\n                    <PageThumbnail\n                        pageId={pageId}\n                        maxHeight={125}\n                        maxWidth={223}\n                    />\n                );\n            }\n\n            const thumbnail = (\n                <div\n                    id={`page_thumbnail${index}`}\n                    className={cx(style.thumbnail, {\n                        [style.visibleThumbnail]: visibleThumbnail === index,\n                    })}\n                    style={thumbnailStyle}\n                >\n                    <div style={{width: `${this.state.thumbWidth}px`}}>\n                        {thumb}\n                    </div>\n                    <div className={style.pageNumber}>{`${index + 1} / ${pageCount}`}</div>\n                </div>\n            );\n\n            segments.push(\n                <div\n                    key={`segment${index}`}\n                    data-index={index}\n                    className={cx(style.segment, {\n                        [style.stickyThumbnail]: stickyThumbnail,\n                    })}\n                    style={{width: segmentWidth}}\n                    onMouseOut={this.onMouseOut}\n                    onMouseMove={this.onMouseMove}\n                    onClick={this.switchPage}\n                >\n                   {thumbnail}\n                </div>\n            );\n        });\n\n        return (\n            <div className={style.container} id=\"progress_bar\">\n                <div className={style.value} style={{width: barWidth}}/>\n                {segments}\n            </div>\n        );\n    }\n}\n\nexport default Container.create(ProgressBarNavigation);\n","import {START_DRAGGING} from '../constants';\nimport Dispatcher from '../../../../app/dispatcher';\n\nexport default function startDragging() {\n    Dispatcher.dispatch({\n        type: START_DRAGGING,\n    });\n}\n","/* global _ */\n\nimport EntityStore from '../common/chart_factory/entities';\n\nvar PARTICLE_ELEMENT_PROPERTY_NAMES= ['text', 'title'];\n\n\nfunction shouldRenderElement(element, viewMode) {\n    var shouldRender = true;\n\n    var type = element.type;\n    var particleType = element.particle_type;\n\n    if (viewMode !== 'edit') {\n        if (type === 'particle' && particleType !== 'image' && particleType !== 'separator') {\n            var empty = true;\n            _.each(PARTICLE_ELEMENT_PROPERTY_NAMES, function(p) {\n                if (p in element && !_.isEmpty(element[p])) {\n                    empty = false;\n                    return false;\n                }\n            });\n            shouldRender = !empty;\n        }\n    }\n\n    return shouldRender;\n}\n\nfunction getChartSheet(id) {\n    const chart = EntityStore.getEntity(id);\n    if (chart && chart.instance && 'sheetIndex' in chart.instance) {\n        return chart.instance.sheetIndex;\n    }\n}\n\nexport default {\n    shouldRenderElement: shouldRenderElement,\n    getChartSheet: getChartSheet,\n};\n","\nvar content = require(\"!!../../../../../node_modules/css-loader/index.js??ref--5-1!./SmartGuidesOverlay.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../../node_modules/css-loader/index.js??ref--5-1!./SmartGuidesOverlay.css\", function() {\n\t\tvar newContent = require(\"!!../../../../../node_modules/css-loader/index.js??ref--5-1!./SmartGuidesOverlay.css\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","export function getFooterSettings(props) {\n    return {\n        backgroundColor: props.backgroundColor,\n        backgroundOpacity: props.backgroundOpacity,\n        bold: props.bold,\n        buttonBackgroundColor: props.buttonBackgroundColor,\n        buttonText: props.buttonText,\n        buttonTextColor: props.buttonTextColor,\n        customLink: prepareLink(props.customLink),\n        customLinkOption: props.customLinkOption,\n        fontSize: props.fontSize,\n        footnoteText: props.footnoteText,\n        footnoteType: props.footnoteType,\n        footerLayout: props.footerLayout,\n        italic: props.italic,\n        logoColor: props.logoColor,\n        logoImage: props.logoImage,\n        logoLink: prepareLink(props.logoLink),\n        logoType: props.logoType,\n        logoName: props.logoName,\n        textColor: props.textColor,\n        paginationFormat: props.paginationFormat,\n        paginationStartWith: props.paginationStartWith,\n        showFooter: props.showFooter,\n        logoWidth: props.logoWidth,\n        logoHeight: props.logoHeight,\n    };\n}\n\nexport function getFooterLayout(footerLayout, logoType, textType) {\n    if (footerLayout === 'left' && logoType !== 'custom_logo-none' && textType !== 'none') {\n        /*\n            sometimes in initial settings both logo and footnote are turned on,\n            but the layout doesn't match that.\n        */\n        footerLayout = 'text_left-logo_right';\n    }\n    const singleItem = logoType === 'custom_logo-none' ? 'text': 'logo';\n\n    switch (footerLayout) {\n        case 'text_right-logo_center':\n            return {center: 'logo', right: 'text'};\n        case 'text_center-logo_right':\n            return {center: 'text', right: 'logo'};\n        case 'text_left-logo_center':\n            return {center: 'logo', left: 'text'};\n        case 'text_center-logo_left':\n            return {left: 'logo', center: 'text'};\n        case 'text_left-logo_right':\n            return {right: 'logo', left: 'text'};\n        case 'text_right-logo_left':\n            return {left: 'logo', right: 'text'};\n        case 'left':\n            return {left: singleItem};\n        case 'center':\n            return {center: singleItem};\n        case 'right':\n            return {right: singleItem};\n    }\n    return [false, false, false];\n}\n\nfunction prepareLink(url) {\n    if (!url) {\n        return;\n    }\n    if (url.indexOf('http://') === 0|| url.indexOf('https://') === 0 || url.indexOf('mailto:') === 0) {\n        return url;\n    }\n    return `http://${url}`;\n}\n","export default function _iterableToArrayLimit(arr, i) {\n  if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === \"[object Arguments]\")) {\n    return;\n  }\n\n  var _arr = [];\n  var _n = true;\n  var _d = false;\n  var _e = undefined;\n\n  try {\n    for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n      _arr.push(_s.value);\n\n      if (i && _arr.length === i) break;\n    }\n  } catch (err) {\n    _d = true;\n    _e = err;\n  } finally {\n    try {\n      if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n    } finally {\n      if (_d) throw _e;\n    }\n  }\n\n  return _arr;\n}","module.exports = __webpack_public_path__ + \"1meu3QLq8FL7plNJFBrzO-.svg\";","var $ = require('../internals/export');\nvar expm1 = require('../internals/math-expm1');\n\n// `Math.expm1` method\n// https://tc39.github.io/ecma262/#sec-math.expm1\n$({ target: 'Math', stat: true, forced: expm1 != Math.expm1 }, { expm1: expm1 });\n","var toInteger = require('../internals/to-integer');\nvar toLength = require('../internals/to-length');\n\n// `ToIndex` abstract operation\n// https://tc39.github.io/ecma262/#sec-toindex\nmodule.exports = function (it) {\n  if (it === undefined) return 0;\n  var number = toInteger(it);\n  var length = toLength(number);\n  if (number !== length) throw RangeError('Wrong length or index');\n  return length;\n};\n","/**\n * TODO: Get rid of this at some point when importing stores don't\n * cause circular dependencies, which make Jest tests fail.\n */\nexport default function() {\n    return window.location.href.split('/').pop();\n}\n","var global = require('../internals/global');\nvar setToStringTag = require('../internals/set-to-string-tag');\n\n// JSON[@@toStringTag] property\n// https://tc39.github.io/ecma262/#sec-json-@@tostringtag\nsetToStringTag(global.JSON, 'JSON', true);\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n  // A URL is considered absolute if it begins with \"<scheme>://\" or \"//\" (protocol-relative URL).\n  // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n  // by any combination of letters, digits, plus, period, or hyphen.\n  return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n};\n","import {\n    Record,\n    List,\n    OrderedMap,\n    Map,\n} from 'immutable';\n\nimport PageSize from './PageSize';\nimport {Background} from './Background';\n\nconst InfographicStateRecord = Record({\n    blocks: List(),\n    pageSize: new PageSize({\n        width: 960,\n        height: 720,\n    }),\n    //When changing something in design and designDefaults,\n    //please verify that nothing breaks in ContentSchema in flexSchema/validate.js\n    //Generally, keep both (this and that) files in sync\n    design: Map(),\n    designDefaults: Map({\n        block: Map({\n            background: Background({color: '{{backgroundColor|#FFFFFF}}'}),\n            hideFooter: false,\n        }),\n        entity: Map(),\n    }),\n    layouts: Map(),\n    assets: undefined,\n});\n\nexport default class InfographicState extends InfographicStateRecord {\n    getDesign() {\n        return this.get('design');\n    }\n\n    getDesignDefaults() {\n        return this.get('designDefaults');\n    }\n\n    getLayouts() {\n        return this.get('layouts');\n    }\n\n    getBlocks() {\n        return this.get('blocks');\n    }\n\n    getBlock(key) {\n        return this.findBlockByKey(key);\n    }\n\n    getBlockForEnityKey(key) {\n        for (const block of this.get('blocks')) {\n            for (const entity of block.getEntities()) {\n                if (entity.getKey() === key) {\n                    return block;\n                }\n            }\n        }\n    }\n\n    getBlockIndex(key) {\n        const block = this.getBlock(key);\n        return this.getBlocks().indexOf(block);\n    }\n\n    findBlockByKey(key) {\n        const blocks = this.getBlocks().filter(block => block.getKey() === key);\n        if (blocks.size > 1) {\n            //should not happen\n            throw new Error(`More than one block present with key ${key}`);\n        }\n        if (blocks.size) {\n            return blocks.get(0);\n        }\n        return null;\n    }\n\n    getPageSize() {\n        return this.get('pageSize');\n    }\n\n    getEntity(key) {\n        for (const block of this.get('blocks')) {\n            const entity = block.getEntity(key);\n            if (entity) {\n                return entity;\n            }\n        }\n        return null;\n    }\n\n    getEntities(keys) {\n        // Here we always need to return in order they appear in blocks\n        return OrderedMap().withMutations(entities => {\n            for (const block of this.get('blocks')) {\n                for (const entity of block.getEntities()) {\n                    if (keys.includes(entity.getKey())) {\n                        entities.set(entity.getKey(), entity);\n                    }\n                }\n            }\n        });\n    }\n\n    containsEntity(key) {\n        return !!this.getEntity(key);\n    }\n\n    removeEntities(...entityKeys) {\n        return this.merge({\n            blocks: this.getBlocks().map(block =>\n                block.set('entities', block.getEntities().filter(entity =>\n                    entityKeys.indexOf(entity.getKey()) === -1\n                ))\n            ),\n        });\n    }\n\n    getAssets() {\n        return this.get('assets');\n    }\n}\n","import i18n from 'i18next';\nimport React from 'react';\n\nimport {FilterElementPropTypes} from '../types';\nimport IntensityOf from './IntensityOf.react';\n\n/**\n * Black and white image\n *\n * @param {string} in1 pointer to filter's input (same as SVG *in*)\n * @param {string} result pointer to output (same as SVG *result*)\n * @param {number} amount filter intensity (0-1)\n */\nconst BlackAndWhite = ({in1, amount, result}) =>\n    <>\n        <feColorMatrix type=\"matrix\"\n            values=\"0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 1 0\"\n            in={in1}\n            result=\"blackAndWhiteOutput\"\n        />\n        <IntensityOf in1=\"blackAndWhiteOutput\" source={in1} amount={amount} result={result}/>\n    </>\n;\n\nBlackAndWhite.propTypes = FilterElementPropTypes;\n\nexport default {\n    Component: BlackAndWhite,\n    get caption() {\n        return i18n.t('inspector.free.filters.blackAndWhite');\n    },\n    default: 1,\n    min: 0,\n    max: 1,\n};\n","// https://github.com/tc39/proposal-string-pad-start-end\nvar toLength = require('../internals/to-length');\nvar repeat = require('../internals/string-repeat');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar ceil = Math.ceil;\n\n// `String.prototype.{ padStart, padEnd }` methods implementation\nvar createMethod = function (IS_END) {\n  return function ($this, maxLength, fillString) {\n    var S = String(requireObjectCoercible($this));\n    var stringLength = S.length;\n    var fillStr = fillString === undefined ? ' ' : String(fillString);\n    var intMaxLength = toLength(maxLength);\n    var fillLen, stringFiller;\n    if (intMaxLength <= stringLength || fillStr == '') return S;\n    fillLen = intMaxLength - stringLength;\n    stringFiller = repeat.call(fillStr, ceil(fillLen / fillStr.length));\n    if (stringFiller.length > fillLen) stringFiller = stringFiller.slice(0, fillLen);\n    return IS_END ? S + stringFiller : stringFiller + S;\n  };\n};\n\nmodule.exports = {\n  // `String.prototype.padStart` method\n  // https://tc39.github.io/ecma262/#sec-string.prototype.padstart\n  start: createMethod(false),\n  // `String.prototype.padEnd` method\n  // https://tc39.github.io/ecma262/#sec-string.prototype.padend\n  end: createMethod(true)\n};\n","module.exports = __webpack_public_path__ + \"1dEm8WBg2S6p4__2EBRQo3.svg\";","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n  return Object.defineProperty(createElement('div'), 'a', {\n    get: function () { return 7; }\n  }).a != 7;\n});\n","var redefine = require('../internals/redefine');\n\nvar DatePrototype = Date.prototype;\nvar INVALID_DATE = 'Invalid Date';\nvar TO_STRING = 'toString';\nvar nativeDateToString = DatePrototype[TO_STRING];\nvar getTime = DatePrototype.getTime;\n\n// `Date.prototype.toString` method\n// https://tc39.github.io/ecma262/#sec-date.prototype.tostring\nif (new Date(NaN) + '' != INVALID_DATE) {\n  redefine(DatePrototype, TO_STRING, function toString() {\n    var value = getTime.call(this);\n    // eslint-disable-next-line no-self-compare\n    return value === value ? nativeDateToString.call(this) : INVALID_DATE;\n  });\n}\n","var ARG_LENGTH = {\n  a: 7,\n  c: 6,\n  h: 1,\n  l: 2,\n  m: 2,\n  q: 4,\n  s: 4,\n  t: 2,\n  v: 1,\n  z: 0\n};\nvar SEGMENT_PATTERN = /([astvzqmhlc])([^astvzqmhlc]*)/ig;\nvar NUMBER = /-?[0-9]*\\.?[0-9]+(?:e[-+]?\\d+)?/ig;\n\nfunction parseValues(args) {\n  var numbers = args.match(NUMBER);\n  return numbers ? numbers.map(Number) : [];\n}\n/**\n * parse an svg path data string. Generates an Array\n * of commands where each command is an Array of the\n * form `[command, arg1, arg2, ...]`\n *\n * https://www.w3.org/TR/SVG/paths.html#PathDataGeneralInformation\n * @ignore\n *\n * @param {string} path\n * @returns {array}\n */\n\n\nfunction parse(path) {\n  var data = [];\n  var p = String(path).trim(); // A path data segment (if there is one) must begin with a \"moveto\" command\n\n  if (p[0] !== 'M' && p[0] !== 'm') {\n    return data;\n  }\n\n  p.replace(SEGMENT_PATTERN, function (_, command, args) {\n    var type = command.toLowerCase();\n    args = parseValues(args); // overloaded moveTo\n\n    if (type === 'm' && args.length > 2) {\n      data.push([command].concat(args.splice(0, 2)));\n      type = 'l';\n      command = command === 'm' ? 'l' : 'L';\n    } // Ignore invalid commands\n\n\n    if (args.length < ARG_LENGTH[type]) {\n      return '';\n    }\n\n    data.push([command].concat(args.splice(0, ARG_LENGTH[type]))); // The command letter can be eliminated on subsequent commands if the\n    // same command is used multiple times in a row (e.g., you can drop the\n    // second \"L\" in \"M 100 200 L 200 100 L -100 -200\" and use\n    // \"M 100 200 L 200 100 -100 -200\" instead).\n\n    while (args.length >= ARG_LENGTH[type] && args.length && ARG_LENGTH[type]) {\n      data.push([command].concat(args.splice(0, ARG_LENGTH[type])));\n    }\n\n    return '';\n  });\n  return data;\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 _toConsumableArray(arr) {\n  return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n  if (Array.isArray(arr)) {\n    for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];\n\n    return arr2;\n  }\n}\n\nfunction _iterableToArray(iter) {\n  if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}\n\nfunction _nonIterableSpread() {\n  throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n\n/**\n * Work around for https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/8438884/\n * @ignore\n */\n\nfunction supportsSvgPathArgument(window) {\n  var canvas = window.document.createElement('canvas');\n  var g = canvas.getContext('2d');\n  var p = new window.Path2D('M0 0 L1 1');\n  g.strokeStyle = 'red';\n  g.lineWidth = 1;\n  g.stroke(p);\n  var imgData = g.getImageData(0, 0, 1, 1);\n  return imgData.data[0] === 255; // Check if pixel is red\n}\n\nfunction rotatePoint(point, angle) {\n  var nx = point.x * Math.cos(angle) - point.y * Math.sin(angle);\n  var ny = point.y * Math.cos(angle) + point.x * Math.sin(angle);\n  point.x = nx;\n  point.y = ny;\n}\n\nfunction translatePoint(point, dx, dy) {\n  point.x += dx;\n  point.y += dy;\n}\n\nfunction polyFillPath2D(window) {\n  if (typeof window === 'undefined' || !window.CanvasRenderingContext2D) {\n    return;\n  }\n\n  if (window.Path2D && supportsSvgPathArgument(window)) {\n    return;\n  }\n  /**\n     * Crates a Path2D polyfill object\n     * @constructor\n     * @ignore\n     * @param {String} path\n     */\n\n\n  var Path2D =\n  /*#__PURE__*/\n  function () {\n    function Path2D(path) {\n      _classCallCheck(this, Path2D);\n\n      this.segments = [];\n\n      if (path && path instanceof Path2D) {\n        var _this$segments;\n\n        (_this$segments = this.segments).push.apply(_this$segments, _toConsumableArray(path.segments));\n      } else if (path) {\n        this.segments = parse(path);\n      }\n    }\n\n    _createClass(Path2D, [{\n      key: \"addPath\",\n      value: function addPath(path) {\n        if (path && path instanceof Path2D) {\n          var _this$segments2;\n\n          (_this$segments2 = this.segments).push.apply(_this$segments2, _toConsumableArray(path.segments));\n        }\n      }\n    }, {\n      key: \"moveTo\",\n      value: function moveTo(x, y) {\n        this.segments.push(['M', x, y]);\n      }\n    }, {\n      key: \"lineTo\",\n      value: function lineTo(x, y) {\n        this.segments.push(['L', x, y]);\n      }\n    }, {\n      key: \"arc\",\n      value: function arc(x, y, r, start, end, ccw) {\n        this.segments.push(['AC', x, y, r, start, end, !!ccw]);\n      }\n    }, {\n      key: \"arcTo\",\n      value: function arcTo(x1, y1, x2, y2, r) {\n        this.segments.push(['AT', x1, y1, x2, y2, r]);\n      }\n    }, {\n      key: \"closePath\",\n      value: function closePath() {\n        this.segments.push(['Z']);\n      }\n    }, {\n      key: \"bezierCurveTo\",\n      value: function bezierCurveTo(cp1x, cp1y, cp2x, cp2y, x, y) {\n        this.segments.push(['C', cp1x, cp1y, cp2x, cp2y, x, y]);\n      }\n    }, {\n      key: \"quadraticCurveTo\",\n      value: function quadraticCurveTo(cpx, cpy, x, y) {\n        this.segments.push(['Q', cpx, cpy, x, y]);\n      }\n    }, {\n      key: \"rect\",\n      value: function rect(x, y, width, height) {\n        this.segments.push(['R', x, y, width, height]);\n      }\n    }]);\n\n    return Path2D;\n  }();\n\n  var cFill = window.CanvasRenderingContext2D.prototype.fill;\n  var cStroke = window.CanvasRenderingContext2D.prototype.stroke;\n\n  function buildPath(canvas, segments) {\n    var endAngle;\n    var startAngle;\n    var largeArcFlag;\n    var sweepFlag;\n    var endPoint;\n    var angle;\n    var x;\n    var x1;\n    var y;\n    var y1;\n    var r;\n    var b;\n    var w;\n    var h;\n    var pathType;\n    var centerPoint;\n    var cpx;\n    var cpy;\n    var qcpx;\n    var qcpy;\n    var ccw;\n    var currentPoint = {\n      x: 0,\n      y: 0\n    }; // Reset control point if command is not cubic\n\n    if (pathType !== 'S' && pathType !== 's' && pathType !== 'C' && pathType !== 'c') {\n      cpx = null;\n      cpy = null;\n    }\n\n    if (pathType !== 'T' && pathType !== 't' && pathType !== 'Q' && pathType !== 'q') {\n      qcpx = null;\n      qcpy = null;\n    }\n\n    canvas.beginPath();\n\n    for (var i = 0; i < segments.length; ++i) {\n      var s = segments[i];\n      pathType = s[0];\n\n      switch (pathType) {\n        case 'm':\n          x += s[1];\n          y += s[2];\n          canvas.moveTo(x, y);\n          break;\n\n        case 'M':\n          x = s[1];\n          y = s[2];\n          canvas.moveTo(x, y);\n          break;\n\n        case 'l':\n          x += s[1];\n          y += s[2];\n          canvas.lineTo(x, y);\n          break;\n\n        case 'L':\n          x = s[1];\n          y = s[2];\n          canvas.lineTo(x, y);\n          break;\n\n        case 'H':\n          x = s[1];\n          canvas.lineTo(x, y);\n          break;\n\n        case 'h':\n          x += s[1];\n          canvas.lineTo(x, y);\n          break;\n\n        case 'V':\n          y = s[1];\n          canvas.lineTo(x, y);\n          break;\n\n        case 'v':\n          y += s[1];\n          canvas.lineTo(x, y);\n          break;\n\n        case 'a':\n        case 'A':\n          if (pathType === 'a') {\n            x += s[6];\n            y += s[7];\n          } else {\n            x = s[6];\n            y = s[7];\n          }\n\n          r = s[1]; // s[2] = 2nd radius in ellipse, ignore\n          // s[3] = rotation of ellipse, ignore\n\n          largeArcFlag = s[4];\n          sweepFlag = s[5];\n          endPoint = {\n            x: x,\n            y: y\n          }; // translate all points so that currentPoint is origin\n\n          translatePoint(endPoint, -currentPoint.x, -currentPoint.y); // angle to destination\n\n          angle = Math.atan2(endPoint.y, endPoint.x); // rotate points so that angle is 0\n\n          rotatePoint(endPoint, -angle);\n          b = endPoint.x / 2; // var sweepAngle = Math.asin(b / r);\n\n          centerPoint = {\n            x: 0,\n            y: 0\n          };\n          centerPoint.x = endPoint.x / 2;\n\n          if (sweepFlag && !largeArcFlag || !sweepFlag && largeArcFlag) {\n            centerPoint.y = Math.sqrt(r * r - b * b);\n          } else {\n            centerPoint.y = -Math.sqrt(r * r - b * b);\n          }\n\n          startAngle = Math.atan2(-centerPoint.y, -centerPoint.x);\n          endAngle = Math.atan2(endPoint.y - centerPoint.y, endPoint.x - centerPoint.x); // rotate back\n\n          startAngle += angle;\n          endAngle += angle;\n          rotatePoint(endPoint, angle);\n          rotatePoint(centerPoint, angle); // translate points\n\n          translatePoint(endPoint, currentPoint.x, currentPoint.y);\n          translatePoint(centerPoint, currentPoint.x, currentPoint.y);\n          canvas.arc(centerPoint.x, centerPoint.y, r, startAngle, endAngle, !sweepFlag);\n          break;\n\n        case 'C':\n          cpx = s[3]; // Last control point\n\n          cpy = s[4];\n          x = s[5];\n          y = s[6];\n          canvas.bezierCurveTo(s[1], s[2], cpx, cpy, x, y);\n          break;\n\n        case 'c':\n          canvas.bezierCurveTo(s[1] + x, s[2] + y, s[3] + x, s[4] + y, s[5] + x, s[6] + y);\n          cpx = s[3] + x; // Last control point\n\n          cpy = s[4] + y;\n          x += s[5];\n          y += s[6];\n          break;\n\n        case 'S':\n          if (cpx === null || cpx === null) {\n            cpx = x;\n            cpy = y;\n          }\n\n          canvas.bezierCurveTo(2 * x - cpx, 2 * y - cpy, s[1], s[2], s[3], s[4]);\n          cpx = s[1]; // last control point\n\n          cpy = s[2];\n          x = s[3];\n          y = s[4];\n          break;\n\n        case 's':\n          if (cpx === null || cpx === null) {\n            cpx = x;\n            cpy = y;\n          }\n\n          canvas.bezierCurveTo(2 * x - cpx, 2 * y - cpy, s[1] + x, s[2] + y, s[3] + x, s[4] + y);\n          cpx = s[1] + x; // last control point\n\n          cpy = s[2] + y;\n          x += s[3];\n          y += s[4];\n          break;\n\n        case 'Q':\n          qcpx = s[1]; // last control point\n\n          qcpy = s[2];\n          x = s[3];\n          y = s[4];\n          canvas.quadraticCurveTo(qcpx, qcpy, x, y);\n          break;\n\n        case 'q':\n          qcpx = s[1] + x; // last control point\n\n          qcpy = s[2] + y;\n          x += s[3];\n          y += s[4];\n          canvas.quadraticCurveTo(qcpx, qcpy, x, y);\n          break;\n\n        case 'T':\n          if (qcpx === null || qcpx === null) {\n            qcpx = x;\n            qcpy = y;\n          }\n\n          qcpx = 2 * x - qcpx; // last control point\n\n          qcpy = 2 * y - qcpy;\n          x = s[1];\n          y = s[2];\n          canvas.quadraticCurveTo(qcpx, qcpy, x, y);\n          break;\n\n        case 't':\n          if (qcpx === null || qcpx === null) {\n            qcpx = x;\n            qcpy = y;\n          }\n\n          qcpx = 2 * x - qcpx; // last control point\n\n          qcpy = 2 * y - qcpy;\n          x += s[1];\n          y += s[2];\n          canvas.quadraticCurveTo(qcpx, qcpy, x, y);\n          break;\n\n        case 'z':\n        case 'Z':\n          canvas.closePath();\n          break;\n\n        case 'AC':\n          // arc\n          x = s[1];\n          y = s[2];\n          r = s[3];\n          startAngle = s[4];\n          endAngle = s[5];\n          ccw = s[6];\n          canvas.arc(x, y, r, startAngle, endAngle, ccw);\n          break;\n\n        case 'AT':\n          // arcTo\n          x1 = s[1];\n          y1 = s[2];\n          x = s[3];\n          y = s[4];\n          r = s[5];\n          canvas.arcTo(x1, y1, x, y, r);\n          break;\n\n        case 'R':\n          // rect\n          x = s[1];\n          y = s[2];\n          w = s[3];\n          h = s[4];\n          canvas.rect(x, y, w, h);\n          break;\n\n        default: // throw new Error(`${pathType} is not implemented`); ?\n\n      }\n\n      currentPoint.x = x;\n      currentPoint.y = y;\n    }\n  }\n\n  window.CanvasRenderingContext2D.prototype.fill = function fill() {\n    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    var fillRule = 'nonzero';\n\n    if (args.length === 0 || args.length === 1 && typeof args[0] === 'string') {\n      cFill.apply(this, args);\n      return;\n    }\n\n    if (arguments.length === 2) {\n      fillRule = args[1];\n    }\n\n    var path = args[0];\n    buildPath(this, path.segments);\n    cFill.call(this, fillRule);\n  };\n\n  window.CanvasRenderingContext2D.prototype.stroke = function stroke(path) {\n    if (!path) {\n      cStroke.call(this);\n      return;\n    }\n\n    buildPath(this, path.segments);\n    cStroke.call(this);\n  };\n\n  window.Path2D = Path2D;\n}\n\nif (typeof window !== 'undefined') {\n  polyFillPath2D(window);\n}\n\nexport { polyFillPath2D as path2dPolyfill, parse as parsePath };\n//# sourceMappingURL=index.esm.js.map\n","export default function _arrayWithHoles(arr) {\n  if (Array.isArray(arr)) return arr;\n}","var fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = !fails(function () {\n  var url = new URL('b?e=1', 'http://a');\n  var searchParams = url.searchParams;\n  url.pathname = 'c%20d';\n  return (IS_PURE && !url.toJSON)\n    || !searchParams.sort\n    || url.href !== 'http://a/c%20d?e=1'\n    || searchParams.get('e') !== '1'\n    || String(new URLSearchParams('?a=1')) !== 'a=1'\n    || !searchParams[ITERATOR]\n    // throws in Edge\n    || new URL('https://a@b').username !== 'a'\n    || new URLSearchParams(new URLSearchParams('a=b')).get('a') !== 'b'\n    // not punycoded in Edge\n    || new URL('http://тест').host !== 'xn--e1aybc'\n    // not escaped in Chrome 62-\n    || new URL('http://a#б').hash !== '#%D0%B1';\n});\n","import {ReduceStore} from 'flux/utils';\nimport {fromJS} from 'immutable';\n\nimport Dispatcher from '../app/dispatcher';\nimport {\n    DISPLAY_HEADER,\n    RELATED_INFOGRAPHICS_RECEIVED,\n} from './constants';\n\nclass WebViewStore extends ReduceStore {\n    getInitialState() {\n        return fromJS({\n            displayHeader: true,\n            relatedInfographics: [],\n        });\n    }\n\n    reduce(state, action) {\n        switch (action.type) {\n            case RELATED_INFOGRAPHICS_RECEIVED:\n                return state.merge({\n                    relatedInfographics: fromJS(action.data),\n                });\n            case DISPLAY_HEADER:\n                return state.merge({\n                    displayHeader: action.displayHeader,\n                });\n            default:\n                return state;\n        }\n    }\n\n    get relatedInfographics() {\n        return this.getState().get('relatedInfographics');\n    }\n\n    get displayHeader() {\n        return this.getState().get('displayHeader');\n    }\n}\n\nexport default new WebViewStore(Dispatcher);\n","/* eslint react/no-danger: 0 */\nimport PropTypes from 'prop-types';\n\nimport React, {PureComponent} from 'react';\n\nexport default class CaptionText extends PureComponent {\n    static propTypes = {\n        text: PropTypes.string,\n    };\n\n    render() {\n        return (\n            <div className=\"moveable particle caption-text ig-theme-group-text\">\n                <div className=\"captiontext\">\n                    <div className=\"innertext\" dangerouslySetInnerHTML={{__html: this.props.text}}/>\n                </div>\n            </div>\n        );\n    }\n}\n","import i18n from 'i18next';\nimport React, {Component} from 'react';\nimport cx from 'classnames';\nimport {connect} from 'react-redux';\nimport _ from 'lodash';\n\nimport Header from './Header';\nimport Footer from './Footer';\nimport WebInfographicsGrid from './WebInfographicsGrid';\nimport SearchForm from './SearchForm';\nimport style from './WebProfileView.css';\nimport Avatar from '../components/Avatar';\nimport fluxContainer from '../fluxContainer';\nimport WebViewStore from './WebView.store';\n\n@connect(state => ({\n    branding: state.get('branding'),\n}))\n@fluxContainer({withProps: true})\nexport default class WebProfileView extends Component {\n    static getStores() {\n        return [WebViewStore];\n    }\n\n    static calculateState() {\n        const branding = {\n            webView: {\n                headerBackground: _.get(window, 'author.colors[1]'),\n                metaBackground: _.get(window, 'author.colors[2]'),\n                pageBackground: _.get(window, 'author.colors[0]'),\n                logoImage: _.get(window, 'author.profileLogo'),\n            },\n        };\n\n        return {\n            pageStyle: {\n                background: branding.webView.pageBackground,\n            },\n            headerStyle: {\n                background: branding.webView.headerBackground,\n            },\n            logoImage: branding.webView.logoImage,\n        };\n    }\n\n    render() {\n        const {avatar, name, profileName} = window.author;\n        let emptyLibraryContent;\n\n        const infographics = window.infographics.map(item => {\n            return {\n                authorImage: avatar,\n                authorLink: `${profileName}`,\n                authorName: name,\n                imageURL: item.thumb,\n                path: item.href,\n                title: item.title,\n            };\n        });\n\n        if (!window.infographics.length) {\n            emptyLibraryContent = (\n                <div>\n                    <div className={cx('icon-library', style.emptyLibraryContent)}>\n                        {i18n.t('web.empty_library')}\n                    </div>\n\n                    <SearchForm\n                        onSubmitForm={this.onSearchFormSubmit}\n                    />\n                </div>\n            );\n        }\n\n        const backgroundImageStyle = {backgroundImage: `url(\"${avatar}\")`};\n\n        return (\n            <div className={style.container} style={this.state.pageStyle}>\n                <Header\n                    avatarURL={window.user.avatar}\n                    avatarFullName={window.user.name}\n                    className={style.header}\n                    logoImage={this.state.logoImage}\n                    showAvatar={window.user.isAuthenticated}\n                    showRegisterButton\n                    style={this.state.headerStyle}\n                />\n\n                <div className={style.profileHeader}>\n                    <div\n                        className={style.heroImage}\n                        style={backgroundImageStyle}\n                    />\n                    <div className={style.headerGradient}/>\n\n                    <div className={style.headerAvatar}>\n                        <Avatar\n                            avatarClass={style.webProfileAvatar}\n                            avatarImage={avatar}\n                            fullName={name}\n                        />\n                    </div>\n\n                    <h1 className={style.headerName}>{ name }</h1>\n                    <div className={`icon-portrait ${style.headerInfographicsCount}`}>\n                        { i18n.t('web.infographics_count', {count: window.infographics.length}) }\n                    </div>\n\n                </div>\n\n                { emptyLibraryContent }\n\n                <WebInfographicsGrid infographics={infographics}/>\n\n                <Footer style={this.state.headerStyle}/>\n            </div>\n        );\n    }\n\n    onSearchFormSubmit = searchTerm => {\n        window.location.href = `/search#${searchTerm}`;\n    }\n}\n","require('./').polyfill()\n","module.exports = __webpack_public_path__ + \"31u_JbUoUQ1Hi15JYvxZEO.svg\";","/**\n * [SHRINK_MARGIN_CONSTANT description]\n * @type {Number}\n *\n * This number is used for themes to set the side margins.\n * We use it to set the distance between two side by side\n * elements as well.\n */\nvar SHRINK_MARGIN_CONSTANT = 20;\n\n/**\n * [SHRINK_CHART_PADDING_CONSTANT description]\n * @type {Number}\n *\n * This is the sum of side padddings for charts\n * that are in side by side mode.\n */\nvar SHRINK_PADDING_CONSTANT = 20;\n\nvar data = {\n    shrink_margin: SHRINK_MARGIN_CONSTANT,\n    shrink_padding: SHRINK_PADDING_CONSTANT,\n};\n\nexport default {\n    clear: function() {\n        data.shrink_margin = SHRINK_MARGIN_CONSTANT;\n        data.shrink_padding = SHRINK_PADDING_CONSTANT;\n    },\n    setMargin: function(margin) {\n        data.shrink_margin = typeof margin !== 'undefined' ? parseInt(margin, 10) : SHRINK_MARGIN_CONSTANT;\n    },\n    setChartPadding: function(padding) {\n        data.shrink_padding = typeof padding !== 'undefined' ? parseInt(padding, 10) : SHRINK_PADDING_CONSTANT;\n    },\n    getMargin: function() {\n        return data.shrink_margin;\n    },\n    getChartPadding: function() {\n        return data.shrink_padding;\n    },\n    SHRINK_MARGIN_CONSTANT: SHRINK_MARGIN_CONSTANT,\n};\n","import i18n from 'i18next';\nimport React, {PureComponent} from 'react';\nimport PropTypes from 'prop-types';\nimport cx from 'classnames';\n\nimport Infographic from '../../models/infographic';\nimport Header from '../Header';\nimport {\n    loadInfographicFromRawData,\n} from '../../app/main/actions/loadInfographic';\n\nimport style from './PasswordPrompt.css';\n\nclass PasswordPrompt extends PureComponent {\n    static propTypes = {\n        embedMode: PropTypes.bool,\n        onSuccess: PropTypes.func,\n    };\n    constructor(props) {\n        super(props);\n\n        this.state = {\n            error: false,\n            loading: false,\n        };\n    }\n\n    componentDidMount() {\n        const height = 400;\n        window.parent.postMessage(`iframeHeight${window.graphicID}#${window.location.pathname.substr(1)}:${height}`, '*');\n        window.parent.postMessage(JSON.stringify({\n            src: window.location.toString(),\n            context: 'iframe.resize',\n            height: height,\n        }), '*');\n\n        window.parent.postMessage({\n            sentinel: 'amp',\n            type: 'embed-size',\n            height: height,\n        }, '*');\n    }\n\n    render() {\n        const buttonClassName = cx(style.button, {\n            [style.buttonLoading]: this.state.loading,\n        });\n\n        const inputClassName= cx(style.input, {\n            [style.inputError]: this.state.error,\n        });\n\n        return (\n            <div>\n                {!this.props.embedMode && <Header className={style.header}/>}\n                <div className={cx(style.container, {[style.transparent]: this.props.embedMode})}>\n                    <div className={cx('icon-private', style.lockIcon)}/>\n                    <h1 className={style.heading}>{i18n.t('web.password_prompt.heading') || 'The link is password protected'}</h1>\n                    <h2 className={style.subheading}>{i18n.t('web.password_prompt.subheading') || 'Enter the password below to view the project'}</h2>\n                    <form className={style.form} onSubmit={this.onFormSubmit}>\n                        <input\n                            className={inputClassName}\n                            onFocus={this.onInputFocus}\n                            ref={el => this.input = el}\n                            type=\"password\"\n                            placeholder=\"Password\"\n                            autoComplete=\"off\"\n                        />\n                    <button className={buttonClassName} type=\"submit\">{i18n.t('web.password_prompt.view') || 'View'}</button>\n                    </form>\n                </div>\n            </div>\n        );\n    }\n\n    onFormSubmit = e => {\n        e.preventDefault();\n\n        const password = this.input.value;\n        const infographicID = document.body.getAttribute('data-window-graphicid');\n        const url = new Infographic({block_id: infographicID}).url();\n\n        this.setState({loading: true});\n\n        $.ajax(url, {\n            data: {\n                key: encodeURIComponent(password),\n                ref: 'web',\n            },\n        }).done(rawData => {\n            window.passwordProtected = false;\n            loadInfographicFromRawData(rawData);\n            window.infographicData = rawData;\n            if (this.props.onSuccess) {\n                this.props.onSuccess();\n            }\n        }).fail(() => {\n            this.setState({\n                error: true,\n                loading: false,\n            });\n        });\n    }\n\n    onInputFocus = () => {\n        this.setState({error: false});\n    }\n}\n\nexport default PasswordPrompt;\n","/*!\n * @overview es6-promise - a tiny implementation of Promises/A+.\n * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)\n * @license   Licensed under MIT license\n *            See https://raw.githubusercontent.com/stefanpenner/es6-promise/master/LICENSE\n * @version   v4.2.8+1e68dce6\n */\n\n(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n\ttypeof define === 'function' && define.amd ? define(factory) :\n\t(global.ES6Promise = factory());\n}(this, (function () { 'use strict';\n\nfunction objectOrFunction(x) {\n  var type = typeof x;\n  return x !== null && (type === 'object' || type === 'function');\n}\n\nfunction isFunction(x) {\n  return typeof x === 'function';\n}\n\n\n\nvar _isArray = void 0;\nif (Array.isArray) {\n  _isArray = Array.isArray;\n} else {\n  _isArray = function (x) {\n    return Object.prototype.toString.call(x) === '[object Array]';\n  };\n}\n\nvar isArray = _isArray;\n\nvar len = 0;\nvar vertxNext = void 0;\nvar customSchedulerFn = void 0;\n\nvar asap = function asap(callback, arg) {\n  queue[len] = callback;\n  queue[len + 1] = arg;\n  len += 2;\n  if (len === 2) {\n    // If len is 2, that means that we need to schedule an async flush.\n    // If additional callbacks are queued before the queue is flushed, they\n    // will be processed by this flush that we are scheduling.\n    if (customSchedulerFn) {\n      customSchedulerFn(flush);\n    } else {\n      scheduleFlush();\n    }\n  }\n};\n\nfunction setScheduler(scheduleFn) {\n  customSchedulerFn = scheduleFn;\n}\n\nfunction setAsap(asapFn) {\n  asap = asapFn;\n}\n\nvar browserWindow = typeof window !== 'undefined' ? window : undefined;\nvar browserGlobal = browserWindow || {};\nvar BrowserMutationObserver = browserGlobal.MutationObserver || browserGlobal.WebKitMutationObserver;\nvar isNode = typeof self === 'undefined' && typeof process !== 'undefined' && {}.toString.call(process) === '[object process]';\n\n// test for web worker but not in IE10\nvar isWorker = typeof Uint8ClampedArray !== 'undefined' && typeof importScripts !== 'undefined' && typeof MessageChannel !== 'undefined';\n\n// node\nfunction useNextTick() {\n  // node version 0.10.x displays a deprecation warning when nextTick is used recursively\n  // see https://github.com/cujojs/when/issues/410 for details\n  return function () {\n    return process.nextTick(flush);\n  };\n}\n\n// vertx\nfunction useVertxTimer() {\n  if (typeof vertxNext !== 'undefined') {\n    return function () {\n      vertxNext(flush);\n    };\n  }\n\n  return useSetTimeout();\n}\n\nfunction useMutationObserver() {\n  var iterations = 0;\n  var observer = new BrowserMutationObserver(flush);\n  var node = document.createTextNode('');\n  observer.observe(node, { characterData: true });\n\n  return function () {\n    node.data = iterations = ++iterations % 2;\n  };\n}\n\n// web worker\nfunction useMessageChannel() {\n  var channel = new MessageChannel();\n  channel.port1.onmessage = flush;\n  return function () {\n    return channel.port2.postMessage(0);\n  };\n}\n\nfunction useSetTimeout() {\n  // Store setTimeout reference so es6-promise will be unaffected by\n  // other code modifying setTimeout (like sinon.useFakeTimers())\n  var globalSetTimeout = setTimeout;\n  return function () {\n    return globalSetTimeout(flush, 1);\n  };\n}\n\nvar queue = new Array(1000);\nfunction flush() {\n  for (var i = 0; i < len; i += 2) {\n    var callback = queue[i];\n    var arg = queue[i + 1];\n\n    callback(arg);\n\n    queue[i] = undefined;\n    queue[i + 1] = undefined;\n  }\n\n  len = 0;\n}\n\nfunction attemptVertx() {\n  try {\n    var vertx = Function('return this')().require('vertx');\n    vertxNext = vertx.runOnLoop || vertx.runOnContext;\n    return useVertxTimer();\n  } catch (e) {\n    return useSetTimeout();\n  }\n}\n\nvar scheduleFlush = void 0;\n// Decide what async method to use to triggering processing of queued callbacks:\nif (isNode) {\n  scheduleFlush = useNextTick();\n} else if (BrowserMutationObserver) {\n  scheduleFlush = useMutationObserver();\n} else if (isWorker) {\n  scheduleFlush = useMessageChannel();\n} else if (browserWindow === undefined && typeof require === 'function') {\n  scheduleFlush = attemptVertx();\n} else {\n  scheduleFlush = useSetTimeout();\n}\n\nfunction then(onFulfillment, onRejection) {\n  var parent = this;\n\n  var child = new this.constructor(noop);\n\n  if (child[PROMISE_ID] === undefined) {\n    makePromise(child);\n  }\n\n  var _state = parent._state;\n\n\n  if (_state) {\n    var callback = arguments[_state - 1];\n    asap(function () {\n      return invokeCallback(_state, child, callback, parent._result);\n    });\n  } else {\n    subscribe(parent, child, onFulfillment, onRejection);\n  }\n\n  return child;\n}\n\n/**\n  `Promise.resolve` returns a promise that will become resolved with the\n  passed `value`. It is shorthand for the following:\n\n  ```javascript\n  let promise = new Promise(function(resolve, reject){\n    resolve(1);\n  });\n\n  promise.then(function(value){\n    // value === 1\n  });\n  ```\n\n  Instead of writing the above, your code now simply becomes the following:\n\n  ```javascript\n  let promise = Promise.resolve(1);\n\n  promise.then(function(value){\n    // value === 1\n  });\n  ```\n\n  @method resolve\n  @static\n  @param {Any} value value that the returned promise will be resolved with\n  Useful for tooling.\n  @return {Promise} a promise that will become fulfilled with the given\n  `value`\n*/\nfunction resolve$1(object) {\n  /*jshint validthis:true */\n  var Constructor = this;\n\n  if (object && typeof object === 'object' && object.constructor === Constructor) {\n    return object;\n  }\n\n  var promise = new Constructor(noop);\n  resolve(promise, object);\n  return promise;\n}\n\nvar PROMISE_ID = Math.random().toString(36).substring(2);\n\nfunction noop() {}\n\nvar PENDING = void 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\n\nfunction selfFulfillment() {\n  return new TypeError(\"You cannot resolve a promise with itself\");\n}\n\nfunction cannotReturnOwn() {\n  return new TypeError('A promises callback cannot return that same promise.');\n}\n\nfunction tryThen(then$$1, value, fulfillmentHandler, rejectionHandler) {\n  try {\n    then$$1.call(value, fulfillmentHandler, rejectionHandler);\n  } catch (e) {\n    return e;\n  }\n}\n\nfunction handleForeignThenable(promise, thenable, then$$1) {\n  asap(function (promise) {\n    var sealed = false;\n    var error = tryThen(then$$1, thenable, function (value) {\n      if (sealed) {\n        return;\n      }\n      sealed = true;\n      if (thenable !== value) {\n        resolve(promise, value);\n      } else {\n        fulfill(promise, value);\n      }\n    }, function (reason) {\n      if (sealed) {\n        return;\n      }\n      sealed = true;\n\n      reject(promise, reason);\n    }, 'Settle: ' + (promise._label || ' unknown promise'));\n\n    if (!sealed && error) {\n      sealed = true;\n      reject(promise, error);\n    }\n  }, promise);\n}\n\nfunction handleOwnThenable(promise, thenable) {\n  if (thenable._state === FULFILLED) {\n    fulfill(promise, thenable._result);\n  } else if (thenable._state === REJECTED) {\n    reject(promise, thenable._result);\n  } else {\n    subscribe(thenable, undefined, function (value) {\n      return resolve(promise, value);\n    }, function (reason) {\n      return reject(promise, reason);\n    });\n  }\n}\n\nfunction handleMaybeThenable(promise, maybeThenable, then$$1) {\n  if (maybeThenable.constructor === promise.constructor && then$$1 === then && maybeThenable.constructor.resolve === resolve$1) {\n    handleOwnThenable(promise, maybeThenable);\n  } else {\n    if (then$$1 === undefined) {\n      fulfill(promise, maybeThenable);\n    } else if (isFunction(then$$1)) {\n      handleForeignThenable(promise, maybeThenable, then$$1);\n    } else {\n      fulfill(promise, maybeThenable);\n    }\n  }\n}\n\nfunction resolve(promise, value) {\n  if (promise === value) {\n    reject(promise, selfFulfillment());\n  } else if (objectOrFunction(value)) {\n    var then$$1 = void 0;\n    try {\n      then$$1 = value.then;\n    } catch (error) {\n      reject(promise, error);\n      return;\n    }\n    handleMaybeThenable(promise, value, then$$1);\n  } else {\n    fulfill(promise, value);\n  }\n}\n\nfunction publishRejection(promise) {\n  if (promise._onerror) {\n    promise._onerror(promise._result);\n  }\n\n  publish(promise);\n}\n\nfunction fulfill(promise, value) {\n  if (promise._state !== PENDING) {\n    return;\n  }\n\n  promise._result = value;\n  promise._state = FULFILLED;\n\n  if (promise._subscribers.length !== 0) {\n    asap(publish, promise);\n  }\n}\n\nfunction reject(promise, reason) {\n  if (promise._state !== PENDING) {\n    return;\n  }\n  promise._state = REJECTED;\n  promise._result = reason;\n\n  asap(publishRejection, promise);\n}\n\nfunction subscribe(parent, child, onFulfillment, onRejection) {\n  var _subscribers = parent._subscribers;\n  var length = _subscribers.length;\n\n\n  parent._onerror = null;\n\n  _subscribers[length] = child;\n  _subscribers[length + FULFILLED] = onFulfillment;\n  _subscribers[length + REJECTED] = onRejection;\n\n  if (length === 0 && parent._state) {\n    asap(publish, parent);\n  }\n}\n\nfunction publish(promise) {\n  var subscribers = promise._subscribers;\n  var settled = promise._state;\n\n  if (subscribers.length === 0) {\n    return;\n  }\n\n  var child = void 0,\n      callback = void 0,\n      detail = promise._result;\n\n  for (var i = 0; i < subscribers.length; i += 3) {\n    child = subscribers[i];\n    callback = subscribers[i + settled];\n\n    if (child) {\n      invokeCallback(settled, child, callback, detail);\n    } else {\n      callback(detail);\n    }\n  }\n\n  promise._subscribers.length = 0;\n}\n\nfunction invokeCallback(settled, promise, callback, detail) {\n  var hasCallback = isFunction(callback),\n      value = void 0,\n      error = void 0,\n      succeeded = true;\n\n  if (hasCallback) {\n    try {\n      value = callback(detail);\n    } catch (e) {\n      succeeded = false;\n      error = e;\n    }\n\n    if (promise === value) {\n      reject(promise, cannotReturnOwn());\n      return;\n    }\n  } else {\n    value = detail;\n  }\n\n  if (promise._state !== PENDING) {\n    // noop\n  } else if (hasCallback && succeeded) {\n    resolve(promise, value);\n  } else if (succeeded === false) {\n    reject(promise, error);\n  } else if (settled === FULFILLED) {\n    fulfill(promise, value);\n  } else if (settled === REJECTED) {\n    reject(promise, value);\n  }\n}\n\nfunction initializePromise(promise, resolver) {\n  try {\n    resolver(function resolvePromise(value) {\n      resolve(promise, value);\n    }, function rejectPromise(reason) {\n      reject(promise, reason);\n    });\n  } catch (e) {\n    reject(promise, e);\n  }\n}\n\nvar id = 0;\nfunction nextId() {\n  return id++;\n}\n\nfunction makePromise(promise) {\n  promise[PROMISE_ID] = id++;\n  promise._state = undefined;\n  promise._result = undefined;\n  promise._subscribers = [];\n}\n\nfunction validationError() {\n  return new Error('Array Methods must be provided an Array');\n}\n\nvar Enumerator = function () {\n  function Enumerator(Constructor, input) {\n    this._instanceConstructor = Constructor;\n    this.promise = new Constructor(noop);\n\n    if (!this.promise[PROMISE_ID]) {\n      makePromise(this.promise);\n    }\n\n    if (isArray(input)) {\n      this.length = input.length;\n      this._remaining = input.length;\n\n      this._result = new Array(this.length);\n\n      if (this.length === 0) {\n        fulfill(this.promise, this._result);\n      } else {\n        this.length = this.length || 0;\n        this._enumerate(input);\n        if (this._remaining === 0) {\n          fulfill(this.promise, this._result);\n        }\n      }\n    } else {\n      reject(this.promise, validationError());\n    }\n  }\n\n  Enumerator.prototype._enumerate = function _enumerate(input) {\n    for (var i = 0; this._state === PENDING && i < input.length; i++) {\n      this._eachEntry(input[i], i);\n    }\n  };\n\n  Enumerator.prototype._eachEntry = function _eachEntry(entry, i) {\n    var c = this._instanceConstructor;\n    var resolve$$1 = c.resolve;\n\n\n    if (resolve$$1 === resolve$1) {\n      var _then = void 0;\n      var error = void 0;\n      var didError = false;\n      try {\n        _then = entry.then;\n      } catch (e) {\n        didError = true;\n        error = e;\n      }\n\n      if (_then === then && entry._state !== PENDING) {\n        this._settledAt(entry._state, i, entry._result);\n      } else if (typeof _then !== 'function') {\n        this._remaining--;\n        this._result[i] = entry;\n      } else if (c === Promise$1) {\n        var promise = new c(noop);\n        if (didError) {\n          reject(promise, error);\n        } else {\n          handleMaybeThenable(promise, entry, _then);\n        }\n        this._willSettleAt(promise, i);\n      } else {\n        this._willSettleAt(new c(function (resolve$$1) {\n          return resolve$$1(entry);\n        }), i);\n      }\n    } else {\n      this._willSettleAt(resolve$$1(entry), i);\n    }\n  };\n\n  Enumerator.prototype._settledAt = function _settledAt(state, i, value) {\n    var promise = this.promise;\n\n\n    if (promise._state === PENDING) {\n      this._remaining--;\n\n      if (state === REJECTED) {\n        reject(promise, value);\n      } else {\n        this._result[i] = value;\n      }\n    }\n\n    if (this._remaining === 0) {\n      fulfill(promise, this._result);\n    }\n  };\n\n  Enumerator.prototype._willSettleAt = function _willSettleAt(promise, i) {\n    var enumerator = this;\n\n    subscribe(promise, undefined, function (value) {\n      return enumerator._settledAt(FULFILLED, i, value);\n    }, function (reason) {\n      return enumerator._settledAt(REJECTED, i, reason);\n    });\n  };\n\n  return Enumerator;\n}();\n\n/**\n  `Promise.all` accepts an array of promises, and returns a new promise which\n  is fulfilled with an array of fulfillment values for the passed promises, or\n  rejected with the reason of the first passed promise to be rejected. It casts all\n  elements of the passed iterable to promises as it runs this algorithm.\n\n  Example:\n\n  ```javascript\n  let promise1 = resolve(1);\n  let promise2 = resolve(2);\n  let promise3 = resolve(3);\n  let promises = [ promise1, promise2, promise3 ];\n\n  Promise.all(promises).then(function(array){\n    // The array here would be [ 1, 2, 3 ];\n  });\n  ```\n\n  If any of the `promises` given to `all` are rejected, the first promise\n  that is rejected will be given as an argument to the returned promises's\n  rejection handler. For example:\n\n  Example:\n\n  ```javascript\n  let promise1 = resolve(1);\n  let promise2 = reject(new Error(\"2\"));\n  let promise3 = reject(new Error(\"3\"));\n  let promises = [ promise1, promise2, promise3 ];\n\n  Promise.all(promises).then(function(array){\n    // Code here never runs because there are rejected promises!\n  }, function(error) {\n    // error.message === \"2\"\n  });\n  ```\n\n  @method all\n  @static\n  @param {Array} entries array of promises\n  @param {String} label optional string for labeling the promise.\n  Useful for tooling.\n  @return {Promise} promise that is fulfilled when all `promises` have been\n  fulfilled, or rejected if any of them become rejected.\n  @static\n*/\nfunction all(entries) {\n  return new Enumerator(this, entries).promise;\n}\n\n/**\n  `Promise.race` returns a new promise which is settled in the same way as the\n  first passed promise to settle.\n\n  Example:\n\n  ```javascript\n  let promise1 = new Promise(function(resolve, reject){\n    setTimeout(function(){\n      resolve('promise 1');\n    }, 200);\n  });\n\n  let promise2 = new Promise(function(resolve, reject){\n    setTimeout(function(){\n      resolve('promise 2');\n    }, 100);\n  });\n\n  Promise.race([promise1, promise2]).then(function(result){\n    // result === 'promise 2' because it was resolved before promise1\n    // was resolved.\n  });\n  ```\n\n  `Promise.race` is deterministic in that only the state of the first\n  settled promise matters. For example, even if other promises given to the\n  `promises` array argument are resolved, but the first settled promise has\n  become rejected before the other promises became fulfilled, the returned\n  promise will become rejected:\n\n  ```javascript\n  let promise1 = new Promise(function(resolve, reject){\n    setTimeout(function(){\n      resolve('promise 1');\n    }, 200);\n  });\n\n  let promise2 = new Promise(function(resolve, reject){\n    setTimeout(function(){\n      reject(new Error('promise 2'));\n    }, 100);\n  });\n\n  Promise.race([promise1, promise2]).then(function(result){\n    // Code here never runs\n  }, function(reason){\n    // reason.message === 'promise 2' because promise 2 became rejected before\n    // promise 1 became fulfilled\n  });\n  ```\n\n  An example real-world use case is implementing timeouts:\n\n  ```javascript\n  Promise.race([ajax('foo.json'), timeout(5000)])\n  ```\n\n  @method race\n  @static\n  @param {Array} promises array of promises to observe\n  Useful for tooling.\n  @return {Promise} a promise which settles in the same way as the first passed\n  promise to settle.\n*/\nfunction race(entries) {\n  /*jshint validthis:true */\n  var Constructor = this;\n\n  if (!isArray(entries)) {\n    return new Constructor(function (_, reject) {\n      return reject(new TypeError('You must pass an array to race.'));\n    });\n  } else {\n    return new Constructor(function (resolve, reject) {\n      var length = entries.length;\n      for (var i = 0; i < length; i++) {\n        Constructor.resolve(entries[i]).then(resolve, reject);\n      }\n    });\n  }\n}\n\n/**\n  `Promise.reject` returns a promise rejected with the passed `reason`.\n  It is shorthand for the following:\n\n  ```javascript\n  let promise = new Promise(function(resolve, reject){\n    reject(new Error('WHOOPS'));\n  });\n\n  promise.then(function(value){\n    // Code here doesn't run because the promise is rejected!\n  }, function(reason){\n    // reason.message === 'WHOOPS'\n  });\n  ```\n\n  Instead of writing the above, your code now simply becomes the following:\n\n  ```javascript\n  let promise = Promise.reject(new Error('WHOOPS'));\n\n  promise.then(function(value){\n    // Code here doesn't run because the promise is rejected!\n  }, function(reason){\n    // reason.message === 'WHOOPS'\n  });\n  ```\n\n  @method reject\n  @static\n  @param {Any} reason value that the returned promise will be rejected with.\n  Useful for tooling.\n  @return {Promise} a promise rejected with the given `reason`.\n*/\nfunction reject$1(reason) {\n  /*jshint validthis:true */\n  var Constructor = this;\n  var promise = new Constructor(noop);\n  reject(promise, reason);\n  return promise;\n}\n\nfunction needsResolver() {\n  throw new TypeError('You must pass a resolver function as the first argument to the promise constructor');\n}\n\nfunction needsNew() {\n  throw new TypeError(\"Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.\");\n}\n\n/**\n  Promise objects represent the eventual result of an asynchronous operation. The\n  primary way of interacting with a promise is through its `then` method, which\n  registers callbacks to receive either a promise's eventual value or the reason\n  why the promise cannot be fulfilled.\n\n  Terminology\n  -----------\n\n  - `promise` is an object or function with a `then` method whose behavior conforms to this specification.\n  - `thenable` is an object or function that defines a `then` method.\n  - `value` is any legal JavaScript value (including undefined, a thenable, or a promise).\n  - `exception` is a value that is thrown using the throw statement.\n  - `reason` is a value that indicates why a promise was rejected.\n  - `settled` the final resting state of a promise, fulfilled or rejected.\n\n  A promise can be in one of three states: pending, fulfilled, or rejected.\n\n  Promises that are fulfilled have a fulfillment value and are in the fulfilled\n  state.  Promises that are rejected have a rejection reason and are in the\n  rejected state.  A fulfillment value is never a thenable.\n\n  Promises can also be said to *resolve* a value.  If this value is also a\n  promise, then the original promise's settled state will match the value's\n  settled state.  So a promise that *resolves* a promise that rejects will\n  itself reject, and a promise that *resolves* a promise that fulfills will\n  itself fulfill.\n\n\n  Basic Usage:\n  ------------\n\n  ```js\n  let promise = new Promise(function(resolve, reject) {\n    // on success\n    resolve(value);\n\n    // on failure\n    reject(reason);\n  });\n\n  promise.then(function(value) {\n    // on fulfillment\n  }, function(reason) {\n    // on rejection\n  });\n  ```\n\n  Advanced Usage:\n  ---------------\n\n  Promises shine when abstracting away asynchronous interactions such as\n  `XMLHttpRequest`s.\n\n  ```js\n  function getJSON(url) {\n    return new Promise(function(resolve, reject){\n      let xhr = new XMLHttpRequest();\n\n      xhr.open('GET', url);\n      xhr.onreadystatechange = handler;\n      xhr.responseType = 'json';\n      xhr.setRequestHeader('Accept', 'application/json');\n      xhr.send();\n\n      function handler() {\n        if (this.readyState === this.DONE) {\n          if (this.status === 200) {\n            resolve(this.response);\n          } else {\n            reject(new Error('getJSON: `' + url + '` failed with status: [' + this.status + ']'));\n          }\n        }\n      };\n    });\n  }\n\n  getJSON('/posts.json').then(function(json) {\n    // on fulfillment\n  }, function(reason) {\n    // on rejection\n  });\n  ```\n\n  Unlike callbacks, promises are great composable primitives.\n\n  ```js\n  Promise.all([\n    getJSON('/posts'),\n    getJSON('/comments')\n  ]).then(function(values){\n    values[0] // => postsJSON\n    values[1] // => commentsJSON\n\n    return values;\n  });\n  ```\n\n  @class Promise\n  @param {Function} resolver\n  Useful for tooling.\n  @constructor\n*/\n\nvar Promise$1 = function () {\n  function Promise(resolver) {\n    this[PROMISE_ID] = nextId();\n    this._result = this._state = undefined;\n    this._subscribers = [];\n\n    if (noop !== resolver) {\n      typeof resolver !== 'function' && needsResolver();\n      this instanceof Promise ? initializePromise(this, resolver) : needsNew();\n    }\n  }\n\n  /**\n  The primary way of interacting with a promise is through its `then` method,\n  which registers callbacks to receive either a promise's eventual value or the\n  reason why the promise cannot be fulfilled.\n   ```js\n  findUser().then(function(user){\n    // user is available\n  }, function(reason){\n    // user is unavailable, and you are given the reason why\n  });\n  ```\n   Chaining\n  --------\n   The return value of `then` is itself a promise.  This second, 'downstream'\n  promise is resolved with the return value of the first promise's fulfillment\n  or rejection handler, or rejected if the handler throws an exception.\n   ```js\n  findUser().then(function (user) {\n    return user.name;\n  }, function (reason) {\n    return 'default name';\n  }).then(function (userName) {\n    // If `findUser` fulfilled, `userName` will be the user's name, otherwise it\n    // will be `'default name'`\n  });\n   findUser().then(function (user) {\n    throw new Error('Found user, but still unhappy');\n  }, function (reason) {\n    throw new Error('`findUser` rejected and we're unhappy');\n  }).then(function (value) {\n    // never reached\n  }, function (reason) {\n    // if `findUser` fulfilled, `reason` will be 'Found user, but still unhappy'.\n    // If `findUser` rejected, `reason` will be '`findUser` rejected and we're unhappy'.\n  });\n  ```\n  If the downstream promise does not specify a rejection handler, rejection reasons will be propagated further downstream.\n   ```js\n  findUser().then(function (user) {\n    throw new PedagogicalException('Upstream error');\n  }).then(function (value) {\n    // never reached\n  }).then(function (value) {\n    // never reached\n  }, function (reason) {\n    // The `PedgagocialException` is propagated all the way down to here\n  });\n  ```\n   Assimilation\n  ------------\n   Sometimes the value you want to propagate to a downstream promise can only be\n  retrieved asynchronously. This can be achieved by returning a promise in the\n  fulfillment or rejection handler. The downstream promise will then be pending\n  until the returned promise is settled. This is called *assimilation*.\n   ```js\n  findUser().then(function (user) {\n    return findCommentsByAuthor(user);\n  }).then(function (comments) {\n    // The user's comments are now available\n  });\n  ```\n   If the assimliated promise rejects, then the downstream promise will also reject.\n   ```js\n  findUser().then(function (user) {\n    return findCommentsByAuthor(user);\n  }).then(function (comments) {\n    // If `findCommentsByAuthor` fulfills, we'll have the value here\n  }, function (reason) {\n    // If `findCommentsByAuthor` rejects, we'll have the reason here\n  });\n  ```\n   Simple Example\n  --------------\n   Synchronous Example\n   ```javascript\n  let result;\n   try {\n    result = findResult();\n    // success\n  } catch(reason) {\n    // failure\n  }\n  ```\n   Errback Example\n   ```js\n  findResult(function(result, err){\n    if (err) {\n      // failure\n    } else {\n      // success\n    }\n  });\n  ```\n   Promise Example;\n   ```javascript\n  findResult().then(function(result){\n    // success\n  }, function(reason){\n    // failure\n  });\n  ```\n   Advanced Example\n  --------------\n   Synchronous Example\n   ```javascript\n  let author, books;\n   try {\n    author = findAuthor();\n    books  = findBooksByAuthor(author);\n    // success\n  } catch(reason) {\n    // failure\n  }\n  ```\n   Errback Example\n   ```js\n   function foundBooks(books) {\n   }\n   function failure(reason) {\n   }\n   findAuthor(function(author, err){\n    if (err) {\n      failure(err);\n      // failure\n    } else {\n      try {\n        findBoooksByAuthor(author, function(books, err) {\n          if (err) {\n            failure(err);\n          } else {\n            try {\n              foundBooks(books);\n            } catch(reason) {\n              failure(reason);\n            }\n          }\n        });\n      } catch(error) {\n        failure(err);\n      }\n      // success\n    }\n  });\n  ```\n   Promise Example;\n   ```javascript\n  findAuthor().\n    then(findBooksByAuthor).\n    then(function(books){\n      // found books\n  }).catch(function(reason){\n    // something went wrong\n  });\n  ```\n   @method then\n  @param {Function} onFulfilled\n  @param {Function} onRejected\n  Useful for tooling.\n  @return {Promise}\n  */\n\n  /**\n  `catch` is simply sugar for `then(undefined, onRejection)` which makes it the same\n  as the catch block of a try/catch statement.\n  ```js\n  function findAuthor(){\n  throw new Error('couldn't find that author');\n  }\n  // synchronous\n  try {\n  findAuthor();\n  } catch(reason) {\n  // something went wrong\n  }\n  // async with promises\n  findAuthor().catch(function(reason){\n  // something went wrong\n  });\n  ```\n  @method catch\n  @param {Function} onRejection\n  Useful for tooling.\n  @return {Promise}\n  */\n\n\n  Promise.prototype.catch = function _catch(onRejection) {\n    return this.then(null, onRejection);\n  };\n\n  /**\n    `finally` will be invoked regardless of the promise's fate just as native\n    try/catch/finally behaves\n  \n    Synchronous example:\n  \n    ```js\n    findAuthor() {\n      if (Math.random() > 0.5) {\n        throw new Error();\n      }\n      return new Author();\n    }\n  \n    try {\n      return findAuthor(); // succeed or fail\n    } catch(error) {\n      return findOtherAuther();\n    } finally {\n      // always runs\n      // doesn't affect the return value\n    }\n    ```\n  \n    Asynchronous example:\n  \n    ```js\n    findAuthor().catch(function(reason){\n      return findOtherAuther();\n    }).finally(function(){\n      // author was either found, or not\n    });\n    ```\n  \n    @method finally\n    @param {Function} callback\n    @return {Promise}\n  */\n\n\n  Promise.prototype.finally = function _finally(callback) {\n    var promise = this;\n    var constructor = promise.constructor;\n\n    if (isFunction(callback)) {\n      return promise.then(function (value) {\n        return constructor.resolve(callback()).then(function () {\n          return value;\n        });\n      }, function (reason) {\n        return constructor.resolve(callback()).then(function () {\n          throw reason;\n        });\n      });\n    }\n\n    return promise.then(callback, callback);\n  };\n\n  return Promise;\n}();\n\nPromise$1.prototype.then = then;\nPromise$1.all = all;\nPromise$1.race = race;\nPromise$1.resolve = resolve$1;\nPromise$1.reject = reject$1;\nPromise$1._setScheduler = setScheduler;\nPromise$1._setAsap = setAsap;\nPromise$1._asap = asap;\n\n/*global self*/\nfunction polyfill() {\n  var local = void 0;\n\n  if (typeof global !== 'undefined') {\n    local = global;\n  } else if (typeof self !== 'undefined') {\n    local = self;\n  } else {\n    try {\n      local = Function('return this')();\n    } catch (e) {\n      throw new Error('polyfill failed because global object is unavailable in this environment');\n    }\n  }\n\n  var P = local.Promise;\n\n  if (P) {\n    var promiseToString = null;\n    try {\n      promiseToString = Object.prototype.toString.call(P.resolve());\n    } catch (e) {\n      // silently ignored\n    }\n\n    if (promiseToString === '[object Promise]' && !P.cast) {\n      return;\n    }\n  }\n\n  local.Promise = Promise$1;\n}\n\n// Strange compat..\nPromise$1.polyfill = polyfill;\nPromise$1.Promise = Promise$1;\n\nreturn Promise$1;\n\n})));\n\n\n\n//# sourceMappingURL=es6-promise.map\n","import i18n from 'i18next';\n\nimport MediaComponent from './Media';\nimport TextComponent from './Text/Text.react';\nimport ShapeComponent from './Shape';\nimport ImageComponent from './Image';\nimport ChartComponent from './Chart/Chart.react';\nimport GroupComponent from './Group/ReadOnlyGroup.react';\nimport ConnectorComponent from '../../../connectors/components/contents/Connector';\n\nconst typeMap = {\n    MEDIA: MediaComponent,\n    TEXT: TextComponent,\n    SHAPE: ShapeComponent,\n    IMAGE: ImageComponent,\n    CHART: ChartComponent,\n    GROUP: GroupComponent,\n    CONNECTOR: ConnectorComponent,\n};\n\nexport const ELEMENT_TYPE_LABEL = {\n    get VIDEO() {\n        return i18n.t('inspector.free.entity.type.VIDEO');\n    },\n    get MEDIA() {\n        return i18n.t('inspector.free.entity.type.MEDIA');\n    },\n    get TEXT() {\n        return i18n.t('inspector.free.entity.type.TEXT');\n    },\n    get SHAPE() {\n        return i18n.t('inspector.free.entity.type.SHAPE');\n    },\n    get IMAGE() {\n        return i18n.t('inspector.free.entity.type.IMAGE');\n    },\n    get CHART() {\n        return i18n.t('inspector.free.entity.type.CHART');\n    },\n    get GROUP() {\n        return i18n.t('inspector.free.entity.type.GROUP');\n    },\n    get CONNECTOR() {\n        return 'Connector';\n    },\n};\n\nexport default function elementForType(entityType) {\n    return typeMap[entityType] || null;\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/forced-string-html-method');\n\n// `String.prototype.big` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.big\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('big') }, {\n  big: function big() {\n    return createHTML(this, 'big', '', '');\n  }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $reduce = require('../internals/array-reduce').left;\nvar sloppyArrayMethod = require('../internals/sloppy-array-method');\n\n// `Array.prototype.reduce` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.reduce\n$({ target: 'Array', proto: true, forced: sloppyArrayMethod('reduce') }, {\n  reduce: function reduce(callbackfn /* , initialValue */) {\n    return $reduce(this, callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined);\n  }\n});\n","'use strict';\n\nvar utils = require('./../utils');\nvar buildURL = require('../helpers/buildURL');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\nvar mergeConfig = require('./mergeConfig');\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n  this.defaults = instanceConfig;\n  this.interceptors = {\n    request: new InterceptorManager(),\n    response: new InterceptorManager()\n  };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(config) {\n  /*eslint no-param-reassign:0*/\n  // Allow for axios('example/url'[, config]) a la fetch API\n  if (typeof config === 'string') {\n    config = arguments[1] || {};\n    config.url = arguments[0];\n  } else {\n    config = config || {};\n  }\n\n  config = mergeConfig(this.defaults, config);\n\n  // Set config.method\n  if (config.method) {\n    config.method = config.method.toLowerCase();\n  } else if (this.defaults.method) {\n    config.method = this.defaults.method.toLowerCase();\n  } else {\n    config.method = 'get';\n  }\n\n  // Hook up interceptors middleware\n  var chain = [dispatchRequest, undefined];\n  var promise = Promise.resolve(config);\n\n  this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n    chain.unshift(interceptor.fulfilled, interceptor.rejected);\n  });\n\n  this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n    chain.push(interceptor.fulfilled, interceptor.rejected);\n  });\n\n  while (chain.length) {\n    promise = promise.then(chain.shift(), chain.shift());\n  }\n\n  return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n  config = mergeConfig(this.defaults, config);\n  return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n  /*eslint func-names:0*/\n  Axios.prototype[method] = function(url, config) {\n    return this.request(utils.merge(config || {}, {\n      method: method,\n      url: url\n    }));\n  };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n  /*eslint func-names:0*/\n  Axios.prototype[method] = function(url, data, config) {\n    return this.request(utils.merge(config || {}, {\n      method: method,\n      url: url,\n      data: data\n    }));\n  };\n});\n\nmodule.exports = Axios;\n","import {ReduceStore} from 'flux/utils';\nimport {fromJS, Map} from 'immutable';\nimport invariant from 'invariant';\n\nimport AppDispatcher from '../../dispatcher';\n\nimport EntityStore from '../../../common/chart_factory/entities';\n\nimport EditorState from '../../../components/FreeLayoutEditor/immutable/EditorState';\nimport {TEMPLATE_PREVIEW_LOADED} from '../../../store/constants/template-preview';\nimport {connectorTransformBySingleKey} from '../../connectors/modifier/connectorTransform';\nimport removeEntities from '../../../components/FreeLayoutEditor/modifier/removeEntities';\nimport deleteEntitiesWithinGroup from '../components/contents/Group/utils/deleteEntitiesWithinGroup';\nimport removeCallout from '../../../components/FreeLayoutEditor/modifier/removeCallout';\nimport {setAnimationDefaults} from '../../../components/Animation/Animation.react';\n\nimport {\n    EDITOR_STATE_CHANGE,\n    EXTERNAL_EDITOR_STATE_CHANGE,\n    ADD_RAW_ENTITY,\n    FREELAYOUT_SET_TRANSITION,\n    FREELAYOUT_SET_ALLOW_TO_SHARE,\n    FREELAYOUT_SET_ALLOW_FULLSCREEN,\n    EDITOR_SET_CHART_EXTERNAL_DATA,\n    ADD_ENTITY,\n    REMOVE_ENTITIES,\n    ADD_BLOCK,\n    REMOVE_CALLOUT,\n    FREELAYOUT_SET_INTERACTIVITY_HINT,\n    APPLY_IMAGE_CLIP,\n    REMOVE_IMAGE_CLIP,\n    EDITOR_STATE_UNDO,\n    EDITOR_STATE_REDO,\n    FREELAYOUT_SET_PROJECT_LANGUAGE,\n    ADD_TEXT_TO_SHAPE,\n    UPDATE_ENTITY_ANIMATION,\n    REMOVE_ENTITY_ANIMATION,\n    SET_LAYOUT,\n} from '../constants/EditorConstants';\nimport Constants, {isFlex} from '../../constants';\n\nimport {\n    UPDATE_TEXT_ELEMENT_SIZE,\n} from '../../../components/TextEditor/constants/TextEditorConstants';\nimport compensateTransformOriginShift from '../../../components/FreeLayoutEditor/util/compensateTransformOriginShift';\n\nimport {readInfographicData} from '../../freelayout_editor/FreeLayoutHelper';\n\nimport ImmutablePropertyReconciler from '../../../shared/ImmutablePropertyReconciler';\n\n\nimport getEditorStateWithNewGroupBounds from '../../freelayout_editor/components/contents/Group/utils/getEditorStateWithNewGroupBounds';\nimport adjustCalloutOnItemChange from '../../callouts/utils/adjustCalloutOnItemChange';\nimport {getCalloutPaddingsByKey} from '../../callouts/utils/getCalloutPaddings';\nimport setBlockAnimationSequence from '../../../components/FreeLayoutEditor/modifier/blockAnimationSequence';\n\nconst DEFAULT_LAYOUT_NAME = 'default';\n\nclass EditorStateStore extends ReduceStore {\n    getInitialState() {\n        return fromJS({\n            transition: 'none', // when changing this, also change it in flexSchema/validate.js\n            editorState: null,\n            themeId: null,\n            interlinkedCharts: null,\n            interactivityHint: false,\n            isWhiteLabel: false,\n            allowToShare: undefined,\n            allowFullscreen: undefined,\n            language: 'en',\n            schemaVersion: 0,\n            currentLayout: DEFAULT_LAYOUT_NAME,\n            groupKeysToExit: undefined,\n        });\n    }\n\n    reduce(state, action) {\n        switch (action.type) {\n            case Constants.PROFILE_LOADED: {\n                return state.set('isWhiteLabel', action.data.isWhiteLabel);\n            }\n            case EDITOR_STATE_CHANGE:\n            case EDITOR_STATE_UNDO:\n            case EDITOR_STATE_REDO:\n            case ADD_TEXT_TO_SHAPE:\n            case EXTERNAL_EDITOR_STATE_CHANGE: {\n                if (action.pasteElementStyle && action.hasText) {\n                    return state;\n                }\n                let nextEditorState;\n                const currentLayout = state.get('currentLayout');\n                if (currentLayout !== DEFAULT_LAYOUT_NAME && action.changes) {\n                    nextEditorState = state.get('editorState').setLayout(currentLayout, action.changes);\n                } else {\n                    nextEditorState = action.editorState;\n                }\n                return state.set('editorState', nextEditorState);\n            }\n            case Constants.INFOGRAPHIC_LOADED:\n            case TEMPLATE_PREVIEW_LOADED: {\n                if (!action.cached && isFlex(action.data.get('type'))) {\n                    const {content} = readInfographicData(action.data);\n                    return state.merge({\n                        allowFullscreen: content.allowFullscreen,\n                        allowToShare: content.allowToShare,\n                        editorState: EditorState.createFromJSONObject(content),\n                        currentLayout: DEFAULT_LAYOUT_NAME,\n                        transition: content.transition,\n                        language: content.language,\n                        interactivityHint: content.interactivityHint,\n                        interlinkedCharts: content.interlinkedCharts,\n                        themeId: action.data.get('theme_id'),\n                        schemaVersion: content.schemaVersion,\n                    });\n                }\n                return state.merge({\n                    editorState: null,\n                    themeId: null,\n                });\n            }\n\n            case Constants.INFOGRAPHIC_THEME_LOADED: {\n                return state.set('themeId', action.themeId);\n            }\n\n            case ADD_BLOCK:\n            case ADD_ENTITY:\n            case ADD_RAW_ENTITY: {\n                return state.set('editorState', action.editorState);\n            }\n            case REMOVE_ENTITIES: {\n                const {entityKeys, groupEntityKeys, unusedFonts, options} = action;\n                const oldEditorState = state.get('editorState');\n                let editorState = oldEditorState;\n                if (options?.pushToUndoStack) {\n                    editorState = EditorState.push(editorState, editorState.getCurrentContent());\n                }\n                editorState = removeEntities(editorState, ...entityKeys);\n                editorState = removeFonts(editorState, unusedFonts);\n                let groupKeysToExit;\n                if (groupEntityKeys) {\n                    const entities = oldEditorState.getEntities(groupEntityKeys);\n                    ({editorState, groupKeysToExit} = deleteEntitiesWithinGroup(editorState, entities));\n                }\n                return state.merge({\n                    editorState,\n                    groupKeysToExit,\n                });\n            }\n            case REMOVE_CALLOUT: {\n                const {entityKey, unusedFonts, options} = action;\n                const editorState = state.get('editorState');\n                const updatedState = removeCallout(editorState, entityKey, options);\n                return state.set('editorState', removeFonts(updatedState, unusedFonts));\n            }\n            case FREELAYOUT_SET_ALLOW_TO_SHARE:\n                return state.set('allowToShare', action.value);\n            case FREELAYOUT_SET_ALLOW_FULLSCREEN:\n                return state.set('allowFullscreen', action.value);\n            case FREELAYOUT_SET_PROJECT_LANGUAGE:\n                return state.set('language', action.value);\n            case FREELAYOUT_SET_INTERACTIVITY_HINT:\n                return state.set('interactivityHint', action.value);\n            case FREELAYOUT_SET_TRANSITION:\n                return state.set('transition', action.name);\n            case Constants.RECEIVE_EXTRA_DATA:\n                return state.merge({\n                    allowFullscreen: action.payload.allowFullscreen,\n                    allowToShare: action.payload.allowToShare,\n                    themeId: action.payload.themeId,\n                    transition: action.payload.transition,\n                    language: action.payload.language,\n                    interactivityHint: action.payload.interactivityHint,\n                    interlinkedCharts: action.payload.interlinkedCharts,\n                    schemaVersion: action.payload.schemaVersion,\n                });\n            case Constants.FREELAYOUT_SET_INTERLINKED_CHARTS: {\n                const editorState = state.get('editorState');\n                const content = editorState.getCurrentContent();\n                for (const block of content.getBlocks()) {\n                    for (const entity of block.getEntities()) {\n                        if (entity.type === 'CHART') {\n                            const chartEntity = EntityStore.getEntity(entity.getKey());\n                            if (chartEntity) {\n                                chartEntity.interlinkedCharts = action.value;\n                            }\n                        }\n                    }\n                }\n                return state.set('interlinkedCharts', action.value);\n            }\n            case Constants.INFOGRAPHIC_PALETTE_CHANGE:\n            case Constants.INFOGRAPHIC_THEME_CHANGE: {\n                const design = fromJS(action.design);\n                if (!design) {\n                    return state;\n                }\n                let editorState = state.get('editorState');\n                const content = editorState.getCurrentContent();\n                for (const block of content.getBlocks()) {\n                    for (const entity of block.getEntities()) {\n                        if (entity.type === 'CHART') {\n                            const chartData = entity.getProperty('chartData');\n                            const rawChartData = chartData.toJS();\n                            const reconciler = new ImmutablePropertyReconciler(rawChartData, action.theme);\n                            reconciler.reconcile();\n\n                            const updatedChartData = chartData.merge(rawChartData, {\n                                defaultColors: reconciler.defaultColors,\n                                defaultColorsHeatmap: reconciler.defaultColorsHeatmap,\n                            });\n\n                            editorState = editorState.setEntity(entity.key, {props: {chartData: updatedChartData}});\n                        }\n                    }\n                }\n                if (Constants.INFOGRAPHIC_PALETTE_CHANGE === action.type) {\n                    state = state.merge({themeId: action.id});\n                }\n                return state.set('editorState', EditorState.setDesign(editorState, design));\n            }\n            case EDITOR_SET_CHART_EXTERNAL_DATA: {\n                let editorState = state.get('editorState');\n\n                if (!editorState) {\n                    return state;\n                }\n\n                editorState = EditorState.push(editorState, editorState.getCurrentContent());\n                editorState = editorState.setEntity(action.id, {\n                    props: {chartData: null},\n                });\n                editorState = editorState.setEntity(action.id, {\n                    props: {\n                        chartData: action.data,\n                    },\n                });\n                return state.set('editorState', editorState);\n            }\n            case APPLY_IMAGE_CLIP: {\n                const {key, clipProps, offset, options} = action;\n\n                let editorState = state.get('editorState');\n                const entity = editorState.getEntity(key);\n                if (!entity) {\n                    return state;\n                }\n\n                const left = entity.getLeft() + offset.get('x');\n                const top = entity.getTop() + offset.get('y');\n\n                if (options.pushToUndoStack) {\n                    editorState = EditorState.push(editorState, editorState.getCurrentContent());\n                }\n                const patch = {\n                    left,\n                    top,\n                    props: clipProps,\n                };\n                editorState = editorState.setEntity(key, patch);\n                editorState = connectorTransformBySingleKey(editorState, key, patch);\n                if (entity.getGroupKey()) {\n                    editorState = getEditorStateWithNewGroupBounds(editorState, entity);\n                }\n                return state.set('editorState', editorState);\n            }\n            case REMOVE_IMAGE_CLIP: {\n                const {key} = action;\n                let editorState = state.get('editorState');\n                const entity = editorState.getEntity(key);\n                if (!entity) {\n                    return state;\n                }\n\n                if (!!entity.getProperty('mask') || !!entity.getProperty('crop')) {\n                    editorState = EditorState.push(editorState, editorState.getCurrentContent());\n                }\n                const offset = compensateTransformOriginShift(entity, {left: 50, top: 50});\n                const patch = {\n                    left: entity.getLeft() + offset.get('x'),\n                    top: entity.getTop() + offset.get('y'),\n                    props: {\n                        mask: null,\n                        crop: null,\n                    },\n                };\n                editorState = editorState.setEntity(key, patch);\n                editorState = connectorTransformBySingleKey(editorState, key, patch);\n                if (entity.getGroupKey()) {\n                    editorState = getEditorStateWithNewGroupBounds(editorState, entity);\n                } else if (entity.getCalloutKey()) {\n                    const paddings = getCalloutPaddingsByKey(state.get('editorState'), entity.getCalloutKey());\n                    editorState = adjustCalloutOnItemChange(\n                        editorState,\n                        entity,\n                        paddings\n                    );\n                }\n                return state.set('editorState', editorState);\n            }\n            case UPDATE_TEXT_ELEMENT_SIZE: {\n                const {entityKey, props: {top, left, width, height, props}} = action;\n                const editorState = state.get('editorState');\n                const entity = editorState.getEntity(entityKey);\n                invariant(entity.type === 'TEXT', 'Entity must be a TEXT element');\n                let nextFlexEditorState = editorState.setEntity(entityKey, {left, top, width, height, props});\n                const groupKey = entity.getGroupKey();\n                if (groupKey) {\n                    nextFlexEditorState = getEditorStateWithNewGroupBounds(\n                        nextFlexEditorState,\n                        nextFlexEditorState.getEntity(entityKey)\n                    );\n                }\n                if (entity.getCalloutKey()) {\n                    const paddings = getCalloutPaddingsByKey(editorState, entity.getCalloutKey());\n                    nextFlexEditorState = adjustCalloutOnItemChange(\n                        nextFlexEditorState,\n                        entity,\n                        paddings\n                    );\n                }\n                return state.set('editorState', nextFlexEditorState);\n            }\n            case UPDATE_ENTITY_ANIMATION: {\n                const {param: {name, value}, entityKey} = action;\n                const editorState = state.get('editorState');\n                const entity = editorState.getEntity(entityKey);\n\n                const oldAnimation = entity.getAnimation();\n                const newAnimation = (!oldAnimation || name === 'regime')\n                    ? setAnimationDefaults(Map({[name]: value}))\n                    : oldAnimation.set(name, value);\n\n                let newEditorState = editorState.setEntity(\n                    entityKey,\n                    {props: {animation: newAnimation}},\n                    {pushToUndoStack: true},\n                );\n\n                /**\n                 * Regime (or animation trigger) change can affect animation trigger sequence.\n                 * To keep it stable, we fixate each state on regime-change event\n                 */\n                if (name === 'regime'\n                    && (oldAnimation && oldAnimation.get('regime') !== value)\n                ){\n                    const block = newEditorState\n                        .getCurrentContent()\n                        .getBlock(entity.getBlockKey());\n                    const sequence = block.getAnimationSequence();\n                    newEditorState = setBlockAnimationSequence(\n                        newEditorState,\n                        block.getKey(),\n                        sequence,\n                    );\n                }\n\n                return state.set('editorState', newEditorState);\n            }\n            case REMOVE_ENTITY_ANIMATION: {\n                const newEditorState = state.get('editorState')\n                    .setEntity(\n                        action.entityKey,\n                        {props: {animation: undefined}},\n                        {pushToUndoStack: true},\n                    );\n                return state.set('editorState', newEditorState);\n            }\n            case SET_LAYOUT: {\n                const {layout} = action;\n                return state.set('currentLayout', layout);\n            }\n            default:\n                return state;\n        }\n    }\n\n    get editorState() {\n        const state = this.getState();\n        const currentLayout = state.get('currentLayout');\n        const editorState = state.get('editorState');\n        if (!editorState) {\n            return editorState;\n        }\n        return applyLayoutToEditorState(editorState, currentLayout);\n    }\n\n    get defaultEditorState() {\n        return this.getState().get('editorState');\n    }\n\n    get presentationTransition() {\n        return this.getState().get('transition') || 'none';\n    }\n\n    get allowToShare() {\n        return this.getState().get('allowToShare');\n    }\n\n    get allowFullscreen() {\n        return this.getState().get('allowFullscreen');\n    }\n\n    get language() {\n        return this.getState().get('language');\n    }\n\n    get interactivityHint() {\n        return this.getState().get('interactivityHint');\n    }\n\n    get interlinkedChartsEnabled() {\n        return this.getState().get('interlinkedCharts');\n    }\n\n    get themeId() {\n        return this.getState().get('themeId');\n    }\n\n    get schemaVersion() {\n        return this.getState().get('schemaVersion');\n    }\n\n    get isWhiteLabel() {\n        return this.getState().get('isWhiteLabel');\n    }\n\n    get currentLayout() {\n        return this.getState().get('currentLayout');\n    }\n\n    get editingDefaultLayout() {\n        return this.getState().get('currentLayout') === DEFAULT_LAYOUT_NAME;\n    }\n\n    get groupKeysToExit() {\n        return this.getState().get('groupKeysToExit');\n    }\n}\n\nfunction applyLayoutToEditorState(editorState, layoutName) {\n    if (layoutName === DEFAULT_LAYOUT_NAME) {\n        return editorState;\n    }\n    const layout = editorState.getLayout(layoutName);\n    if (!layout) {\n        return editorState;\n    }\n\n    let resultingEditorState = editorState;\n\n    if (layout.has('entities')) {\n        resultingEditorState = layout.get('entities').reduce((editorState, change, key) => {\n            return editorState.setEntity(key, change.toJS());\n        }, resultingEditorState);\n    }\n\n    if (layout.has('pageSize')) {\n        const pageSize = editorState.getPageSize().toJS();\n        const layoutPageSize = layout.get('pageSize');\n        if (layoutPageSize.has('width')) {\n            pageSize.width = layoutPageSize.get('width');\n        }\n        if (layoutPageSize.has('height')) {\n            pageSize.height = layoutPageSize.get('height');\n        }\n        resultingEditorState = EditorState.setPageSize(resultingEditorState, pageSize);\n    }\n\n    return resultingEditorState;\n}\n\nfunction removeFonts(editorState, fonts) {\n    if (!fonts) {\n        return editorState;\n    }\n    return EditorState.set(editorState, {\n        fonts: editorState.getFonts().filterNot(\n            existingFont => fonts.some(\n                font => font.family === existingFont.family)),\n    });\n}\n\nconst store = new EditorStateStore(AppDispatcher);\n\nexport default store;\n","'use strict';\nvar global = require('../internals/global');\nvar redefineAll = require('../internals/redefine-all');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar collection = require('../internals/collection');\nvar collectionWeak = require('../internals/collection-weak');\nvar isObject = require('../internals/is-object');\nvar enforceIternalState = require('../internals/internal-state').enforce;\nvar NATIVE_WEAK_MAP = require('../internals/native-weak-map');\n\nvar IS_IE11 = !global.ActiveXObject && 'ActiveXObject' in global;\nvar isExtensible = Object.isExtensible;\nvar InternalWeakMap;\n\nvar wrapper = function (get) {\n  return function WeakMap() {\n    return get(this, arguments.length ? arguments[0] : undefined);\n  };\n};\n\n// `WeakMap` constructor\n// https://tc39.github.io/ecma262/#sec-weakmap-constructor\nvar $WeakMap = module.exports = collection('WeakMap', wrapper, collectionWeak, true, true);\n\n// IE11 WeakMap frozen keys fix\n// We can't use feature detection because it crash some old IE builds\n// https://github.com/zloirock/core-js/issues/485\nif (NATIVE_WEAK_MAP && IS_IE11) {\n  InternalWeakMap = collectionWeak.getConstructor(wrapper, 'WeakMap', true);\n  InternalMetadataModule.REQUIRED = true;\n  var WeakMapPrototype = $WeakMap.prototype;\n  var nativeDelete = WeakMapPrototype['delete'];\n  var nativeHas = WeakMapPrototype.has;\n  var nativeGet = WeakMapPrototype.get;\n  var nativeSet = WeakMapPrototype.set;\n  redefineAll(WeakMapPrototype, {\n    'delete': function (key) {\n      if (isObject(key) && !isExtensible(key)) {\n        var state = enforceIternalState(this);\n        if (!state.frozen) state.frozen = new InternalWeakMap();\n        return nativeDelete.call(this, key) || state.frozen['delete'](key);\n      } return nativeDelete.call(this, key);\n    },\n    has: function has(key) {\n      if (isObject(key) && !isExtensible(key)) {\n        var state = enforceIternalState(this);\n        if (!state.frozen) state.frozen = new InternalWeakMap();\n        return nativeHas.call(this, key) || state.frozen.has(key);\n      } return nativeHas.call(this, key);\n    },\n    get: function get(key) {\n      if (isObject(key) && !isExtensible(key)) {\n        var state = enforceIternalState(this);\n        if (!state.frozen) state.frozen = new InternalWeakMap();\n        return nativeHas.call(this, key) ? nativeGet.call(this, key) : state.frozen.get(key);\n      } return nativeGet.call(this, key);\n    },\n    set: function set(key, value) {\n      if (isObject(key) && !isExtensible(key)) {\n        var state = enforceIternalState(this);\n        if (!state.frozen) state.frozen = new InternalWeakMap();\n        nativeHas.call(this, key) ? nativeSet.call(this, key, value) : state.frozen.set(key, value);\n      } else nativeSet.call(this, key, value);\n      return this;\n    }\n  });\n}\n","import {minifyRotation} from '../../util/clippedEntity';\nimport {\n    Point,\n    Rectangle,\n    centerOf,\n    rotatePoint,\n    snapValue,\n    calculateRotation,\n    deg,\n    rad,\n    movementForLockedAspectRatioByOrigin,\n    distance,\n    angleOfVector,\n    movePoint,\n} from './utils';\n\nexport const MOVE = 0;\nexport const RESIZE = 1 << 1;\nexport const ROTATE = 1 << 2;\nexport const RESIZE_SIDE = 1 << 3;\nexport const RESIZE_WIDTH = 1 << 4;\nexport const SCALE_TEXT = 1 << 5;\n\nexport function transform(rect, startPoint, endPoint, action, options = {}) {\n    let {boundingBoxSizeChange, snap, lockAspectRatio, proportional, deltaRotation, rotationOrigin, isMultiSelect, boundingBox, lockHeight} = options;\n    const newRect = Rectangle(rect.left, rect.top, rect.width, rect.height, rect.rotation);\n    const result = {\n        rect: newRect,\n    };\n\n    if (deltaRotation === undefined) {\n        if (action & ROTATE) {\n            deltaRotation = calculateRotation(startPoint, endPoint, rotationOrigin || centerOf(rect));\n        } else {\n            deltaRotation = 0;\n        }\n    }\n\n    const rectTransformOrigin = centerOf(rect);\n    rotationOrigin = options.rotationOrigin || rectTransformOrigin;\n    const startPointAngleToTransformOrigin = Math.atan2(startPoint.y - rectTransformOrigin.y, startPoint.x - rectTransformOrigin.x);\n\n    if (action & RESIZE) {\n        const rectTransformOrigin = centerOf(rect);\n        const rectAngle = rad(rect.rotation);\n        rotationOrigin = rotationOrigin || rectTransformOrigin;\n\n        if (action & ROTATE) {\n            lockAspectRatio = false;\n            proportional = false;\n        }\n\n        let boundAngle, cosBound, sinBound;\n        if (isMultiSelect) {\n            const startPointAngleToBoundingBox = Math.atan2(startPoint.y - rotationOrigin.y, startPoint.x - rotationOrigin.x);\n            boundAngle = rad(boundingBox.rotation);\n            cosBound = Math.cos(startPointAngleToBoundingBox - boundAngle);\n            sinBound = Math.sin(startPointAngleToBoundingBox - boundAngle);\n        }\n\n        // Here we need those values to tell if movement will increase or decrease the object size\n        // by looking at what side of the \"origin\" are the changes\n        // Cos : Sin | + : +  SE | - : -  NW | - : +  SW | + : -  NE\n        const cosO = Math.cos(startPointAngleToTransformOrigin - rectAngle);\n        const sinO = Math.sin(startPointAngleToTransformOrigin - rectAngle);\n\n        if (action & RESIZE_WIDTH) {\n            result.resizeSide = cosO < 0 ? 'west' : 'east';\n        }\n\n        let movement;\n        if (!(action & RESIZE_SIDE) && lockAspectRatio) {\n            if (isMultiSelect) {\n                movement = movementForLockedAspectRatioByOrigin(\n                    startPoint,\n                    endPoint,\n                    rotationOrigin,\n                    boundingBox,\n                    boundAngle,\n                    cosBound,\n                    sinBound\n                );\n            } else {\n                movement = movementForLockedAspectRatioByOrigin(\n                    startPoint,\n                    endPoint,\n                    rectTransformOrigin,\n                    rect,\n                    rectAngle,\n                    cosO,\n                    sinO\n                );\n            }\n        } else {\n            // We should subtract the movement which was compensated by the rotation if there was any.\n            const adjustedEndPoint = rotatePoint(endPoint, -deltaRotation, rotationOrigin);\n            movement = Point(adjustedEndPoint.x - startPoint.x, adjustedEndPoint.y - startPoint.y);\n        }\n\n        const sizeChange = isMultiSelect ? rotatePoint(movement, -boundAngle) : rotatePoint(movement, -rectAngle);\n        sizeChange.x *= ((isMultiSelect ? cosBound : cosO) < 0 ? -1 : 1);\n        sizeChange.y *= ((isMultiSelect ? sinBound : sinO) < 0 ? -1 : 1);\n        if (proportional) {\n            sizeChange.x *= 2;\n            sizeChange.y *= 2;\n        }\n\n        if (action & RESIZE_SIDE) {\n            if (Math.round(sinO) === 1 || Math.round(sinO) === -1) {\n                // South | North\n                sizeChange.x = 0;\n            }\n            if (Math.round(cosO) === -1 || Math.round(cosO) === 1) {\n                // West | East\n                sizeChange.y = 0;\n            }\n        } else if (action & RESIZE_WIDTH) {\n            sizeChange.y = 0;\n        }\n\n        if (isMultiSelect) {\n            // size change in %\n            boundingBoxSizeChange = boundingBoxSizeChange || {\n                height: sizeChange.y / boundingBox.height,\n                width: sizeChange.x / boundingBox.width,\n            };\n\n            if (lockAspectRatio) {\n                sizeChange.x = rect.width * boundingBoxSizeChange.width;\n                sizeChange.y = rect.height * boundingBoxSizeChange.height;\n            } else {\n                // Without locked aspect ratio for not rotated elements or rotated in step of 90 degrees (0, 90, 180, 270...)\n                // NOT WORKING - aspect is locked for multiselect by default in beginning of this function\n                const p = Point(rect.width * boundingBoxSizeChange.width, rect.height * boundingBoxSizeChange.height);\n                const change = rotatePoint(p, -rectAngle);\n                sizeChange.x = change.x * (cosO < 0 ? -1 : 1);\n                sizeChange.y = change.y * (sinO < 0 ? -1 : 1);\n            }\n        }\n        newRect.width = rect.width + sizeChange.x;\n        newRect.height = rect.height + sizeChange.y;\n\n        const ratio = rect.height / rect.width;\n        if (lockAspectRatio) {\n            if (Math.abs(sizeChange.x) > Math.abs(sizeChange.y)) {\n                newRect.height = newRect.width * ratio;\n            } else {\n                newRect.width = newRect.height / ratio;\n            }\n        }\n\n        // And adjust it to constraints we have if any\n        if (options.maxWidth && newRect.width > options.maxWidth) {\n            newRect.width = options.maxWidth;\n            newRect.height = lockAspectRatio ? newRect.width * ratio : newRect.height;\n        }\n        if (options.maxHeight && newRect.height > options.maxHeight) {\n            newRect.height = options.maxHeight;\n            newRect.width = lockAspectRatio ? newRect.height / ratio : newRect.width;\n        }\n        if (options.minWidth && newRect.width < options.minWidth) {\n            newRect.width = options.minWidth;\n            newRect.height = lockAspectRatio ? newRect.width * ratio : newRect.height;\n        }\n        if (options.minHeight && newRect.height < options.minHeight) {\n            newRect.height = options.minHeight;\n            newRect.width = lockAspectRatio ? newRect.height / ratio : newRect.width;\n        }\n\n        if (action & ROTATE) {\n            // Do not change height of lines/arrows (resize + rotate is used only for lines/arrows)\n            newRect.height = rect.height;\n        }\n\n        if (lockHeight) {\n            newRect.height = rect.height;\n        }\n\n        // Calculate new movement. If constraints were used the actual Δ !== movement we calculated above.\n        const realSizeChange = Point(newRect.width - rect.width, newRect.height - rect.height);\n        realSizeChange.x *= (cosO < 0 ? -1 : 1);\n        realSizeChange.y *= (sinO < 0 ? -1 : 1);\n\n        // If side resize then opposite middle point stays in place\n        if (action & RESIZE_SIDE) {\n            if (Math.round(sinO) === 1 || Math.round(sinO) === -1) {\n                // South | North\n                realSizeChange.x = 0;\n            }\n            if (Math.round(cosO) === -1 || Math.round(cosO) === 1) {\n                // West | East\n                realSizeChange.y = 0;\n            }\n        }\n\n        if (snap && action & ROTATE) {\n            // End point is snapped to closest 45° vector\n            const targetRotation = snapValue(rect.rotation + deg(deltaRotation), 45, 45 / 2);\n            deltaRotation = rad(targetRotation - rect.rotation);\n        }\n\n        // Find the new origin if object size was changed\n        let newCenter = Point();\n        if (isMultiSelect) {\n            const rotatedBoundingBoxStartPoint = rotatePoint(\n                startPoint,\n                -rad(boundingBox.rotation),\n                rotationOrigin\n            );\n            const startPointAngleToRotatedBoundingBox = Math.atan2(rotatedBoundingBoxStartPoint.y - rotationOrigin.y, rotatedBoundingBoxStartPoint.x - rotationOrigin.x);\n            const cosRotatedBound = Math.cos(startPointAngleToRotatedBoundingBox);\n            const sinRotatedBound = Math.sin(startPointAngleToRotatedBoundingBox);\n            const center = centerOf(rect);\n            let corner;\n            if (cosRotatedBound > 0 && sinRotatedBound > 0) { // SE\n                const rotatedBoundTopLeft = rotatePoint(\n                    Point(boundingBox.left, boundingBox.top),\n                    rad(boundingBox.rotation),\n                    rotationOrigin\n                );\n                corner = rotatedBoundTopLeft;\n            } else if (cosRotatedBound < 0 && sinRotatedBound < 0) { // NW\n                const rotatedBoundBottomRight = rotatePoint(\n                    Point(boundingBox.left + boundingBox.width, boundingBox.top + boundingBox.height),\n                    rad(boundingBox.rotation),\n                    rotationOrigin\n                );\n                corner = rotatedBoundBottomRight;\n            } else if (cosRotatedBound < 0 && sinRotatedBound > 0) { // SW\n                const rotatedBoundTopRight = rotatePoint(\n                    Point(boundingBox.left + boundingBox.width, boundingBox.top),\n                    rad(boundingBox.rotation),\n                    rotationOrigin\n                );\n                corner = rotatedBoundTopRight;\n            } else { // NE\n                const rotatedBoundBottomLeft = rotatePoint(\n                    Point(boundingBox.left, boundingBox.top + boundingBox.height),\n                    rad(boundingBox.rotation),\n                    rotationOrigin\n                );\n                corner = rotatedBoundBottomLeft;\n            }\n            const distanceFromCenterToCorner = distance(center, corner);\n            let distanceTraveled = distanceFromCenterToCorner * boundingBoxSizeChange.width * -1;\n            //If the travel distance is bigger then initial distance we have reached the min allowed of resize.\n            if (distanceFromCenterToCorner - distanceTraveled < 0) {\n                distanceTraveled = distanceFromCenterToCorner;\n            }\n            const angle = angleOfVector(center, corner);\n            newCenter = movePoint(center, angle, distanceTraveled);\n        } else {\n            const realMovement = rectAngle !== 0 ? rotatePoint(realSizeChange, rectAngle) : realSizeChange;\n            const newOrigin = proportional ?\n                rectTransformOrigin :\n                Point(rectTransformOrigin.x + realMovement.x / 2, rectTransformOrigin.y + realMovement.y / 2);\n            newCenter = rotatePoint(newOrigin, deltaRotation, rotationOrigin);\n        }\n        newRect.left = newCenter.x - newRect.width / 2;\n        newRect.top = newCenter.y - newRect.height / 2;\n    }\n\n    let rotate = rect.rotation + deg(deltaRotation);\n    if (snap && action & ROTATE && !(action & RESIZE)) {\n        rotate = snapValue(rotate, 15, 5);\n    }\n\n    if (isMultiSelect && deltaRotation !== 0) {\n        const {x, y} = rotatePoint(\n            centerOf(newRect),\n            deltaRotation,\n            rotationOrigin\n        );\n\n        newRect.left = x - newRect.width / 2;\n        newRect.top = y - newRect.height / 2;\n    }\n\n    newRect.rotation = minifyRotation(rotate);\n    return result;\n}\n","'use strict';\nvar toInteger = require('../internals/to-integer');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `String.prototype.repeat` method implementation\n// https://tc39.github.io/ecma262/#sec-string.prototype.repeat\nmodule.exports = ''.repeat || function repeat(count) {\n  var str = String(requireObjectCoercible(this));\n  var result = '';\n  var n = toInteger(count);\n  if (n < 0 || n == Infinity) throw RangeError('Wrong number of repetitions');\n  for (;n > 0; (n >>>= 1) && (str += str)) if (n & 1) result += str;\n  return result;\n};\n","var v1 = require('./v1');\nvar v4 = require('./v4');\n\nvar uuid = v4;\nuuid.v1 = v1;\nuuid.v4 = v4;\n\nmodule.exports = uuid;\n","\nvar content = require(\"!!../../../../../node_modules/css-loader/index.js?modules=false!./InfographicEditor.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../../node_modules/css-loader/index.js?modules=false!./InfographicEditor.css\", function() {\n\t\tvar newContent = require(\"!!../../../../../node_modules/css-loader/index.js?modules=false!./InfographicEditor.css\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar isRegExp = require('../internals/is-regexp');\nvar anObject = require('../internals/an-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar speciesConstructor = require('../internals/species-constructor');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar toLength = require('../internals/to-length');\nvar callRegExpExec = require('../internals/regexp-exec-abstract');\nvar regexpExec = require('../internals/regexp-exec');\nvar fails = require('../internals/fails');\n\nvar arrayPush = [].push;\nvar min = Math.min;\nvar MAX_UINT32 = 0xFFFFFFFF;\n\n// babel-minify transpiles RegExp('x', 'y') -> /x/y and it causes SyntaxError\nvar SUPPORTS_Y = !fails(function () { return !RegExp(MAX_UINT32, 'y'); });\n\n// @@split logic\nfixRegExpWellKnownSymbolLogic('split', 2, function (SPLIT, nativeSplit, maybeCallNative) {\n  var internalSplit;\n  if (\n    'abbc'.split(/(b)*/)[1] == 'c' ||\n    'test'.split(/(?:)/, -1).length != 4 ||\n    'ab'.split(/(?:ab)*/).length != 2 ||\n    '.'.split(/(.?)(.?)/).length != 4 ||\n    '.'.split(/()()/).length > 1 ||\n    ''.split(/.?/).length\n  ) {\n    // based on es5-shim implementation, need to rework it\n    internalSplit = function (separator, limit) {\n      var string = String(requireObjectCoercible(this));\n      var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n      if (lim === 0) return [];\n      if (separator === undefined) return [string];\n      // If `separator` is not a regex, use native split\n      if (!isRegExp(separator)) {\n        return nativeSplit.call(string, separator, lim);\n      }\n      var output = [];\n      var flags = (separator.ignoreCase ? 'i' : '') +\n                  (separator.multiline ? 'm' : '') +\n                  (separator.unicode ? 'u' : '') +\n                  (separator.sticky ? 'y' : '');\n      var lastLastIndex = 0;\n      // Make `global` and avoid `lastIndex` issues by working with a copy\n      var separatorCopy = new RegExp(separator.source, flags + 'g');\n      var match, lastIndex, lastLength;\n      while (match = regexpExec.call(separatorCopy, string)) {\n        lastIndex = separatorCopy.lastIndex;\n        if (lastIndex > lastLastIndex) {\n          output.push(string.slice(lastLastIndex, match.index));\n          if (match.length > 1 && match.index < string.length) arrayPush.apply(output, match.slice(1));\n          lastLength = match[0].length;\n          lastLastIndex = lastIndex;\n          if (output.length >= lim) break;\n        }\n        if (separatorCopy.lastIndex === match.index) separatorCopy.lastIndex++; // Avoid an infinite loop\n      }\n      if (lastLastIndex === string.length) {\n        if (lastLength || !separatorCopy.test('')) output.push('');\n      } else output.push(string.slice(lastLastIndex));\n      return output.length > lim ? output.slice(0, lim) : output;\n    };\n  // Chakra, V8\n  } else if ('0'.split(undefined, 0).length) {\n    internalSplit = function (separator, limit) {\n      return separator === undefined && limit === 0 ? [] : nativeSplit.call(this, separator, limit);\n    };\n  } else internalSplit = nativeSplit;\n\n  return [\n    // `String.prototype.split` method\n    // https://tc39.github.io/ecma262/#sec-string.prototype.split\n    function split(separator, limit) {\n      var O = requireObjectCoercible(this);\n      var splitter = separator == undefined ? undefined : separator[SPLIT];\n      return splitter !== undefined\n        ? splitter.call(separator, O, limit)\n        : internalSplit.call(String(O), separator, limit);\n    },\n    // `RegExp.prototype[@@split]` method\n    // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@split\n    //\n    // NOTE: This cannot be properly polyfilled in engines that don't support\n    // the 'y' flag.\n    function (regexp, limit) {\n      var res = maybeCallNative(internalSplit, regexp, this, limit, internalSplit !== nativeSplit);\n      if (res.done) return res.value;\n\n      var rx = anObject(regexp);\n      var S = String(this);\n      var C = speciesConstructor(rx, RegExp);\n\n      var unicodeMatching = rx.unicode;\n      var flags = (rx.ignoreCase ? 'i' : '') +\n                  (rx.multiline ? 'm' : '') +\n                  (rx.unicode ? 'u' : '') +\n                  (SUPPORTS_Y ? 'y' : 'g');\n\n      // ^(? + rx + ) is needed, in combination with some S slicing, to\n      // simulate the 'y' flag.\n      var splitter = new C(SUPPORTS_Y ? rx : '^(?:' + rx.source + ')', flags);\n      var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n      if (lim === 0) return [];\n      if (S.length === 0) return callRegExpExec(splitter, S) === null ? [S] : [];\n      var p = 0;\n      var q = 0;\n      var A = [];\n      while (q < S.length) {\n        splitter.lastIndex = SUPPORTS_Y ? q : 0;\n        var z = callRegExpExec(splitter, SUPPORTS_Y ? S : S.slice(q));\n        var e;\n        if (\n          z === null ||\n          (e = min(toLength(splitter.lastIndex + (SUPPORTS_Y ? 0 : q)), S.length)) === p\n        ) {\n          q = advanceStringIndex(S, q, unicodeMatching);\n        } else {\n          A.push(S.slice(p, q));\n          if (A.length === lim) return A;\n          for (var i = 1; i <= z.length - 1; i++) {\n            A.push(z[i]);\n            if (A.length === lim) return A;\n          }\n          q = p = e;\n        }\n      }\n      A.push(S.slice(p));\n      return A;\n    }\n  ];\n}, !SUPPORTS_Y);\n","// `SameValue` abstract operation\n// https://tc39.github.io/ecma262/#sec-samevalue\nmodule.exports = Object.is || function is(x, y) {\n  // eslint-disable-next-line no-self-compare\n  return x === y ? x !== 0 || 1 / x === 1 / y : x != x && y != y;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar FORCED = require('../internals/forced-object-prototype-accessors-methods');\nvar toObject = require('../internals/to-object');\nvar aFunction = require('../internals/a-function');\nvar definePropertyModule = require('../internals/object-define-property');\n\n// `Object.prototype.__defineGetter__` method\n// https://tc39.github.io/ecma262/#sec-object.prototype.__defineGetter__\nif (DESCRIPTORS) {\n  $({ target: 'Object', proto: true, forced: FORCED }, {\n    __defineGetter__: function __defineGetter__(P, getter) {\n      definePropertyModule.f(toObject(this), P, { get: aFunction(getter), enumerable: true, configurable: true });\n    }\n  });\n}\n","var global = require('../internals/global');\nvar task = require('../internals/task');\n\nvar FORCED = !global.setImmediate || !global.clearImmediate;\n\n// http://w3c.github.io/setImmediate/\nrequire('../internals/export')({ global: true, bind: true, enumerable: true, forced: FORCED }, {\n  // `setImmediate` method\n  // http://w3c.github.io/setImmediate/#si-setImmediate\n  setImmediate: task.set,\n  // `clearImmediate` method\n  // http://w3c.github.io/setImmediate/#si-clearImmediate\n  clearImmediate: task.clear\n});\n","var $ = require('../internals/export');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\n// `Object.setPrototypeOf` method\n// https://tc39.github.io/ecma262/#sec-object.setprototypeof\n$({ target: 'Object', stat: true }, {\n  setPrototypeOf: setPrototypeOf\n});\n","\"use strict\";\n\nvar isFunction = require(\"../function/is\");\n\nvar classRe = /^\\s*class[\\s{/}]/, functionToString = Function.prototype.toString;\n\nmodule.exports = function (value) {\n\tif (!isFunction(value)) return false;\n\tif (classRe.test(functionToString.call(value))) return false;\n\treturn true;\n};\n","'use strict';\nvar $forEach = require('../internals/array-iteration').forEach;\nvar sloppyArrayMethod = require('../internals/sloppy-array-method');\n\n// `Array.prototype.forEach` method implementation\n// https://tc39.github.io/ecma262/#sec-array.prototype.foreach\nmodule.exports = sloppyArrayMethod('forEach') ? function forEach(callbackfn /* , thisArg */) {\n  return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n} : [].forEach;\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 ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n  function shim(props, propName, componentName, location, propFullName, secret) {\n    if (secret === ReactPropTypesSecret) {\n      // It is still safe when called from React.\n      return;\n    }\n    var err = new Error(\n      'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n      'Use PropTypes.checkPropTypes() to call them. ' +\n      'Read more at http://fb.me/use-check-prop-types'\n    );\n    err.name = 'Invariant Violation';\n    throw err;\n  };\n  shim.isRequired = shim;\n  function getShim() {\n    return shim;\n  };\n  // Important!\n  // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n  var ReactPropTypes = {\n    array: shim,\n    bool: shim,\n    func: shim,\n    number: shim,\n    object: shim,\n    string: shim,\n    symbol: shim,\n\n    any: shim,\n    arrayOf: getShim,\n    element: shim,\n    elementType: shim,\n    instanceOf: getShim,\n    node: shim,\n    objectOf: getShim,\n    oneOf: getShim,\n    oneOfType: getShim,\n    shape: getShim,\n    exact: getShim,\n\n    checkPropTypes: emptyFunctionWithReset,\n    resetWarningCache: emptyFunction\n  };\n\n  ReactPropTypes.PropTypes = ReactPropTypes;\n\n  return ReactPropTypes;\n};\n","var typedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Int32Array` constructor\n// https://tc39.github.io/ecma262/#sec-typedarray-objects\ntypedArrayConstructor('Int32', 4, function (init) {\n  return function Int32Array(data, byteOffset, length) {\n    return init(this, data, byteOffset, length);\n  };\n});\n","'use strict';\nvar toObject = require('../internals/to-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toLength = require('../internals/to-length');\n\nvar min = Math.min;\n\n// `Array.prototype.copyWithin` method implementation\n// https://tc39.github.io/ecma262/#sec-array.prototype.copywithin\nmodule.exports = [].copyWithin || function copyWithin(target /* = 0 */, start /* = 0, end = @length */) {\n  var O = toObject(this);\n  var len = toLength(O.length);\n  var to = toAbsoluteIndex(target, len);\n  var from = toAbsoluteIndex(start, len);\n  var end = arguments.length > 2 ? arguments[2] : undefined;\n  var count = min((end === undefined ? len : toAbsoluteIndex(end, len)) - from, len - to);\n  var inc = 1;\n  if (from < to && to < from + count) {\n    inc = -1;\n    from += count - 1;\n    to += count - 1;\n  }\n  while (count-- > 0) {\n    if (from in O) O[to] = O[from];\n    else delete O[to];\n    to += inc;\n    from += inc;\n  } return O;\n};\n","import i18n from 'i18next';\n\nif (window.localesConfig) {\n    // When updating config, please do not forget to update also setup.js in backend\n    i18n.init({\n        useCookie: false,\n        interpolation: {\n            prefix: '%{',\n            suffix: '}',\n            escapeValue: false,\n        },\n\n        // localesConfig set via assets.js:localesMapping\n        fallbackLng: window.localesConfig.fallback,\n        lng: window.localesConfig.language,\n        resources: window.localesConfig.resources,\n        initImmediate: false,\n    });\n}\n","\"use strict\";\n\nmodule.exports = function () {\n\tvar assign = Object.assign, obj;\n\tif (typeof assign !== \"function\") return false;\n\tobj = { foo: \"raz\" };\n\tassign(obj, { bar: \"dwa\" }, { trzy: \"trzy\" });\n\treturn obj.foo + obj.bar + obj.trzy === \"razdwatrzy\";\n};\n","var classof = require('./classof-raw');\nvar regexpExec = require('./regexp-exec');\n\n// `RegExpExec` abstract operation\n// https://tc39.github.io/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n  var exec = R.exec;\n  if (typeof exec === 'function') {\n    var result = exec.call(R, S);\n    if (typeof result !== 'object') {\n      throw TypeError('RegExp exec method returned something other than an Object or null');\n    }\n    return result;\n  }\n\n  if (classof(R) !== 'RegExp') {\n    throw TypeError('RegExp#exec called on incompatible receiver');\n  }\n\n  return regexpExec.call(R, S);\n};\n\n","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar forEach = require('../internals/array-for-each');\nvar hide = require('../internals/hide');\n\nfor (var COLLECTION_NAME in DOMIterables) {\n  var Collection = global[COLLECTION_NAME];\n  var CollectionPrototype = Collection && Collection.prototype;\n  // some Chrome versions have non-configurable methods on DOMTokenList\n  if (CollectionPrototype && CollectionPrototype.forEach !== forEach) try {\n    hide(CollectionPrototype, 'forEach', forEach);\n  } catch (error) {\n    CollectionPrototype.forEach = forEach;\n  }\n}\n","import define, {extend} from \"./define\";\nimport {Color, rgbConvert, Rgb, darker, brighter} from \"./color\";\nimport {deg2rad, rad2deg} from \"./math\";\n\nvar A = -0.14861,\n    B = +1.78277,\n    C = -0.29227,\n    D = -0.90649,\n    E = +1.97294,\n    ED = E * D,\n    EB = E * B,\n    BC_DA = B * C - D * A;\n\nfunction cubehelixConvert(o) {\n  if (o instanceof Cubehelix) return new Cubehelix(o.h, o.s, o.l, o.opacity);\n  if (!(o instanceof Rgb)) o = rgbConvert(o);\n  var r = o.r / 255,\n      g = o.g / 255,\n      b = o.b / 255,\n      l = (BC_DA * b + ED * r - EB * g) / (BC_DA + ED - EB),\n      bl = b - l,\n      k = (E * (g - l) - C * bl) / D,\n      s = Math.sqrt(k * k + bl * bl) / (E * l * (1 - l)), // NaN if l=0 or l=1\n      h = s ? Math.atan2(k, bl) * rad2deg - 120 : NaN;\n  return new Cubehelix(h < 0 ? h + 360 : h, s, l, o.opacity);\n}\n\nexport default function cubehelix(h, s, l, opacity) {\n  return arguments.length === 1 ? cubehelixConvert(h) : new Cubehelix(h, s, l, opacity == null ? 1 : opacity);\n}\n\nexport function Cubehelix(h, s, l, opacity) {\n  this.h = +h;\n  this.s = +s;\n  this.l = +l;\n  this.opacity = +opacity;\n}\n\ndefine(Cubehelix, cubehelix, extend(Color, {\n  brighter: function(k) {\n    k = k == null ? brighter : Math.pow(brighter, k);\n    return new Cubehelix(this.h, this.s, this.l * k, this.opacity);\n  },\n  darker: function(k) {\n    k = k == null ? darker : Math.pow(darker, k);\n    return new Cubehelix(this.h, this.s, this.l * k, this.opacity);\n  },\n  rgb: function() {\n    var h = isNaN(this.h) ? 0 : (this.h + 120) * deg2rad,\n        l = +this.l,\n        a = isNaN(this.s) ? 0 : this.s * l * (1 - l),\n        cosh = Math.cos(h),\n        sinh = Math.sin(h);\n    return new Rgb(\n      255 * (l + a * (A * cosh + B * sinh)),\n      255 * (l + a * (C * cosh + D * sinh)),\n      255 * (l + a * (E * cosh)),\n      this.opacity\n    );\n  }\n}));\n","'use strict';\n\nvar enhanceError = require('./enhanceError');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n  var error = new Error(message);\n  return enhanceError(error, config, code, request, response);\n};\n","import define, {extend} from \"./define\";\n\nexport function Color() {}\n\nexport var darker = 0.7;\nexport var brighter = 1 / darker;\n\nvar reI = \"\\\\s*([+-]?\\\\d+)\\\\s*\",\n    reN = \"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",\n    reP = \"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",\n    reHex3 = /^#([0-9a-f]{3})$/,\n    reHex6 = /^#([0-9a-f]{6})$/,\n    reRgbInteger = new RegExp(\"^rgb\\\\(\" + [reI, reI, reI] + \"\\\\)$\"),\n    reRgbPercent = new RegExp(\"^rgb\\\\(\" + [reP, reP, reP] + \"\\\\)$\"),\n    reRgbaInteger = new RegExp(\"^rgba\\\\(\" + [reI, reI, reI, reN] + \"\\\\)$\"),\n    reRgbaPercent = new RegExp(\"^rgba\\\\(\" + [reP, reP, reP, reN] + \"\\\\)$\"),\n    reHslPercent = new RegExp(\"^hsl\\\\(\" + [reN, reP, reP] + \"\\\\)$\"),\n    reHslaPercent = new RegExp(\"^hsla\\\\(\" + [reN, reP, reP, reN] + \"\\\\)$\");\n\nvar named = {\n  aliceblue: 0xf0f8ff,\n  antiquewhite: 0xfaebd7,\n  aqua: 0x00ffff,\n  aquamarine: 0x7fffd4,\n  azure: 0xf0ffff,\n  beige: 0xf5f5dc,\n  bisque: 0xffe4c4,\n  black: 0x000000,\n  blanchedalmond: 0xffebcd,\n  blue: 0x0000ff,\n  blueviolet: 0x8a2be2,\n  brown: 0xa52a2a,\n  burlywood: 0xdeb887,\n  cadetblue: 0x5f9ea0,\n  chartreuse: 0x7fff00,\n  chocolate: 0xd2691e,\n  coral: 0xff7f50,\n  cornflowerblue: 0x6495ed,\n  cornsilk: 0xfff8dc,\n  crimson: 0xdc143c,\n  cyan: 0x00ffff,\n  darkblue: 0x00008b,\n  darkcyan: 0x008b8b,\n  darkgoldenrod: 0xb8860b,\n  darkgray: 0xa9a9a9,\n  darkgreen: 0x006400,\n  darkgrey: 0xa9a9a9,\n  darkkhaki: 0xbdb76b,\n  darkmagenta: 0x8b008b,\n  darkolivegreen: 0x556b2f,\n  darkorange: 0xff8c00,\n  darkorchid: 0x9932cc,\n  darkred: 0x8b0000,\n  darksalmon: 0xe9967a,\n  darkseagreen: 0x8fbc8f,\n  darkslateblue: 0x483d8b,\n  darkslategray: 0x2f4f4f,\n  darkslategrey: 0x2f4f4f,\n  darkturquoise: 0x00ced1,\n  darkviolet: 0x9400d3,\n  deeppink: 0xff1493,\n  deepskyblue: 0x00bfff,\n  dimgray: 0x696969,\n  dimgrey: 0x696969,\n  dodgerblue: 0x1e90ff,\n  firebrick: 0xb22222,\n  floralwhite: 0xfffaf0,\n  forestgreen: 0x228b22,\n  fuchsia: 0xff00ff,\n  gainsboro: 0xdcdcdc,\n  ghostwhite: 0xf8f8ff,\n  gold: 0xffd700,\n  goldenrod: 0xdaa520,\n  gray: 0x808080,\n  green: 0x008000,\n  greenyellow: 0xadff2f,\n  grey: 0x808080,\n  honeydew: 0xf0fff0,\n  hotpink: 0xff69b4,\n  indianred: 0xcd5c5c,\n  indigo: 0x4b0082,\n  ivory: 0xfffff0,\n  khaki: 0xf0e68c,\n  lavender: 0xe6e6fa,\n  lavenderblush: 0xfff0f5,\n  lawngreen: 0x7cfc00,\n  lemonchiffon: 0xfffacd,\n  lightblue: 0xadd8e6,\n  lightcoral: 0xf08080,\n  lightcyan: 0xe0ffff,\n  lightgoldenrodyellow: 0xfafad2,\n  lightgray: 0xd3d3d3,\n  lightgreen: 0x90ee90,\n  lightgrey: 0xd3d3d3,\n  lightpink: 0xffb6c1,\n  lightsalmon: 0xffa07a,\n  lightseagreen: 0x20b2aa,\n  lightskyblue: 0x87cefa,\n  lightslategray: 0x778899,\n  lightslategrey: 0x778899,\n  lightsteelblue: 0xb0c4de,\n  lightyellow: 0xffffe0,\n  lime: 0x00ff00,\n  limegreen: 0x32cd32,\n  linen: 0xfaf0e6,\n  magenta: 0xff00ff,\n  maroon: 0x800000,\n  mediumaquamarine: 0x66cdaa,\n  mediumblue: 0x0000cd,\n  mediumorchid: 0xba55d3,\n  mediumpurple: 0x9370db,\n  mediumseagreen: 0x3cb371,\n  mediumslateblue: 0x7b68ee,\n  mediumspringgreen: 0x00fa9a,\n  mediumturquoise: 0x48d1cc,\n  mediumvioletred: 0xc71585,\n  midnightblue: 0x191970,\n  mintcream: 0xf5fffa,\n  mistyrose: 0xffe4e1,\n  moccasin: 0xffe4b5,\n  navajowhite: 0xffdead,\n  navy: 0x000080,\n  oldlace: 0xfdf5e6,\n  olive: 0x808000,\n  olivedrab: 0x6b8e23,\n  orange: 0xffa500,\n  orangered: 0xff4500,\n  orchid: 0xda70d6,\n  palegoldenrod: 0xeee8aa,\n  palegreen: 0x98fb98,\n  paleturquoise: 0xafeeee,\n  palevioletred: 0xdb7093,\n  papayawhip: 0xffefd5,\n  peachpuff: 0xffdab9,\n  peru: 0xcd853f,\n  pink: 0xffc0cb,\n  plum: 0xdda0dd,\n  powderblue: 0xb0e0e6,\n  purple: 0x800080,\n  rebeccapurple: 0x663399,\n  red: 0xff0000,\n  rosybrown: 0xbc8f8f,\n  royalblue: 0x4169e1,\n  saddlebrown: 0x8b4513,\n  salmon: 0xfa8072,\n  sandybrown: 0xf4a460,\n  seagreen: 0x2e8b57,\n  seashell: 0xfff5ee,\n  sienna: 0xa0522d,\n  silver: 0xc0c0c0,\n  skyblue: 0x87ceeb,\n  slateblue: 0x6a5acd,\n  slategray: 0x708090,\n  slategrey: 0x708090,\n  snow: 0xfffafa,\n  springgreen: 0x00ff7f,\n  steelblue: 0x4682b4,\n  tan: 0xd2b48c,\n  teal: 0x008080,\n  thistle: 0xd8bfd8,\n  tomato: 0xff6347,\n  turquoise: 0x40e0d0,\n  violet: 0xee82ee,\n  wheat: 0xf5deb3,\n  white: 0xffffff,\n  whitesmoke: 0xf5f5f5,\n  yellow: 0xffff00,\n  yellowgreen: 0x9acd32\n};\n\ndefine(Color, color, {\n  displayable: function() {\n    return this.rgb().displayable();\n  },\n  hex: function() {\n    return this.rgb().hex();\n  },\n  toString: function() {\n    return this.rgb() + \"\";\n  }\n});\n\nexport default function color(format) {\n  var m;\n  format = (format + \"\").trim().toLowerCase();\n  return (m = reHex3.exec(format)) ? (m = parseInt(m[1], 16), new Rgb((m >> 8 & 0xf) | (m >> 4 & 0x0f0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1)) // #f00\n      : (m = reHex6.exec(format)) ? rgbn(parseInt(m[1], 16)) // #ff0000\n      : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)\n      : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)\n      : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)\n      : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)\n      : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)\n      : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)\n      : named.hasOwnProperty(format) ? rgbn(named[format])\n      : format === \"transparent\" ? new Rgb(NaN, NaN, NaN, 0)\n      : null;\n}\n\nfunction rgbn(n) {\n  return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);\n}\n\nfunction rgba(r, g, b, a) {\n  if (a <= 0) r = g = b = NaN;\n  return new Rgb(r, g, b, a);\n}\n\nexport function rgbConvert(o) {\n  if (!(o instanceof Color)) o = color(o);\n  if (!o) return new Rgb;\n  o = o.rgb();\n  return new Rgb(o.r, o.g, o.b, o.opacity);\n}\n\nexport function rgb(r, g, b, opacity) {\n  return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\n}\n\nexport function Rgb(r, g, b, opacity) {\n  this.r = +r;\n  this.g = +g;\n  this.b = +b;\n  this.opacity = +opacity;\n}\n\ndefine(Rgb, rgb, extend(Color, {\n  brighter: function(k) {\n    k = k == null ? brighter : Math.pow(brighter, k);\n    return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n  },\n  darker: function(k) {\n    k = k == null ? darker : Math.pow(darker, k);\n    return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n  },\n  rgb: function() {\n    return this;\n  },\n  displayable: function() {\n    return (0 <= this.r && this.r <= 255)\n        && (0 <= this.g && this.g <= 255)\n        && (0 <= this.b && this.b <= 255)\n        && (0 <= this.opacity && this.opacity <= 1);\n  },\n  hex: function() {\n    return \"#\" + hex(this.r) + hex(this.g) + hex(this.b);\n  },\n  toString: function() {\n    var a = this.opacity; a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));\n    return (a === 1 ? \"rgb(\" : \"rgba(\")\n        + Math.max(0, Math.min(255, Math.round(this.r) || 0)) + \", \"\n        + Math.max(0, Math.min(255, Math.round(this.g) || 0)) + \", \"\n        + Math.max(0, Math.min(255, Math.round(this.b) || 0))\n        + (a === 1 ? \")\" : \", \" + a + \")\");\n  }\n}));\n\nfunction hex(value) {\n  value = Math.max(0, Math.min(255, Math.round(value) || 0));\n  return (value < 16 ? \"0\" : \"\") + value.toString(16);\n}\n\nfunction hsla(h, s, l, a) {\n  if (a <= 0) h = s = l = NaN;\n  else if (l <= 0 || l >= 1) h = s = NaN;\n  else if (s <= 0) h = NaN;\n  return new Hsl(h, s, l, a);\n}\n\nexport function hslConvert(o) {\n  if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);\n  if (!(o instanceof Color)) o = color(o);\n  if (!o) return new Hsl;\n  if (o instanceof Hsl) return o;\n  o = o.rgb();\n  var r = o.r / 255,\n      g = o.g / 255,\n      b = o.b / 255,\n      min = Math.min(r, g, b),\n      max = Math.max(r, g, b),\n      h = NaN,\n      s = max - min,\n      l = (max + min) / 2;\n  if (s) {\n    if (r === max) h = (g - b) / s + (g < b) * 6;\n    else if (g === max) h = (b - r) / s + 2;\n    else h = (r - g) / s + 4;\n    s /= l < 0.5 ? max + min : 2 - max - min;\n    h *= 60;\n  } else {\n    s = l > 0 && l < 1 ? 0 : h;\n  }\n  return new Hsl(h, s, l, o.opacity);\n}\n\nexport function hsl(h, s, l, opacity) {\n  return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);\n}\n\nfunction Hsl(h, s, l, opacity) {\n  this.h = +h;\n  this.s = +s;\n  this.l = +l;\n  this.opacity = +opacity;\n}\n\ndefine(Hsl, hsl, extend(Color, {\n  brighter: function(k) {\n    k = k == null ? brighter : Math.pow(brighter, k);\n    return new Hsl(this.h, this.s, this.l * k, this.opacity);\n  },\n  darker: function(k) {\n    k = k == null ? darker : Math.pow(darker, k);\n    return new Hsl(this.h, this.s, this.l * k, this.opacity);\n  },\n  rgb: function() {\n    var h = this.h % 360 + (this.h < 0) * 360,\n        s = isNaN(h) || isNaN(this.s) ? 0 : this.s,\n        l = this.l,\n        m2 = l + (l < 0.5 ? l : 1 - l) * s,\n        m1 = 2 * l - m2;\n    return new Rgb(\n      hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),\n      hsl2rgb(h, m1, m2),\n      hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),\n      this.opacity\n    );\n  },\n  displayable: function() {\n    return (0 <= this.s && this.s <= 1 || isNaN(this.s))\n        && (0 <= this.l && this.l <= 1)\n        && (0 <= this.opacity && this.opacity <= 1);\n  }\n}));\n\n/* From FvD 13.37, CSS Color Module Level 3 */\nfunction hsl2rgb(h, m1, m2) {\n  return (h < 60 ? m1 + (m2 - m1) * h / 60\n      : h < 180 ? m2\n      : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60\n      : m1) * 255;\n}\n","/* eslint-disable no-new */\nvar global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar NATIVE_ARRAY_BUFFER_VIEWS = require('../internals/array-buffer-view-core').NATIVE_ARRAY_BUFFER_VIEWS;\n\nvar ArrayBuffer = global.ArrayBuffer;\nvar Int8Array = global.Int8Array;\n\nmodule.exports = !NATIVE_ARRAY_BUFFER_VIEWS || !fails(function () {\n  Int8Array(1);\n}) || !fails(function () {\n  new Int8Array(-1);\n}) || !checkCorrectnessOfIteration(function (iterable) {\n  new Int8Array();\n  new Int8Array(null);\n  new Int8Array(1.5);\n  new Int8Array(iterable);\n}, true) || fails(function () {\n  // Safari 11 bug\n  return new Int8Array(new ArrayBuffer(2), 1, undefined).length !== 1;\n});\n","import _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\n\nvar _leaveRenders, _enterRenders;\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { ENTERED, ENTERING, EXITING } from './Transition';\nimport TransitionGroupContext from './TransitionGroupContext';\n\nfunction areChildrenDifferent(oldChildren, newChildren) {\n  if (oldChildren === newChildren) return false;\n\n  if (React.isValidElement(oldChildren) && React.isValidElement(newChildren) && oldChildren.key != null && oldChildren.key === newChildren.key) {\n    return false;\n  }\n\n  return true;\n}\n/**\n * Enum of modes for SwitchTransition component\n * @enum { string }\n */\n\n\nexport var modes = {\n  out: 'out-in',\n  in: 'in-out'\n};\n\nvar callHook = function callHook(element, name, cb) {\n  return function () {\n    var _element$props;\n\n    element.props[name] && (_element$props = element.props)[name].apply(_element$props, arguments);\n    cb();\n  };\n};\n\nvar leaveRenders = (_leaveRenders = {}, _leaveRenders[modes.out] = function (_ref) {\n  var current = _ref.current,\n      changeState = _ref.changeState;\n  return React.cloneElement(current, {\n    in: false,\n    onExited: callHook(current, 'onExited', function () {\n      changeState(ENTERING, null);\n    })\n  });\n}, _leaveRenders[modes.in] = function (_ref2) {\n  var current = _ref2.current,\n      changeState = _ref2.changeState,\n      children = _ref2.children;\n  return [current, React.cloneElement(children, {\n    in: true,\n    onEntered: callHook(children, 'onEntered', function () {\n      changeState(ENTERING);\n    })\n  })];\n}, _leaveRenders);\nvar enterRenders = (_enterRenders = {}, _enterRenders[modes.out] = function (_ref3) {\n  var children = _ref3.children,\n      changeState = _ref3.changeState;\n  return React.cloneElement(children, {\n    in: true,\n    onEntered: callHook(children, 'onEntered', function () {\n      changeState(ENTERED, React.cloneElement(children, {\n        in: true\n      }));\n    })\n  });\n}, _enterRenders[modes.in] = function (_ref4) {\n  var current = _ref4.current,\n      children = _ref4.children,\n      changeState = _ref4.changeState;\n  return [React.cloneElement(current, {\n    in: false,\n    onExited: callHook(current, 'onExited', function () {\n      changeState(ENTERED, React.cloneElement(children, {\n        in: true\n      }));\n    })\n  }), React.cloneElement(children, {\n    in: true\n  })];\n}, _enterRenders);\n/**\n * A transition component inspired by the [vue transition modes](https://vuejs.org/v2/guide/transitions.html#Transition-Modes).\n * You can use it when you want to control the render between state transitions.\n * Based on the selected mode and the child's key which is the `Transition` or `CSSTransition` component, the `SwitchTransition` makes a consistent transition between them.\n *\n * If the `out-in` mode is selected, the `SwitchTransition` waits until the old child leaves and then inserts a new child.\n * If the `in-out` mode is selected, the `SwitchTransition` inserts a new child first, waits for the new child to enter and then removes the old child\n *\n * ```jsx\n *\n * function App() {\n *  const [state, setState] = useState(false);\n *  return (\n *    <SwitchTransition>\n *      <FadeTransition key={state ? \"Goodbye, world!\" : \"Hello, world!\"}\n *        addEndListener={(node, done) => node.addEventListener(\"transitionend\", done, false)}\n *        classNames='fade' >\n *        <button onClick={() => setState(state => !state)}>\n *          {state ? \"Goodbye, world!\" : \"Hello, world!\"}\n *        </button>\n *      </FadeTransition>\n *    </SwitchTransition>\n *  )\n * }\n * ```\n */\n\nvar SwitchTransition =\n/*#__PURE__*/\nfunction (_React$Component) {\n  _inheritsLoose(SwitchTransition, _React$Component);\n\n  function SwitchTransition() {\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.state = {\n      status: ENTERED,\n      current: null\n    };\n    _this.appeared = false;\n\n    _this.changeState = function (status, current) {\n      if (current === void 0) {\n        current = _this.state.current;\n      }\n\n      _this.setState({\n        status: status,\n        current: current\n      });\n    };\n\n    return _this;\n  }\n\n  var _proto = SwitchTransition.prototype;\n\n  _proto.componentDidMount = function componentDidMount() {\n    this.appeared = true;\n  };\n\n  SwitchTransition.getDerivedStateFromProps = function getDerivedStateFromProps(props, state) {\n    if (props.children == null) {\n      return {\n        current: null\n      };\n    }\n\n    if (state.status === ENTERING && props.mode === modes.in) {\n      return {\n        status: ENTERING\n      };\n    }\n\n    if (state.current && areChildrenDifferent(state.current, props.children)) {\n      return {\n        status: EXITING\n      };\n    }\n\n    return {\n      current: React.cloneElement(props.children, {\n        in: true\n      })\n    };\n  };\n\n  _proto.render = function render() {\n    var _this$props = this.props,\n        children = _this$props.children,\n        mode = _this$props.mode,\n        _this$state = this.state,\n        status = _this$state.status,\n        current = _this$state.current;\n    var data = {\n      children: children,\n      current: current,\n      changeState: this.changeState,\n      status: status\n    };\n    var component;\n\n    switch (status) {\n      case ENTERING:\n        component = enterRenders[mode](data);\n        break;\n\n      case EXITING:\n        component = leaveRenders[mode](data);\n        break;\n\n      case ENTERED:\n        component = current;\n    }\n\n    return React.createElement(TransitionGroupContext.Provider, {\n      value: {\n        isMounting: !this.appeared\n      }\n    }, component);\n  };\n\n  return SwitchTransition;\n}(React.Component);\n\nSwitchTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  /**\n   * Transition modes.\n   * `out-in`: Current element transitions out first, then when complete, the new element transitions in.\n   * `in-out: New element transitions in first, then when complete, the current element transitions out.`\n   *\n   * @type {'out-in'|'in-out'}\n   */\n  mode: PropTypes.oneOf([modes.in, modes.out]),\n\n  /**\n   * Any `Transition` or `CSSTransition` component\n   */\n  children: PropTypes.oneOfType([PropTypes.element.isRequired])\n} : {};\nSwitchTransition.defaultProps = {\n  mode: modes.out\n};\nexport default SwitchTransition;","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar toLength = require('../internals/to-length');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar speciesConstructor = require('../internals/species-constructor');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\n\n// `%TypedArray%.prototype.subarray` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.subarray\nArrayBufferViewCore.exportProto('subarray', function subarray(begin, end) {\n  var O = aTypedArray(this);\n  var length = O.length;\n  var beginIndex = toAbsoluteIndex(begin, length);\n  return new (speciesConstructor(O, O.constructor))(\n    O.buffer,\n    O.byteOffset + beginIndex * O.BYTES_PER_ELEMENT,\n    toLength((end === undefined ? length : toAbsoluteIndex(end, length)) - beginIndex)\n  );\n});\n","require('../modules/web.dom-collections.for-each');\nrequire('../modules/web.dom-collections.iterator');\nrequire('../modules/web.immediate');\nrequire('../modules/web.queue-microtask');\nrequire('../modules/web.timers');\nrequire('../modules/web.url');\nrequire('../modules/web.url.to-json');\nrequire('../modules/web.url-search-params');\n\nmodule.exports = require('../internals/path');\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","var $ = require('../internals/export');\nvar ownKeys = require('../internals/own-keys');\n\n// `Reflect.ownKeys` method\n// https://tc39.github.io/ecma262/#sec-reflect.ownkeys\n$({ target: 'Reflect', stat: true }, {\n  ownKeys: ownKeys\n});\n","import {RESET_HANDLE} from '../constants';\nimport Dispatcher from '../../../../app/dispatcher';\n\nexport default function resetHandle() {\n    Dispatcher.dispatch({\n        type: RESET_HANDLE,\n    });\n}\n","var toInteger = require('../internals/to-integer');\n\nmodule.exports = function (it, BYTES) {\n  var offset = toInteger(it);\n  if (offset < 0 || offset % BYTES) throw RangeError('Wrong offset');\n  return offset;\n};\n","\nvar content = require(\"!!../../../../../../../node_modules/css-loader/index.js??ref--5-1!./shape.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../../../../node_modules/css-loader/index.js??ref--5-1!./shape.css\", function() {\n\t\tvar newContent = require(\"!!../../../../../../../node_modules/css-loader/index.js??ref--5-1!./shape.css\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","import {\n    SET_ANIMATION_PREVIEW,\n    UNSET_ANIMATION_PREVIEW,\n} from '../../../store/constants/action-types';\n\nexport const showAnimationPreview = (entityId, animation) => ({\n    type: SET_ANIMATION_PREVIEW,\n    payload: {\n        entityId,\n        animation,\n    },\n});\n\nexport const resetAnimationPreview = (entityId) => ({\n    type: UNSET_ANIMATION_PREVIEW,\n    payload: {entityId},\n});\n\n/** Helper function to force replay the same animation */\nexport function previewAnimation(dispatch, entityId, animation) {\n    dispatch(resetAnimationPreview(entityId));\n    dispatch(showAnimationPreview(entityId, animation));\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/forced-string-html-method');\n\n// `String.prototype.anchor` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.anchor\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('anchor') }, {\n  anchor: function anchor(name) {\n    return createHTML(this, 'a', 'name', name);\n  }\n});\n","\"use strict\";\n\nvar str = \"razdwatrzy\";\n\nmodule.exports = function () {\n\tif (typeof str.contains !== \"function\") return false;\n\treturn str.contains(\"dwa\") === true && str.contains(\"foo\") === false;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/forced-string-html-method');\n\n// `String.prototype.fontsize` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.fontsize\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('fontsize') }, {\n  fontsize: function fontsize(size) {\n    return createHTML(this, 'font', 'size', size);\n  }\n});\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.species` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.species\ndefineWellKnownSymbol('species');\n","module.exports = function (it, Constructor, name) {\n  if (!(it instanceof Constructor)) {\n    throw TypeError('Incorrect ' + (name ? name + ' ' : '') + 'invocation');\n  } return it;\n};\n","\"use strict\";\n\nmodule.exports = function (fn) {\n\tif (typeof fn !== \"function\") throw new TypeError(fn + \" is not a function\");\n\treturn fn;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n  utils.isStandardBrowserEnv() ?\n\n  // Standard browser envs have full support of the APIs needed to test\n  // whether the request URL is of the same origin as current location.\n    (function standardBrowserEnv() {\n      var msie = /(msie|trident)/i.test(navigator.userAgent);\n      var urlParsingNode = document.createElement('a');\n      var originURL;\n\n      /**\n    * Parse a URL to discover it's components\n    *\n    * @param {String} url The URL to be parsed\n    * @returns {Object}\n    */\n      function resolveURL(url) {\n        var href = url;\n\n        if (msie) {\n        // IE needs attribute set twice to normalize properties\n          urlParsingNode.setAttribute('href', href);\n          href = urlParsingNode.href;\n        }\n\n        urlParsingNode.setAttribute('href', href);\n\n        // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n        return {\n          href: urlParsingNode.href,\n          protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n          host: urlParsingNode.host,\n          search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n          hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n          hostname: urlParsingNode.hostname,\n          port: urlParsingNode.port,\n          pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n            urlParsingNode.pathname :\n            '/' + urlParsingNode.pathname\n        };\n      }\n\n      originURL = resolveURL(window.location.href);\n\n      /**\n    * Determine if a URL shares the same origin as the current location\n    *\n    * @param {String} requestURL The URL to test\n    * @returns {boolean} True if URL shares the same origin, otherwise false\n    */\n      return function isURLSameOrigin(requestURL) {\n        var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n        return (parsed.protocol === originURL.protocol &&\n            parsed.host === originURL.host);\n      };\n    })() :\n\n  // Non standard browser envs (web workers, react-native) lack needed support.\n    (function nonStandardBrowserEnv() {\n      return function isURLSameOrigin() {\n        return true;\n      };\n    })()\n);\n","//\n\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);\n\n  // Test for A's keys different from B.\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\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};\n","import PropTypes from 'prop-types';\nimport React, {PureComponent} from 'react';\n\nexport default class LazyViewReact extends PureComponent {\n    static propTypes = {\n        height: PropTypes.oneOfType([\n            PropTypes.number,\n            PropTypes.string,\n        ]),\n        threshold: PropTypes.number,\n        children: PropTypes.node,\n        observer: PropTypes.object,\n        visible: PropTypes.bool,\n    };\n\n    static defaultProps = {\n        height: 0,\n        threshold: 0,\n    };\n\n    state = {\n        visible: false,\n    };\n\n    placeholder = null;\n\n    setPlaceholderRef = (element) => {\n        if (this.placeholder) {\n            this.props.observer.remove(this.placeholder);\n        }\n        this.placeholder = element;\n        if (element) {\n            requestAnimationFrame(() => {\n                this.props.observer.add(this.placeholder, (event) => {\n                    const ratio = this.props.observer.getSmallerObjectVisibilityRatio(event);\n\n                    if (ratio > this.props.threshold) {\n                        this.setState({\n                            visible: true,\n                        });\n                    }\n                });\n            });\n        }\n    };\n\n    render() {\n        if (this.props.visible || this.state.visible) {\n            return this.props.children;\n        }\n        return <div ref={this.setPlaceholderRef} style={{height: this.props.height}}/>;\n    }\n}\n","'use strict';\nvar collection = require('../internals/collection');\nvar collectionWeak = require('../internals/collection-weak');\n\n// `WeakSet` constructor\n// https://tc39.github.io/ecma262/#sec-weakset-constructor\ncollection('WeakSet', function (get) {\n  return function WeakSet() { return get(this, arguments.length ? arguments[0] : undefined); };\n}, collectionWeak, false, true);\n","import React, {PureComponent} from 'react';\nimport PropTypes from 'prop-types';\n\nimport Spinner from '../../widgets/spinner';\n\nexport default class LazyWrapper extends PureComponent {\n    static propTypes = {\n        children: PropTypes.node,\n        withSpinner: PropTypes.bool,\n        observer: PropTypes.shape({\n            observe: PropTypes.func.isRequired,\n            unobserve: PropTypes.func.isRequired,\n        }),\n    };\n\n    static defaultProps = {\n        withSpinner: true,\n    };\n\n    constructor(props) {\n        super(props);\n        this.state = {\n            visible: !props.observer,\n        };\n    }\n\n    updateVisibility = (visible) => {\n        if (visible !== this.state.visible) {\n            this.setState({visible});\n        }\n    };\n\n    setRef = (element) => {\n        if (!this.props.observer) {\n            return;\n        }\n        if (this.wrapper) {\n            this.props.observer.unobserve(this.wrapper);\n        }\n        this.wrapper = element;\n        if (element) {\n            this.props.observer.observe(element, this.updateVisibility);\n        }\n    };\n\n    render() {\n        const {\n            children,\n            withSpinner,\n            // eslint-disable-next-line no-unused-vars\n            observer,\n            ...props\n        } = this.props;\n        return (\n            <div ref={this.setRef} {...props}>\n                {this.state.visible && children}\n                {!this.state.visible && withSpinner &&\n                    <Spinner/>\n                }\n            </div>\n        );\n    }\n}\n","module.exports = function (it) {\n  if (typeof it != 'function') {\n    throw TypeError(String(it) + ' is not a function');\n  } return it;\n};\n","import PropTypes from 'prop-types';\nimport React, {PureComponent} from 'react';\n\nconst SHAPE_TYPES_WITH_POINTER_EVENTS_ON_ALL_SVG = [\n    'calloutCircle',\n];\n\nconst strokeDasharray = (type, width) => {\n    return {\n        dashed: `${2 * width}, ${width}`,\n        dotted: `${width}, ${width}`,\n    }[type];\n};\n\nconst shapeData = {\n    cloud: {\n        width: 258,\n        height: 200,\n        shape: [\n            ['m', [4.123, 40.878]],\n            ['c', [-0.955, -2.821, -1.456, -5.923, -1.456, -9.195, 0, -12.769, 8.059, -23.119, 18, -23.119, 4.369, 0, 8.375, 2, 11.492, 5.325, 2.775, -8.174, 9.122, -13.888, 16.508, -13.888, 6.329, 0, 11.894, 4.195, 15.104, 10.538, 3.128, -3.371, 7.161, -5.4, 11.563, -5.4, 9.941, 0, 18, 10.351, 18, 23.119, 0, 2.924, -0.423, 5.721, -1.194, 8.296, 4.745, 4.163, 7.86, 11.167, 7.86, 19.105, 0, 11.35, -6.367, 20.79, -14.763, 22.747, -2.642, 7.973, -8.669, 13.649, -15.763, 14.051, -3.263, 4.243, -7.796, 6.873, -12.806, 6.873, -6.166, 0, -11.608, -3.983, -14.852, -10.054, -2.681, 2.036, -5.808, 3.204, -9.148, 3.204, -7.365, 0, -13.696, -5.681, -16.483, -13.817, -9.088, -1.17, -16.183, -11.023, -16.183, -23.003, 0.428, -5.556, 1.825, -11.136, 4.12, -14.78]],\n            ['z', []],\n        ],\n    },\n    cylinder: {\n        width: 104,\n        height: 180,\n        shape: [\n            ['m', [0, 88]],\n            ['l', [0, -77]],\n            ['c', [1.138, -6.119, 23.067, -11, 49.953, -11]],\n            ['s', [48.815, 4.881, 49.953, 11]],\n            ['l', [0, 77]],\n            ['c', [0, 6.351, -22.386, 11.5, -50, 11.5]],\n            ['s', [-50, -5.149, -50, -11.5]],\n            ['z', []],\n        ],\n    },\n    calloutCircle: {\n        width: 20,\n        height: 20,\n        shape: [\n            ['m', [50.5, 77]],\n            ['c', [14.636, 0, 26.5, -11.864, 26.5, -26.5]],\n            ['s', [-11.864, -26.5, -26.5, -26.5, -26.5, 11.864, -26.5, 26.5, 11.864, 26.5, 26.5, 26.5]],\n            ['z', []],\n            ['m', [-0.5, 23]],\n            ['c', [-27.614, 0, -50, -22.386, -50, -50]],\n            ['s', [22.386, -50, 50, -50, 50, 22.386, 50, 50, -22.386, 50, -50, 50]],\n            ['z', []],\n        ],\n        forceDimensions: true,\n    },\n    pointer: {\n        width: 20,\n        height: 29,\n        shape: [\n            ['m', [6, 50.401]],\n            ['c', [-3.958, -4.8633, -6.21, -10.454, -6.21, -16.401, 0, -18.778, 22.452, -34, 50.15, -34]],\n            ['s', [50.15, 15.222, 50.15, 34]],\n            ['c', [0, 5.9473, -2.252, 11.538, -6.21, 16.401]],\n            ['c', [-0.565, 0.64459, -1.16, 1.2754, -1.785, 1.8916]],\n            ['l', [-44.132, 46.765]], ['z', []],\n        ],\n        forceDimensions: true,\n    },\n};\n\nfunction getPath(width, height, type, strokeWidth) {\n    width -= strokeWidth;\n    height -= strokeWidth;\n    const data = shapeData[type].shape;\n    let path = `m${strokeWidth / 2}, ${strokeWidth / 2}`;\n    data.forEach(segment => {\n        path += segment[0];\n        for (let i = 0; i < segment[1].length; i += 2) {\n            path += ' ' + segment[1][i] * width / 100;\n            path += ' ' + segment[1][i + 1] * height / 100;\n        }\n    });\n    return path;\n}\n\nexport default class PredefinedPath extends PureComponent {\n    static propTypes = {\n        design: PropTypes.any.isRequired,\n        entity: PropTypes.shape({\n            getProperty: PropTypes.func.isRequired,\n            width: PropTypes.number.isRequired,\n            height: PropTypes.number.isRequired,\n        }).isRequired,\n    };\n\n    static defaultShapeProps = ({type}, options) => {\n        const data = shapeData[type];\n        const width = data.forceDimensions ? data.width : (options.elementWidth || 200);\n        const height = width * data.height / data.width;\n        return {\n            props: {\n                opacity: 1,\n                stroke: '{{strokeColor|#656565}}',\n                strokeWidth: 0,\n                strokeType: 'solid',\n                fill: '{{fillColor|#656565}}',\n                type,\n            },\n            width,\n            height,\n        };\n    };\n\n    render() {\n        const {\n            entity,\n            design,\n        } = this.props;\n\n        const strokeWidth = entity.getProperty('strokeWidth', design);\n\n        const props = {\n            pointerEvents: 'auto',\n            strokeWidth,\n            fill: entity.getProperty('fill', design),\n            stroke: entity.getProperty('stroke', design),\n            strokeDasharray: strokeDasharray(entity.getProperty('strokeType', design), strokeWidth),\n            d: getPath(entity.width, entity.height, entity.getProperty('type'), strokeWidth),\n        };\n\n        const svgProps = {};\n        if (SHAPE_TYPES_WITH_POINTER_EVENTS_ON_ALL_SVG.indexOf(entity.getProperty('type')) !== -1) {\n            svgProps.pointerEvents = 'auto';\n        }\n\n        return (\n            <svg width=\"100%\" height=\"100%\" overflow=\"visible\" preserveAspectRatio=\"none\" strokeMiterlimit=\"60\" {...svgProps}>\n                <path {...props}/>\n            </svg>\n        );\n    }\n}\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n  var called = 0;\n  var iteratorWithReturn = {\n    next: function () {\n      return { done: !!called++ };\n    },\n    'return': function () {\n      SAFE_CLOSING = true;\n    }\n  };\n  iteratorWithReturn[ITERATOR] = function () {\n    return this;\n  };\n  // eslint-disable-next-line no-throw-literal\n  Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n  if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n  var ITERATION_SUPPORT = false;\n  try {\n    var object = {};\n    object[ITERATOR] = function () {\n      return {\n        next: function () {\n          return { done: ITERATION_SUPPORT = true };\n        }\n      };\n    };\n    exec(object);\n  } catch (error) { /* empty */ }\n  return ITERATION_SUPPORT;\n};\n","import adjustCalloutToPaddings from './adjustCalloutToPaddings';\n\nexport default function adjustCalloutOnItemChange(editorState, originalItem, originalPaddings) {\n    const block = editorState.getCurrentContent().getBlock(originalItem.getBlockKey());\n    const calloutEntity = block.getEntity(originalItem.getCalloutKey());\n    const callout = calloutEntity.getCallout();\n    if (!callout) {\n        // when only item of callout is deleted then callout is removed\n        return editorState;\n    }\n\n    const entities = block.getEntitiesByKeys(callout.get('entities'), {orderByKeys: true});\n    const {calloutChanges, contentChanges} = adjustCalloutToPaddings(callout.get('alignment'), entities, originalPaddings);\n\n    if (calloutChanges) {\n        editorState = editorState.setEntity(calloutEntity.getKey(), {props: {callout: calloutChanges}});\n    }\n    Object.keys(contentChanges).forEach(key => {\n        editorState = editorState.setEntity(key, contentChanges[key]);\n    });\n    return editorState;\n}\n","import {createStore, applyMiddleware} from 'redux';\nimport {devToolsEnhancer} from 'redux-devtools-extension/developmentOnly';\nimport createSagaMiddleware from 'redux-saga';\nimport {Map} from 'immutable';\n\nimport {makeRootReducer} from './reducers';\nimport FluxDispatcher from '../app/dispatcher';\n\nconst rootReducer = makeRootReducer();\n\nconst sagaMiddleware = createSagaMiddleware();\n\nconst createStoreWithMiddleware = applyMiddleware(\n    sagaMiddleware,\n)(createStore);\n\nconst store = createStoreWithMiddleware(rootReducer, Map(), devToolsEnhancer());\n\nconst originalDispatch = FluxDispatcher.dispatch;\nFluxDispatcher.dispatch = (action) => {\n    originalDispatch.call(FluxDispatcher, action);\n    const {type, ...other} = action;\n    type && store.dispatch({\n        type,\n        payload: other,\n    });\n};\n\nexport default store;\n\nexport function runSaga(saga) {\n    const task = sagaMiddleware.run(saga);\n    return function cancel() {\n        task.cancel();\n    };\n}\n\n/**\n * adds more reducers to the store.\n * @param {Object[string]Function} reducers - plain JS object containing reducer keys and reducer functions\n */\nlet additionalReducers = {};\nexport function addReducers(reducers) {\n    additionalReducers = {\n        ...additionalReducers,\n        ...reducers,\n    };\n    store.replaceReducer(makeRootReducer(additionalReducers));\n}\n","var $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar defineProperties = require('../internals/object-define-properties');\n\n// `Object.defineProperties` method\n// https://tc39.github.io/ecma262/#sec-object.defineproperties\n$({ target: 'Object', stat: true, forced: !DESCRIPTORS, sham: !DESCRIPTORS }, {\n  defineProperties: defineProperties\n});\n","// `RequireObjectCoercible` abstract operation\n// https://tc39.github.io/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n  if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n  return it;\n};\n","var fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (METHOD_NAME) {\n  return !fails(function () {\n    var array = [];\n    var constructor = array.constructor = {};\n    constructor[SPECIES] = function () {\n      return { foo: 1 };\n    };\n    return array[METHOD_NAME](Boolean).foo !== 1;\n  });\n};\n","exports = module.exports = require(\"../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"._34RzwG7Ce5-NGzJQqTMFaA, .BywsD_lPvhR-352WV0Zos, ._3OW8SpGTRLdoPAu4jZf2tU, ._28b6UeGj0_Yf0autveQB7_, ._17jiRkz36zpIb-gslDebOa {\\n    animation-duration: 240ms;\\n    animation-timing-function: cubic-bezier(0, 0, 0.2, 1);\\n}\\n\\n._34RzwG7Ce5-NGzJQqTMFaA {\\n    animation-name: vyHMcETErt67r7Ux_ek32;\\n}\\n.BywsD_lPvhR-352WV0Zos {\\n    animation-name: _95i36c29lK3ThoiA63vuB;\\n}\\n._3OW8SpGTRLdoPAu4jZf2tU {\\n    animation-name: _26r6OIXSrLD4DaLCbtEfrh;\\n}\\n._28b6UeGj0_Yf0autveQB7_ {\\n    animation-name: _3LJkM5aos6QDHByZ_4EWK3;\\n}\\n._17jiRkz36zpIb-gslDebOa {\\n    animation-name: _2Ez4zTiqjCWtjSgJnLKNCz;\\n}\\n\\n@keyframes vyHMcETErt67r7Ux_ek32 {\\n    0% {\\n        transform: translateY(10px);\\n        opacity: 0;\\n    }\\n    100% {\\n        transform: translateY(0);\\n        opacity: 1;\\n    }\\n}\\n\\n@keyframes _95i36c29lK3ThoiA63vuB {\\n    0% {\\n        transform: translateY(-10px);\\n        opacity: 0;\\n    }\\n    100% {\\n        transform: translateY(0);\\n        opacity: 1;\\n    }\\n}\\n\\n@keyframes _26r6OIXSrLD4DaLCbtEfrh {\\n    0% {\\n        transform: translateX(10px);\\n        opacity: 0;\\n    }\\n    100% {\\n        transform: translateX(0);\\n        opacity: 1;\\n    }\\n}\\n\\n@keyframes _3LJkM5aos6QDHByZ_4EWK3 {\\n    0% {\\n        transform: translateX(-10px);\\n        opacity: 0;\\n    }\\n    100% {\\n        transform: translateX(0);\\n        opacity: 1;\\n    }\\n}\\n\\n@keyframes _2Ez4zTiqjCWtjSgJnLKNCz {\\n    0% {\\n        opacity: 0;\\n    }\\n    100% {\\n        opacity: 1;\\n    }\\n}\\n\", \"\"]);\n\n// exports\nexports.locals = {\n\t\"top\": \"_34RzwG7Ce5-NGzJQqTMFaA\",\n\t\"bottom\": \"BywsD_lPvhR-352WV0Zos\",\n\t\"left\": \"_3OW8SpGTRLdoPAu4jZf2tU\",\n\t\"right\": \"_28b6UeGj0_Yf0autveQB7_\",\n\t\"overlay\": \"_17jiRkz36zpIb-gslDebOa\",\n\t\"fadeInTop\": \"vyHMcETErt67r7Ux_ek32\",\n\t\"fadeInBottom\": \"_95i36c29lK3ThoiA63vuB\",\n\t\"fadeInLeft\": \"_26r6OIXSrLD4DaLCbtEfrh\",\n\t\"fadeInRight\": \"_3LJkM5aos6QDHByZ_4EWK3\",\n\t\"fadeIn\": \"_2Ez4zTiqjCWtjSgJnLKNCz\"\n};","import React, {PureComponent} from 'react';\nimport PropTypes from 'prop-types';\n\nexport default class Logo extends PureComponent {\n    static propTypes = {\n        background: PropTypes.string,\n        url: PropTypes.string.isRequired,\n        logoName: PropTypes.string.isRequired,\n        link: PropTypes.string,\n        onLogoClick: PropTypes.func,\n        text: PropTypes.string,\n        style: PropTypes.object,\n        responsive: PropTypes.bool,\n        height: PropTypes.number,\n        width: PropTypes.number,\n    };\n\n    infogramLogo() {\n        return `<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"40\" width=\"110\" viewBox=\"0 0 824 300\"><polygon fill=\"${this.props.background}\" points=\"150,225 150,300 225,225 824,225 824,0 112,0 0,225\"/><path transform=\"matrix(14.085739,0,0,14.085739,223.32671,43.789534)\" fill=\"#fff\" d=\"m.111,7.583 c0,0 .887,0 .887,0 0,0 0,-5.338 0,-5.338 0,0 -.887,0 -.887,0 0,0 0,5.338 0,5.338 M1.12,1.08 C 1.12,1.401 .843,1.634 .544,1.634 .256,1.634 0,1.401 0,1.08 0,.736 .256,.514 .544,.514 c.299,0 .576,.222 .576,.566 m1.785,2.863 c0,0 0,3.64 0,3.64 0,0 -.899,0 -.899,0 0,0 0,-5.35 0,-5.35 0,0 .709,0 .709,0 0,0 .123,.545 .123,.545 .199,-.467 .63,-.577 .93,-.6 .964,-.055 1.763,.845 1.763,1.765 0,0 0,3.64 0,3.64 0,0 -.899,0 -.899,0 0,0 0,-3.64 0,-3.64 0,-.466 -.397,-.866 -.874,-.866 -.466,0 -.853,.4 -.853,.866 m4.449,3.648 c0,0 -.886,0 -.886,0 0,0 0,-5.804 0,-5.804 C 6.468,.754 7.454,0 8.573,0 c0,0 0,.888 0,.888 -.652,0 -1.219,.411 -1.219,.899 0,0 0,1.642 0,1.642 0,0 1.098,0 1.098,0 0,0 0,.888 0,.888 0,0 -1.098,0 -1.098,0 0,0 0,3.274 0,3.274 M12.082,3.94 c0,-.566 -.454,-.866 -.908,-.866 -.444,0 -.909,.3 -.909,.866 0,0 0,1.941 0,1.941 0,.567 .465,.855 .909,.855 .454,0 .908,-.288 .908,-.855 0,0 0,-1.941 0,-1.941 m.898,1.941 c0,1.188 -.909,1.766 -1.806,1.766 -.909,0 -1.796,-.578 -1.796,-1.766 0,0 0,-1.941 0,-1.941 0,-1.199 .898,-1.754 1.796,-1.754 .908,0 1.806,.555 1.806,1.754 0,0 0,1.941 0,1.941 m1.84,.09 c-.032,.521 .444,.754 .909,.754 .421,0 .842,-.289 .842,-.743 0,0 0,-2.175 0,-2.175 0,-.4 -.465,-.71 -.864,-.722 -.455,0 -.887,.311 -.887,.755 0,0 0,2.131 0,2.131 m.864,3.806 c-.386,0 -.974,-.211 -1.407,-.6 0,0 .511,-.71 .511,-.71 .32,.266 .686,.4 .896,.4 .488,0 .887,-.378 .887,-.844 0,0 0,-.943 0,-.943 -.154,.433 -.598,.544 -.864,.544 -.931,0 -1.785,-.611 -1.785,-1.653 0,0 0,-2.131 0,-2.131 0,-.888 .866,-1.732 1.785,-1.654 .354,.034 .798,.167 .942,.678 0,0 .088,-.622 .088,-.622 0,0 .732,0 .732,0 0,0 0,5.781 0,5.781 0,1.01 -.832,1.754 -1.785,1.754 m2.775,-2.18 c0,0 0,-5.316 0,-5.316 0,0 .743,0 .743,0 0,0 .1,.544 .1,.544 .31,-.788 1.163,-.799 1.762,-.321 0,0 -.31,.809 -.31,.809 -.522,-.366 -1.319,-.276 -1.408,.455 0,0 0,3.829 0,3.829 0,0 -.887,0 -.887,0 m4.679,-.843 c.421,0 .864,-.344 .864,-.743 0,0 0,-.543 0,-.543 0,-.445 -.387,-.755 -.864,-.755 -.465,0 -.854,.378 -.854,.854 0,0 0,.31 0,.31 0,.479 .389,.877 .854,.877 M21.387,5.877 c0,0 0,-.31 0,-.31 0,-.932 .709,-1.731 1.729,-1.731 .355,0 .787,.233 .909,.589 0,0 -.023,-.467 -.023,-.467 0,-.466 -.387,-.855 -.864,-.855 -.221,0 -.542,.134 -.843,.422 0,0 -.486,-.743 -.486,-.743 .376,-.344 .897,-.588 1.329,-.588 .942,0 1.762,.787 1.762,1.764 0,0 0,3.629 0,3.629 0,0 -.719,0 -.719,0 0,0 -.09,-.567 -.09,-.567 -.111,.468 -.676,.633 -.953,.633 -.953,0 -1.751,-.821 -1.751,-1.776 m5.382,1.71 c0,0 -.886,0 -.886,0 0,0 0,-5.338 0,-5.338 0,0 .697,0 .697,0 0,0 .112,.522 .112,.522 .222,-.433 .631,-.577 .952,-.589 .444,-.011 1.031,.2 1.307,.888 .267,-.688 .809,-.888 1.32,-.888 .953,0 1.729,.777 1.729,1.765 0,0 0,3.64 0,3.64 0,0 -.887,0 -.887,0 0,0 0,-3.64 0,-3.64 .012,-1.21 -1.729,-1.154 -1.729,0 0,0 0,3.64 0,3.64 0,0 -.887,0 -.887,0 0,0 0,-3.64 0,-3.64 0,-.466 -.387,-.866 -.875,-.866 -.477,0 -.853,.4 -.853,.866 0,0 0,3.64 0,3.64\"/></svg>`;\n    }\n\n    render() {\n        let {url, style, responsive, logoName, height, width} = this.props;\n        const textStyle = {};\n        if (!url && !this.props.background) {\n            return null;\n        }\n        if (!url) {\n            url = 'data:image/svg+xml;charset=utf-8,' + encodeURIComponent(this.infogramLogo());\n        }\n        if (responsive) {\n            textStyle.marginTop = -8;\n        }\n        const text = this.props.text && <span style={textStyle} className=\"ig-logo-text\">{this.props.text}</span>;\n\n        const imageStyle = height && width && {\n            height,\n            maxHeight: 'inherit',\n            maxWidth: 'inherit',\n            width,\n        } || {};\n\n        const className = text && 'infogramLogo' || '';\n        if (this.props.link) {\n            return (\n                <div className=\"ig-logo\" style={style}>\n                    {text}\n                    <a href={this.props.link} target=\"_blank\" rel=\"nofollow noopener noreferrer\" className=\"ig-logo-link\">\n                        <img src={url} alt={logoName} className={className} style={imageStyle}/>\n                    </a>\n                </div>\n            );\n        }\n        return (\n                <div className=\"ig-logo\" style={style} onClick={this.props.onLogoClick}>\n                    {text}\n                    <img src={url} alt={logoName} className={className} style={imageStyle}/>\n                </div>\n        );\n    }\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar $trimEnd = require('../internals/string-trim').end;\nvar forcedStringTrimMethod = require('../internals/forced-string-trim-method');\n\nvar FORCED = forcedStringTrimMethod('trimEnd');\n\nvar trimEnd = FORCED ? function trimEnd() {\n  return $trimEnd(this);\n} : ''.trimEnd;\n\n// `String.prototype.{ trimEnd, trimRight }` methods\n// https://github.com/tc39/ecmascript-string-left-right-trim\n$({ target: 'String', proto: true, forced: FORCED }, {\n  trimEnd: trimEnd,\n  trimRight: trimEnd\n});\n","var log = Math.log;\n\n// `Math.log1p` method implementation\n// https://tc39.github.io/ecma262/#sec-math.log1p\nmodule.exports = Math.log1p || function log1p(x) {\n  return (x = +x) > -1e-8 && x < 1e-8 ? x - x * x / 2 : log(1 + x);\n};\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar hide = require('../internals/hide');\nvar redefine = require('../internals/redefine');\nvar setGlobal = require('../internals/set-global');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n  options.target      - name of the target object\n  options.global      - target is the global object\n  options.stat        - export as static methods of target\n  options.proto       - export as prototype methods of target\n  options.real        - real prototype method for the `pure` version\n  options.forced      - export even if the native feature is available\n  options.bind        - bind methods to the target, required for the `pure` version\n  options.wrap        - wrap constructors to preventing global pollution, required for the `pure` version\n  options.unsafe      - use the simple assignment of property instead of delete + defineProperty\n  options.sham        - add a flag to not completely full polyfills\n  options.enumerable  - export as enumerable property\n  options.noTargetGet - prevent calling a getter on target\n*/\nmodule.exports = function (options, source) {\n  var TARGET = options.target;\n  var GLOBAL = options.global;\n  var STATIC = options.stat;\n  var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n  if (GLOBAL) {\n    target = global;\n  } else if (STATIC) {\n    target = global[TARGET] || setGlobal(TARGET, {});\n  } else {\n    target = (global[TARGET] || {}).prototype;\n  }\n  if (target) for (key in source) {\n    sourceProperty = source[key];\n    if (options.noTargetGet) {\n      descriptor = getOwnPropertyDescriptor(target, key);\n      targetProperty = descriptor && descriptor.value;\n    } else targetProperty = target[key];\n    FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n    // contained in target\n    if (!FORCED && targetProperty !== undefined) {\n      if (typeof sourceProperty === typeof targetProperty) continue;\n      copyConstructorProperties(sourceProperty, targetProperty);\n    }\n    // add a flag to not completely full polyfills\n    if (options.sham || (targetProperty && targetProperty.sham)) {\n      hide(sourceProperty, 'sham', true);\n    }\n    // extend global\n    redefine(target, key, sourceProperty, options);\n  }\n};\n","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\nmodule.exports = function(useSourceMap) {\n\tvar list = [];\n\n\t// return the list of modules as css string\n\tlist.toString = function toString() {\n\t\treturn this.map(function (item) {\n\t\t\tvar content = cssWithMappingToString(item, useSourceMap);\n\t\t\tif(item[2]) {\n\t\t\t\treturn \"@media \" + item[2] + \"{\" + content + \"}\";\n\t\t\t} else {\n\t\t\t\treturn content;\n\t\t\t}\n\t\t}).join(\"\");\n\t};\n\n\t// import a list of modules into the list\n\tlist.i = function(modules, mediaQuery) {\n\t\tif(typeof modules === \"string\")\n\t\t\tmodules = [[null, modules, \"\"]];\n\t\tvar alreadyImportedModules = {};\n\t\tfor(var i = 0; i < this.length; i++) {\n\t\t\tvar id = this[i][0];\n\t\t\tif(typeof id === \"number\")\n\t\t\t\talreadyImportedModules[id] = true;\n\t\t}\n\t\tfor(i = 0; i < modules.length; i++) {\n\t\t\tvar item = modules[i];\n\t\t\t// skip already imported module\n\t\t\t// this implementation is not 100% perfect for weird media query combinations\n\t\t\t//  when a module is imported multiple times with different media queries.\n\t\t\t//  I hope this will never occur (Hey this way we have smaller bundles)\n\t\t\tif(typeof item[0] !== \"number\" || !alreadyImportedModules[item[0]]) {\n\t\t\t\tif(mediaQuery && !item[2]) {\n\t\t\t\t\titem[2] = mediaQuery;\n\t\t\t\t} else if(mediaQuery) {\n\t\t\t\t\titem[2] = \"(\" + item[2] + \") and (\" + mediaQuery + \")\";\n\t\t\t\t}\n\t\t\t\tlist.push(item);\n\t\t\t}\n\t\t}\n\t};\n\treturn list;\n};\n\nfunction cssWithMappingToString(item, useSourceMap) {\n\tvar content = item[1] || '';\n\tvar cssMapping = item[3];\n\tif (!cssMapping) {\n\t\treturn content;\n\t}\n\n\tif (useSourceMap && typeof btoa === 'function') {\n\t\tvar sourceMapping = toComment(cssMapping);\n\t\tvar sourceURLs = cssMapping.sources.map(function (source) {\n\t\t\treturn '/*# sourceURL=' + cssMapping.sourceRoot + source + ' */'\n\t\t});\n\n\t\treturn [content].concat(sourceURLs).concat([sourceMapping]).join('\\n');\n\t}\n\n\treturn [content].join('\\n');\n}\n\n// Adapted from convert-source-map (MIT)\nfunction toComment(sourceMap) {\n\t// eslint-disable-next-line no-undef\n\tvar base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));\n\tvar data = 'sourceMappingURL=data:application/json;charset=utf-8;base64,' + base64;\n\n\treturn '/*# ' + data + ' */';\n}\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.split` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.split\ndefineWellKnownSymbol('split');\n","/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nvar byteToHex = [];\nfor (var i = 0; i < 256; ++i) {\n  byteToHex[i] = (i + 0x100).toString(16).substr(1);\n}\n\nfunction bytesToUuid(buf, offset) {\n  var i = offset || 0;\n  var bth = byteToHex;\n  // join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4\n  return ([bth[buf[i++]], bth[buf[i++]], \n\tbth[buf[i++]], bth[buf[i++]], '-',\n\tbth[buf[i++]], bth[buf[i++]], '-',\n\tbth[buf[i++]], bth[buf[i++]], '-',\n\tbth[buf[i++]], bth[buf[i++]], '-',\n\tbth[buf[i++]], bth[buf[i++]],\n\tbth[buf[i++]], bth[buf[i++]],\n\tbth[buf[i++]], bth[buf[i++]]]).join('');\n}\n\nmodule.exports = bytesToUuid;\n","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!./CoverImage.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!./CoverImage.css\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!./CoverImage.css\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","var toInteger = require('../internals/to-integer');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(length, length).\nmodule.exports = function (index, length) {\n  var integer = toInteger(index);\n  return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","var setToStringTag = require('../internals/set-to-string-tag');\n\n// Math[@@toStringTag] property\n// https://tc39.github.io/ecma262/#sec-math-@@tostringtag\nsetToStringTag(Math, 'Math', true);\n","\"use strict\";\n\nmodule.exports = require(\"./is-implemented\")() ? Object.assign : require(\"./shim\");\n","/** @license React v16.12.0\n * react-dom-server.browser.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\n'use strict';var k=require(\"object-assign\"),l=require(\"react\");function q(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;c<arguments.length;c++)b+=\"&args[]=\"+encodeURIComponent(arguments[c]);return\"Minified React error #\"+a+\"; visit \"+b+\" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"}\nvar t=\"function\"===typeof Symbol&&Symbol.for,aa=t?Symbol.for(\"react.portal\"):60106,u=t?Symbol.for(\"react.fragment\"):60107,ba=t?Symbol.for(\"react.strict_mode\"):60108,ca=t?Symbol.for(\"react.profiler\"):60114,w=t?Symbol.for(\"react.provider\"):60109,da=t?Symbol.for(\"react.context\"):60110,ea=t?Symbol.for(\"react.concurrent_mode\"):60111,fa=t?Symbol.for(\"react.forward_ref\"):60112,B=t?Symbol.for(\"react.suspense\"):60113,ha=t?Symbol.for(\"react.suspense_list\"):60120,ia=t?Symbol.for(\"react.memo\"):60115,ja=t?Symbol.for(\"react.lazy\"):\n60116,ka=t?Symbol.for(\"react.fundamental\"):60117,la=t?Symbol.for(\"react.scope\"):60119,C=l.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;C.hasOwnProperty(\"ReactCurrentDispatcher\")||(C.ReactCurrentDispatcher={current:null});C.hasOwnProperty(\"ReactCurrentBatchConfig\")||(C.ReactCurrentBatchConfig={suspense:null});\nfunction ma(a){if(-1===a._status){a._status=0;var b=a._ctor;b=b();a._result=b;b.then(function(c){0===a._status&&(c=c.default,a._status=1,a._result=c)},function(c){0===a._status&&(a._status=2,a._result=c)})}}\nfunction D(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case u:return\"Fragment\";case aa:return\"Portal\";case ca:return\"Profiler\";case ba:return\"StrictMode\";case B:return\"Suspense\";case ha:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case da:return\"Context.Consumer\";case w:return\"Context.Provider\";case fa:var b=a.render;b=b.displayName||b.name||\"\";return a.displayName||(\"\"!==b?\"ForwardRef(\"+b+\")\":\"ForwardRef\");\ncase ia:return D(a.type);case ja:if(a=1===a._status?a._result:null)return D(a)}return null}var na={};function E(a,b){for(var c=a._threadCount|0;c<=b;c++)a[c]=a._currentValue2,a._threadCount=c+1}function oa(a,b,c,d){if(d&&(d=a.contextType,\"object\"===typeof d&&null!==d))return E(d,c),d[c];if(a=a.contextTypes){c={};for(var f in a)c[f]=b[f];b=c}else b=na;return b}for(var F=new Uint16Array(16),H=0;15>H;H++)F[H]=H+1;F[15]=0;\nvar pa=/^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$/,qa=Object.prototype.hasOwnProperty,ra={},sa={};\nfunction ta(a){if(qa.call(sa,a))return!0;if(qa.call(ra,a))return!1;if(pa.test(a))return sa[a]=!0;ra[a]=!0;return!1}function ua(a,b,c,d){if(null!==c&&0===c.type)return!1;switch(typeof b){case \"function\":case \"symbol\":return!0;case \"boolean\":if(d)return!1;if(null!==c)return!c.acceptsBooleans;a=a.toLowerCase().slice(0,5);return\"data-\"!==a&&\"aria-\"!==a;default:return!1}}\nfunction va(a,b,c,d){if(null===b||\"undefined\"===typeof b||ua(a,b,c,d))return!0;if(d)return!1;if(null!==c)switch(c.type){case 3:return!b;case 4:return!1===b;case 5:return isNaN(b);case 6:return isNaN(b)||1>b}return!1}function J(a,b,c,d,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=f;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=g}var K={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){K[a]=new J(a,0,!1,a,null,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];K[b]=new J(b,1,!1,a[1],null,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){K[a]=new J(a,2,!1,a.toLowerCase(),null,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){K[a]=new J(a,2,!1,a,null,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){K[a]=new J(a,3,!1,a.toLowerCase(),null,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){K[a]=new J(a,3,!0,a,null,!1)});[\"capture\",\"download\"].forEach(function(a){K[a]=new J(a,4,!1,a,null,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){K[a]=new J(a,6,!1,a,null,!1)});[\"rowSpan\",\"start\"].forEach(function(a){K[a]=new J(a,5,!1,a.toLowerCase(),null,!1)});var L=/[\\-:]([a-z])/g;function M(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(L,\nM);K[b]=new J(b,1,!1,a,null,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(L,M);K[b]=new J(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(L,M);K[b]=new J(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){K[a]=new J(a,1,!1,a.toLowerCase(),null,!1)});\nK.xlinkHref=new J(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){K[a]=new J(a,1,!1,a.toLowerCase(),null,!0)});var wa=/[\"'&<>]/;\nfunction N(a){if(\"boolean\"===typeof a||\"number\"===typeof a)return\"\"+a;a=\"\"+a;var b=wa.exec(a);if(b){var c=\"\",d,f=0;for(d=b.index;d<a.length;d++){switch(a.charCodeAt(d)){case 34:b=\"&quot;\";break;case 38:b=\"&amp;\";break;case 39:b=\"&#x27;\";break;case 60:b=\"&lt;\";break;case 62:b=\"&gt;\";break;default:continue}f!==d&&(c+=a.substring(f,d));f=d+1;c+=b}a=f!==d?c+a.substring(f,d):c}return a}\nfunction xa(a,b){var c=K.hasOwnProperty(a)?K[a]:null;var d;if(d=\"style\"!==a)d=null!==c?0===c.type:!(2<a.length)||\"o\"!==a[0]&&\"O\"!==a[0]||\"n\"!==a[1]&&\"N\"!==a[1]?!1:!0;if(d||va(a,b,c,!1))return\"\";if(null!==c){a=c.attributeName;d=c.type;if(3===d||4===d&&!0===b)return a+'=\"\"';c.sanitizeURL&&(b=\"\"+b);return a+\"=\"+('\"'+N(b)+'\"')}return ta(a)?a+\"=\"+('\"'+N(b)+'\"'):\"\"}function ya(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}\nvar za=\"function\"===typeof Object.is?Object.is:ya,O=null,P=null,Q=null,R=!1,S=!1,U=null,V=0;function W(){if(null===O)throw Error(q(321));return O}function Aa(){if(0<V)throw Error(q(312));return{memoizedState:null,queue:null,next:null}}function Ba(){null===Q?null===P?(R=!1,P=Q=Aa()):(R=!0,Q=P):null===Q.next?(R=!1,Q=Q.next=Aa()):(R=!0,Q=Q.next);return Q}function Ca(a,b,c,d){for(;S;)S=!1,V+=1,Q=null,c=a(b,d);P=O=null;V=0;Q=U=null;return c}function Da(a,b){return\"function\"===typeof b?b(a):b}\nfunction Ea(a,b,c){O=W();Q=Ba();if(R){var d=Q.queue;b=d.dispatch;if(null!==U&&(c=U.get(d),void 0!==c)){U.delete(d);d=Q.memoizedState;do d=a(d,c.action),c=c.next;while(null!==c);Q.memoizedState=d;return[d,b]}return[Q.memoizedState,b]}a=a===Da?\"function\"===typeof b?b():b:void 0!==c?c(b):b;Q.memoizedState=a;a=Q.queue={last:null,dispatch:null};a=a.dispatch=Fa.bind(null,O,a);return[Q.memoizedState,a]}\nfunction Fa(a,b,c){if(!(25>V))throw Error(q(301));if(a===O)if(S=!0,a={action:c,next:null},null===U&&(U=new Map),c=U.get(b),void 0===c)U.set(b,a);else{for(b=c;null!==b.next;)b=b.next;b.next=a}}function Ga(){}\nvar X=0,Ha={readContext:function(a){var b=X;E(a,b);return a[b]},useContext:function(a){W();var b=X;E(a,b);return a[b]},useMemo:function(a,b){O=W();Q=Ba();b=void 0===b?null:b;if(null!==Q){var c=Q.memoizedState;if(null!==c&&null!==b){a:{var d=c[1];if(null===d)d=!1;else{for(var f=0;f<d.length&&f<b.length;f++)if(!za(b[f],d[f])){d=!1;break a}d=!0}}if(d)return c[0]}}a=a();Q.memoizedState=[a,b];return a},useReducer:Ea,useRef:function(a){O=W();Q=Ba();var b=Q.memoizedState;return null===b?(a={current:a},Q.memoizedState=\na):b},useState:function(a){return Ea(Da,a)},useLayoutEffect:function(){},useCallback:function(a){return a},useImperativeHandle:Ga,useEffect:Ga,useDebugValue:Ga,useResponder:function(a,b){return{props:b,responder:a}},useDeferredValue:function(a){W();return a},useTransition:function(){W();return[function(a){a()},!1]}},Ia={html:\"http://www.w3.org/1999/xhtml\",mathml:\"http://www.w3.org/1998/Math/MathML\",svg:\"http://www.w3.org/2000/svg\"};\nfunction Ja(a){switch(a){case \"svg\":return\"http://www.w3.org/2000/svg\";case \"math\":return\"http://www.w3.org/1998/Math/MathML\";default:return\"http://www.w3.org/1999/xhtml\"}}\nvar Ka={area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0},La=k({menuitem:!0},Ka),Y={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,\ngridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},Ma=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(Y).forEach(function(a){Ma.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);Y[b]=Y[a]})});\nvar Na=/([A-Z])/g,Oa=/^ms-/,Z=l.Children.toArray,Pa=C.ReactCurrentDispatcher,Qa={listing:!0,pre:!0,textarea:!0},Ra=/^[a-zA-Z][a-zA-Z:_\\.\\-\\d]*$/,Sa={},Ta={};function Ua(a){if(void 0===a||null===a)return a;var b=\"\";l.Children.forEach(a,function(a){null!=a&&(b+=a)});return b}var Va=Object.prototype.hasOwnProperty,Wa={children:null,dangerouslySetInnerHTML:null,suppressContentEditableWarning:null,suppressHydrationWarning:null};function Xa(a,b){if(void 0===a)throw Error(q(152,D(b)||\"Component\"));}\nfunction Ya(a,b,c){function d(d,g){var e=g.prototype&&g.prototype.isReactComponent,f=oa(g,b,c,e),x=[],h=!1,m={isMounted:function(){return!1},enqueueForceUpdate:function(){if(null===x)return null},enqueueReplaceState:function(a,c){h=!0;x=[c]},enqueueSetState:function(a,c){if(null===x)return null;x.push(c)}};if(e){if(e=new g(d.props,f,m),\"function\"===typeof g.getDerivedStateFromProps){var v=g.getDerivedStateFromProps.call(null,d.props,e.state);null!=v&&(e.state=k({},e.state,v))}}else if(O={},e=g(d.props,\nf,m),e=Ca(g,d.props,e,f),null==e||null==e.render){a=e;Xa(a,g);return}e.props=d.props;e.context=f;e.updater=m;m=e.state;void 0===m&&(e.state=m=null);if(\"function\"===typeof e.UNSAFE_componentWillMount||\"function\"===typeof e.componentWillMount)if(\"function\"===typeof e.componentWillMount&&\"function\"!==typeof g.getDerivedStateFromProps&&e.componentWillMount(),\"function\"===typeof e.UNSAFE_componentWillMount&&\"function\"!==typeof g.getDerivedStateFromProps&&e.UNSAFE_componentWillMount(),x.length){m=x;var r=\nh;x=null;h=!1;if(r&&1===m.length)e.state=m[0];else{v=r?m[0]:e.state;var y=!0;for(r=r?1:0;r<m.length;r++){var p=m[r];p=\"function\"===typeof p?p.call(e,v,d.props,f):p;null!=p&&(y?(y=!1,v=k({},v,p)):k(v,p))}e.state=v}}else x=null;a=e.render();Xa(a,g);if(\"function\"===typeof e.getChildContext&&(d=g.childContextTypes,\"object\"===typeof d)){var A=e.getChildContext();for(var T in A)if(!(T in d))throw Error(q(108,D(g)||\"Unknown\",T));}A&&(b=k({},b,A))}for(;l.isValidElement(a);){var f=a,g=f.type;if(\"function\"!==\ntypeof g)break;d(f,g)}return{child:a,context:b}}\nvar Za=function(){function a(a,b){l.isValidElement(a)?a.type!==u?a=[a]:(a=a.props.children,a=l.isValidElement(a)?[a]:Z(a)):a=Z(a);a={type:null,domNamespace:Ia.html,children:a,childIndex:0,context:na,footer:\"\"};var c=F[0];if(0===c){var g=F;c=g.length;var d=2*c;if(!(65536>=d))throw Error(q(304));var h=new Uint16Array(d);h.set(g);F=h;F[0]=c+1;for(g=c;g<d-1;g++)F[g]=g+1;F[d-1]=0}else F[0]=F[c];this.threadID=c;this.stack=[a];this.exhausted=!1;this.currentSelectValue=null;this.previousWasTextNode=!1;this.makeStaticMarkup=\nb;this.suspenseDepth=0;this.contextIndex=-1;this.contextStack=[];this.contextValueStack=[]}var b=a.prototype;b.destroy=function(){if(!this.exhausted){this.exhausted=!0;this.clearProviders();var a=this.threadID;F[a]=F[0];F[0]=a}};b.pushProvider=function(a){var c=++this.contextIndex,b=a.type._context,g=this.threadID;E(b,g);var x=b[g];this.contextStack[c]=b;this.contextValueStack[c]=x;b[g]=a.props.value};b.popProvider=function(){var a=this.contextIndex,b=this.contextStack[a],f=this.contextValueStack[a];\nthis.contextStack[a]=null;this.contextValueStack[a]=null;this.contextIndex--;b[this.threadID]=f};b.clearProviders=function(){for(var a=this.contextIndex;0<=a;a--)this.contextStack[a][this.threadID]=this.contextValueStack[a]};b.read=function(a){if(this.exhausted)return null;var b=X;X=this.threadID;var c=Pa.current;Pa.current=Ha;try{for(var g=[\"\"],x=!1;g[0].length<a;){if(0===this.stack.length){this.exhausted=!0;var h=this.threadID;F[h]=F[0];F[0]=h;break}var e=this.stack[this.stack.length-1];if(x||e.childIndex>=\ne.children.length){var I=e.footer;\"\"!==I&&(this.previousWasTextNode=!1);this.stack.pop();if(\"select\"===e.type)this.currentSelectValue=null;else if(null!=e.type&&null!=e.type.type&&e.type.type.$$typeof===w)this.popProvider(e.type);else if(e.type===B){this.suspenseDepth--;var G=g.pop();if(x){x=!1;var n=e.fallbackFrame;if(!n)throw Error(q(303));this.stack.push(n);g[this.suspenseDepth]+=\"\\x3c!--$!--\\x3e\";continue}else g[this.suspenseDepth]+=G}g[this.suspenseDepth]+=I}else{var m=e.children[e.childIndex++],\nv=\"\";try{v+=this.render(m,e.context,e.domNamespace)}catch(r){if(null!=r&&\"function\"===typeof r.then)throw Error(q(294));throw r;}finally{}g.length<=this.suspenseDepth&&g.push(\"\");g[this.suspenseDepth]+=v}}return g[0]}finally{Pa.current=c,X=b}};b.render=function(a,b,f){if(\"string\"===typeof a||\"number\"===typeof a){f=\"\"+a;if(\"\"===f)return\"\";if(this.makeStaticMarkup)return N(f);if(this.previousWasTextNode)return\"\\x3c!-- --\\x3e\"+N(f);this.previousWasTextNode=!0;return N(f)}b=Ya(a,b,this.threadID);a=b.child;\nb=b.context;if(null===a||!1===a)return\"\";if(!l.isValidElement(a)){if(null!=a&&null!=a.$$typeof){f=a.$$typeof;if(f===aa)throw Error(q(257));throw Error(q(258,f.toString()));}a=Z(a);this.stack.push({type:null,domNamespace:f,children:a,childIndex:0,context:b,footer:\"\"});return\"\"}var c=a.type;if(\"string\"===typeof c)return this.renderDOM(a,b,f);switch(c){case ba:case ea:case ca:case ha:case u:return a=Z(a.props.children),this.stack.push({type:null,domNamespace:f,children:a,childIndex:0,context:b,footer:\"\"}),\n\"\";case B:throw Error(q(294));}if(\"object\"===typeof c&&null!==c)switch(c.$$typeof){case fa:O={};var d=c.render(a.props,a.ref);d=Ca(c.render,a.props,d,a.ref);d=Z(d);this.stack.push({type:null,domNamespace:f,children:d,childIndex:0,context:b,footer:\"\"});return\"\";case ia:return a=[l.createElement(c.type,k({ref:a.ref},a.props))],this.stack.push({type:null,domNamespace:f,children:a,childIndex:0,context:b,footer:\"\"}),\"\";case w:return c=Z(a.props.children),f={type:a,domNamespace:f,children:c,childIndex:0,\ncontext:b,footer:\"\"},this.pushProvider(a),this.stack.push(f),\"\";case da:c=a.type;d=a.props;var h=this.threadID;E(c,h);c=Z(d.children(c[h]));this.stack.push({type:a,domNamespace:f,children:c,childIndex:0,context:b,footer:\"\"});return\"\";case ka:throw Error(q(338));case ja:switch(c=a.type,ma(c),c._status){case 1:return a=[l.createElement(c._result,k({ref:a.ref},a.props))],this.stack.push({type:null,domNamespace:f,children:a,childIndex:0,context:b,footer:\"\"}),\"\";case 2:throw c._result;default:throw Error(q(295));\n}case la:throw Error(q(343));}throw Error(q(130,null==c?c:typeof c,\"\"));};b.renderDOM=function(a,b,f){var c=a.type.toLowerCase();f===Ia.html&&Ja(c);if(!Sa.hasOwnProperty(c)){if(!Ra.test(c))throw Error(q(65,c));Sa[c]=!0}var d=a.props;if(\"input\"===c)d=k({type:void 0},d,{defaultChecked:void 0,defaultValue:void 0,value:null!=d.value?d.value:d.defaultValue,checked:null!=d.checked?d.checked:d.defaultChecked});else if(\"textarea\"===c){var h=d.value;if(null==h){h=d.defaultValue;var e=d.children;if(null!=e){if(null!=\nh)throw Error(q(92));if(Array.isArray(e)){if(!(1>=e.length))throw Error(q(93));e=e[0]}h=\"\"+e}null==h&&(h=\"\")}d=k({},d,{value:void 0,children:\"\"+h})}else if(\"select\"===c)this.currentSelectValue=null!=d.value?d.value:d.defaultValue,d=k({},d,{value:void 0});else if(\"option\"===c){e=this.currentSelectValue;var I=Ua(d.children);if(null!=e){var G=null!=d.value?d.value+\"\":I;h=!1;if(Array.isArray(e))for(var n=0;n<e.length;n++){if(\"\"+e[n]===G){h=!0;break}}else h=\"\"+e===G;d=k({selected:void 0,children:void 0},\nd,{selected:h,children:I})}}if(h=d){if(La[c]&&(null!=h.children||null!=h.dangerouslySetInnerHTML))throw Error(q(137,c,\"\"));if(null!=h.dangerouslySetInnerHTML){if(null!=h.children)throw Error(q(60));if(!(\"object\"===typeof h.dangerouslySetInnerHTML&&\"__html\"in h.dangerouslySetInnerHTML))throw Error(q(61));}if(null!=h.style&&\"object\"!==typeof h.style)throw Error(q(62,\"\"));}h=d;e=this.makeStaticMarkup;I=1===this.stack.length;G=\"<\"+a.type;for(z in h)if(Va.call(h,z)){var m=h[z];if(null!=m){if(\"style\"===\nz){n=void 0;var v=\"\",r=\"\";for(n in m)if(m.hasOwnProperty(n)){var y=0===n.indexOf(\"--\"),p=m[n];if(null!=p){if(y)var A=n;else if(A=n,Ta.hasOwnProperty(A))A=Ta[A];else{var T=A.replace(Na,\"-$1\").toLowerCase().replace(Oa,\"-ms-\");A=Ta[A]=T}v+=r+A+\":\";r=n;y=null==p||\"boolean\"===typeof p||\"\"===p?\"\":y||\"number\"!==typeof p||0===p||Y.hasOwnProperty(r)&&Y[r]?(\"\"+p).trim():p+\"px\";v+=y;r=\";\"}}m=v||null}n=null;b:if(y=c,p=h,-1===y.indexOf(\"-\"))y=\"string\"===typeof p.is;else switch(y){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":y=\n!1;break b;default:y=!0}y?Wa.hasOwnProperty(z)||(n=z,n=ta(n)&&null!=m?n+\"=\"+('\"'+N(m)+'\"'):\"\"):n=xa(z,m);n&&(G+=\" \"+n)}}e||I&&(G+=' data-reactroot=\"\"');var z=G;h=\"\";Ka.hasOwnProperty(c)?z+=\"/>\":(z+=\">\",h=\"</\"+a.type+\">\");a:{e=d.dangerouslySetInnerHTML;if(null!=e){if(null!=e.__html){e=e.__html;break a}}else if(e=d.children,\"string\"===typeof e||\"number\"===typeof e){e=N(e);break a}e=null}null!=e?(d=[],Qa[c]&&\"\\n\"===e.charAt(0)&&(z+=\"\\n\"),z+=e):d=Z(d.children);a=a.type;f=null==f||\"http://www.w3.org/1999/xhtml\"===\nf?Ja(a):\"http://www.w3.org/2000/svg\"===f&&\"foreignObject\"===a?\"http://www.w3.org/1999/xhtml\":f;this.stack.push({domNamespace:f,type:c,children:d,childIndex:0,context:b,footer:h});this.previousWasTextNode=!1;return z};return a}(),$a={renderToString:function(a){a=new Za(a,!1);try{return a.read(Infinity)}finally{a.destroy()}},renderToStaticMarkup:function(a){a=new Za(a,!0);try{return a.read(Infinity)}finally{a.destroy()}},renderToNodeStream:function(){throw Error(q(207));},renderToStaticNodeStream:function(){throw Error(q(208));\n},version:\"16.12.0\"},ab={default:$a},bb=ab&&$a||ab;module.exports=bb.default||bb;\n","'use strict';\nvar TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS = require('../internals/typed-arrays-constructors-requires-wrappers');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar typedArrayFrom = require('../internals/typed-array-from');\n\n// `%TypedArray%.from` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.from\nArrayBufferViewCore.exportStatic('from', typedArrayFrom, TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS);\n","import { Children, cloneElement, isValidElement } from 'react';\n/**\n * Given `this.props.children`, return an object mapping key to child.\n *\n * @param {*} children `this.props.children`\n * @return {object} Mapping of key to child\n */\n\nexport function getChildMapping(children, mapFn) {\n  var mapper = function mapper(child) {\n    return mapFn && isValidElement(child) ? mapFn(child) : child;\n  };\n\n  var result = Object.create(null);\n  if (children) Children.map(children, function (c) {\n    return c;\n  }).forEach(function (child) {\n    // run the map function here instead so that the key is the computed one\n    result[child.key] = mapper(child);\n  });\n  return result;\n}\n/**\n * When you're adding or removing children some may be added or removed in the\n * same render pass. We want to show *both* since we want to simultaneously\n * animate elements in and out. This function takes a previous set of keys\n * and a new set of keys and merges them with its best guess of the correct\n * ordering. In the future we may expose some of the utilities in\n * ReactMultiChild to make this easy, but for now React itself does not\n * directly have this concept of the union of prevChildren and nextChildren\n * so we implement it here.\n *\n * @param {object} prev prev children as returned from\n * `ReactTransitionChildMapping.getChildMapping()`.\n * @param {object} next next children as returned from\n * `ReactTransitionChildMapping.getChildMapping()`.\n * @return {object} a key set that contains all keys in `prev` and all keys\n * in `next` in a reasonable order.\n */\n\nexport function mergeChildMappings(prev, next) {\n  prev = prev || {};\n  next = next || {};\n\n  function getValueForKey(key) {\n    return key in next ? next[key] : prev[key];\n  } // For each key of `next`, the list of keys to insert before that key in\n  // the combined list\n\n\n  var nextKeysPending = Object.create(null);\n  var pendingKeys = [];\n\n  for (var prevKey in prev) {\n    if (prevKey in next) {\n      if (pendingKeys.length) {\n        nextKeysPending[prevKey] = pendingKeys;\n        pendingKeys = [];\n      }\n    } else {\n      pendingKeys.push(prevKey);\n    }\n  }\n\n  var i;\n  var childMapping = {};\n\n  for (var nextKey in next) {\n    if (nextKeysPending[nextKey]) {\n      for (i = 0; i < nextKeysPending[nextKey].length; i++) {\n        var pendingNextKey = nextKeysPending[nextKey][i];\n        childMapping[nextKeysPending[nextKey][i]] = getValueForKey(pendingNextKey);\n      }\n    }\n\n    childMapping[nextKey] = getValueForKey(nextKey);\n  } // Finally, add the keys which didn't appear before any key in `next`\n\n\n  for (i = 0; i < pendingKeys.length; i++) {\n    childMapping[pendingKeys[i]] = getValueForKey(pendingKeys[i]);\n  }\n\n  return childMapping;\n}\n\nfunction getProp(child, prop, props) {\n  return props[prop] != null ? props[prop] : child.props[prop];\n}\n\nexport function getInitialChildMapping(props, onExited) {\n  return getChildMapping(props.children, function (child) {\n    return cloneElement(child, {\n      onExited: onExited.bind(null, child),\n      in: true,\n      appear: getProp(child, 'appear', props),\n      enter: getProp(child, 'enter', props),\n      exit: getProp(child, 'exit', props)\n    });\n  });\n}\nexport function getNextChildMapping(nextProps, prevChildMapping, onExited) {\n  var nextChildMapping = getChildMapping(nextProps.children);\n  var children = mergeChildMappings(prevChildMapping, nextChildMapping);\n  Object.keys(children).forEach(function (key) {\n    var child = children[key];\n    if (!isValidElement(child)) return;\n    var hasPrev = key in prevChildMapping;\n    var hasNext = key in nextChildMapping;\n    var prevChild = prevChildMapping[key];\n    var isLeaving = isValidElement(prevChild) && !prevChild.props.in; // item is new (entering)\n\n    if (hasNext && (!hasPrev || isLeaving)) {\n      // console.log('entering', key)\n      children[key] = cloneElement(child, {\n        onExited: onExited.bind(null, child),\n        in: true,\n        exit: getProp(child, 'exit', nextProps),\n        enter: getProp(child, 'enter', nextProps)\n      });\n    } else if (!hasNext && hasPrev && !isLeaving) {\n      // item is old (exiting)\n      // console.log('leaving', key)\n      children[key] = cloneElement(child, {\n        in: false\n      });\n    } else if (hasNext && hasPrev && isValidElement(prevChild)) {\n      // item hasn't changed transition states\n      // copy over the last transition props;\n      // console.log('unchanged', key)\n      children[key] = cloneElement(child, {\n        onExited: onExited.bind(null, child),\n        in: prevChild.props.in,\n        exit: getProp(child, 'exit', nextProps),\n        enter: getProp(child, 'enter', nextProps)\n      });\n    }\n  });\n  return children;\n}","import PropTypes from 'prop-types';\nimport React, {PureComponent} from 'react';\n\nimport loadImage from '../../../loadImage';\nimport Iframe from './Iframe.react';\n\nconst TOOLBAR_HEIGHT = 48;\n\nexport default class Slideshare extends PureComponent {\n    static propTypes = {\n        inEditMode: PropTypes.bool,\n        url: PropTypes.string.isRequired,\n    };\n\n    static initialPropsForData = (data, options) => {\n        return loadImage(\n            data.image\n        ).then(({height, width}) => {\n            const elementWidth = options.elementWidth;\n            const elementHeight = height / width * elementWidth;\n            return ({width: elementWidth, height: elementHeight + TOOLBAR_HEIGHT});\n        });\n    }\n\n    render() {\n        const {url, inEditMode} = this.props;\n\n        return (\n            <Iframe\n                inEditMode={inEditMode}\n                url={`https://www.slideshare.net/slideshow/embed_code/${url}?wmode=transparent`}\n            />\n        );\n    }\n}\n","import i18n from 'i18next';\n\nimport PropTypes from 'prop-types';\nimport React, {PureComponent} from 'react';\nimport {Map} from 'immutable';\nimport styled, {css} from 'styled-components';\n\nimport * as animations from './animations';\n\nfunction transform(from, to, current) {\n    return (current - from) / (to - from);\n}\n\nfunction crop(min, value, max) {\n    return Math.min(max, Math.max(value, min));\n}\n\nexport const DEFAULT_DURATION = 1;\nexport const DEFAULT_DELAY = 0;\nconst DEFAULT_DISTANCE = 1;\nconst DEFAULT_ON_VIEW_START_POSITION = 25;\nconst DEFAULT_ON_SCROLL_START_POSITION = 0;\nconst DEFAULT_ON_SCROLL_FINISH_POSITION = 50;\n\nexport const ANIMATION_PAUSED = 'paused';\nexport const ANIMATION_ON_VIEW = 'onView';\nexport const ANIMATION_ON_CLICK = 'onClick';\nexport const ANIMATION_ON_SCROLL = 'onScroll';\nexport const ANIMATION_INFINITE = 'infinite';\nexport const ANIMATION_ONCE = 'once';\nexport const ANIMATION_NONE = 'none';\n\nexport const AnimationTypeLabels = {\n    [ANIMATION_ON_VIEW]: () => i18n.t('app.animations.onView'),\n    [ANIMATION_ON_CLICK]: () => i18n.t('app.animations.onClick'),\n    [ANIMATION_ON_SCROLL]: () => 'onScroll',\n    [ANIMATION_INFINITE]: () => i18n.t('app.animations.infinite'),\n};\n\n/**\n * Specify here which animations can have distance,\n * they all will have default distance\n*/\nexport const defaultAnimationDistance = Object.fromEntries(\n    [\n        'slideInUp',\n        'slideInRight',\n        'slideInDown',\n        'slideInLeft',\n        'slideOutUp',\n        'slideOutRight',\n        'slideOutDown',\n        'slideOutLeft',\n        'fadeInUp',\n        'fadeInRight',\n        'fadeInDown',\n        'fadeInLeft',\n        'fadeOutUp',\n        'fadeOutRight',\n        'fadeOutDown',\n        'fadeOutLeft',\n        'rollIn',\n        'rollOut',\n        'lightSpeedIn',\n        'lightSpeedOut',\n    ].map(key => [key, DEFAULT_DISTANCE]),\n);\n\nexport function setAnimationDefaults(template) {\n    const defaultAnimationTemplate = Map({regime: ANIMATION_ON_VIEW});\n    const animation = template\n        ? defaultAnimationTemplate.merge(template)\n        : defaultAnimationTemplate\n    ;\n    const regime = animation.get('regime');\n    if (regime === ANIMATION_ON_VIEW) {\n        return animation.merge({\n            duration: DEFAULT_DURATION,\n            delay: DEFAULT_DELAY,\n            startAt: DEFAULT_ON_VIEW_START_POSITION,\n        });\n    } else if (regime === ANIMATION_ON_SCROLL) {\n        return animation.merge({\n            startAt: DEFAULT_ON_SCROLL_START_POSITION,\n            endAt: DEFAULT_ON_SCROLL_FINISH_POSITION,\n        });\n    }\n    return animation.merge({\n        duration: DEFAULT_DURATION,\n        delay: DEFAULT_DELAY,\n        distance: defaultAnimationDistance[animation.get('name')],\n    });\n}\n\nconst setAnimation = ({name, distance = DEFAULT_DISTANCE}) => ({\n    animated: true,\n    animation: animations[name](distance),\n    animationSetup: animations[`${name}Setup`],\n});\n\nconst Container = styled.div`\n    height: 100%;\n    width: 100%;\n`;\n\nconst Animator = styled.div.attrs(props => ({\n    style: {\n        animationDuration: props.animationDuration,\n        animationDelay: props.animationDelay,\n        animationIterationCount: props.animationIterationCount,\n        animationPlayState: props.animationPlayState,\n    },\n}))`\n    height: 100%;\n\n    animation-name: ${props => props.animation};\n    visibility: ${props => props.visibility};\n\n    /** Some CSS setup required by active animation */\n    ${props => props.animated && css`\n        animation-fill-mode: both;\n        will-change: transform;\n        transform: translateZ(0);\n    `}\n\n    /** Some animations require special setup */\n    ${props => props.animationSetup && css`${props.animationSetup}`}\n\n    /** Start state styling */\n    ${props => props.animationStartState && css`${props.animationStartState}`}\n\n    /** End state styling */\n    ${props => props.animationEndState && css`${props.animationEndState}`}\n`;\nAnimator.propTypes = {\n    animation: PropTypes.object,\n    animationDuration: PropTypes.string,\n    animationDelay: PropTypes.string,\n    animationIterationCount: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n    animationPlayState: PropTypes.string,\n    animated: PropTypes.bool,\n    visibility: PropTypes.oneOf(['visible', 'hidden']),\n    animationSetup: PropTypes.any,\n    animationStartState: PropTypes.any,\n};\n\nexport default class Animation extends PureComponent {\n    static propTypes = {\n        id: PropTypes.string,\n        regime: PropTypes.string,\n        startAt: PropTypes.number,\n        endAt: PropTypes.number,\n        position: PropTypes.number,\n        duration: PropTypes.number,\n        delay: PropTypes.number,\n        distance: PropTypes.number,\n        name: PropTypes.string.isRequired,\n        children: PropTypes.node,\n        observer: PropTypes.object,\n        childObserver: PropTypes.object,\n        onComplete: PropTypes.func,\n        triggered: PropTypes.bool,\n        complete: PropTypes.bool,\n    };\n\n    state = {\n        ratio: 0,\n        maxTopRatio: 1,\n        visible: false,\n    };\n\n    setPlaceholderRef = (element) => {\n        const regime = this.props.regime;\n        if (regime === ANIMATION_ON_VIEW || regime === ANIMATION_ON_SCROLL) {\n            if (this.props.observer && this.placeholder) {\n                this.props.observer.remove(this.placeholder);\n            }\n            this.placeholder = element;\n            this.registerObserver();\n        }\n    };\n\n    registerObserver() {\n        if (this.placeholder && this.props.observer) {\n            requestAnimationFrame(() => {\n                if (this.placeholder && this.props.observer) {\n                    //this is kind of a hack, our presentation starts in small size and resizes up,\n                    // if we register observer immediately it starts while presentation is small and all objects are considered visible from the start\n                    const startAt = this.props.startAt / 100;\n                    this.props.observer.add(this.placeholder, (event) => {\n                        if (this.props.regime === ANIMATION_ON_SCROLL) {\n                            const endAt = this.props.endAt / 100;\n                            const ratio = crop(0, transform(startAt, endAt, this.props.observer.getObjectCenterVerticalRatio(event)), 1);\n                            this.setState({\n                                ratio,\n                            });\n                        } else {\n                            const visible = this.props.observer.getObjectTopRatio(event) > 0;\n                            const ratio = visible ? Math.max(this.props.observer.getObjectTopRatio(event), this.state.ratio) : 0;\n                            const maxTopRatio = this.props.observer.getMaxObjectTopRatio(event);\n                            if (this.props.childObserver && visible && ratio >= Math.min(startAt, maxTopRatio)) {\n                                this.props.childObserver.trigger();\n                            }\n                            this.setState({\n                                ratio,\n                                maxTopRatio,\n                                visible,\n                            });\n                        }\n                    });\n                }\n            });\n        }\n    }\n\n    componentDidUpdate(prevProps) {\n        if (this.props.observer !== prevProps.observer) {\n            if (prevProps.observer) {\n                if (this.placeholder) {\n                    prevProps.observer.remove(this.placeholder);\n                }\n            }\n            this.registerObserver();\n        }\n    }\n\n    onAnimationComplete = (e) => {\n        const {onComplete, id} = this.props;\n        if (onComplete) {\n            onComplete(id);\n        }\n\n        // prevent parent group element from premature dispatch\n        e.stopPropagation();\n    }\n\n    getAnimationProps = () => {\n        // There should not exist animation object without a name..\n        if (!this.props.name) {\n            // ...but sometimes it does. This prevents runtime error\n            // TODO find reason why sometimes there is animation w/o name\n            return {};\n        }\n        switch (this.props.regime) {\n            case ANIMATION_PAUSED:\n                return {\n                    ...setAnimation(this.props),\n                    animationPlayState: 'paused',\n                    animationDelay: `-${this.props.position || 0}s`,\n                    animationDuration: '1s',\n                };\n            case ANIMATION_INFINITE:\n                return {\n                    ...setAnimation(this.props),\n                    animationIterationCount: 'infinite',\n                    animationDuration: `${this.props.duration}s`,\n                    animationDelay: `${this.props.delay}s`,\n                };\n            case ANIMATION_ON_SCROLL:\n                return {\n                    ...setAnimation(this.props),\n                    animationPlayState: 'paused',\n                    animationDelay: `-${this.state.ratio}s`,\n                    animationDuration: `1s`,\n                };\n            case ANIMATION_ON_VIEW:\n            case ANIMATION_ON_CLICK: {\n                const {name, delay, duration, triggered, distance = DEFAULT_DISTANCE} = this.props;\n                const {ratio, maxTopRatio} = this.state;\n                const animationSetup = animations[`${name}Setup`];\n                const animationStartState = animations[`${name}StartState`];\n                if (this.props.complete && this.props.regime === ANIMATION_ON_CLICK) {\n                    const animationEndState = animations[`${name}EndState`] || animationStartState;\n                    return {\n                        animationSetup: animationSetup && animationSetup(distance),\n                        animationEndState: animationEndState && animationEndState(distance),\n                    };\n                }\n\n                const visible = this.state.visible || this.props.regime === ANIMATION_ON_CLICK;\n                const startAt = this.props.startAt / 100;\n                const animated = triggered || ratio >= Math.min(startAt, maxTopRatio) && visible;\n\n                return {\n                    animationSetup: animationSetup && animationSetup(distance),\n                    animationStartState: !animated\n                        && visible\n                        && animationStartState\n                        && animationStartState(distance),\n                    animated,\n                    ...(animated ? {animation: animations[name](distance)} : {}),\n                    animationDuration: `${duration}s`,\n                    animationDelay: `${delay}s`,\n                    visibility: visible ? 'visible' : 'hidden',\n                };\n            }\n            case ANIMATION_ONCE:\n                return {\n                    ...setAnimation(this.props),\n                    animationIterationCount: 1,\n                    animationDuration: `${this.props.duration}s`,\n                    animationDelay: `${this.props.delay}s`,\n                };\n            case ANIMATION_NONE:\n            default:\n                return {};\n        }\n    }\n\n    render() {\n        return (\n            <Container ref={this.setPlaceholderRef}>\n                <Animator\n                    {...this.getAnimationProps()}\n                    onAnimationEnd={this.onAnimationComplete}\n                >\n                    {this.props.children}\n                </Animator>\n            </Container>\n        );\n    }\n}\n","module.exports = __webpack_public_path__ + \"2i63TRRXp40p9VPN-Vy_uL.svg\";","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar $sort = [].sort;\n\n// `%TypedArray%.prototype.sort` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.sort\nArrayBufferViewCore.exportProto('sort', function sort(comparefn) {\n  return $sort.call(aTypedArray(this), comparefn);\n});\n","var anObject = require('../internals/an-object');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar toLength = require('../internals/to-length');\nvar bind = require('../internals/bind-context');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\n\nvar Result = function (stopped, result) {\n  this.stopped = stopped;\n  this.result = result;\n};\n\nvar iterate = module.exports = function (iterable, fn, that, AS_ENTRIES, IS_ITERATOR) {\n  var boundFunction = bind(fn, that, AS_ENTRIES ? 2 : 1);\n  var iterator, iterFn, index, length, result, step;\n\n  if (IS_ITERATOR) {\n    iterator = iterable;\n  } else {\n    iterFn = getIteratorMethod(iterable);\n    if (typeof iterFn != 'function') throw TypeError('Target is not iterable');\n    // optimisation for array iterators\n    if (isArrayIteratorMethod(iterFn)) {\n      for (index = 0, length = toLength(iterable.length); length > index; index++) {\n        result = AS_ENTRIES\n          ? boundFunction(anObject(step = iterable[index])[0], step[1])\n          : boundFunction(iterable[index]);\n        if (result && result instanceof Result) return result;\n      } return new Result(false);\n    }\n    iterator = iterFn.call(iterable);\n  }\n\n  while (!(step = iterator.next()).done) {\n    result = callWithSafeIterationClosing(iterator, boundFunction, step.value, AS_ENTRIES);\n    if (result && result instanceof Result) return result;\n  } return new Result(false);\n};\n\niterate.stop = function (result) {\n  return new Result(true, result);\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/forced-string-html-method');\n\n// `String.prototype.strike` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.strike\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('strike') }, {\n  strike: function strike() {\n    return createHTML(this, 'strike', '', '');\n  }\n});\n","import i18n from 'i18next';\n\nexport const VIDEO_PLAYBACK_ONCE = 'once';\nexport const VIDEO_PLAYBACK_LOOP = 'loop';\nexport const VIDEO_PLAYBACK_LABELS = () => ({\n    [VIDEO_PLAYBACK_ONCE]: i18n.t('app.videoSettings.playback.once'),\n    [VIDEO_PLAYBACK_LOOP]: i18n.t('app.videoSettings.playback.loop'),\n});\n","import _ from 'lodash';\n\nimport invariant from 'invariant';\n\nimport {tooltipDummy, getTooltip, setTooltip} from '../../../../client/components/charts/tooltip';\n\nimport ToolTip from './infogram-charts-tooltip';\n\nimport {\n    LINE,\n    LINE_ERROR_MARGIN,\n    BAR,\n    BAR_STACKED,\n    BAR_GROUPED,\n    BAR_RADIAL,\n    BAR_STACKED_PERCENT,\n    BAR_RACE,\n    COLUMN,\n    COLUMN_STACKED,\n    COLUMN_GROUPED,\n    COLUMN_STACKED_PERCENT,\n    GANTT,\n    PIE,\n    DOUGHNUT,\n    PIE_IRREGULAR,\n    SEMI_CIRCLE,\n    COLUMN_LINE,\n    LINE_LINE,\n    COMBO_GROUPED,\n    COMBO_STACKED,\n    AREA,\n    AREA_STACKED,\n    AREA_STACKED_PERCENT,\n    STREAM_GRAPH,\n    AREA_STEPPED,\n    SCATTER,\n    SCATTER_GROUPED,\n    DOT_PLOT,\n    BUBBLE,\n    BUBBLE_PLOT,\n    PICTORIAL_GRID,\n    PICTORIAL_SIZE,\n    PICTORIAL_BAR,\n    PYRAMID,\n    FUNNEL,\n    TABLE,\n    GAUGE,\n    BAR_PROGRESS,\n    WORDCLOUD,\n    TREEMAP,\n    CANDLESTICK,\n    WATERFALL,\n    TIMER,\n    FACTS_AND_FIGURES,\n    MAP,\n} from '../../shared/chart_constants';\nimport config from '../../config';\n\nexport const DELAY_VISUAL_INITIALIZATION = 100;\n\nconst prototypeMap = {};\n\nconst mapCache = {};\n\nexport default {\n    create: async function(options) {\n        const {chart} = options;\n        if (getTooltip() === tooltipDummy) {\n            setTooltip(new ToolTip({\n                escapeFn: _.escape,\n            }));\n        }\n\n        function Chart(options) {\n            this.delayVisualInitialization = DELAY_VISUAL_INITIALIZATION;\n            // need to return this because initialize is a promise\n            return this.initialize(options);\n        }\n\n        if (chart.getTypeMod() === MAP) {\n            const {map_json, isCustomMap} = chart.get('custom');\n            const {map} = chart.get('custom');\n            const prop = isCustomMap ? 'mapCDN' : 'infogramMapCDN';\n            if (!map_json) {\n                if (!mapCache[map]) {\n                    const mapDataResponse = await fetch(`${config[prop] || window.publicViewConfig[prop]}/${map}.json`);\n                    if (!mapDataResponse.ok) {\n                        throw new Error(`Unable to load map ${map}`);\n                    }\n                    mapCache[map] = await mapDataResponse.json();\n                }\n                const custom = chart.get('custom');\n                custom.map_json = mapCache[map];\n                chart.set({custom});\n            } else if (!mapCache[map]) {\n                mapCache[map] = chart.get('custom').map_json;\n            }\n        }\n\n        const typeMod = chart.getTypeMod();\n        const module = await loadChartModule(typeMod);\n        prototypeMap[typeMod] = module;\n\n        Chart.prototype = module;\n\n        return new Chart(options);\n    },\n    prototypes: prototypeMap,\n    delayVisualInitialization: DELAY_VISUAL_INITIALIZATION,\n};\n\nasync function loadChartModule(typeMod) {\n    let modulePromise;\n    switch (typeMod) {\n        case LINE:\n        case LINE_ERROR_MARGIN: {\n            modulePromise = import(/* webpackChunkName: \"infogram-charts/charts-line\" */ './charts/line');\n            break;\n        }\n        case BAR: {\n            modulePromise = import(/* webpackChunkName: \"infogram-charts/charts-bar\" */ './charts/bar');\n            break;\n        }\n        case BAR_STACKED: {\n            modulePromise = import(/* webpackChunkName: \"infogram-charts/charts-bar_stacked\" */ './charts/bar_stacked');\n            break;\n        }\n        case BAR_GROUPED: {\n            modulePromise = import(/* webpackChunkName: \"infogram-charts/charts-bar_grouped\" */ './charts/bar_grouped');\n            break;\n        }\n        case BAR_RADIAL: {\n            modulePromise = import(/* webpackChunkName: \"infogram-charts/charts-bar_radial\" */ './charts/bar_radial');\n            break;\n        }\n        case BAR_STACKED_PERCENT: {\n            modulePromise = import(/* webpackChunkName: \"infogram-charts/charts-bar_stacked_percent\" */ './charts/bar_stacked_percent');\n            break;\n        }\n        case BAR_RACE: {\n            modulePromise = import(/* webpackChunkName: \"infogram-charts/charts-bar_race\" */ './charts/bar_race');\n            break;\n        }\n        case COLUMN: {\n            modulePromise = import(/* webpackChunkName: \"infogram-charts/charts-column\" */ './charts/column');\n            break;\n        }\n        case COLUMN_STACKED: {\n            modulePromise = import(/* webpackChunkName: \"infogram-charts/charts-column_stacked\" */ './charts/column_stacked');\n            break;\n        }\n        case COLUMN_GROUPED: {\n            modulePromise = import(/* webpackChunkName: \"infogram-charts/charts-column_grouped\" */ './charts/column_grouped');\n            break;\n        }\n        case COLUMN_STACKED_PERCENT: {\n            modulePromise = import(/* webpackChunkName: \"infogram-charts/charts-column_stacked_percent\" */ './charts/column_stacked_percent');\n            break;\n        }\n        case GANTT: {\n            modulePromise = import(/* webpackChunkName: \"infogram-charts/charts-gantt\" */ './charts/gantt');\n            break;\n        }\n        case PIE: {\n            modulePromise = import(/* webpackChunkName: \"infogram-charts/charts-pie\" */ './charts/pie');\n            break;\n        }\n        case DOUGHNUT: {\n            modulePromise = import(/* webpackChunkName: \"infogram-charts/charts-doughnut\" */ './charts/doughnut');\n            break;\n        }\n        case PIE_IRREGULAR: {\n            modulePromise = import(/* webpackChunkName: \"infogram-charts/charts-irregular_pie\" */ './charts/irregular_pie');\n            break;\n        }\n        case SEMI_CIRCLE: {\n            modulePromise = import(/* webpackChunkName: \"infogram-charts/charts-semi_circle\" */ './charts/semi_circle');\n            break;\n        }\n        case COLUMN_LINE: {\n            modulePromise = import(/* webpackChunkName: \"infogram-charts/charts-column_line\" */ './charts/column_line');\n            break;\n        }\n        case LINE_LINE: {\n            modulePromise = import(/* webpackChunkName: \"infogram-charts/charts-line_line\" */ './charts/line_line');\n            break;\n        }\n        case COMBO_GROUPED: {\n            modulePromise = import(/* webpackChunkName: \"infogram-charts/charts-combo_gruped\" */ './charts/combo_grouped');\n            break;\n        }\n        case COMBO_STACKED: {\n            modulePromise = import(/* webpackChunkName: \"infogram-charts/charts-combo_stacked\" */ './charts/combo_stacked');\n            break;\n        }\n        case AREA: {\n            modulePromise = import(/* webpackChunkName: \"infogram-charts/charts-area\" */ './charts/area');\n            break;\n        }\n        case AREA_STACKED: {\n            modulePromise = import(/* webpackChunkName: \"infogram-charts/charts-area_stacked\" */ './charts/area_stacked');\n            break;\n        }\n        case AREA_STACKED_PERCENT: {\n            modulePromise = import(/* webpackChunkName: \"infogram-charts/charts-area_stacked_percent\" */ './charts/area_stacked_percent');\n            break;\n        }\n        case STREAM_GRAPH: {\n            modulePromise = import(/* webpackChunkName: \"infogram-charts/charts-stream_graph\" */ './charts/stream_graph');\n            break;\n        }\n        case AREA_STEPPED: {\n            modulePromise = import(/* webpackChunkName: \"infogram-charts/charts-area_stepped\" */ './charts/area_stepped');\n            break;\n        }\n        case SCATTER: {\n            modulePromise = import(/* webpackChunkName: \"infogram-charts/charts-scatter\" */ './charts/scatter');\n            break;\n        }\n        case SCATTER_GROUPED: {\n            modulePromise = import(/* webpackChunkName: \"infogram-charts/charts-scatter_grouped\" */ './charts/scatter_grouped');\n            break;\n        }\n        case DOT_PLOT: {\n            modulePromise = import(/* webpackChunkName: \"infogram-charts/charts-dot_plot\" */'./charts/dot_plot');\n            break;\n        }\n        case BUBBLE: {\n            modulePromise = import(/* webpackChunkName: \"infogram-charts/charts-bubble\" */ './charts/bubble');\n            break;\n        }\n        case BUBBLE_PLOT: {\n            modulePromise = import(/* webpackChunkName: \"infogram-charts/charts-bubble_plot\" */ './charts/bubble_plot');\n            break;\n        }\n        case PICTORIAL_GRID: {\n            modulePromise = import(/* webpackChunkName: \"infogram-charts/charts-pictorial_grid\" */ './charts/pictorial_grid');\n            break;\n        }\n        case PICTORIAL_SIZE: {\n            modulePromise = import(/* webpackChunkName: \"infogram-charts/charts-pictorial_size\" */ './charts/pictorial_size');\n            break;\n        }\n        case PICTORIAL_BAR: {\n            modulePromise = import(/* webpackChunkName: \"infogram-charts/charts-pictorial_bar\" */ './charts/pictorial_bar');\n            break;\n        }\n        case PYRAMID: {\n            modulePromise = import(/* webpackChunkName: \"infogram-charts/charts-pyramid\" */ './charts/pyramid');\n            break;\n        }\n        case FUNNEL: {\n            modulePromise = import(/* webpackChunkName: \"infogram-charts/charts-funnel\" */ './charts/funnel');\n            break;\n        }\n        case TABLE: {\n            modulePromise = import(/* webpackChunkName: \"infogram-charts/charts-table\" */ './charts/table');\n            break;\n        }\n        case GAUGE: {\n            modulePromise = import(/* webpackChunkName: \"infogram-charts/charts-gauge\" */ './charts/gauge');\n            break;\n        }\n        case BAR_PROGRESS: {\n            modulePromise = import(/* webpackChunkName: \"infogram-charts/charts-progress_bar\" */ './charts/progress_bar');\n            break;\n        }\n        case WORDCLOUD: {\n            modulePromise = import(/* webpackChunkName: \"infogram-charts/charts-wordcloud\" */ './charts/wordcloud');\n            break;\n        }\n        case TREEMAP: {\n            modulePromise = import(/* webpackChunkName: \"infogram-charts/charts-treemap\" */ './charts/treemap');\n            break;\n        }\n        case CANDLESTICK: {\n            modulePromise = import(/* webpackChunkName: \"infogram-charts/charts-candlestick\" */ './charts/candlestick');\n            break;\n        }\n        case WATERFALL: {\n            modulePromise = import(/* webpackChunkName: \"infogram-charts/charts-waterfall\" */ './charts/waterfall');\n            break;\n        }\n        case TIMER: {\n            modulePromise = import(/* webpackChunkName: \"infogram-charts/charts-timer\" */ './charts/timer');\n            break;\n        }\n        case FACTS_AND_FIGURES: {\n            modulePromise = import(/* webpackChunkName: \"infogram-charts/charts-facts_and_figures\" */ './charts/facts_and_figures');\n            break;\n        }\n        case MAP: {\n            modulePromise = import(/* webpackChunkName: \"infogram-charts/charts-map\" */ './charts/map');\n            break;\n        }\n        default: {\n            invariant(modulePromise, 'Unrecognized type mod: ' + typeMod);\n        }\n    }\n    const module = await modulePromise;\n    return module.default;\n}\n","var $ = require('../internals/export');\nvar isArray = require('../internals/is-array');\n\n// `Array.isArray` method\n// https://tc39.github.io/ecma262/#sec-array.isarray\n$({ target: 'Array', stat: true }, {\n  isArray: isArray\n});\n","import {OrderedMap} from 'immutable';\n\n/**\n * (RECURSIVE) Flattens all entities from all lower layers, starting from the entities passed.\n *\n * @param {EditorState} editorState\n * @param {Immutable.Collection} entities to be flattened\n *\n * @returns {Immutable.OrderedMap} all children entities\n */\nexport function flattenEntities(editorState, entities) {\n    if (entities.isEmpty()) {\n        return OrderedMap();\n    }\n    const blockKey = entities.first().blockKey;\n    const block = editorState.getCurrentContent().getBlock(blockKey);\n    return OrderedMap().withMutations(mutable => {\n        return _recursiveFlatten(block, entities, mutable);\n    });\n}\n\n/**\n * @param {InfographicContentBlock} block\n * @param {Immutable.Collection} entities\n *\n * @returns {Immutable.OrderedMap} map of entities\n */\nexport function flattenBlockEntities(block, entities) {\n    if (entities.isEmpty()) {\n        return OrderedMap();\n    }\n    return OrderedMap().withMutations(mutable => {\n        return _recursiveFlatten(block, entities, mutable);\n    });\n}\n\n/**\n * @param {InfographicContentBlock} block\n * @param {Immutable.Collection} entities\n * @param {Immutable.OrderedMap} flatEntities\n *\n * @returns {Immutable.OrderedMap} flattened entities\n *\n * @private\n */\nfunction _recursiveFlatten(block, entities, flatEntities) {\n    for (const entity of entities.values()) {\n        flatEntities = flatEntities.set(entity.getKey(), entity);\n        if (entity.isGroup()) {\n            const childEntities = block.getEntitiesByKeys(entity.getChildrenKeys());\n            flatEntities = _recursiveFlatten(block, childEntities, flatEntities);\n        }\n    }\n    return flatEntities;\n}\n","/* Web Font Loader v1.6.28 - (c) Adobe Systems, Google. License: Apache 2.0 */(function(){function aa(a,b,c){return a.call.apply(a.bind,arguments)}function ba(a,b,c){if(!a)throw Error();if(2<arguments.length){var d=Array.prototype.slice.call(arguments,2);return function(){var c=Array.prototype.slice.call(arguments);Array.prototype.unshift.apply(c,d);return a.apply(b,c)}}return function(){return a.apply(b,arguments)}}function p(a,b,c){p=Function.prototype.bind&&-1!=Function.prototype.bind.toString().indexOf(\"native code\")?aa:ba;return p.apply(null,arguments)}var q=Date.now||function(){return+new Date};function ca(a,b){this.a=a;this.o=b||a;this.c=this.o.document}var da=!!window.FontFace;function t(a,b,c,d){b=a.c.createElement(b);if(c)for(var e in c)c.hasOwnProperty(e)&&(\"style\"==e?b.style.cssText=c[e]:b.setAttribute(e,c[e]));d&&b.appendChild(a.c.createTextNode(d));return b}function u(a,b,c){a=a.c.getElementsByTagName(b)[0];a||(a=document.documentElement);a.insertBefore(c,a.lastChild)}function v(a){a.parentNode&&a.parentNode.removeChild(a)}\nfunction w(a,b,c){b=b||[];c=c||[];for(var d=a.className.split(/\\s+/),e=0;e<b.length;e+=1){for(var f=!1,g=0;g<d.length;g+=1)if(b[e]===d[g]){f=!0;break}f||d.push(b[e])}b=[];for(e=0;e<d.length;e+=1){f=!1;for(g=0;g<c.length;g+=1)if(d[e]===c[g]){f=!0;break}f||b.push(d[e])}a.className=b.join(\" \").replace(/\\s+/g,\" \").replace(/^\\s+|\\s+$/,\"\")}function y(a,b){for(var c=a.className.split(/\\s+/),d=0,e=c.length;d<e;d++)if(c[d]==b)return!0;return!1}\nfunction ea(a){return a.o.location.hostname||a.a.location.hostname}function z(a,b,c){function d(){m&&e&&f&&(m(g),m=null)}b=t(a,\"link\",{rel:\"stylesheet\",href:b,media:\"all\"});var e=!1,f=!0,g=null,m=c||null;da?(b.onload=function(){e=!0;d()},b.onerror=function(){e=!0;g=Error(\"Stylesheet failed to load\");d()}):setTimeout(function(){e=!0;d()},0);u(a,\"head\",b)}\nfunction A(a,b,c,d){var e=a.c.getElementsByTagName(\"head\")[0];if(e){var f=t(a,\"script\",{src:b}),g=!1;f.onload=f.onreadystatechange=function(){g||this.readyState&&\"loaded\"!=this.readyState&&\"complete\"!=this.readyState||(g=!0,c&&c(null),f.onload=f.onreadystatechange=null,\"HEAD\"==f.parentNode.tagName&&e.removeChild(f))};e.appendChild(f);setTimeout(function(){g||(g=!0,c&&c(Error(\"Script load timeout\")))},d||5E3);return f}return null};function B(){this.a=0;this.c=null}function C(a){a.a++;return function(){a.a--;D(a)}}function E(a,b){a.c=b;D(a)}function D(a){0==a.a&&a.c&&(a.c(),a.c=null)};function F(a){this.a=a||\"-\"}F.prototype.c=function(a){for(var b=[],c=0;c<arguments.length;c++)b.push(arguments[c].replace(/[\\W_]+/g,\"\").toLowerCase());return b.join(this.a)};function G(a,b){this.c=a;this.f=4;this.a=\"n\";var c=(b||\"n4\").match(/^([nio])([1-9])$/i);c&&(this.a=c[1],this.f=parseInt(c[2],10))}function fa(a){return H(a)+\" \"+(a.f+\"00\")+\" 300px \"+I(a.c)}function I(a){var b=[];a=a.split(/,\\s*/);for(var c=0;c<a.length;c++){var d=a[c].replace(/['\"]/g,\"\");-1!=d.indexOf(\" \")||/^\\d/.test(d)?b.push(\"'\"+d+\"'\"):b.push(d)}return b.join(\",\")}function J(a){return a.a+a.f}function H(a){var b=\"normal\";\"o\"===a.a?b=\"oblique\":\"i\"===a.a&&(b=\"italic\");return b}\nfunction ga(a){var b=4,c=\"n\",d=null;a&&((d=a.match(/(normal|oblique|italic)/i))&&d[1]&&(c=d[1].substr(0,1).toLowerCase()),(d=a.match(/([1-9]00|normal|bold)/i))&&d[1]&&(/bold/i.test(d[1])?b=7:/[1-9]00/.test(d[1])&&(b=parseInt(d[1].substr(0,1),10))));return c+b};function ha(a,b){this.c=a;this.f=a.o.document.documentElement;this.h=b;this.a=new F(\"-\");this.j=!1!==b.events;this.g=!1!==b.classes}function ia(a){a.g&&w(a.f,[a.a.c(\"wf\",\"loading\")]);K(a,\"loading\")}function L(a){if(a.g){var b=y(a.f,a.a.c(\"wf\",\"active\")),c=[],d=[a.a.c(\"wf\",\"loading\")];b||c.push(a.a.c(\"wf\",\"inactive\"));w(a.f,c,d)}K(a,\"inactive\")}function K(a,b,c){if(a.j&&a.h[b])if(c)a.h[b](c.c,J(c));else a.h[b]()};function ja(){this.c={}}function ka(a,b,c){var d=[],e;for(e in b)if(b.hasOwnProperty(e)){var f=a.c[e];f&&d.push(f(b[e],c))}return d};function M(a,b){this.c=a;this.f=b;this.a=t(this.c,\"span\",{\"aria-hidden\":\"true\"},this.f)}function N(a){u(a.c,\"body\",a.a)}function O(a){return\"display:block;position:absolute;top:-9999px;left:-9999px;font-size:300px;width:auto;height:auto;line-height:normal;margin:0;padding:0;font-variant:normal;white-space:nowrap;font-family:\"+I(a.c)+\";\"+(\"font-style:\"+H(a)+\";font-weight:\"+(a.f+\"00\")+\";\")};function P(a,b,c,d,e,f){this.g=a;this.j=b;this.a=d;this.c=c;this.f=e||3E3;this.h=f||void 0}P.prototype.start=function(){var a=this.c.o.document,b=this,c=q(),d=new Promise(function(d,e){function f(){q()-c>=b.f?e():a.fonts.load(fa(b.a),b.h).then(function(a){1<=a.length?d():setTimeout(f,25)},function(){e()})}f()}),e=null,f=new Promise(function(a,d){e=setTimeout(d,b.f)});Promise.race([f,d]).then(function(){e&&(clearTimeout(e),e=null);b.g(b.a)},function(){b.j(b.a)})};function Q(a,b,c,d,e,f,g){this.v=a;this.B=b;this.c=c;this.a=d;this.s=g||\"BESbswy\";this.f={};this.w=e||3E3;this.u=f||null;this.m=this.j=this.h=this.g=null;this.g=new M(this.c,this.s);this.h=new M(this.c,this.s);this.j=new M(this.c,this.s);this.m=new M(this.c,this.s);a=new G(this.a.c+\",serif\",J(this.a));a=O(a);this.g.a.style.cssText=a;a=new G(this.a.c+\",sans-serif\",J(this.a));a=O(a);this.h.a.style.cssText=a;a=new G(\"serif\",J(this.a));a=O(a);this.j.a.style.cssText=a;a=new G(\"sans-serif\",J(this.a));a=\nO(a);this.m.a.style.cssText=a;N(this.g);N(this.h);N(this.j);N(this.m)}var R={D:\"serif\",C:\"sans-serif\"},S=null;function T(){if(null===S){var a=/AppleWebKit\\/([0-9]+)(?:\\.([0-9]+))/.exec(window.navigator.userAgent);S=!!a&&(536>parseInt(a[1],10)||536===parseInt(a[1],10)&&11>=parseInt(a[2],10))}return S}Q.prototype.start=function(){this.f.serif=this.j.a.offsetWidth;this.f[\"sans-serif\"]=this.m.a.offsetWidth;this.A=q();U(this)};\nfunction la(a,b,c){for(var d in R)if(R.hasOwnProperty(d)&&b===a.f[R[d]]&&c===a.f[R[d]])return!0;return!1}function U(a){var b=a.g.a.offsetWidth,c=a.h.a.offsetWidth,d;(d=b===a.f.serif&&c===a.f[\"sans-serif\"])||(d=T()&&la(a,b,c));d?q()-a.A>=a.w?T()&&la(a,b,c)&&(null===a.u||a.u.hasOwnProperty(a.a.c))?V(a,a.v):V(a,a.B):ma(a):V(a,a.v)}function ma(a){setTimeout(p(function(){U(this)},a),50)}function V(a,b){setTimeout(p(function(){v(this.g.a);v(this.h.a);v(this.j.a);v(this.m.a);b(this.a)},a),0)};function W(a,b,c){this.c=a;this.a=b;this.f=0;this.m=this.j=!1;this.s=c}var X=null;W.prototype.g=function(a){var b=this.a;b.g&&w(b.f,[b.a.c(\"wf\",a.c,J(a).toString(),\"active\")],[b.a.c(\"wf\",a.c,J(a).toString(),\"loading\"),b.a.c(\"wf\",a.c,J(a).toString(),\"inactive\")]);K(b,\"fontactive\",a);this.m=!0;na(this)};\nW.prototype.h=function(a){var b=this.a;if(b.g){var c=y(b.f,b.a.c(\"wf\",a.c,J(a).toString(),\"active\")),d=[],e=[b.a.c(\"wf\",a.c,J(a).toString(),\"loading\")];c||d.push(b.a.c(\"wf\",a.c,J(a).toString(),\"inactive\"));w(b.f,d,e)}K(b,\"fontinactive\",a);na(this)};function na(a){0==--a.f&&a.j&&(a.m?(a=a.a,a.g&&w(a.f,[a.a.c(\"wf\",\"active\")],[a.a.c(\"wf\",\"loading\"),a.a.c(\"wf\",\"inactive\")]),K(a,\"active\")):L(a.a))};function oa(a){this.j=a;this.a=new ja;this.h=0;this.f=this.g=!0}oa.prototype.load=function(a){this.c=new ca(this.j,a.context||this.j);this.g=!1!==a.events;this.f=!1!==a.classes;pa(this,new ha(this.c,a),a)};\nfunction qa(a,b,c,d,e){var f=0==--a.h;(a.f||a.g)&&setTimeout(function(){var a=e||null,m=d||null||{};if(0===c.length&&f)L(b.a);else{b.f+=c.length;f&&(b.j=f);var h,l=[];for(h=0;h<c.length;h++){var k=c[h],n=m[k.c],r=b.a,x=k;r.g&&w(r.f,[r.a.c(\"wf\",x.c,J(x).toString(),\"loading\")]);K(r,\"fontloading\",x);r=null;if(null===X)if(window.FontFace){var x=/Gecko.*Firefox\\/(\\d+)/.exec(window.navigator.userAgent),xa=/OS X.*Version\\/10\\..*Safari/.exec(window.navigator.userAgent)&&/Apple/.exec(window.navigator.vendor);\nX=x?42<parseInt(x[1],10):xa?!1:!0}else X=!1;X?r=new P(p(b.g,b),p(b.h,b),b.c,k,b.s,n):r=new Q(p(b.g,b),p(b.h,b),b.c,k,b.s,a,n);l.push(r)}for(h=0;h<l.length;h++)l[h].start()}},0)}function pa(a,b,c){var d=[],e=c.timeout;ia(b);var d=ka(a.a,c,a.c),f=new W(a.c,b,e);a.h=d.length;b=0;for(c=d.length;b<c;b++)d[b].load(function(b,d,c){qa(a,f,b,d,c)})};function ra(a,b){this.c=a;this.a=b}\nra.prototype.load=function(a){function b(){if(f[\"__mti_fntLst\"+d]){var c=f[\"__mti_fntLst\"+d](),e=[],h;if(c)for(var l=0;l<c.length;l++){var k=c[l].fontfamily;void 0!=c[l].fontStyle&&void 0!=c[l].fontWeight?(h=c[l].fontStyle+c[l].fontWeight,e.push(new G(k,h))):e.push(new G(k))}a(e)}else setTimeout(function(){b()},50)}var c=this,d=c.a.projectId,e=c.a.version;if(d){var f=c.c.o;A(this.c,(c.a.api||\"https://fast.fonts.net/jsapi\")+\"/\"+d+\".js\"+(e?\"?v=\"+e:\"\"),function(e){e?a([]):(f[\"__MonotypeConfiguration__\"+\nd]=function(){return c.a},b())}).id=\"__MonotypeAPIScript__\"+d}else a([])};function sa(a,b){this.c=a;this.a=b}sa.prototype.load=function(a){var b,c,d=this.a.urls||[],e=this.a.families||[],f=this.a.testStrings||{},g=new B;b=0;for(c=d.length;b<c;b++)z(this.c,d[b],C(g));var m=[];b=0;for(c=e.length;b<c;b++)if(d=e[b].split(\":\"),d[1])for(var h=d[1].split(\",\"),l=0;l<h.length;l+=1)m.push(new G(d[0],h[l]));else m.push(new G(d[0]));E(g,function(){a(m,f)})};function ta(a,b){a?this.c=a:this.c=ua;this.a=[];this.f=[];this.g=b||\"\"}var ua=\"https://fonts.googleapis.com/css\";function va(a,b){for(var c=b.length,d=0;d<c;d++){var e=b[d].split(\":\");3==e.length&&a.f.push(e.pop());var f=\"\";2==e.length&&\"\"!=e[1]&&(f=\":\");a.a.push(e.join(f))}}\nfunction wa(a){if(0==a.a.length)throw Error(\"No fonts to load!\");if(-1!=a.c.indexOf(\"kit=\"))return a.c;for(var b=a.a.length,c=[],d=0;d<b;d++)c.push(a.a[d].replace(/ /g,\"+\"));b=a.c+\"?family=\"+c.join(\"%7C\");0<a.f.length&&(b+=\"&subset=\"+a.f.join(\",\"));0<a.g.length&&(b+=\"&text=\"+encodeURIComponent(a.g));return b};function ya(a){this.f=a;this.a=[];this.c={}}\nvar za={latin:\"BESbswy\",\"latin-ext\":\"\\u00e7\\u00f6\\u00fc\\u011f\\u015f\",cyrillic:\"\\u0439\\u044f\\u0416\",greek:\"\\u03b1\\u03b2\\u03a3\",khmer:\"\\u1780\\u1781\\u1782\",Hanuman:\"\\u1780\\u1781\\u1782\"},Aa={thin:\"1\",extralight:\"2\",\"extra-light\":\"2\",ultralight:\"2\",\"ultra-light\":\"2\",light:\"3\",regular:\"4\",book:\"4\",medium:\"5\",\"semi-bold\":\"6\",semibold:\"6\",\"demi-bold\":\"6\",demibold:\"6\",bold:\"7\",\"extra-bold\":\"8\",extrabold:\"8\",\"ultra-bold\":\"8\",ultrabold:\"8\",black:\"9\",heavy:\"9\",l:\"3\",r:\"4\",b:\"7\"},Ba={i:\"i\",italic:\"i\",n:\"n\",normal:\"n\"},\nCa=/^(thin|(?:(?:extra|ultra)-?)?light|regular|book|medium|(?:(?:semi|demi|extra|ultra)-?)?bold|black|heavy|l|r|b|[1-9]00)?(n|i|normal|italic)?$/;\nfunction Da(a){for(var b=a.f.length,c=0;c<b;c++){var d=a.f[c].split(\":\"),e=d[0].replace(/\\+/g,\" \"),f=[\"n4\"];if(2<=d.length){var g;var m=d[1];g=[];if(m)for(var m=m.split(\",\"),h=m.length,l=0;l<h;l++){var k;k=m[l];if(k.match(/^[\\w-]+$/)){var n=Ca.exec(k.toLowerCase());if(null==n)k=\"\";else{k=n[2];k=null==k||\"\"==k?\"n\":Ba[k];n=n[1];if(null==n||\"\"==n)n=\"4\";else var r=Aa[n],n=r?r:isNaN(n)?\"4\":n.substr(0,1);k=[k,n].join(\"\")}}else k=\"\";k&&g.push(k)}0<g.length&&(f=g);3==d.length&&(d=d[2],g=[],d=d?d.split(\",\"):\ng,0<d.length&&(d=za[d[0]])&&(a.c[e]=d))}a.c[e]||(d=za[e])&&(a.c[e]=d);for(d=0;d<f.length;d+=1)a.a.push(new G(e,f[d]))}};function Ea(a,b){this.c=a;this.a=b}var Fa={Arimo:!0,Cousine:!0,Tinos:!0};Ea.prototype.load=function(a){var b=new B,c=this.c,d=new ta(this.a.api,this.a.text),e=this.a.families;va(d,e);var f=new ya(e);Da(f);z(c,wa(d),C(b));E(b,function(){a(f.a,f.c,Fa)})};function Ga(a,b){this.c=a;this.a=b}Ga.prototype.load=function(a){var b=this.a.id,c=this.c.o;b?A(this.c,(this.a.api||\"https://use.typekit.net\")+\"/\"+b+\".js\",function(b){if(b)a([]);else if(c.Typekit&&c.Typekit.config&&c.Typekit.config.fn){b=c.Typekit.config.fn;for(var e=[],f=0;f<b.length;f+=2)for(var g=b[f],m=b[f+1],h=0;h<m.length;h++)e.push(new G(g,m[h]));try{c.Typekit.load({events:!1,classes:!1,async:!0})}catch(l){}a(e)}},2E3):a([])};function Ha(a,b){this.c=a;this.f=b;this.a=[]}Ha.prototype.load=function(a){var b=this.f.id,c=this.c.o,d=this;b?(c.__webfontfontdeckmodule__||(c.__webfontfontdeckmodule__={}),c.__webfontfontdeckmodule__[b]=function(b,c){for(var g=0,m=c.fonts.length;g<m;++g){var h=c.fonts[g];d.a.push(new G(h.name,ga(\"font-weight:\"+h.weight+\";font-style:\"+h.style)))}a(d.a)},A(this.c,(this.f.api||\"https://f.fontdeck.com/s/css/js/\")+ea(this.c)+\"/\"+b+\".js\",function(b){b&&a([])})):a([])};var Y=new oa(window);Y.a.c.custom=function(a,b){return new sa(b,a)};Y.a.c.fontdeck=function(a,b){return new Ha(b,a)};Y.a.c.monotype=function(a,b){return new ra(b,a)};Y.a.c.typekit=function(a,b){return new Ga(b,a)};Y.a.c.google=function(a,b){return new Ea(b,a)};var Z={load:p(Y.load,Y)};\"function\"===typeof define&&define.amd?define(function(){return Z}):\"undefined\"!==typeof module&&module.exports?module.exports=Z:(window.WebFont=Z,window.WebFontConfig&&Y.load(window.WebFontConfig));}());\n","export default {\n    LOAD_INFOGRAPHICS: 'load-infographics',\n    INFOGRAPHICS_LOAD_FAILED: 'load-infographics-failed',\n    INFOGRAPHICS_LOADED: 'infographics-loaded',\n    CHANGE_FOLDER: 'change-folder',\n    CHANGE_SORT_ORDER: 'change-sort-order',\n    INFOGRAPHIC_SELECTION_CHANGED: 'infographic-selection-changed',\n    SELECT_ALL_INFOGRAPHICS: 'infographics-select-all',\n    ADD_FOLDER: 'add-folder',\n    FOLDER_SAVED: 'folder-saved',\n    FOLDER_SAVE_FAILED: 'folder-save-failed',\n    DELETE_FOLDER: 'delete-folder',\n    FOLDER_DELETED: 'folder-deleted',\n    FOLDER_DELETE_FAILED: 'folder-delete-failed',\n    FOLDER_NAME_CHANGE: 'folder-name-change',\n    START_FOLDER_LIST_EDITING: 'start-folder-list-editing',\n    END_FOLDER_LIST_EDITING: 'end-folder-list-editing',\n    START_FOLDER_EDITING: 'start-folder-editing',\n    END_FOLDER_EDITING: 'end-folder-editing',\n    CANCEL_FOLDER_NAME_EDITING: 'cancel-folder-name-editing',\n    MOVE_INFOGRAPHICS_TO_FOLDER: 'move-infographics-to-folder',\n    INFOGRAPHICS_MOVED_TO_FOLDER: 'infographics-moved-to-folder',\n    INFOGRAPHICS_MOVE_TO_FOLDER_FAILED: 'infographics-move-to-folder-failed',\n    MOVE_INFOGRAPHICS_TO_TEAM: 'move-infographics-to-team',\n    INFOGRAPHICS_MOVED_TO_TEAM: 'infographics-moved-to-team',\n    INFOGRAPHICS_MOVE_TO_TEAM_FAILED: 'infographics-move-to-team-failed',\n    DUPLICATE_INFOGRAPHIC: 'duplicate-infographic',\n    INFOGRAPHIC_DUPLICATION_FAILED: 'infographic-duplication-failed',\n    INFOGRAPHIC_TEMPLATES_LOAD_FAILED: 'infographic-templates-load-failed',\n    INFOGRAPHIC_TEMPLATE_CREATE_FAILED: 'infographic-template-create-failed',\n    INFOGRAPHIC_TEMPLATE_DELETE_FAILED: 'infographic-template-delete-failed',\n    TRASH_INFOGRAPHICS: 'trash-infographics',\n    INFOGRAPHICS_TRASHED: 'infographics-trashed',\n    INFOGRAPHICS_TRASH_FAILED: 'infographics-trash-failed',\n    RESTORE_INFOGRAPHICS: 'restore-infographics',\n    INFOGRAPHICS_RESTORED: 'infographics-restored',\n    INFOGRAPHICS_RESTORE_FAILED: 'infographics-restore-failed',\n    DELETE_INFOGRAPHICS: 'delete-infographics',\n    INFOGRAPHIC_DELETED: 'infographic-deleted',\n    INFOGRAPHIC_DELETION_FAILED: 'infographic-deletion-failed',\n    LOAD_INFOGRAPHIC_MODEL: 'load-infographic-model',\n    SHARE_DIALOG_FAILED: 'share-dialog-failed',\n    INFOGRAPHIC_PUBLISH_STATUS_CHANGE: 'infographic-publish-status-change',\n    INFOGRAPHIC_PUBLISH_PUBLIC: 0,\n    INFOGRAPHIC_PUBLISH_PRIVATE: 1,\n    INFOGRAPHIC_PUBLISH_PRIVATE_WITH_PASSWORD: 2,\n    VIEW_MODE_SWITCH: 'view-mode-switch',\n    VIEW_MODE_SAVED: 'view-mode-saved',\n    VIEW_MODE_SAVE_FAILED: 'view-mode-save-failed',\n    FILTER: 'filter',\n    SEARCH: 'search',\n    CANCEL_SEARCH: 'cancel-search',\n    PROFILE_LOADED: 'profile-loaded',\n    SET_TOOLBAR_TARGET_LIST_MENU_OPEN: 'set-toolbar-target-list-menu-open',\n    SET_TOOLBAR_FOLDER_LIST_OPEN: 'set-toolbar-folder-list-open',\n    SET_TOOLBAR_SORT_OPEN: 'set-toolbar-sort-open',\n    SET_TOOLBAR_FILTER_OPEN: 'set-toolbar-filter-open',\n    UPDATE_LIST_VIEWPORT: 'update-list-viewport',\n    UNLOAD: 'unload',\n    SORTING_MODIFIED: 'sorting-modified',\n    SORTING_MODIFIED_BY_ME: 'sorting-modified-by-me',\n    SORTING_TITLE_ASC: 'sorting-title-asc',\n    SORTING_TITLE_DESC: 'sorting-title-desc',\n    FILTER_ALL: 'all',\n    FILTER_DRAFTS: 'draft',\n    FILTER_PRIVATE: 'private',\n    FILTER_PUBLIC: 'public',\n    FILTER_CREATOR_ALL: 'creator-all',\n    FILTER_CREATOR_ME: 'creator-me',\n    FILTER_CREATOR: 'filter-creator',\n    INFOGRAPHIC_LIMIT_REACHED: 'infographic-limit-reached',\n    DISABLE_LIBRARY: 'DISABLE_LIBRARY',\n    ENABLE_LIBRARY: 'ENABLE_LIBRARY',\n    TOGGLE_TYPE_FILTER: 'toggle_type_filter',\n    TOGGLE_TYPE_FILTERS: 'toggle_type_filters',\n    TOGGLE_SEARCH_MODE: 'toggle-search-mode',\n    SEARCH_MODE_PROJECT: 'seach-mode-project',\n    SEARCH_MODE_AUTHOR: 'seach-mode-author',\n    SEARCH_ACTIVE_TEAM_MEMBERS: 'search-active-team-members',\n    ADD_TAG: 'add-tag',\n    REMOVE_TAG: 'remove-tag',\n    FILTER_TAG: 'filter-tag',\n    CLEAR_FILTERED_TAGS: 'clear-filtered-tags',\n    DELETE_INFOGRAPHIC_TAG: 'delete-infographic-tag',\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.github.io/ecma262/#sec-object.getownpropertynames\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n  return internalObjectKeys(O, hiddenKeys);\n};\n","/* eslint react/no-danger: 0 */\nimport PropTypes from 'prop-types';\n\nimport React, {PureComponent} from 'react';\n\nexport default class Quote extends PureComponent {\n    static propTypes = {\n        text: PropTypes.string,\n        author: PropTypes.string,\n    };\n\n    render() {\n        return (\n            <div className=\"moveable quoted body-text ig-theme-group-text\">\n                <div className=\"quote\">\n                    <div className=\"quotetext\">\n                        <div className=\"innertext\" dangerouslySetInnerHTML={{__html: this.props.text}}/>\n                    </div>\n                    <div className=\"quotetitle\">\n                        <div className=\"innertext\" dangerouslySetInnerHTML={{__html: this.props.author}}/>\n                    </div>\n                </div>\n            </div>\n        );\n    }\n}\n","import {ReduceStore} from 'flux/utils';\nimport _ from 'lodash';\nimport {Map} from 'immutable';\n\nimport Dispatcher from '../../app/dispatcher';\nimport CurrentInfographicStore from '../../app/main/stores/CurrentInfographicStore';\nimport EditorStateStore from '../../app/freelayout_editor/stores/EditorStateStore';\n\nimport {\n    PRESENTATION_SWITCH_PAGE,\n} from '../../app/freelayout_editor/components/Presentation/constants';\n\nimport {\n    ENGAGEMENT_EVENT,\n    ENGAGEMENT_INSCREEN,\n} from './EngagementAnalytics.constants';\n\nfunction sendEvent(objectId = '', type, action) {\n    if (_.get(window, 'InfogramStats.reportInteraction')) {\n        window.InfogramStats.reportInteraction(String(objectId), type, String(action));\n    }\n}\n\nfunction sendInscreen() {\n    if (_.get(window, 'InfogramStats.reportInscreen')) {\n        window.InfogramStats.reportInscreen();\n    }\n}\n\nclass EngagementAnalyticsStore extends ReduceStore {\n    getInitialState() {\n        return Map();\n    }\n\n    reduce(state, action) {\n        switch (action.type) {\n            case PRESENTATION_SWITCH_PAGE: {\n                Dispatcher.waitFor([CurrentInfographicStore.getDispatchToken(), EditorStateStore.getDispatchToken()]);\n\n                let pageId = '';\n\n                const block = EditorStateStore.editorState.getCurrentContent().getBlocks().get(action.page);\n\n                if (block) {\n                    pageId = block.get('key');\n                }\n\n                sendEvent(pageId, 'page_switch', action.page);\n\n                break;\n            }\n\n            case ENGAGEMENT_EVENT: {\n                sendEvent(action.objectId, action.eventType, action.action);\n                break;\n            }\n\n            case ENGAGEMENT_INSCREEN: {\n                sendInscreen();\n                break;\n            }\n        }\n\n        return state;\n    }\n}\n\nexport default new EngagementAnalyticsStore(Dispatcher);\n","import HandlersStore from '../store';\n\nconst NavigationHandler = {\n    async onMouseMove(e) {\n        e.preventDefault();\n\n        if ('button' in e && e.button !== 0) {\n            return;\n        }\n\n        const editorScroll = this.props.scroll;\n        if (!editorScroll) {\n            return;\n        }\n\n        const activeHandle = HandlersStore.activeHandle;\n        if (!activeHandle || activeHandle.get('type') !== 'scroll') {\n            return;\n        }\n\n        const pointerDownX = HandlersStore.pointerDownX;\n        const pointerDownY = HandlersStore.pointerDownY;\n\n        const initialScrollLeft = activeHandle.get('scrollLeft');\n        const initialScrollTop = activeHandle.get('scrollTop');\n\n        const deltaX = e.clientX - pointerDownX;\n        const deltaY = e.clientY - pointerDownY;\n\n        const scrollContainer = editorScroll.element;\n        scrollContainer.scrollLeft = initialScrollLeft - deltaX;\n        scrollContainer.scrollTop = initialScrollTop - deltaY;\n    },\n\n    onMouseUp() {\n        this.exitCurrentMode();\n    },\n\n    onMouseLeave() {\n        this.exitCurrentMode();\n    },\n};\n\nexport default NavigationHandler;\n","// data sheets - sheets from data table\n// chart sheets - sheets that are actually shown on chart visual\n//\n// multiple sheets (splitTypes) charts with data sheets that correspond directly to chart sheets\nvar splitTypes = [\n    '1_1',  // column grouped\n    '4_1',  // bar grouped\n    '6_0',  // line\n    '6_1',  // dotplot\n    '9_2',  // map\n    '10_0', // column stacked\n    '39_0', // column stacked percent\n    '10_1', // area stepped\n    '12_0', // stream graph\n    '15_0', // stacked area\n    '15_1', // area\n    '16_0', // bubble\n    '16_1', // bubble plot\n    '17_0', // bar stacked\n    '38_0', // bar stacked percent\n    '19_0', // table\n    '20_0', // scatter grouped\n    '23_0', // facts & figures\n    '24_0', // timer\n    '25_0', // histogram\n    '26_0', // candlestick\n    '30_0', // column line\n    '31_0', // line line\n    '32_0', // area stacked percent\n    '33_0', // scatter,\n    '35_0', // grouped column & line\n    '36_0', // stacked column & line\n    '37_0', // gantt chart\n    '40_0', // line error margin\n];\n// charts that can produce more chart sheets from single sheet\n// and at the same time can read data from multiple sheets if they are provided\nvar splitSingleSheet = [\n    '1_0',  // column\n    '2_0',  // pie\n    '2_1',  // radial\n    '2_2',  // doughnut\n    '4_0',  // bar\n    '5_0',  // gauge\n    '7_0',  // picto size\n    '11_0', // treemap\n    '18_0', // wordcloud\n    '21_0', // picto bar\n    '27_0', // waterfall\n    '28_0', // progress bar\n    '29_0', // pyramid\n    '34_0', // semi circle\n];\n\nvar helper = {\n    hasMultipleSheets: function(chart) {\n        var typeMod = chart.typeMod;\n\n        // chart.custom.singleSheet is to skip split type detection for charts in production that have more\n        // than 1 sheet but need to use first sheet from data to create more chart sheets (kind of legacy support)\n        return (splitTypes.indexOf(typeMod) !== -1 && !chart.custom.singleSheet) ||\n            (splitSingleSheet.indexOf(typeMod) !== -1 && chart.data.length > 1);\n    },\n};\n\nexport default helper;\n","'use strict';\nvar $ = require('../internals/export');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\n\n// `String.prototype.includes` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.includes\n$({ target: 'String', proto: true, forced: !correctIsRegExpLogic('includes') }, {\n  includes: function includes(searchString /* , position = 0 */) {\n    return !!~String(requireObjectCoercible(this))\n      .indexOf(notARegExp(searchString), arguments.length > 1 ? arguments[1] : undefined);\n  }\n});\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}","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $reduceRight = require('../internals/array-reduce').right;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\n\n// `%TypedArray%.prototype.reduceRicht` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.reduceright\nArrayBufferViewCore.exportProto('reduceRight', function reduceRight(callbackfn /* , initialValue */) {\n  return $reduceRight(aTypedArray(this), callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined);\n});\n","var $ = require('../internals/export');\nvar parseInt = require('../internals/parse-int');\n\n// `Number.parseInt` method\n// https://tc39.github.io/ecma262/#sec-number.parseint\n$({ target: 'Number', stat: true, forced: Number.parseInt != parseInt }, {\n  parseInt: parseInt\n});\n","'use strict';\nvar redefine = require('../internals/redefine');\nvar anObject = require('../internals/an-object');\nvar fails = require('../internals/fails');\nvar flags = require('../internals/regexp-flags');\n\nvar TO_STRING = 'toString';\nvar RegExpPrototype = RegExp.prototype;\nvar nativeToString = RegExpPrototype[TO_STRING];\n\nvar NOT_GENERIC = fails(function () { return nativeToString.call({ source: 'a', flags: 'b' }) != '/a/b'; });\n// FF44- RegExp#toString has a wrong name\nvar INCORRECT_NAME = nativeToString.name != TO_STRING;\n\n// `RegExp.prototype.toString` method\n// https://tc39.github.io/ecma262/#sec-regexp.prototype.tostring\nif (NOT_GENERIC || INCORRECT_NAME) {\n  redefine(RegExp.prototype, TO_STRING, function toString() {\n    var R = anObject(this);\n    var p = String(R.source);\n    var rf = R.flags;\n    var f = String(rf === undefined && R instanceof RegExp && !('flags' in RegExpPrototype) ? flags.call(R) : rf);\n    return '/' + p + '/' + f;\n  }, { unsafe: true });\n}\n","import setPrototypeOf from \"./setPrototypeOf\";\nexport default function _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}","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar definePropertyModule = require('../internals/object-define-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (CONSTRUCTOR_NAME) {\n  var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n  var defineProperty = definePropertyModule.f;\n\n  if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n    defineProperty(Constructor, SPECIES, {\n      configurable: true,\n      get: function () { return this; }\n    });\n  }\n};\n","import React, {lazy, PureComponent, ReactNode, FunctionComponent, MouseEvent} from 'react';\nimport styled from 'styled-components';\n\nimport {withDialogs} from '../DialogContext';\nimport userInfo from '../userInfo';\nconst Paywall = lazy(() => import('../Paywall'));\n\nconst WaterMarkContainer = styled.div`\n    position: absolute;\n    left: 10px;\n    bottom: 10px;\n    z-index: 1;\n    pointer-events: all;\n    transform-origin: left bottom;\n`;\n\nconst WaterMarkImage = styled.img`\n    opacity: 0.8;\n    cursor: pointer;\n\n    &:hover {\n        opacity: 1;\n    }\n`;\n\n\nconst Watermark: FunctionComponent<{\n    onClick?: () => void;\n    scaleX: number;\n    scaleY: number;\n}> = (props) => {\n    const _onClick = (e: MouseEvent) => {\n        e.preventDefault();\n        props.onClick && props.onClick();\n    };\n\n    return (\n        <WaterMarkContainer\n            css={`\n                transform: scale3d(${props.scaleX}, ${props.scaleY}, 1);\n            `}\n        >\n            <WaterMarkImage\n                onClick={_onClick}\n                src={require('./watermark.svg')}\n            />\n        </WaterMarkContainer>\n    );\n};\n\nexport const PresentationWatermark: FunctionComponent<{\n    scaleX: number;\n    scaleY: number;\n}> = (props) => {\n    if (userInfo?.features?.publish_no_watermark) {\n        return null;\n    }\n\n    return (\n        <Watermark\n            scaleX={props.scaleX}\n            scaleY={props.scaleY}\n        />\n    );\n};\n\ninterface EditorWatermarkProps {\n    openDialog: (dialog: ReactNode) => void;\n    scaleX: number;\n    scaleY: number;\n}\n\n@withDialogs()\nexport class EditorWatermark extends PureComponent<EditorWatermarkProps> {\n    render() {\n        const {openDialog, scaleX, scaleY} = this.props;\n\n        if (userInfo.features.publish_no_watermark) {\n            return null;\n        }\n\n        return (\n            <Watermark\n                onClick={() => openDialog(<Paywall feature=\"publish_no_watermark\"/>)}\n                scaleX={scaleX}\n                scaleY={scaleY}\n            />\n        );\n    }\n}\n","exports = module.exports = require(\"../../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"._3_cHYofk_mS4swS5-wF_W8 {\\n    position: relative;\\n    height: 100%;\\n    min-height: 5px;\\n    width: 100%;\\n    background: rgba(156, 156, 156, 0.3);\\n    z-index: 5;\\n}\\n\\n._1aPDBSNxYyLPJGOrhgkLqK {\\n    position: absolute;\\n    top: 0;\\n    height: 100%;\\n    background: #3195cb;\\n    left: 0;\\n    transition: width .3s ease-in-out;\\n}\\n\\n._3m56lNN15qUywBldzxSZ0k {\\n    position: relative;\\n    float: left;\\n    height: 25px;\\n    margin-top: -10px;\\n    cursor: pointer;\\n    z-index: 10;\\n}\\n\\n._2pJ7DPBJixdXoS9b2dDPfn {\\n    position: static;\\n}\\n\\n._3p0GTPh4tRgT9E1wgkbNwV {\\n    width: 100%;\\n    margin-top: 10px;\\n    text-align: center;\\n    font-weight: 500;\\n    font-size: 13px;\\n    line-height: 15px;\\n    text-align: center;\\n    color: #FFFFFF;\\n}\\n\\n._2KO534ze8Ot29kxK-tPRUv {\\n    position: absolute;\\n    margin-top: -170px;\\n    height: 165px;\\n    background: rgba(101, 101, 101, 0.8);\\n    border-radius: 4px;\\n    z-index: -10;\\n    box-sizing: border-box;\\n    padding: 5px;\\n    opacity: .98;\\n    visibility: hidden; \\n}\\n\\n._2W6EHzIy7c8juGadowW1Ut {\\n    visibility: visible;\\n    z-index: 20;\\n}\\n\", \"\"]);\n\n// exports\nexports.locals = {\n\t\"container\": \"_3_cHYofk_mS4swS5-wF_W8\",\n\t\"value\": \"_1aPDBSNxYyLPJGOrhgkLqK\",\n\t\"segment\": \"_3m56lNN15qUywBldzxSZ0k\",\n\t\"stickyThumbnail\": \"_2pJ7DPBJixdXoS9b2dDPfn\",\n\t\"pageNumber\": \"_3p0GTPh4tRgT9E1wgkbNwV\",\n\t\"thumbnail\": \"_2KO534ze8Ot29kxK-tPRUv\",\n\t\"visibleThumbnail\": \"_2W6EHzIy7c8juGadowW1Ut\"\n};","'use strict';\nvar $ = require('../internals/export');\nvar isArray = require('../internals/is-array');\n\nvar nativeReverse = [].reverse;\nvar test = [1, 2];\n\n// `Array.prototype.reverse` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.reverse\n// fix for Safari 12.0 bug\n// https://bugs.webkit.org/show_bug.cgi?id=188794\n$({ target: 'Array', proto: true, forced: String(test) === String(test.reverse()) }, {\n  reverse: function reverse() {\n    if (isArray(this)) this.length = this.length;\n    return nativeReverse.call(this);\n  }\n});\n","import React, {PureComponent} from 'react';\nimport PropTypes from 'prop-types';\n\nimport style from './WebInfographicThumbnail.css';\n\nclass WebInfographicThumbnail extends PureComponent {\n    static propTypes = {\n        imageURL: PropTypes.string.isRequired,\n        path: PropTypes.string.isRequired,\n        title: PropTypes.string.isRequired,\n    }\n\n    render() {\n        const {imageURL, path, title} = this.props;\n\n        return (\n            <a\n                className={style.item}\n                href={path}\n                title={title}\n            >\n                <div\n                    className={style.itemImage}\n                    style={{backgroundImage: `url(${imageURL})`}}\n                />\n\n                <h2 className={style.itemTitle}>\n                    {title}\n                </h2>\n            </a>\n        );\n    }\n}\n\nexport default WebInfographicThumbnail;\n","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"._2pCmkHQxmc2Hutt2mC1qi3 {\\n    margin: 30px auto 0;;\\n    position: relative;\\n    text-align: center;\\n    width: 100%;\\n    max-width: 940px;\\n}\\n._12GyCCv3rQ0x_e6DL8PIts {\\n    box-sizing: border-box;\\n    width: 100%;\\n    margin-bottom: 30px;\\n    padding: 11px 40px 11px 20px;\\n    border: 1px solid #d8d8d8;\\n    border-radius: 4px;\\n    line-height: 18px;\\n    text-align: left;\\n    font-size: 15px;\\n    color: #656565;\\n    outline: none;\\n}\\n.QqwitO2pDzJpiEz02DWzm {\\n    position: absolute;\\n    color: #656565;\\n    top: 13px;\\n    right: 15px;\\n    cursor: pointer;\\n}\\n.QqwitO2pDzJpiEz02DWzm:before {\\n    font-size: 16px;\\n}\\n\", \"\"]);\n\n// exports\nexports.locals = {\n\t\"searchForm\": \"_2pCmkHQxmc2Hutt2mC1qi3\",\n\t\"searchInput\": \"_12GyCCv3rQ0x_e6DL8PIts\",\n\t\"searchIcon\": \"QqwitO2pDzJpiEz02DWzm\"\n};","import onMouseDown from './editOnMouseDown';\nimport onMouseMove from './editOnMouseMove';\nimport onMouseUp from './editOnMouseUp';\nimport onMouseLeave from './editOnMouseLeave';\n\nconst EditHandler = {\n    onMouseDown,\n    onMouseMove,\n    onMouseUp,\n    onMouseLeave,\n};\n\nexport default EditHandler;\n","import {showDialog} from './index';\n\nimport ProgressDialog from '../progress_dialog/components/progress_dialog.react';\n\nexport default function showProgress(props) {\n    showDialog(ProgressDialog, props);\n}\n","import arrayWithoutHoles from \"./arrayWithoutHoles\";\nimport iterableToArray from \"./iterableToArray\";\nimport nonIterableSpread from \"./nonIterableSpread\";\nexport default function _toConsumableArray(arr) {\n  return arrayWithoutHoles(arr) || iterableToArray(arr) || nonIterableSpread();\n}","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar speciesConstructor = require('../internals/species-constructor');\nvar fails = require('../internals/fails');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;\nvar $slice = [].slice;\n\nvar FORCED = fails(function () {\n  // eslint-disable-next-line no-undef\n  new Int8Array(1).slice();\n});\n\n// `%TypedArray%.prototype.slice` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.slice\nArrayBufferViewCore.exportProto('slice', function slice(start, end) {\n  var list = $slice.call(aTypedArray(this), start, end);\n  var C = speciesConstructor(this, this.constructor);\n  var index = 0;\n  var length = list.length;\n  var result = new (aTypedArrayConstructor(C))(length);\n  while (length > index) result[index] = list[index++];\n  return result;\n}, FORCED);\n","export default function hasClass(element, className) {\n  if (element.classList) return !!className && element.classList.contains(className);\n  return (\" \" + (element.className.baseVal || element.className) + \" \").indexOf(\" \" + className + \" \") !== -1;\n}","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.match` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.match\ndefineWellKnownSymbol('match');\n","import i18n from 'i18next';\nimport React from 'react';\n\nimport {FilterElementPropTypes} from '../types';\nimport IntensityOf from './IntensityOf.react';\nimport {Brightness} from './Brightness.react';\nimport {HueRotate} from './HueRotate.react';\n\nconst tint = '#e6e6fa';\n\n/**\n * Vintage\n *\n * Gives a slightly washed-out look to an image\n *\n * @param {string} in1 pointer to filter's input (same as SVG *in*)\n * @param {string} result pointer to output (same as SVG *result*)\n * @param {number} amount filter intensity (0-1)\n */\nconst Vintage = ({in1, amount, result}) =>\n    <>\n        <feFlood floodColor={tint} floodOpacity=\"1\" result=\"fill\"/>\n        <feComposite in=\"fill\" in2={in1} operator=\"arithmetic\" k1=\"0\" k2=\"0.3\" k3=\"1\" k4=\"0\"/>\n        <Brightness amount={1.05}/>\n        <HueRotate amount={-10} result=\"Vintage\"/>\n        <IntensityOf in1=\"Vintage\" source={in1} amount={amount} result={result}/>\n    </>\n;\n\nVintage.propTypes = FilterElementPropTypes;\n\nexport default {\n    Component: Vintage,\n    get caption() {\n        return i18n.t('inspector.free.filters.vintage');\n    },\n    default: 0.5,\n    min: 0,\n    max: 1,\n};\n","export default {\n  disabled: false\n};","import {ReduceStore} from 'flux/utils';\n\nimport Constants from '../../constants';\nimport Dispatcher from '../../dispatcher';\nimport DownloadConstants from '../constants/DownloadConstants';\n\nclass ChartTabsStore extends ReduceStore {\n    getInitialState() {\n        return new Map();\n    }\n\n    reduce(state, action) {\n        switch (action.type) {\n            case Constants.INFOGRAPHIC_LOADED: {\n                return new Map();\n            }\n            case DownloadConstants.CHANGE_CHART_TAB: {\n                const {entityKey, sheetIndex} = action;\n                return state.set(entityKey, sheetIndex);\n            }\n        }\n        return state;\n    }\n\n    get all() {\n        return this.getState();\n    }\n}\n\nexport default new ChartTabsStore(Dispatcher);\n","import React, {PureComponent} from 'react';\nimport PropTypes from 'prop-types';\nimport cx from 'classnames';\n\nimport style from './Reveal.css';\n\nimport {isElementInViewport} from '../../common/dom_utils';\n\nexport default class Reveal extends PureComponent {\n    static propTypes = {\n        header: PropTypes.node.isRequired,\n        onToggle: PropTypes.func.isRequired,\n        children: PropTypes.node,\n        open: PropTypes.bool,\n        autoReposition: PropTypes.bool,\n        align: PropTypes.oneOf(['left', 'right']),\n        mode: PropTypes.oneOf(['click', 'hover']),\n        zIndex: PropTypes.number,\n    };\n\n    static defaultProps = {\n        open: false,\n        align: 'left',\n        autoReposition: false,\n        mode: 'click',\n        zIndex: 1,\n    };\n\n    constructor(props) {\n        super(props);\n        this.state = {\n            align: this.props.align,\n            isRepositioned: false,\n            initialOffsetX: 0,\n            initialOffsetY: 0,\n            offsetX: 0,\n            offsetY: 0,\n        };\n\n        this._toggle = this._toggle.bind(this);\n        this._clickToggle = this._clickToggle.bind(this);\n        this._triggerOpen = this._triggerOpen.bind(this);\n        this._triggerClose = this._triggerClose.bind(this);\n        this._adjustPosition = this._adjustPosition.bind(this);\n        this._closeIfNecessary = this._closeIfNecessary.bind(this);\n        this._checkReposition = this._checkReposition.bind(this);\n        this._needsReposition = this._needsReposition.bind(this);\n\n        this._container = React.createRef();\n        this._innerContainer = React.createRef();\n    }\n\n    render() {\n        const buttonProps = {};\n        if (this.props.mode === 'click') {\n            buttonProps.onClick = this._clickToggle;\n        }\n\n        const containerStyle = {\n            zIndex: this.props.zIndex,\n        };\n        if (this.props.open) {\n            containerStyle.top = this.state.containerTop;\n            let transform = '';\n            if (this.state.align === 'right') {\n                transform = 'translate(-100%, 0) ';\n            }\n            transform = `${transform}translate(${this.state.offsetX}px, ${this.state.offsetY}px)`;\n            containerStyle.transform = transform;\n        }\n\n        return (\n            <div className={style.root} ref={el => {this._root = el; }}>\n                <div role=\"button\"\n                     className={style.button}\n                     {...buttonProps}\n                >{this.props.header}</div>\n                <div ref={this._container} className={cx(style.container, this.state.align === 'right' && style.alignRight)}>\n                    <div\n                        ref={this._innerContainer}\n                        className={style.innerContainer}\n                        style={containerStyle}\n                    >\n                        {this.props.open && this.props.children}\n                    </div>\n                </div>\n            </div>\n        );\n    }\n\n    componentDidUpdate(prevProps) {\n        if (this.props.open && !prevProps.open) {\n            if (this.props.autoReposition) {\n                this._checkReposition();\n            }\n            this._checkVerticalCutoff();\n        }\n    }\n\n    componentDidMount() {\n        if (this.props.mode === 'click') {\n            document.addEventListener('mousedown', this._closeIfNecessary, true);\n        } else if (this.props.mode === 'hover') {\n            //we use this helper method instead of using `onMouseEnter` and `onMouseLeave` attributes\n            //in JSX because the latter trigger also when mouse is moved on a separate React render tree\n            //despite component root is that trees DOM ancestor. A typical scenario may be that some children\n            //are rendered via ScrollPane which creates a separate ReactDOM tree.\n            this._addHoverListeners();\n        }\n    }\n\n    componentWillUnmount() {\n        if (this._scrollParent) {\n            this._scrollParent.removeEventListener('scroll', this._adjustPosition, false);\n        }\n        if (this.props.mode === 'click') {\n            document.removeEventListener('mousedown', this._closeIfNecessary, true);\n        } else if (this.props.mode === 'hover') {\n            this._removeHoverListeners();\n        }\n    }\n\n    _getScrollParent() {\n        if (!this._scrollParent) {\n            this._scrollParent = findScrollableParent(this._root);\n            this._scrollParent.addEventListener('scroll', this._adjustPosition, false);\n        }\n        return this._scrollParent;\n    }\n\n    _needsReposition() {\n        const rootRect = this._root.getBoundingClientRect();\n        const innerContainerRect = this._innerContainer.current.getBoundingClientRect();\n\n        // Basically it checks 3 things here:\n        //  - If the width of reveal root container is greater than reveal element itself\n        //  - If reposition of reveal element was already performed\n        //  - If current align is not equal to one which is specified as prop\n        return (\n            rootRect.width > innerContainerRect.width\n            && this.state.isRepositioned\n            && this.state.align !== this.props.align\n        );\n    }\n\n    _checkReposition() {\n        const el = this._innerContainer.current;\n        if (isElementInViewport(el)) {\n            this._needsReposition() && this.setState({\n                align: this.props.align,\n                isRepositioned: false,\n            });\n        } else {\n            this.setState(prevState => ({\n                align: prevState.align === 'left' ? 'right' : 'left',\n                isRepositioned: true,\n            }));\n        }\n    }\n\n    _closeIfNecessary(e) {\n        if (!this.props.open) {\n            //nothing to do in case the widget is closed\n            return;\n        }\n        const {target} = e;\n        const n = target.closest('.' + style.root);\n        if (n != this._root) {\n            e.preventDefault();\n            e.stopPropagation();\n            this.props.onToggle(false);\n        }\n    }\n\n    _adjustPosition() {\n        if (!this.props.open) {\n            return;\n        }\n        const {left, top} = getScrollPosition(this._getScrollParent());\n        const {initialOffsetX, initialOffsetY} = this.state;\n        this.setState({\n            offsetX: initialOffsetX - left,\n            offsetY: initialOffsetY - top,\n        });\n    }\n\n    _clickToggle() {\n        this._toggle();\n    }\n\n    _toggle(open) {\n        //we set `containerTop` state field to figure out\n        //how to set `top` CSS property for our internal\n        //container element once it becomes visible\n        const nextState = {\n            containerTop: this.state.containerTop,\n        };\n        const willOpen = open !== undefined ? open : !this.props.open;\n        if (willOpen) {\n            const containerBounds = this._container.current.getBoundingClientRect();\n            nextState.containerTop = containerBounds.top;\n\n            const {left, top} = getScrollPosition(this._getScrollParent());\n            Object.assign(nextState, {\n                initialOffsetX: left,\n                initialOffsetY: top,\n                offsetX: 0,\n                offsetY: 0,\n            });\n        }\n        this.setState(nextState, () => {\n            this.props.onToggle(willOpen);\n        });\n    }\n\n    /**\n     * Check if whole dropdown can fit vertically in viewport\n     * and, if needed, adjust its position accordingly\n     */\n    _checkVerticalCutoff = () => {\n        const innerContainerBounds = this._innerContainer.current.getBoundingClientRect();\n        const viewportHeight = window.innerHeight || document.documentElement.clientHeight;\n\n        if (innerContainerBounds.bottom > viewportHeight) {\n            const containerBounds = this._container.current.getBoundingClientRect();\n            this.setState({\n                containerTop: containerBounds.top\n                    + (viewportHeight - innerContainerBounds.bottom)\n                    - 30 // bottom chat widget vertical offset\n                    - 5, // ...and add small gap to visually separate it\n            });\n        }\n    }\n\n    _triggerOpen() {\n        this._toggle(true);\n    }\n\n    _triggerClose() {\n        this._toggle(false);\n    }\n\n    _addHoverListeners() {\n        this._root.addEventListener('mouseenter', this._triggerOpen, false);\n        this._root.addEventListener('mouseleave', this._triggerClose, false);\n    }\n\n    _removeHoverListeners() {\n        this._root.removeEventListener('mouseenter', this._triggerOpen, false);\n        this._root.removeEventListener('mouseleave', this._triggerOpen, false);\n    }\n}\n\nfunction findScrollableParent(el) {\n    if (!el) {\n        return null;\n    }\n    do {\n        if (el.nodeType === 1) {\n            const computedStyle = window.getComputedStyle(el);\n            const {overflow} = computedStyle;\n            if (overflow === 'auto' || overflow === 'scroll' || overflow === 'hidden') {\n                return el;\n            }\n        } else {\n            return window;\n        }\n        el = el.parentNode;\n    } while (el);\n    return el;\n}\n\nfunction getScrollPosition(target) {\n    if (target === window) {\n        return {\n            top: window.scrollY,\n            left: window.scrollX,\n        };\n    }\n    return {\n        top: target.scrollTop,\n        left: target.scrollLeft,\n    };\n}\n","var $ = require('../internals/export');\nvar sign = require('../internals/math-sign');\n\n// `Math.sign` method\n// https://tc39.github.io/ecma262/#sec-math.sign\n$({ target: 'Math', stat: true }, {\n  sign: sign\n});\n","var $ = require('../internals/export');\nvar is = require('../internals/same-value');\n\n// `Object.is` method\n// https://tc39.github.io/ecma262/#sec-object.is\n$({ target: 'Object', stat: true }, {\n  is: is\n});\n","'use strict';\n// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`\nrequire('../modules/es.string.iterator');\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar USE_NATIVE_URL = require('../internals/native-url');\nvar global = require('../internals/global');\nvar defineProperties = require('../internals/object-define-properties');\nvar redefine = require('../internals/redefine');\nvar anInstance = require('../internals/an-instance');\nvar has = require('../internals/has');\nvar assign = require('../internals/object-assign');\nvar arrayFrom = require('../internals/array-from');\nvar codeAt = require('../internals/string-multibyte').codeAt;\nvar toASCII = require('../internals/punycode-to-ascii');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar URLSearchParamsModule = require('../modules/web.url-search-params');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar NativeURL = global.URL;\nvar URLSearchParams = URLSearchParamsModule.URLSearchParams;\nvar getInternalSearchParamsState = URLSearchParamsModule.getState;\nvar setInternalState = InternalStateModule.set;\nvar getInternalURLState = InternalStateModule.getterFor('URL');\nvar floor = Math.floor;\nvar pow = Math.pow;\n\nvar INVALID_AUTHORITY = 'Invalid authority';\nvar INVALID_SCHEME = 'Invalid scheme';\nvar INVALID_HOST = 'Invalid host';\nvar INVALID_PORT = 'Invalid port';\n\nvar ALPHA = /[A-Za-z]/;\nvar ALPHANUMERIC = /[\\d+\\-.A-Za-z]/;\nvar DIGIT = /\\d/;\nvar HEX_START = /^(0x|0X)/;\nvar OCT = /^[0-7]+$/;\nvar DEC = /^\\d+$/;\nvar HEX = /^[\\dA-Fa-f]+$/;\n// eslint-disable-next-line no-control-regex\nvar FORBIDDEN_HOST_CODE_POINT = /[\\u0000\\u0009\\u000A\\u000D #%/:?@[\\\\]]/;\n// eslint-disable-next-line no-control-regex\nvar FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT = /[\\u0000\\u0009\\u000A\\u000D #/:?@[\\\\]]/;\n// eslint-disable-next-line no-control-regex\nvar LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE = /^[\\u0000-\\u001F ]+|[\\u0000-\\u001F ]+$/g;\n// eslint-disable-next-line no-control-regex\nvar TAB_AND_NEW_LINE = /[\\u0009\\u000A\\u000D]/g;\nvar EOF;\n\nvar parseHost = function (url, input) {\n  var result, codePoints, index;\n  if (input.charAt(0) == '[') {\n    if (input.charAt(input.length - 1) != ']') return INVALID_HOST;\n    result = parseIPv6(input.slice(1, -1));\n    if (!result) return INVALID_HOST;\n    url.host = result;\n  // opaque host\n  } else if (!isSpecial(url)) {\n    if (FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT.test(input)) return INVALID_HOST;\n    result = '';\n    codePoints = arrayFrom(input);\n    for (index = 0; index < codePoints.length; index++) {\n      result += percentEncode(codePoints[index], C0ControlPercentEncodeSet);\n    }\n    url.host = result;\n  } else {\n    input = toASCII(input);\n    if (FORBIDDEN_HOST_CODE_POINT.test(input)) return INVALID_HOST;\n    result = parseIPv4(input);\n    if (result === null) return INVALID_HOST;\n    url.host = result;\n  }\n};\n\nvar parseIPv4 = function (input) {\n  var parts = input.split('.');\n  var partsLength, numbers, index, part, radix, number, ipv4;\n  if (parts.length && parts[parts.length - 1] == '') {\n    parts.pop();\n  }\n  partsLength = parts.length;\n  if (partsLength > 4) return input;\n  numbers = [];\n  for (index = 0; index < partsLength; index++) {\n    part = parts[index];\n    if (part == '') return input;\n    radix = 10;\n    if (part.length > 1 && part.charAt(0) == '0') {\n      radix = HEX_START.test(part) ? 16 : 8;\n      part = part.slice(radix == 8 ? 1 : 2);\n    }\n    if (part === '') {\n      number = 0;\n    } else {\n      if (!(radix == 10 ? DEC : radix == 8 ? OCT : HEX).test(part)) return input;\n      number = parseInt(part, radix);\n    }\n    numbers.push(number);\n  }\n  for (index = 0; index < partsLength; index++) {\n    number = numbers[index];\n    if (index == partsLength - 1) {\n      if (number >= pow(256, 5 - partsLength)) return null;\n    } else if (number > 255) return null;\n  }\n  ipv4 = numbers.pop();\n  for (index = 0; index < numbers.length; index++) {\n    ipv4 += numbers[index] * pow(256, 3 - index);\n  }\n  return ipv4;\n};\n\n// eslint-disable-next-line max-statements\nvar parseIPv6 = function (input) {\n  var address = [0, 0, 0, 0, 0, 0, 0, 0];\n  var pieceIndex = 0;\n  var compress = null;\n  var pointer = 0;\n  var value, length, numbersSeen, ipv4Piece, number, swaps, swap;\n\n  var char = function () {\n    return input.charAt(pointer);\n  };\n\n  if (char() == ':') {\n    if (input.charAt(1) != ':') return;\n    pointer += 2;\n    pieceIndex++;\n    compress = pieceIndex;\n  }\n  while (char()) {\n    if (pieceIndex == 8) return;\n    if (char() == ':') {\n      if (compress !== null) return;\n      pointer++;\n      pieceIndex++;\n      compress = pieceIndex;\n      continue;\n    }\n    value = length = 0;\n    while (length < 4 && HEX.test(char())) {\n      value = value * 16 + parseInt(char(), 16);\n      pointer++;\n      length++;\n    }\n    if (char() == '.') {\n      if (length == 0) return;\n      pointer -= length;\n      if (pieceIndex > 6) return;\n      numbersSeen = 0;\n      while (char()) {\n        ipv4Piece = null;\n        if (numbersSeen > 0) {\n          if (char() == '.' && numbersSeen < 4) pointer++;\n          else return;\n        }\n        if (!DIGIT.test(char())) return;\n        while (DIGIT.test(char())) {\n          number = parseInt(char(), 10);\n          if (ipv4Piece === null) ipv4Piece = number;\n          else if (ipv4Piece == 0) return;\n          else ipv4Piece = ipv4Piece * 10 + number;\n          if (ipv4Piece > 255) return;\n          pointer++;\n        }\n        address[pieceIndex] = address[pieceIndex] * 256 + ipv4Piece;\n        numbersSeen++;\n        if (numbersSeen == 2 || numbersSeen == 4) pieceIndex++;\n      }\n      if (numbersSeen != 4) return;\n      break;\n    } else if (char() == ':') {\n      pointer++;\n      if (!char()) return;\n    } else if (char()) return;\n    address[pieceIndex++] = value;\n  }\n  if (compress !== null) {\n    swaps = pieceIndex - compress;\n    pieceIndex = 7;\n    while (pieceIndex != 0 && swaps > 0) {\n      swap = address[pieceIndex];\n      address[pieceIndex--] = address[compress + swaps - 1];\n      address[compress + --swaps] = swap;\n    }\n  } else if (pieceIndex != 8) return;\n  return address;\n};\n\nvar findLongestZeroSequence = function (ipv6) {\n  var maxIndex = null;\n  var maxLength = 1;\n  var currStart = null;\n  var currLength = 0;\n  var index = 0;\n  for (; index < 8; index++) {\n    if (ipv6[index] !== 0) {\n      if (currLength > maxLength) {\n        maxIndex = currStart;\n        maxLength = currLength;\n      }\n      currStart = null;\n      currLength = 0;\n    } else {\n      if (currStart === null) currStart = index;\n      ++currLength;\n    }\n  }\n  if (currLength > maxLength) {\n    maxIndex = currStart;\n    maxLength = currLength;\n  }\n  return maxIndex;\n};\n\nvar serializeHost = function (host) {\n  var result, index, compress, ignore0;\n  // ipv4\n  if (typeof host == 'number') {\n    result = [];\n    for (index = 0; index < 4; index++) {\n      result.unshift(host % 256);\n      host = floor(host / 256);\n    } return result.join('.');\n  // ipv6\n  } else if (typeof host == 'object') {\n    result = '';\n    compress = findLongestZeroSequence(host);\n    for (index = 0; index < 8; index++) {\n      if (ignore0 && host[index] === 0) continue;\n      if (ignore0) ignore0 = false;\n      if (compress === index) {\n        result += index ? ':' : '::';\n        ignore0 = true;\n      } else {\n        result += host[index].toString(16);\n        if (index < 7) result += ':';\n      }\n    }\n    return '[' + result + ']';\n  } return host;\n};\n\nvar C0ControlPercentEncodeSet = {};\nvar fragmentPercentEncodeSet = assign({}, C0ControlPercentEncodeSet, {\n  ' ': 1, '\"': 1, '<': 1, '>': 1, '`': 1\n});\nvar pathPercentEncodeSet = assign({}, fragmentPercentEncodeSet, {\n  '#': 1, '?': 1, '{': 1, '}': 1\n});\nvar userinfoPercentEncodeSet = assign({}, pathPercentEncodeSet, {\n  '/': 1, ':': 1, ';': 1, '=': 1, '@': 1, '[': 1, '\\\\': 1, ']': 1, '^': 1, '|': 1\n});\n\nvar percentEncode = function (char, set) {\n  var code = codeAt(char, 0);\n  return code > 0x20 && code < 0x7F && !has(set, char) ? char : encodeURIComponent(char);\n};\n\nvar specialSchemes = {\n  ftp: 21,\n  file: null,\n  gopher: 70,\n  http: 80,\n  https: 443,\n  ws: 80,\n  wss: 443\n};\n\nvar isSpecial = function (url) {\n  return has(specialSchemes, url.scheme);\n};\n\nvar includesCredentials = function (url) {\n  return url.username != '' || url.password != '';\n};\n\nvar cannotHaveUsernamePasswordPort = function (url) {\n  return !url.host || url.cannotBeABaseURL || url.scheme == 'file';\n};\n\nvar isWindowsDriveLetter = function (string, normalized) {\n  var second;\n  return string.length == 2 && ALPHA.test(string.charAt(0))\n    && ((second = string.charAt(1)) == ':' || (!normalized && second == '|'));\n};\n\nvar startsWithWindowsDriveLetter = function (string) {\n  var third;\n  return string.length > 1 && isWindowsDriveLetter(string.slice(0, 2)) && (\n    string.length == 2 ||\n    ((third = string.charAt(2)) === '/' || third === '\\\\' || third === '?' || third === '#')\n  );\n};\n\nvar shortenURLsPath = function (url) {\n  var path = url.path;\n  var pathSize = path.length;\n  if (pathSize && (url.scheme != 'file' || pathSize != 1 || !isWindowsDriveLetter(path[0], true))) {\n    path.pop();\n  }\n};\n\nvar isSingleDot = function (segment) {\n  return segment === '.' || segment.toLowerCase() === '%2e';\n};\n\nvar isDoubleDot = function (segment) {\n  segment = segment.toLowerCase();\n  return segment === '..' || segment === '%2e.' || segment === '.%2e' || segment === '%2e%2e';\n};\n\n// States:\nvar SCHEME_START = {};\nvar SCHEME = {};\nvar NO_SCHEME = {};\nvar SPECIAL_RELATIVE_OR_AUTHORITY = {};\nvar PATH_OR_AUTHORITY = {};\nvar RELATIVE = {};\nvar RELATIVE_SLASH = {};\nvar SPECIAL_AUTHORITY_SLASHES = {};\nvar SPECIAL_AUTHORITY_IGNORE_SLASHES = {};\nvar AUTHORITY = {};\nvar HOST = {};\nvar HOSTNAME = {};\nvar PORT = {};\nvar FILE = {};\nvar FILE_SLASH = {};\nvar FILE_HOST = {};\nvar PATH_START = {};\nvar PATH = {};\nvar CANNOT_BE_A_BASE_URL_PATH = {};\nvar QUERY = {};\nvar FRAGMENT = {};\n\n// eslint-disable-next-line max-statements\nvar parseURL = function (url, input, stateOverride, base) {\n  var state = stateOverride || SCHEME_START;\n  var pointer = 0;\n  var buffer = '';\n  var seenAt = false;\n  var seenBracket = false;\n  var seenPasswordToken = false;\n  var codePoints, char, bufferCodePoints, failure;\n\n  if (!stateOverride) {\n    url.scheme = '';\n    url.username = '';\n    url.password = '';\n    url.host = null;\n    url.port = null;\n    url.path = [];\n    url.query = null;\n    url.fragment = null;\n    url.cannotBeABaseURL = false;\n    input = input.replace(LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE, '');\n  }\n\n  input = input.replace(TAB_AND_NEW_LINE, '');\n\n  codePoints = arrayFrom(input);\n\n  while (pointer <= codePoints.length) {\n    char = codePoints[pointer];\n    switch (state) {\n      case SCHEME_START:\n        if (char && ALPHA.test(char)) {\n          buffer += char.toLowerCase();\n          state = SCHEME;\n        } else if (!stateOverride) {\n          state = NO_SCHEME;\n          continue;\n        } else return INVALID_SCHEME;\n        break;\n\n      case SCHEME:\n        if (char && (ALPHANUMERIC.test(char) || char == '+' || char == '-' || char == '.')) {\n          buffer += char.toLowerCase();\n        } else if (char == ':') {\n          if (stateOverride && (\n            (isSpecial(url) != has(specialSchemes, buffer)) ||\n            (buffer == 'file' && (includesCredentials(url) || url.port !== null)) ||\n            (url.scheme == 'file' && !url.host)\n          )) return;\n          url.scheme = buffer;\n          if (stateOverride) {\n            if (isSpecial(url) && specialSchemes[url.scheme] == url.port) url.port = null;\n            return;\n          }\n          buffer = '';\n          if (url.scheme == 'file') {\n            state = FILE;\n          } else if (isSpecial(url) && base && base.scheme == url.scheme) {\n            state = SPECIAL_RELATIVE_OR_AUTHORITY;\n          } else if (isSpecial(url)) {\n            state = SPECIAL_AUTHORITY_SLASHES;\n          } else if (codePoints[pointer + 1] == '/') {\n            state = PATH_OR_AUTHORITY;\n            pointer++;\n          } else {\n            url.cannotBeABaseURL = true;\n            url.path.push('');\n            state = CANNOT_BE_A_BASE_URL_PATH;\n          }\n        } else if (!stateOverride) {\n          buffer = '';\n          state = NO_SCHEME;\n          pointer = 0;\n          continue;\n        } else return INVALID_SCHEME;\n        break;\n\n      case NO_SCHEME:\n        if (!base || (base.cannotBeABaseURL && char != '#')) return INVALID_SCHEME;\n        if (base.cannotBeABaseURL && char == '#') {\n          url.scheme = base.scheme;\n          url.path = base.path.slice();\n          url.query = base.query;\n          url.fragment = '';\n          url.cannotBeABaseURL = true;\n          state = FRAGMENT;\n          break;\n        }\n        state = base.scheme == 'file' ? FILE : RELATIVE;\n        continue;\n\n      case SPECIAL_RELATIVE_OR_AUTHORITY:\n        if (char == '/' && codePoints[pointer + 1] == '/') {\n          state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n          pointer++;\n        } else {\n          state = RELATIVE;\n          continue;\n        } break;\n\n      case PATH_OR_AUTHORITY:\n        if (char == '/') {\n          state = AUTHORITY;\n          break;\n        } else {\n          state = PATH;\n          continue;\n        }\n\n      case RELATIVE:\n        url.scheme = base.scheme;\n        if (char == EOF) {\n          url.username = base.username;\n          url.password = base.password;\n          url.host = base.host;\n          url.port = base.port;\n          url.path = base.path.slice();\n          url.query = base.query;\n        } else if (char == '/' || (char == '\\\\' && isSpecial(url))) {\n          state = RELATIVE_SLASH;\n        } else if (char == '?') {\n          url.username = base.username;\n          url.password = base.password;\n          url.host = base.host;\n          url.port = base.port;\n          url.path = base.path.slice();\n          url.query = '';\n          state = QUERY;\n        } else if (char == '#') {\n          url.username = base.username;\n          url.password = base.password;\n          url.host = base.host;\n          url.port = base.port;\n          url.path = base.path.slice();\n          url.query = base.query;\n          url.fragment = '';\n          state = FRAGMENT;\n        } else {\n          url.username = base.username;\n          url.password = base.password;\n          url.host = base.host;\n          url.port = base.port;\n          url.path = base.path.slice();\n          url.path.pop();\n          state = PATH;\n          continue;\n        } break;\n\n      case RELATIVE_SLASH:\n        if (isSpecial(url) && (char == '/' || char == '\\\\')) {\n          state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n        } else if (char == '/') {\n          state = AUTHORITY;\n        } else {\n          url.username = base.username;\n          url.password = base.password;\n          url.host = base.host;\n          url.port = base.port;\n          state = PATH;\n          continue;\n        } break;\n\n      case SPECIAL_AUTHORITY_SLASHES:\n        state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n        if (char != '/' || buffer.charAt(pointer + 1) != '/') continue;\n        pointer++;\n        break;\n\n      case SPECIAL_AUTHORITY_IGNORE_SLASHES:\n        if (char != '/' && char != '\\\\') {\n          state = AUTHORITY;\n          continue;\n        } break;\n\n      case AUTHORITY:\n        if (char == '@') {\n          if (seenAt) buffer = '%40' + buffer;\n          seenAt = true;\n          bufferCodePoints = arrayFrom(buffer);\n          for (var i = 0; i < bufferCodePoints.length; i++) {\n            var codePoint = bufferCodePoints[i];\n            if (codePoint == ':' && !seenPasswordToken) {\n              seenPasswordToken = true;\n              continue;\n            }\n            var encodedCodePoints = percentEncode(codePoint, userinfoPercentEncodeSet);\n            if (seenPasswordToken) url.password += encodedCodePoints;\n            else url.username += encodedCodePoints;\n          }\n          buffer = '';\n        } else if (\n          char == EOF || char == '/' || char == '?' || char == '#' ||\n          (char == '\\\\' && isSpecial(url))\n        ) {\n          if (seenAt && buffer == '') return INVALID_AUTHORITY;\n          pointer -= arrayFrom(buffer).length + 1;\n          buffer = '';\n          state = HOST;\n        } else buffer += char;\n        break;\n\n      case HOST:\n      case HOSTNAME:\n        if (stateOverride && url.scheme == 'file') {\n          state = FILE_HOST;\n          continue;\n        } else if (char == ':' && !seenBracket) {\n          if (buffer == '') return INVALID_HOST;\n          failure = parseHost(url, buffer);\n          if (failure) return failure;\n          buffer = '';\n          state = PORT;\n          if (stateOverride == HOSTNAME) return;\n        } else if (\n          char == EOF || char == '/' || char == '?' || char == '#' ||\n          (char == '\\\\' && isSpecial(url))\n        ) {\n          if (isSpecial(url) && buffer == '') return INVALID_HOST;\n          if (stateOverride && buffer == '' && (includesCredentials(url) || url.port !== null)) return;\n          failure = parseHost(url, buffer);\n          if (failure) return failure;\n          buffer = '';\n          state = PATH_START;\n          if (stateOverride) return;\n          continue;\n        } else {\n          if (char == '[') seenBracket = true;\n          else if (char == ']') seenBracket = false;\n          buffer += char;\n        } break;\n\n      case PORT:\n        if (DIGIT.test(char)) {\n          buffer += char;\n        } else if (\n          char == EOF || char == '/' || char == '?' || char == '#' ||\n          (char == '\\\\' && isSpecial(url)) ||\n          stateOverride\n        ) {\n          if (buffer != '') {\n            var port = parseInt(buffer, 10);\n            if (port > 0xFFFF) return INVALID_PORT;\n            url.port = (isSpecial(url) && port === specialSchemes[url.scheme]) ? null : port;\n            buffer = '';\n          }\n          if (stateOverride) return;\n          state = PATH_START;\n          continue;\n        } else return INVALID_PORT;\n        break;\n\n      case FILE:\n        url.scheme = 'file';\n        if (char == '/' || char == '\\\\') state = FILE_SLASH;\n        else if (base && base.scheme == 'file') {\n          if (char == EOF) {\n            url.host = base.host;\n            url.path = base.path.slice();\n            url.query = base.query;\n          } else if (char == '?') {\n            url.host = base.host;\n            url.path = base.path.slice();\n            url.query = '';\n            state = QUERY;\n          } else if (char == '#') {\n            url.host = base.host;\n            url.path = base.path.slice();\n            url.query = base.query;\n            url.fragment = '';\n            state = FRAGMENT;\n          } else {\n            if (!startsWithWindowsDriveLetter(codePoints.slice(pointer).join(''))) {\n              url.host = base.host;\n              url.path = base.path.slice();\n              shortenURLsPath(url);\n            }\n            state = PATH;\n            continue;\n          }\n        } else {\n          state = PATH;\n          continue;\n        } break;\n\n      case FILE_SLASH:\n        if (char == '/' || char == '\\\\') {\n          state = FILE_HOST;\n          break;\n        }\n        if (base && base.scheme == 'file' && !startsWithWindowsDriveLetter(codePoints.slice(pointer).join(''))) {\n          if (isWindowsDriveLetter(base.path[0], true)) url.path.push(base.path[0]);\n          else url.host = base.host;\n        }\n        state = PATH;\n        continue;\n\n      case FILE_HOST:\n        if (char == EOF || char == '/' || char == '\\\\' || char == '?' || char == '#') {\n          if (!stateOverride && isWindowsDriveLetter(buffer)) {\n            state = PATH;\n          } else if (buffer == '') {\n            url.host = '';\n            if (stateOverride) return;\n            state = PATH_START;\n          } else {\n            failure = parseHost(url, buffer);\n            if (failure) return failure;\n            if (url.host == 'localhost') url.host = '';\n            if (stateOverride) return;\n            buffer = '';\n            state = PATH_START;\n          } continue;\n        } else buffer += char;\n        break;\n\n      case PATH_START:\n        if (isSpecial(url)) {\n          state = PATH;\n          if (char != '/' && char != '\\\\') continue;\n        } else if (!stateOverride && char == '?') {\n          url.query = '';\n          state = QUERY;\n        } else if (!stateOverride && char == '#') {\n          url.fragment = '';\n          state = FRAGMENT;\n        } else if (char != EOF) {\n          state = PATH;\n          if (char != '/') continue;\n        } break;\n\n      case PATH:\n        if (\n          char == EOF || char == '/' ||\n          (char == '\\\\' && isSpecial(url)) ||\n          (!stateOverride && (char == '?' || char == '#'))\n        ) {\n          if (isDoubleDot(buffer)) {\n            shortenURLsPath(url);\n            if (char != '/' && !(char == '\\\\' && isSpecial(url))) {\n              url.path.push('');\n            }\n          } else if (isSingleDot(buffer)) {\n            if (char != '/' && !(char == '\\\\' && isSpecial(url))) {\n              url.path.push('');\n            }\n          } else {\n            if (url.scheme == 'file' && !url.path.length && isWindowsDriveLetter(buffer)) {\n              if (url.host) url.host = '';\n              buffer = buffer.charAt(0) + ':'; // normalize windows drive letter\n            }\n            url.path.push(buffer);\n          }\n          buffer = '';\n          if (url.scheme == 'file' && (char == EOF || char == '?' || char == '#')) {\n            while (url.path.length > 1 && url.path[0] === '') {\n              url.path.shift();\n            }\n          }\n          if (char == '?') {\n            url.query = '';\n            state = QUERY;\n          } else if (char == '#') {\n            url.fragment = '';\n            state = FRAGMENT;\n          }\n        } else {\n          buffer += percentEncode(char, pathPercentEncodeSet);\n        } break;\n\n      case CANNOT_BE_A_BASE_URL_PATH:\n        if (char == '?') {\n          url.query = '';\n          state = QUERY;\n        } else if (char == '#') {\n          url.fragment = '';\n          state = FRAGMENT;\n        } else if (char != EOF) {\n          url.path[0] += percentEncode(char, C0ControlPercentEncodeSet);\n        } break;\n\n      case QUERY:\n        if (!stateOverride && char == '#') {\n          url.fragment = '';\n          state = FRAGMENT;\n        } else if (char != EOF) {\n          if (char == \"'\" && isSpecial(url)) url.query += '%27';\n          else if (char == '#') url.query += '%23';\n          else url.query += percentEncode(char, C0ControlPercentEncodeSet);\n        } break;\n\n      case FRAGMENT:\n        if (char != EOF) url.fragment += percentEncode(char, fragmentPercentEncodeSet);\n        break;\n    }\n\n    pointer++;\n  }\n};\n\n// `URL` constructor\n// https://url.spec.whatwg.org/#url-class\nvar URLConstructor = function URL(url /* , base */) {\n  var that = anInstance(this, URLConstructor, 'URL');\n  var base = arguments.length > 1 ? arguments[1] : undefined;\n  var urlString = String(url);\n  var state = setInternalState(that, { type: 'URL' });\n  var baseState, failure;\n  if (base !== undefined) {\n    if (base instanceof URLConstructor) baseState = getInternalURLState(base);\n    else {\n      failure = parseURL(baseState = {}, String(base));\n      if (failure) throw TypeError(failure);\n    }\n  }\n  failure = parseURL(state, urlString, null, baseState);\n  if (failure) throw TypeError(failure);\n  var searchParams = state.searchParams = new URLSearchParams();\n  var searchParamsState = getInternalSearchParamsState(searchParams);\n  searchParamsState.updateSearchParams(state.query);\n  searchParamsState.updateURL = function () {\n    state.query = String(searchParams) || null;\n  };\n  if (!DESCRIPTORS) {\n    that.href = serializeURL.call(that);\n    that.origin = getOrigin.call(that);\n    that.protocol = getProtocol.call(that);\n    that.username = getUsername.call(that);\n    that.password = getPassword.call(that);\n    that.host = getHost.call(that);\n    that.hostname = getHostname.call(that);\n    that.port = getPort.call(that);\n    that.pathname = getPathname.call(that);\n    that.search = getSearch.call(that);\n    that.searchParams = getSearchParams.call(that);\n    that.hash = getHash.call(that);\n  }\n};\n\nvar URLPrototype = URLConstructor.prototype;\n\nvar serializeURL = function () {\n  var url = getInternalURLState(this);\n  var scheme = url.scheme;\n  var username = url.username;\n  var password = url.password;\n  var host = url.host;\n  var port = url.port;\n  var path = url.path;\n  var query = url.query;\n  var fragment = url.fragment;\n  var output = scheme + ':';\n  if (host !== null) {\n    output += '//';\n    if (includesCredentials(url)) {\n      output += username + (password ? ':' + password : '') + '@';\n    }\n    output += serializeHost(host);\n    if (port !== null) output += ':' + port;\n  } else if (scheme == 'file') output += '//';\n  output += url.cannotBeABaseURL ? path[0] : path.length ? '/' + path.join('/') : '';\n  if (query !== null) output += '?' + query;\n  if (fragment !== null) output += '#' + fragment;\n  return output;\n};\n\nvar getOrigin = function () {\n  var url = getInternalURLState(this);\n  var scheme = url.scheme;\n  var port = url.port;\n  if (scheme == 'blob') try {\n    return new URL(scheme.path[0]).origin;\n  } catch (error) {\n    return 'null';\n  }\n  if (scheme == 'file' || !isSpecial(url)) return 'null';\n  return scheme + '://' + serializeHost(url.host) + (port !== null ? ':' + port : '');\n};\n\nvar getProtocol = function () {\n  return getInternalURLState(this).scheme + ':';\n};\n\nvar getUsername = function () {\n  return getInternalURLState(this).username;\n};\n\nvar getPassword = function () {\n  return getInternalURLState(this).password;\n};\n\nvar getHost = function () {\n  var url = getInternalURLState(this);\n  var host = url.host;\n  var port = url.port;\n  return host === null ? ''\n    : port === null ? serializeHost(host)\n    : serializeHost(host) + ':' + port;\n};\n\nvar getHostname = function () {\n  var host = getInternalURLState(this).host;\n  return host === null ? '' : serializeHost(host);\n};\n\nvar getPort = function () {\n  var port = getInternalURLState(this).port;\n  return port === null ? '' : String(port);\n};\n\nvar getPathname = function () {\n  var url = getInternalURLState(this);\n  var path = url.path;\n  return url.cannotBeABaseURL ? path[0] : path.length ? '/' + path.join('/') : '';\n};\n\nvar getSearch = function () {\n  var query = getInternalURLState(this).query;\n  return query ? '?' + query : '';\n};\n\nvar getSearchParams = function () {\n  return getInternalURLState(this).searchParams;\n};\n\nvar getHash = function () {\n  var fragment = getInternalURLState(this).fragment;\n  return fragment ? '#' + fragment : '';\n};\n\nvar accessorDescriptor = function (getter, setter) {\n  return { get: getter, set: setter, configurable: true, enumerable: true };\n};\n\nif (DESCRIPTORS) {\n  defineProperties(URLPrototype, {\n    // `URL.prototype.href` accessors pair\n    // https://url.spec.whatwg.org/#dom-url-href\n    href: accessorDescriptor(serializeURL, function (href) {\n      var url = getInternalURLState(this);\n      var urlString = String(href);\n      var failure = parseURL(url, urlString);\n      if (failure) throw TypeError(failure);\n      getInternalSearchParamsState(url.searchParams).updateSearchParams(url.query);\n    }),\n    // `URL.prototype.origin` getter\n    // https://url.spec.whatwg.org/#dom-url-origin\n    origin: accessorDescriptor(getOrigin),\n    // `URL.prototype.protocol` accessors pair\n    // https://url.spec.whatwg.org/#dom-url-protocol\n    protocol: accessorDescriptor(getProtocol, function (protocol) {\n      var url = getInternalURLState(this);\n      parseURL(url, String(protocol) + ':', SCHEME_START);\n    }),\n    // `URL.prototype.username` accessors pair\n    // https://url.spec.whatwg.org/#dom-url-username\n    username: accessorDescriptor(getUsername, function (username) {\n      var url = getInternalURLState(this);\n      var codePoints = arrayFrom(String(username));\n      if (cannotHaveUsernamePasswordPort(url)) return;\n      url.username = '';\n      for (var i = 0; i < codePoints.length; i++) {\n        url.username += percentEncode(codePoints[i], userinfoPercentEncodeSet);\n      }\n    }),\n    // `URL.prototype.password` accessors pair\n    // https://url.spec.whatwg.org/#dom-url-password\n    password: accessorDescriptor(getPassword, function (password) {\n      var url = getInternalURLState(this);\n      var codePoints = arrayFrom(String(password));\n      if (cannotHaveUsernamePasswordPort(url)) return;\n      url.password = '';\n      for (var i = 0; i < codePoints.length; i++) {\n        url.password += percentEncode(codePoints[i], userinfoPercentEncodeSet);\n      }\n    }),\n    // `URL.prototype.host` accessors pair\n    // https://url.spec.whatwg.org/#dom-url-host\n    host: accessorDescriptor(getHost, function (host) {\n      var url = getInternalURLState(this);\n      if (url.cannotBeABaseURL) return;\n      parseURL(url, String(host), HOST);\n    }),\n    // `URL.prototype.hostname` accessors pair\n    // https://url.spec.whatwg.org/#dom-url-hostname\n    hostname: accessorDescriptor(getHostname, function (hostname) {\n      var url = getInternalURLState(this);\n      if (url.cannotBeABaseURL) return;\n      parseURL(url, String(hostname), HOSTNAME);\n    }),\n    // `URL.prototype.port` accessors pair\n    // https://url.spec.whatwg.org/#dom-url-port\n    port: accessorDescriptor(getPort, function (port) {\n      var url = getInternalURLState(this);\n      if (cannotHaveUsernamePasswordPort(url)) return;\n      port = String(port);\n      if (port == '') url.port = null;\n      else parseURL(url, port, PORT);\n    }),\n    // `URL.prototype.pathname` accessors pair\n    // https://url.spec.whatwg.org/#dom-url-pathname\n    pathname: accessorDescriptor(getPathname, function (pathname) {\n      var url = getInternalURLState(this);\n      if (url.cannotBeABaseURL) return;\n      url.path = [];\n      parseURL(url, pathname + '', PATH_START);\n    }),\n    // `URL.prototype.search` accessors pair\n    // https://url.spec.whatwg.org/#dom-url-search\n    search: accessorDescriptor(getSearch, function (search) {\n      var url = getInternalURLState(this);\n      search = String(search);\n      if (search == '') {\n        url.query = null;\n      } else {\n        if ('?' == search.charAt(0)) search = search.slice(1);\n        url.query = '';\n        parseURL(url, search, QUERY);\n      }\n      getInternalSearchParamsState(url.searchParams).updateSearchParams(url.query);\n    }),\n    // `URL.prototype.searchParams` getter\n    // https://url.spec.whatwg.org/#dom-url-searchparams\n    searchParams: accessorDescriptor(getSearchParams),\n    // `URL.prototype.hash` accessors pair\n    // https://url.spec.whatwg.org/#dom-url-hash\n    hash: accessorDescriptor(getHash, function (hash) {\n      var url = getInternalURLState(this);\n      hash = String(hash);\n      if (hash == '') {\n        url.fragment = null;\n        return;\n      }\n      if ('#' == hash.charAt(0)) hash = hash.slice(1);\n      url.fragment = '';\n      parseURL(url, hash, FRAGMENT);\n    })\n  });\n}\n\n// `URL.prototype.toJSON` method\n// https://url.spec.whatwg.org/#dom-url-tojson\nredefine(URLPrototype, 'toJSON', function toJSON() {\n  return serializeURL.call(this);\n}, { enumerable: true });\n\n// `URL.prototype.toString` method\n// https://url.spec.whatwg.org/#URL-stringification-behavior\nredefine(URLPrototype, 'toString', function toString() {\n  return serializeURL.call(this);\n}, { enumerable: true });\n\nif (NativeURL) {\n  var nativeCreateObjectURL = NativeURL.createObjectURL;\n  var nativeRevokeObjectURL = NativeURL.revokeObjectURL;\n  // `URL.createObjectURL` method\n  // https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL\n  // eslint-disable-next-line no-unused-vars\n  if (nativeCreateObjectURL) redefine(URLConstructor, 'createObjectURL', function createObjectURL(blob) {\n    return nativeCreateObjectURL.apply(NativeURL, arguments);\n  });\n  // `URL.revokeObjectURL` method\n  // https://developer.mozilla.org/en-US/docs/Web/API/URL/revokeObjectURL\n  // eslint-disable-next-line no-unused-vars\n  if (nativeRevokeObjectURL) redefine(URLConstructor, 'revokeObjectURL', function revokeObjectURL(url) {\n    return nativeRevokeObjectURL.apply(NativeURL, arguments);\n  });\n}\n\nsetToStringTag(URLConstructor, 'URL');\n\n$({ global: true, forced: !USE_NATIVE_URL, sham: !DESCRIPTORS }, {\n  URL: URLConstructor\n});\n","\nvar content = require(\"!!../../../../../node_modules/css-loader/index.js??ref--5-1!./Grid.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../../node_modules/css-loader/index.js??ref--5-1!./Grid.css\", function() {\n\t\tvar newContent = require(\"!!../../../../../node_modules/css-loader/index.js??ref--5-1!./Grid.css\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"._3HNZw7hirS26UKOfPqgflx {\\n    background: #f5f5f6;\\n}\\n\\n.PIXGdNAa2HdlSKZoPcVo4 {\\n    position: fixed;\\n    width: 100%;\\n    box-sizing: border-box;\\n    z-index: 10;\\n    opacity: .95;\\n}\\n\\n._2vwVn9S6nAcKYSqwrqJTqV {\\n    height: 50px;\\n    border-bottom: 1px solid #000;\\n}\\n\\n._2HQUG3tQIsATBJ4ZkzI3rO {\\n    margin: 0 auto;\\n    text-align: center;\\n    max-width: 940px;\\n    padding-top: 130px;\\n}\\n\\n._2HQUG3tQIsATBJ4ZkzI3rO:after {\\n    content: '';\\n    display: flex;\\n    clear: both;\\n}\\n\\n.Tm-9iw5SoWV_KvvsWdvyB {\\n    display: inline-block;\\n    max-width: 940px;\\n    text-align: left;\\n}\\n\\n.wxUugEKAbqtefUQPEikhg {\\n    position: relative;\\n    height: 100%;\\n}\\n\\n._22HGnW7jsrDCKUGgPoT-WX {\\n    position: fixed;\\n    z-index: 1001; /* higher than share widget in fullscreen */\\n    left: 0;\\n    top: 0;\\n    right: 0;\\n    bottom: 0;\\n    background: #000;\\n    width: 100%;\\n    height: 100%;\\n    overflow-y: auto;\\n}\\n\\n._23VQC6YyKbH6kkot64uxUc {\\n    box-sizing: border-box;\\n    display: flex;\\n    margin: 30px 0 80px;\\n    background: #fafafb;\\n    min-height: 40px;\\n    padding: 20px;\\n    border-radius: 4px;\\n}\\n\\n._2gOzPsaFwfpvdiF90vO45s {\\n    flex: 1;\\n    padding: 10px 0;\\n    text-align: left;\\n}\\n._3A5YGMct8b0bR4DivVz7aW {\\n    color: #434343;\\n    font-size: 15px;\\n    line-height: 1.5;\\n}\\n._1COvispfNMgtujfm4kxeh3 {\\n    /*white-space: pre;*/\\n    line-height: 1.5;\\n}\\n._3A5YGMct8b0bR4DivVz7aW::before {\\n    position: relative;\\n    top: -1px;\\n    font-size: 15px;\\n    margin-right: 10px;\\n    color: #9b9b9b;\\n}\\n._3MyWZc1LxO2kT_EBrvNJ1l {\\n    margin-top: 10px;\\n    color: #656565;\\n    opacity: 0.5;\\n    font-size: 11px;\\n}\\n\\n._284aZJyc3PEmWdwmH_QGgL {\\n    position: relative;\\n    padding-left: 70px;\\n    margin-left: 15px;\\n    min-height: 40px;\\n    min-width: 125px;\\n    max-width: 215px;\\n    border-left: 1px solid #e0e0e4;\\n    text-align: left;\\n}\\n._284aZJyc3PEmWdwmH_QGgL:after {\\n    content: '';\\n    display: block;\\n    clear: both;\\n}\\n._33UiooRApH9x_lRvj7UR26 {\\n    position: absolute;\\n    left: 15px;\\n    top: 0;\\n    width: 40px;\\n    height: 40px;\\n    border-radius: 30px;\\n    background-size: cover;\\n}\\n._1ow3FVqEcpMg3Nxvrsj7H0 {\\n    padding-top: 10px;\\n    font-size: 15px;\\n    line-height: 20px;\\n    color: #434343;\\n}\\n.ZH6Wjsfrj2R_FhDSKObq1 {\\n    display: inline-block;\\n    color: #2C78A0;\\n}\\n.ZH6Wjsfrj2R_FhDSKObq1:before {\\n    margin-right: 6px;\\n}\\n\\n@media screen and (max-width: 960px) {\\n    .PIXGdNAa2HdlSKZoPcVo4 {\\n        text-align: center;\\n    }\\n\\n    .Tm-9iw5SoWV_KvvsWdvyB {\\n        float: none;\\n        width: 100%;\\n    }\\n\\n    ._23VQC6YyKbH6kkot64uxUc {\\n        display: block;\\n        padding: 40px 20px;\\n        margin: 0;\\n        text-align: center;\\n    }\\n\\n    ._2gOzPsaFwfpvdiF90vO45s {\\n        margin: 0 20px;\\n        padding-top: 0;\\n        padding-bottom: 20px;\\n        border-bottom: 1px solid #e0e0e4;\\n        text-align: center;\\n    }\\n\\n    ._2HQUG3tQIsATBJ4ZkzI3rO {\\n        padding-top: 70px;\\n    }\\n\\n    ._284aZJyc3PEmWdwmH_QGgL {\\n        position: static;\\n        margin: 0;\\n        padding: 15px 0 0;\\n        border: none;\\n        text-align: center;\\n        min-height: 0;\\n        min-width: 0;\\n        max-width: none;\\n    }\\n\\n    ._33UiooRApH9x_lRvj7UR26 {\\n        position: static;\\n        display: inline-block;\\n    }\\n}\\n\\n._1uJWGaeeXlJCGWzzl6UoOh {\\n\\twidth: 40px;\\n\\theight: 40px;\\n\\tborder: none;\\n\\tfont-size: 16px;\\n\\tline-height: 40px;\\n}\\n\", \"\"]);\n\n// exports\nexports.locals = {\n\t\"container\": \"_3HNZw7hirS26UKOfPqgflx\",\n\t\"header\": \"PIXGdNAa2HdlSKZoPcVo4\",\n\t\"toolbar\": \"_2vwVn9S6nAcKYSqwrqJTqV\",\n\t\"center\": \"_2HQUG3tQIsATBJ4ZkzI3rO\",\n\t\"infographicContainer\": \"Tm-9iw5SoWV_KvvsWdvyB\",\n\t\"infographic\": \"wxUugEKAbqtefUQPEikhg\",\n\t\"infographicFullscreen\": \"_22HGnW7jsrDCKUGgPoT-WX\",\n\t\"infographicMeta\": \"_23VQC6YyKbH6kkot64uxUc\",\n\t\"infographicInfo\": \"_2gOzPsaFwfpvdiF90vO45s\",\n\t\"infographicTitle\": \"_3A5YGMct8b0bR4DivVz7aW\",\n\t\"infographicDescription\": \"_1COvispfNMgtujfm4kxeh3\",\n\t\"infographicDate\": \"_3MyWZc1LxO2kT_EBrvNJ1l\",\n\t\"authorInfo\": \"_284aZJyc3PEmWdwmH_QGgL\",\n\t\"authorImage\": \"_33UiooRApH9x_lRvj7UR26\",\n\t\"authorName\": \"_1ow3FVqEcpMg3Nxvrsj7H0\",\n\t\"authorLink\": \"ZH6Wjsfrj2R_FhDSKObq1\",\n\t\"infographicViewAvatar\": \"_1uJWGaeeXlJCGWzzl6UoOh\"\n};","'use strict';\nvar $ = require('../internals/export');\nvar toLength = require('../internals/to-length');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\n\nvar nativeStartsWith = ''.startsWith;\nvar min = Math.min;\n\n// `String.prototype.startsWith` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.startswith\n$({ target: 'String', proto: true, forced: !correctIsRegExpLogic('startsWith') }, {\n  startsWith: function startsWith(searchString /* , position = 0 */) {\n    var that = String(requireObjectCoercible(this));\n    notARegExp(searchString);\n    var index = toLength(min(arguments.length > 1 ? arguments[1] : undefined, that.length));\n    var search = String(searchString);\n    return nativeStartsWith\n      ? nativeStartsWith.call(that, search, index)\n      : that.slice(index, index + search.length) === search;\n  }\n});\n","var global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\nvar bind = require('../internals/bind-context');\nvar html = require('../internals/html');\nvar createElement = require('../internals/document-create-element');\n\nvar location = global.location;\nvar set = global.setImmediate;\nvar clear = global.clearImmediate;\nvar process = global.process;\nvar MessageChannel = global.MessageChannel;\nvar Dispatch = global.Dispatch;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar defer, channel, port;\n\nvar run = function (id) {\n  // eslint-disable-next-line no-prototype-builtins\n  if (queue.hasOwnProperty(id)) {\n    var fn = queue[id];\n    delete queue[id];\n    fn();\n  }\n};\n\nvar runner = function (id) {\n  return function () {\n    run(id);\n  };\n};\n\nvar listener = function (event) {\n  run(event.data);\n};\n\nvar post = function (id) {\n  // old engines have not location.origin\n  global.postMessage(id + '', location.protocol + '//' + location.host);\n};\n\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!set || !clear) {\n  set = function setImmediate(fn) {\n    var args = [];\n    var i = 1;\n    while (arguments.length > i) args.push(arguments[i++]);\n    queue[++counter] = function () {\n      // eslint-disable-next-line no-new-func\n      (typeof fn == 'function' ? fn : Function(fn)).apply(undefined, args);\n    };\n    defer(counter);\n    return counter;\n  };\n  clear = function clearImmediate(id) {\n    delete queue[id];\n  };\n  // Node.js 0.8-\n  if (classof(process) == 'process') {\n    defer = function (id) {\n      process.nextTick(runner(id));\n    };\n  // Sphere (JS game engine) Dispatch API\n  } else if (Dispatch && Dispatch.now) {\n    defer = function (id) {\n      Dispatch.now(runner(id));\n    };\n  // Browsers with MessageChannel, includes WebWorkers\n  } else if (MessageChannel) {\n    channel = new MessageChannel();\n    port = channel.port2;\n    channel.port1.onmessage = listener;\n    defer = bind(port.postMessage, port, 1);\n  // Browsers with postMessage, skip WebWorkers\n  // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n  } else if (global.addEventListener && typeof postMessage == 'function' && !global.importScripts && !fails(post)) {\n    defer = post;\n    global.addEventListener('message', listener, false);\n  // IE8-\n  } else if (ONREADYSTATECHANGE in createElement('script')) {\n    defer = function (id) {\n      html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () {\n        html.removeChild(this);\n        run(id);\n      };\n    };\n  // Rest old browsers\n  } else {\n    defer = function (id) {\n      setTimeout(runner(id), 0);\n    };\n  }\n}\n\nmodule.exports = {\n  set: set,\n  clear: clear\n};\n","require('../es');\nrequire('../web');\n\nmodule.exports = require('../internals/path');\n","export const ENGAGEMENT_EVENT = 'ENGAGEMENT_EVENT';\nexport const ENGAGEMENT_INSCREEN = 'ENGAGEMENT_INSCREEN';\n","\nvar content = require(\"!!../../../../../node_modules/css-loader/index.js??ref--5-1!./Callouts.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../../node_modules/css-loader/index.js??ref--5-1!./Callouts.css\", function() {\n\t\tvar newContent = require(\"!!../../../../../node_modules/css-loader/index.js??ref--5-1!./Callouts.css\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","const {Iterable} = require('immutable');\nconst invariant = require('invariant');\n\nconst {placeholderPattern, legacyPlaceholderPattern} = require('../../../shared/freeLayoutVariablePlaceholders');\nconst resolveParsedReferenceColor = require('../../../shared/resolveParsedReferenceColor');\n\n\nmodule.exports = function resolveDesignProperty(design, elementTypeOrPath, propValue) {\n    if (typeof propValue !== 'string') {\n        return {\n            value: propValue,\n            match: false,\n        };\n    }\n    let matchedPattern;\n    if (placeholderPattern.test(propValue)) {\n        matchedPattern = placeholderPattern;\n    } else if (legacyPlaceholderPattern.test(propValue)) {\n        matchedPattern = legacyPlaceholderPattern;\n    } else {\n        return {\n            value: propValue,\n            match: false,\n        };\n    }\n\n    return {\n        value: propValue.replace(matchedPattern, (match, propName) => {\n            const [variableName, defaultValue] = propName.split('|');\n            const resolvedProp = queryDesignProperty(design, elementTypeOrPath, variableName, defaultValue);\n            if (resolvedProp) {\n                return resolvedProp;\n            }\n            return propName;\n        }),\n        match: true,\n    };\n};\n\nfunction queryDesignProperty(design, elementTypeOrPath, propName, notSetValue = undefined) {\n    const resolver = resolveParsedReferenceColor(propName, design.get('colors').toJS());\n\n    if (resolver.resolved) {\n        return resolver.value || notSetValue;\n    }\n\n    const keyPath = ['elements', ...normalizeGetPath(elementTypeOrPath), propName];\n    if (!design.hasIn(keyPath)) {\n        return design.getIn(['defaults', propName], notSetValue);\n    }\n\n    let value = design.getIn(keyPath, notSetValue);\n    if (Iterable.isKeyed(value)) {\n        invariant(value.has('ref'), 'Non-primitive type must be a map representing a reference and have a \"ref\" key');\n        const refPath = normalizeGetPath(value.get('ref'));\n        if (!design.hasIn(refPath)) {\n            console.warn(`Cannot find value for path ${value.get('ref')}`);\n            return notSetValue;\n        }\n        value = design.getIn(refPath, notSetValue);\n        invariant(!Iterable.isKeyed(value), 'Currently we do not support more than just one ref lookup to prevent circular references');\n    }\n    return value;\n}\n\nfunction normalizeGetPath(typeOrPath) {\n    if (Array.isArray(typeOrPath)) {\n        return typeOrPath;\n    }\n    invariant(typeof typeOrPath === 'string', 'Path parameter must be an array or string');\n    const parts = typeOrPath.split('.');\n    return parts;\n}\n","export default {\n    position: 'absolute',\n    left: '-10000px',\n    top: 'auto',\n    width: '1px',\n    height: '1px',\n    overflow: 'hidden',\n};\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n * \n * @providesModule EventSubscriptionVendor\n * @typechecks\n */\n\n'use strict';\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\nvar invariant = require('fbjs/lib/invariant');\n\n/**\n * EventSubscriptionVendor stores a set of EventSubscriptions that are\n * subscribed to a particular event type.\n */\n\nvar EventSubscriptionVendor = (function () {\n  function EventSubscriptionVendor() {\n    _classCallCheck(this, EventSubscriptionVendor);\n\n    this._subscriptionsForType = {};\n    this._currentSubscription = null;\n  }\n\n  /**\n   * Adds a subscription keyed by an event type.\n   *\n   * @param {string} eventType\n   * @param {EventSubscription} subscription\n   */\n\n  EventSubscriptionVendor.prototype.addSubscription = function addSubscription(eventType, subscription) {\n    !(subscription.subscriber === this) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'The subscriber of the subscription is incorrectly set.') : invariant(false) : undefined;\n    if (!this._subscriptionsForType[eventType]) {\n      this._subscriptionsForType[eventType] = [];\n    }\n    var key = this._subscriptionsForType[eventType].length;\n    this._subscriptionsForType[eventType].push(subscription);\n    subscription.eventType = eventType;\n    subscription.key = key;\n    return subscription;\n  };\n\n  /**\n   * Removes a bulk set of the subscriptions.\n   *\n   * @param {?string} eventType - Optional name of the event type whose\n   *   registered supscriptions to remove, if null remove all subscriptions.\n   */\n\n  EventSubscriptionVendor.prototype.removeAllSubscriptions = function removeAllSubscriptions(eventType) {\n    if (eventType === undefined) {\n      this._subscriptionsForType = {};\n    } else {\n      delete this._subscriptionsForType[eventType];\n    }\n  };\n\n  /**\n   * Removes a specific subscription. Instead of calling this function, call\n   * `subscription.remove()` directly.\n   *\n   * @param {object} subscription\n   */\n\n  EventSubscriptionVendor.prototype.removeSubscription = function removeSubscription(subscription) {\n    var eventType = subscription.eventType;\n    var key = subscription.key;\n\n    var subscriptionsForType = this._subscriptionsForType[eventType];\n    if (subscriptionsForType) {\n      delete subscriptionsForType[key];\n    }\n  };\n\n  /**\n   * Returns the array of subscriptions that are currently registered for the\n   * given event type.\n   *\n   * Note: This array can be potentially sparse as subscriptions are deleted\n   * from it when they are removed.\n   *\n   * TODO: This returns a nullable array. wat?\n   *\n   * @param {string} eventType\n   * @return {?array}\n   */\n\n  EventSubscriptionVendor.prototype.getSubscriptionsForType = function getSubscriptionsForType(eventType) {\n    return this._subscriptionsForType[eventType];\n  };\n\n  return EventSubscriptionVendor;\n})();\n\nmodule.exports = EventSubscriptionVendor;","import PropTypes from 'prop-types';\nimport React, {PureComponent} from 'react';\nimport ImmutablePropTypes from 'react-immutable-proptypes';\nimport Immutable, {Set, List} from 'immutable';\nimport {connect} from 'react-redux';\nimport styled from 'styled-components';\n\nimport Selection from '../immutable/Selection';\nimport EntitySelectionOverlay from '../overlay/EntitySelectionOverlay';\nimport SmartGuidesOverlay from '../overlay/SmartGuidesOverlay';\n\nimport allHandlers from '../handlers/allHandlers';\nimport {\n    setElementForBlock,\n    removeElementForBlock,\n    getElementForBlock,\n} from '../dom';\nimport Grid from './Grid.react';\nimport {enterGroupEditMode} from '../../../app/freelayout_editor/actions/groupEditMode';\nimport {flattenEntities} from '../../../app/freelayout_editor/components/contents/Group/utils/flatten';\nimport isPartOfGroup from '../../../app/freelayout_editor/components/contents/Group/utils/isPartOfGroup';\nimport {findOverlapingEntitiesInBlock} from '../handlers/handle/utils';\nimport {constructDerivedState, wrapAndOrderEntities} from './AccessibleReadingOrderUtils';\nimport {currentBrowserIsIE} from '../../../common/isIE';\nimport {ZOOM_SWITCH_TO_SINGLE_VIEW} from '../../SideMenuSettings/constants';\nimport {Previews} from '../../../app/freelayout_editor/types';\n\nimport {ContentBlockItems} from './ContentBlockItems';\nimport CoverImage from '../../CoverImage/CoverImage.react';\n\nimport PrezigramTheme from '../../../contexts/theme/prezigram';\n\nconst ContentBlockContainer = styled.div`\n    position: relative;\n    line-height: 1;\n\n    ${props => props.theme.id === PrezigramTheme.id && `\n        box-shadow: 0px 1px 3px rgba(21, 34, 53, 0.3);\n        \n        /* <dragon css related resets> */\n        * {\n            box-sizing: content-box;\n        }\n        \n        h1 {\n            font-size: 2em;\n            line-height: 1;\n        }\n        \n        h2 {\n            font-size: 1.5em;\n            line-height: 1;\n        }\n        /* </dragon css related resets> */\n    `}\n\n    ${({commenting}) => commenting && 'cursor: crosshair;'}\n`;\n\nconst Header = styled.h1`\n    position: absolute;\n    left: 0;\n    top: 0;\n    right: 0;\n    bottom: 0;\n    width: 100%;\n    height: 100%;\n    opacity: 0;\n`;\n\nconst ContentWrapper = styled.div`\n    overflow: hidden;\n`;\n\n/* TODO Move global styling here from InfographicEditor.css */\nconst ContentsBlock = styled.div.attrs(\n    () => ({\n        className: 'InfographicEditor-Contents-Block',\n    }))`\n    ${({interactive}) => !interactive && `\n        /* Avoid being overriden by other class definitions */\n        pointer-events: none !important;\n\n        /* Images have pointer-events set to auto inside style. */\n        /* Without using !important here they win and steal mouse events. */\n        & * {\n            pointer-events: none !important;\n        }\n    `}\n`;\n\nconst Background = styled.div`\n    position: absolute;\n    width: 100%;\n    height: 100%;\n    top: 0;\n    left: 0;\n    pointer-events: none;\n`;\n\nconst props = (state, ownProps) => {\n    let externalSelection;\n    if (!ownProps.entityOverlayComponent) {\n        externalSelection = Set();\n    } else {\n        const users = state.getIn(['flexCollaboration', 'users'], []);\n        externalSelection = Set().withMutations(mutable => {\n            users.forEach(user => {\n                mutable.union(user.get('selectedObjects').filter(entityKey => {\n                    return !!ownProps.block.getEntity(entityKey);\n                }));\n            });\n        });\n    }\n\n    const block = ownProps.block;\n    const blockKey = block.getKey();\n    const conversations = state.get('conversations');\n\n    let comments;\n    if (ownProps.commentComponent && conversations && conversations.markersVisible) {\n        comments = List().withMutations(mutable => {\n            conversations.comments.reduce((blockComments, comment) => {\n                if (comment.blockId !== blockKey) {\n                    return blockComments;\n                }\n                if (!conversations.filteredKeys.has(comment.key)) {\n                    return blockComments;\n                }\n                if (!comment.objectId) {\n                    return blockComments.push(comment);\n                }\n\n                const entity = block.getEntity(comment.objectId);\n                if (!entity) {\n                    return blockComments;\n                }\n\n                const transform = entity.getTransform();\n                const entityRect = entity.rectangle();\n                entityRect.rotate = transform.getRotate();\n                return blockComments.push(comment.set('entityRect', entityRect));\n            }, mutable);\n        });\n    } else {\n        comments = List();\n    }\n\n    return {\n        externalSelection,\n        comments,\n        commenting: conversations && conversations.commenting,\n        openCommentKey: conversations && conversations.openCommentKey,\n        activeCommentKey: conversations && conversations.activeCommentKey,\n        preview: state.get('preview'),\n    };\n};\n\nconst actions = dispatch => ({\n    toSingleView({pageIndex}) {\n        dispatch({\n            type: ZOOM_SWITCH_TO_SINGLE_VIEW,\n            payload: {\n                subAction: 'scale',\n                pageIndex,\n            },\n        });\n    },\n});\n\nconst areStatesEqual = (next, prev) => {\n    return (\n        next.getIn(['flexCollaboration', 'users']) === prev.getIn(['flexCollaboration', 'users']) &&\n        next.get('conversations') === prev.get('conversations') &&\n        next.get('preview') === prev.get('preview')\n    );\n};\n\nconst areStatePropsEqual = (next, prev) => {\n    return (\n        Immutable.is(next.externalSelection, prev.externalSelection) &&\n        next.comments === prev.comments &&\n        next.commenting === prev.commenting &&\n        next.openCommentKey === prev.openCommentKey &&\n        next.activeCommentKey === prev.activeCommentKey &&\n        next.preview === prev.preview\n    );\n};\n\n@connect(props, actions, null, {areStatesEqual, areStatePropsEqual})\nexport default class ContentBlock extends PureComponent {\n    static defaultProps = {\n        scaleX: 1,\n        scaleY: 1,\n        registerDOMNode: true,\n        transparentBackground: false,\n        readOnly: false,\n        interactive: true,\n        selectedEntities: Set(),\n    };\n\n    static propTypes = {\n        accessibleReadingOrder: PropTypes.bool,\n        editorState: PropTypes.any.isRequired,\n        assets: PropTypes.shape({getURL: PropTypes.func.isRequired}),\n        readOnly: PropTypes.bool.isRequired,\n        block: PropTypes.any.isRequired,\n        index: PropTypes.number.isRequired,\n        pageCount: PropTypes.number,\n        scaleX: PropTypes.number,\n        scaleY: PropTypes.number,\n        groupsInEditMode: PropTypes.object,\n        renderItemContentsFn: PropTypes.func,\n        onSelectionChange: PropTypes.func,\n        onEntityMouseDown: PropTypes.func,\n        onEntityMouseUp: PropTypes.func,\n        multiSelectionOverlayComponent: PropTypes.any,\n        entityOverlayComponent: PropTypes.any,\n        connectorEntityOverlays: PropTypes.any,\n        entityBoundingBoxComponent: PropTypes.any,\n        registerDOMNode: PropTypes.bool,\n        multiSelectionActive: PropTypes.bool,\n        blockOverlayComponent: PropTypes.any,\n        transparentBackground: PropTypes.bool,\n        guideSettings: ImmutablePropTypes.contains({\n            showGuides: PropTypes.bool.isRequired,\n            snapObjects: PropTypes.bool.isRequired,\n            whitespacePercent: PropTypes.number.isRequired,\n            columnCount: PropTypes.number.isRequired,\n            rowSpacing: PropTypes.number.isRequired,\n        }),\n        selectedEntities: ImmutablePropTypes.set,\n        commentingIsAvailable: PropTypes.bool,\n        onAddComment: PropTypes.func,\n        externalSelection: ImmutablePropTypes.set.isRequired,\n        commenting: PropTypes.bool,\n        comments: ImmutablePropTypes.list,\n        openCommentKey: PropTypes.string,\n        activeCommentKey: PropTypes.string,\n        commentComponent: PropTypes.any,\n        commentingTooltipComponent: PropTypes.any,\n        pageSize: PropTypes.shape({\n            width: PropTypes.number.isRequired,\n            height: PropTypes.number.isRequired,\n        }),\n        thumbsView: PropTypes.bool,\n        toSingleView: PropTypes.func,\n        preview: Previews,\n        interactive: PropTypes.bool,\n        calloutsComponent: PropTypes.any,\n    };\n\n    static getDerivedStateFromProps(nextProps, prevState) {\n        const prepareBlockItems = () => {\n            const entities = nextProps.block.getEntities().filter(({calloutKey, groupKey}) => {\n                if (nextProps.readOnly) {\n                    return !calloutKey && !groupKey;\n                }\n                return !calloutKey;\n            });\n            return {\n                orderedEntities: nextProps.accessibleReadingOrder ?\n                    wrapAndOrderEntities(entities, entity => entity.bounds()) :\n                    entities,\n            };\n        };\n\n        return constructDerivedState(nextProps, prevState, ['block'], [prepareBlockItems]);\n    }\n\n    constructor(props) {\n        super(props);\n        this._registerBlockHandlers = this._registerBlockHandlers.bind(this);\n        this._handleEntityMouseDown = this._handleEntityMouseDown.bind(this);\n        this._handleDoubleClick = this._handleDoubleClick.bind(this);\n        this._handleEntityMouseUp = this._handleEntityMouseUp.bind(this);\n        this._handleEntityMouseLeave = this._handleEntityMouseLeave.bind(this);\n        this._hoverEntity = this._hoverEntity.bind(this);\n        this._hoverCommentMarker = this._hoverCommentMarker.bind(this);\n        this._unhoverCommentMarker = this._unhoverCommentMarker.bind(this);\n\n        this.state = {\n            hoveredEntityKey: null,\n            hoveredCommentKey: null,\n            selectedEntityKey: null, // used in read-only mode\n        };\n    }\n\n    setPlaceholderRef = (element) => {\n        this.placeholder = element;\n    };\n\n    _exitThumbsView = (e) => {\n        this.props.toSingleView({pageIndex: this.props.index});\n        e.stopPropagation();\n    }\n\n    _registerBlockHandlers(e) {\n        if (e) {\n            setElementForBlock(this.props.block.getKey(), e);\n            allHandlers.addHandler(e, 'select_block', this.props.block.getKey());\n        } else if (this._blockRef) {\n            removeElementForBlock(this.props.block.getKey());\n            allHandlers.removeHandler(this._blockRef, 'select_block', this.props.block.getKey());\n        }\n        this._blockRef = e;\n    }\n\n    render() {\n        const {\n            editorState,\n            assets,\n            block,\n            groupsInEditMode,\n            scaleX,\n            scaleY,\n            index,\n            selectedEntities,\n            externalSelection,\n            transparentBackground,\n            preview,\n        } = this.props;\n        const groupKeyBeingEdited = groupsInEditMode && groupsInEditMode.first();\n        const blockGroupBeingEdited = groupKeyBeingEdited ? block.getEntity(groupKeyBeingEdited) : undefined;\n        const design = editorState.getDesign();\n        const pageSize = this.props.pageSize || editorState.getPageSize();\n        const blockStyle = {\n            width: pageSize.width * scaleX,\n            height: pageSize.height * scaleY,\n        };\n\n        if (currentBrowserIsIE) {\n            blockStyle.opacity = 0.999999;\n        }\n\n        const background = editorState.getBlockDesignProperty(block, 'background');\n        const displayFooter = !editorState.getBlockDesignProperty(block, 'hideFooter');\n        let backgroundImageContainer = null;\n        const header = editorState.getBlockDesignProperty(block, 'header');\n        const pageHeaderText = (header && header.get('text')) || `Page ${index + 1}`;\n\n        if (background) {\n            const backgroundImage = assets.getURL(background.get('assetId'));\n            if (backgroundImage && backgroundImage.length) {\n                backgroundImageContainer = (\n                    <CoverImage\n                        url={backgroundImage}\n                        opacity={background.get('opacity')}\n                        filters={background.get('filters')}\n                    />\n                );\n            }\n\n            blockStyle.background = background.get('color');\n        }\n\n        if (transparentBackground) {\n            blockStyle.background = 'transparent';\n        }\n\n        const handlerKey = selectedEntities.join('-');\n        const activeEntities = block.getEntities().filter(entity => {\n            if (entity.getCalloutKey()) {\n                return false;\n            }\n\n            const key = entity.getKey();\n            return (\n                selectedEntities.contains(key) ||\n                externalSelection.contains(key) ||\n                (preview && preview.getIn([key, 'highlight'], false)) ||\n                this.state.hoveredEntityKey === key\n            );\n        });\n        const blockHasSelectedEntities = !selectedEntities.isEmpty();\n        const multipleSelected = selectedEntities.size > 1;\n\n        const wrapperStyle = {\n            width: blockStyle.width,\n            height: blockStyle.height,\n        };\n        const BlockOverlay = this.props.blockOverlayComponent;\n        const MultiSelectionOverlay = this.props.multiSelectionOverlayComponent;\n        const CommentMarker = this.props.commentComponent;\n        const CommentingTooltip = this.props.commentingTooltipComponent;\n        const ConnectorEntityOverlays = this.props.connectorEntityOverlays;\n        const CalloutsComponent = this.props.calloutsComponent;\n\n        const flatEntitiesKeys = [];\n        if (blockGroupBeingEdited) {\n            const entitiesBeingEdited = block.getEntities().filter(e=>e.getGroupKey() === groupKeyBeingEdited);\n            const flatEntities = flattenEntities(editorState, entitiesBeingEdited);\n            flatEntitiesKeys.push(...flatEntities.keys());\n        }\n\n        const props = {\n            id: block.getKey(),\n            readOnly: this.props.readOnly,\n            role: 'region',\n            'aria-labelledby': `page-${this.props.block.getKey()}-header`,\n            onMouseDown: this._onBlockMouseDown,\n            // iOS < 13 have issues with touch events if element is not link or button.\n            // Setting empty click listener solves it and onMouseDown is called when ContentBlock is tapped.\n            onClick: () => {},\n        };\n\n        if (this.props.thumbsView) {\n            props.onClick = this._exitThumbsView;\n        }\n\n        return (\n            <ContentBlockContainer {...props}>\n                <Header\n                    id={`page-${this.props.block.getKey()}-header`}\n                >\n                    {pageHeaderText}\n                </Header>\n                <ContentWrapper\n                    style={wrapperStyle}\n                    ref={this.setPlaceholderRef}\n                >\n                    <ContentsBlock\n                        interactive={this.props.interactive}\n                        ref={this.props.registerDOMNode && this._registerBlockHandlers}\n                        style={blockStyle}\n                    >\n                        <Background>{backgroundImageContainer}</Background>\n                        <ContentBlockItems\n                            flatEntitiesKeys={flatEntitiesKeys}\n                            onMouseDown={this._handleEntityMouseDown}\n                            onDoubleClick={this._handleDoubleClick}\n                            onMouseUp={this._handleEntityMouseUp}\n                            onMouseLeave={this._handleEntityMouseLeave}\n                            onMouseHover={this._hoverEntity}\n                            items={this.state.orderedEntities}\n                            readOnly={this.props.readOnly}\n                            /**\n                             * *readOnly*, set on top of the hierarchy tree, essentially identifies non-editor render path,\n                             * however for groups (basic/readonly) and their children (also <ContentBlockItems/>) it could change\n                             * further down the line.\n                             *\n                             * That's why here we preserve the flag with explicit naming\n                             */\n                            inEditMode={!this.props.readOnly}\n                            block={this.props.block}\n                            design={design}\n                            assets={assets}\n                            scaleX={this.props.scaleX}\n                            scaleY={this.props.scaleY}\n                            commenting={this.props.commenting}\n                            commentingIsAvailable={this.props.commentingIsAvailable}\n                            onAddComment={this.props.onAddComment}\n                            groupsInEditMode={this.props.groupsInEditMode}\n                            blockGroupIsInEdit={!!blockGroupBeingEdited}\n                            renderItemContentsFn={this.props.renderItemContentsFn}\n                            registerDOMNode={this.props.registerDOMNode}\n                            pageSize={pageSize}\n                            preview={preview}\n                        />\n                    </ContentsBlock>\n                </ContentWrapper>\n                {BlockOverlay && displayFooter && !this.props.thumbsView && (\n                    <BlockOverlay\n                        width={wrapperStyle.width}\n                        height={wrapperStyle.height}\n                        scaleX={this.props.scaleX}\n                        scaleY={this.props.scaleY}\n                        pageNumber={this.props.index + 1}\n                        pageCount={this.props.pageCount}\n                        mouseEventsEnabled={!this.props.commenting}\n                    />\n                )}\n                {this.props.guideSettings && this.props.guideSettings.showGuides && (\n                    <Grid\n                        whitespacePercent={this.props.guideSettings.whitespacePercent}\n                        columnCount={this.props.guideSettings.columnCount}\n                        rowSpacing={this.props.guideSettings.rowSpacing}\n                        width={wrapperStyle.width}\n                        height={wrapperStyle.height}\n                        scaleX={this.props.scaleX}\n                        scaleY={this.props.scaleY}\n                    />\n                )}\n                {this.props.entityOverlayComponent && activeEntities.map(entity =>\n                    <EntitySelectionOverlay\n                        key={entity.getKey()}\n                        handlerKey={entity.getKey()}\n                        hovered={this.state.hoveredEntityKey === entity.getKey()}\n                        selected={selectedEntities.contains(entity.getKey())}\n                        multipleSelected={multipleSelected}\n                        multiSelectionActive={this.props.multiSelectionActive}\n                        highlighted={preview && preview.getIn([entity.getKey(), 'highlight'], false)}\n                        entity={entity}\n                        component={this.props.entityOverlayComponent}\n                        boundingBoxComponent={this.props.entityBoundingBoxComponent}\n                        scaleX={this.props.scaleX}\n                        scaleY={this.props.scaleY}\n                        commenting={this.props.commenting}\n                        block={this.props.block}\n                        pageSize={pageSize}\n                    />\n                )}\n                {MultiSelectionOverlay && this.props.multiSelectionActive && blockHasSelectedEntities &&\n                    <MultiSelectionOverlay\n                        scaleX={this.props.scaleX}\n                        scaleY={this.props.scaleY}\n                        handlerKey={handlerKey}\n                        commenting={this.props.commenting}\n                    />\n                }\n                {CalloutsComponent &&\n                    (this.props.readOnly\n                        ? <CalloutsComponent // Callouts.react.js\n                            design={design}\n                            assets={assets}\n                            block={block}\n                            scaleX={scaleX}\n                            scaleY={scaleY}\n                            pageSize={pageSize}\n                            hoveredEntity={this.state.hoveredEntityKey ? block.getEntity(this.state.hoveredEntityKey) : null}\n                            selectedEntities={selectedEntities} // InfographicPreview.react.js: CalloutsWrapper\n                            selectedEntity={this.state.selectedEntityKey ? block.getEntity(this.state.selectedEntityKey) : null}\n                            onMouseLeave={this._handleEntityMouseLeave}\n                            onMouseHover={this._hoverEntity}\n                            onCalloutClose={this._clearSelectedEntity}\n                          />\n                        : <CalloutsComponent // CalloutsEdit.react.js\n                            design={design}\n                            assets={assets}\n                            block={block}\n                            scaleX={scaleX}\n                            scaleY={scaleY}\n                            pageSize={pageSize}\n                            hoveredEntity={this.state.hoveredEntityKey ? block.getEntity(this.state.hoveredEntityKey) : null}\n                            selectedEntities={selectedEntities}\n                            onEntityMouseDown={this._handleEntityMouseDown}\n                            onEntityMouseUp={this._handleEntityMouseUp}\n                            onSelectionChange={this.props.onSelectionChange}\n                          />\n                    )\n                }\n                {CommentMarker && this.props.comments && this.props.comments.map(comment =>\n                    <CommentMarker\n                        key={comment.key}\n                        comment={comment}\n                        width={wrapperStyle.width}\n                        height={wrapperStyle.height}\n                        scaleX={this.props.scaleX}\n                        scaleY={this.props.scaleY}\n                        open={comment.key === this.props.openCommentKey}\n                        active={comment.key === this.props.activeCommentKey}\n                        onMarkerLeave={this._unhoverCommentMarker}\n                        onMarkerEnter={this._hoverCommentMarker}\n                    />\n                )}\n                {ConnectorEntityOverlays && !this.props.commenting && !this.props.multiSelectionActive &&\n                    <ConnectorEntityOverlays\n                        entity={activeEntities.filter(entity => selectedEntities.contains(entity.getKey())).first()}\n                        scaleX={this.props.scaleX}\n                        scaleY={this.props.scaleY}\n                        blockKey={block.getKey()}\n                    />\n                }\n                {this.props.guideSettings && !this.props.guideSettings.showGuides && this.props.guideSettings.snapObjects && (\n                    blockHasSelectedEntities && (\n                        <SmartGuidesOverlay\n                            scaleX={this.props.scaleX}\n                            scaleY={this.props.scaleY}\n                        />\n                    )\n                )}\n                {CommentingTooltip && this.props.commenting && !this.props.openCommentKey && !this.state.hoveredCommentKey &&\n                    <CommentingTooltip blockKey={this.props.block.getKey()}/>\n                }\n           </ContentBlockContainer>\n        );\n    }\n\n    _handleDoubleClick(entity, event) {\n        const {editorState, scaleX, scaleY, groupsInEditMode} = this.props;\n        if (this.props.readOnly || !entity.isGroup() || entity.getLocked()) {\n            return;\n        }\n        if (groupsInEditMode.size && !isPartOfGroup(editorState, groupsInEditMode.first(), entity.key)) {\n            return;\n        }\n        const entitiesInGroup = editorState.getEntities(entity.getChildrenKeys());\n        const mouseCoords = {x: event.clientX, y: event.clientY};\n        const blockRect = getElementForBlock(entitiesInGroup.first().getBlockKey()).getBoundingClientRect();\n        let selectedEntity = findOverlapingEntitiesInBlock(entitiesInGroup, blockRect, mouseCoords, scaleX, scaleY);\n        if (selectedEntity.size) {\n            selectedEntity = selectedEntity.last();\n            enterGroupEditMode(entity.getKey());\n            this.props.onSelectionChange(Selection.singleItem(selectedEntity.getKey()));\n        }\n    }\n\n    _handleEntityMouseDown(entity, event) {\n        const {onEntityMouseDown, readOnly} = this.props;\n        if (!readOnly && onEntityMouseDown) {\n            onEntityMouseDown(entity, event);\n        }\n        if (readOnly) {\n            event.stopPropagation();\n            if (this.state.selectedEntityKey !== entity.getKey()) {\n                this.setState({selectedEntityKey: entity.getKey()});\n            } else {\n                // deselect entity on repeated click\n                this.setState({selectedEntityKey: undefined});\n            }\n        }\n    }\n\n    _onBlockMouseDown = () => {\n        this._clearSelectedEntity();\n    };\n\n    _clearSelectedEntity = (key = null) => {\n        if (!this.props.readOnly) {\n            return;\n        }\n        const state = {};\n        if (!key || key === this.state.selectedEntityKey) {\n            state.selectedEntityKey = null;\n        }\n        if (!key || key === this.state.hoveredEntityKey) {\n            state.hoveredEntityKey = null;\n        }\n        this.setState(state);\n    };\n\n    _handleEntityMouseUp(entity, event) {\n        const {onEntityMouseUp, readOnly} = this.props;\n        if (!readOnly && onEntityMouseUp) {\n            onEntityMouseUp(entity, event);\n        }\n    }\n\n    _handleEntityMouseLeave() {\n        if (!this.state.hoveredEntityKey) {\n            return;\n        }\n        this.setState({\n            hoveredEntityKey: null,\n        });\n    }\n\n    _hoverEntity(entity) {\n        if (this.state.hoveredEntityKey === entity.getKey()) {\n            return;\n        }\n        this.setState({\n            hoveredEntityKey: entity.getKey(),\n        });\n    }\n\n    _hoverCommentMarker(key) {\n        if (this.state.hoveredCommentKey !== key) {\n            this.setState({\n                hoveredCommentKey: key,\n            });\n        }\n    }\n\n    _unhoverCommentMarker(key) {\n        if (this.state.hoveredCommentKey === key) {\n            this.setState({\n                hoveredCommentKey: null,\n            });\n        }\n    }\n}\n","!function(e,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define([],t):\"object\"==typeof exports?exports.bowser=t():e.bowser=t()}(this,(function(){return function(e){var t={};function r(i){if(t[i])return t[i].exports;var n=t[i]={i:i,l:!1,exports:{}};return e[i].call(n.exports,n,n.exports,r),n.l=!0,n.exports}return r.m=e,r.c=t,r.d=function(e,t,i){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:i})},r.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&\"object\"==typeof e&&e&&e.__esModule)return e;var i=Object.create(null);if(r.r(i),Object.defineProperty(i,\"default\",{enumerable:!0,value:e}),2&t&&\"string\"!=typeof e)for(var n in e)r.d(i,n,function(t){return e[t]}.bind(null,n));return i},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,\"a\",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p=\"\",r(r.s=90)}({17:function(e,t,r){\"use strict\";t.__esModule=!0,t.default=void 0;var i=r(18),n=function(){function e(){}return e.getFirstMatch=function(e,t){var r=t.match(e);return r&&r.length>0&&r[1]||\"\"},e.getSecondMatch=function(e,t){var r=t.match(e);return r&&r.length>1&&r[2]||\"\"},e.matchAndReturnConst=function(e,t,r){if(e.test(t))return r},e.getWindowsVersionName=function(e){switch(e){case\"NT\":return\"NT\";case\"XP\":return\"XP\";case\"NT 5.0\":return\"2000\";case\"NT 5.1\":return\"XP\";case\"NT 5.2\":return\"2003\";case\"NT 6.0\":return\"Vista\";case\"NT 6.1\":return\"7\";case\"NT 6.2\":return\"8\";case\"NT 6.3\":return\"8.1\";case\"NT 10.0\":return\"10\";default:return}},e.getMacOSVersionName=function(e){var t=e.split(\".\").splice(0,2).map((function(e){return parseInt(e,10)||0}));if(t.push(0),10===t[0])switch(t[1]){case 5:return\"Leopard\";case 6:return\"Snow Leopard\";case 7:return\"Lion\";case 8:return\"Mountain Lion\";case 9:return\"Mavericks\";case 10:return\"Yosemite\";case 11:return\"El Capitan\";case 12:return\"Sierra\";case 13:return\"High Sierra\";case 14:return\"Mojave\";case 15:return\"Catalina\";default:return}},e.getAndroidVersionName=function(e){var t=e.split(\".\").splice(0,2).map((function(e){return parseInt(e,10)||0}));if(t.push(0),!(1===t[0]&&t[1]<5))return 1===t[0]&&t[1]<6?\"Cupcake\":1===t[0]&&t[1]>=6?\"Donut\":2===t[0]&&t[1]<2?\"Eclair\":2===t[0]&&2===t[1]?\"Froyo\":2===t[0]&&t[1]>2?\"Gingerbread\":3===t[0]?\"Honeycomb\":4===t[0]&&t[1]<1?\"Ice Cream Sandwich\":4===t[0]&&t[1]<4?\"Jelly Bean\":4===t[0]&&t[1]>=4?\"KitKat\":5===t[0]?\"Lollipop\":6===t[0]?\"Marshmallow\":7===t[0]?\"Nougat\":8===t[0]?\"Oreo\":9===t[0]?\"Pie\":void 0},e.getVersionPrecision=function(e){return e.split(\".\").length},e.compareVersions=function(t,r,i){void 0===i&&(i=!1);var n=e.getVersionPrecision(t),s=e.getVersionPrecision(r),o=Math.max(n,s),a=0,u=e.map([t,r],(function(t){var r=o-e.getVersionPrecision(t),i=t+new Array(r+1).join(\".0\");return e.map(i.split(\".\"),(function(e){return new Array(20-e.length).join(\"0\")+e})).reverse()}));for(i&&(a=o-Math.min(n,s)),o-=1;o>=a;){if(u[0][o]>u[1][o])return 1;if(u[0][o]===u[1][o]){if(o===a)return 0;o-=1}else if(u[0][o]<u[1][o])return-1}},e.map=function(e,t){var r,i=[];if(Array.prototype.map)return Array.prototype.map.call(e,t);for(r=0;r<e.length;r+=1)i.push(t(e[r]));return i},e.getBrowserAlias=function(e){return i.BROWSER_ALIASES_MAP[e]},e.getBrowserTypeByAlias=function(e){return i.BROWSER_MAP[e]||\"\"},e}();t.default=n,e.exports=t.default},18:function(e,t,r){\"use strict\";t.__esModule=!0,t.ENGINE_MAP=t.OS_MAP=t.PLATFORMS_MAP=t.BROWSER_MAP=t.BROWSER_ALIASES_MAP=void 0;t.BROWSER_ALIASES_MAP={\"Amazon Silk\":\"amazon_silk\",\"Android Browser\":\"android\",Bada:\"bada\",BlackBerry:\"blackberry\",Chrome:\"chrome\",Chromium:\"chromium\",Epiphany:\"epiphany\",Firefox:\"firefox\",Focus:\"focus\",Generic:\"generic\",\"Google Search\":\"google_search\",Googlebot:\"googlebot\",\"Internet Explorer\":\"ie\",\"K-Meleon\":\"k_meleon\",Maxthon:\"maxthon\",\"Microsoft Edge\":\"edge\",\"MZ Browser\":\"mz\",\"NAVER Whale Browser\":\"naver\",Opera:\"opera\",\"Opera Coast\":\"opera_coast\",PhantomJS:\"phantomjs\",Puffin:\"puffin\",QupZilla:\"qupzilla\",QQ:\"qq\",QQLite:\"qqlite\",Safari:\"safari\",Sailfish:\"sailfish\",\"Samsung Internet for Android\":\"samsung_internet\",SeaMonkey:\"seamonkey\",Sleipnir:\"sleipnir\",Swing:\"swing\",Tizen:\"tizen\",\"UC Browser\":\"uc\",Vivaldi:\"vivaldi\",\"WebOS Browser\":\"webos\",WeChat:\"wechat\",\"Yandex Browser\":\"yandex\",Roku:\"roku\"};t.BROWSER_MAP={amazon_silk:\"Amazon Silk\",android:\"Android Browser\",bada:\"Bada\",blackberry:\"BlackBerry\",chrome:\"Chrome\",chromium:\"Chromium\",epiphany:\"Epiphany\",firefox:\"Firefox\",focus:\"Focus\",generic:\"Generic\",googlebot:\"Googlebot\",google_search:\"Google Search\",ie:\"Internet Explorer\",k_meleon:\"K-Meleon\",maxthon:\"Maxthon\",edge:\"Microsoft Edge\",mz:\"MZ Browser\",naver:\"NAVER Whale Browser\",opera:\"Opera\",opera_coast:\"Opera Coast\",phantomjs:\"PhantomJS\",puffin:\"Puffin\",qupzilla:\"QupZilla\",qq:\"QQ Browser\",qqlite:\"QQ Browser Lite\",safari:\"Safari\",sailfish:\"Sailfish\",samsung_internet:\"Samsung Internet for Android\",seamonkey:\"SeaMonkey\",sleipnir:\"Sleipnir\",swing:\"Swing\",tizen:\"Tizen\",uc:\"UC Browser\",vivaldi:\"Vivaldi\",webos:\"WebOS Browser\",wechat:\"WeChat\",yandex:\"Yandex Browser\"};t.PLATFORMS_MAP={tablet:\"tablet\",mobile:\"mobile\",desktop:\"desktop\",tv:\"tv\"};t.OS_MAP={WindowsPhone:\"Windows Phone\",Windows:\"Windows\",MacOS:\"macOS\",iOS:\"iOS\",Android:\"Android\",WebOS:\"WebOS\",BlackBerry:\"BlackBerry\",Bada:\"Bada\",Tizen:\"Tizen\",Linux:\"Linux\",ChromeOS:\"Chrome OS\",PlayStation4:\"PlayStation 4\",Roku:\"Roku\"};t.ENGINE_MAP={EdgeHTML:\"EdgeHTML\",Blink:\"Blink\",Trident:\"Trident\",Presto:\"Presto\",Gecko:\"Gecko\",WebKit:\"WebKit\"}},90:function(e,t,r){\"use strict\";t.__esModule=!0,t.default=void 0;var i,n=(i=r(91))&&i.__esModule?i:{default:i},s=r(18);function o(e,t){for(var r=0;r<t.length;r++){var i=t[r];i.enumerable=i.enumerable||!1,i.configurable=!0,\"value\"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}var a=function(){function e(){}var t,r,i;return e.getParser=function(e,t){if(void 0===t&&(t=!1),\"string\"!=typeof e)throw new Error(\"UserAgent should be a string\");return new n.default(e,t)},e.parse=function(e){return new n.default(e).getResult()},t=e,i=[{key:\"BROWSER_MAP\",get:function(){return s.BROWSER_MAP}},{key:\"ENGINE_MAP\",get:function(){return s.ENGINE_MAP}},{key:\"OS_MAP\",get:function(){return s.OS_MAP}},{key:\"PLATFORMS_MAP\",get:function(){return s.PLATFORMS_MAP}}],(r=null)&&o(t.prototype,r),i&&o(t,i),e}();t.default=a,e.exports=t.default},91:function(e,t,r){\"use strict\";t.__esModule=!0,t.default=void 0;var i=u(r(92)),n=u(r(93)),s=u(r(94)),o=u(r(95)),a=u(r(17));function u(e){return e&&e.__esModule?e:{default:e}}var d=function(){function e(e,t){if(void 0===t&&(t=!1),null==e||\"\"===e)throw new Error(\"UserAgent parameter can't be empty\");this._ua=e,this.parsedResult={},!0!==t&&this.parse()}var t=e.prototype;return t.getUA=function(){return this._ua},t.test=function(e){return e.test(this._ua)},t.parseBrowser=function(){var e=this;this.parsedResult.browser={};var t=i.default.find((function(t){if(\"function\"==typeof t.test)return t.test(e);if(t.test instanceof Array)return t.test.some((function(t){return e.test(t)}));throw new Error(\"Browser's test function is not valid\")}));return t&&(this.parsedResult.browser=t.describe(this.getUA())),this.parsedResult.browser},t.getBrowser=function(){return this.parsedResult.browser?this.parsedResult.browser:this.parseBrowser()},t.getBrowserName=function(e){return e?String(this.getBrowser().name).toLowerCase()||\"\":this.getBrowser().name||\"\"},t.getBrowserVersion=function(){return this.getBrowser().version},t.getOS=function(){return this.parsedResult.os?this.parsedResult.os:this.parseOS()},t.parseOS=function(){var e=this;this.parsedResult.os={};var t=n.default.find((function(t){if(\"function\"==typeof t.test)return t.test(e);if(t.test instanceof Array)return t.test.some((function(t){return e.test(t)}));throw new Error(\"Browser's test function is not valid\")}));return t&&(this.parsedResult.os=t.describe(this.getUA())),this.parsedResult.os},t.getOSName=function(e){var t=this.getOS().name;return e?String(t).toLowerCase()||\"\":t||\"\"},t.getOSVersion=function(){return this.getOS().version},t.getPlatform=function(){return this.parsedResult.platform?this.parsedResult.platform:this.parsePlatform()},t.getPlatformType=function(e){void 0===e&&(e=!1);var t=this.getPlatform().type;return e?String(t).toLowerCase()||\"\":t||\"\"},t.parsePlatform=function(){var e=this;this.parsedResult.platform={};var t=s.default.find((function(t){if(\"function\"==typeof t.test)return t.test(e);if(t.test instanceof Array)return t.test.some((function(t){return e.test(t)}));throw new Error(\"Browser's test function is not valid\")}));return t&&(this.parsedResult.platform=t.describe(this.getUA())),this.parsedResult.platform},t.getEngine=function(){return this.parsedResult.engine?this.parsedResult.engine:this.parseEngine()},t.getEngineName=function(e){return e?String(this.getEngine().name).toLowerCase()||\"\":this.getEngine().name||\"\"},t.parseEngine=function(){var e=this;this.parsedResult.engine={};var t=o.default.find((function(t){if(\"function\"==typeof t.test)return t.test(e);if(t.test instanceof Array)return t.test.some((function(t){return e.test(t)}));throw new Error(\"Browser's test function is not valid\")}));return t&&(this.parsedResult.engine=t.describe(this.getUA())),this.parsedResult.engine},t.parse=function(){return this.parseBrowser(),this.parseOS(),this.parsePlatform(),this.parseEngine(),this},t.getResult=function(){return Object.assign({},this.parsedResult)},t.satisfies=function(e){var t=this,r={},i=0,n={},s=0;if(Object.keys(e).forEach((function(t){var o=e[t];\"string\"==typeof o?(n[t]=o,s+=1):\"object\"==typeof o&&(r[t]=o,i+=1)})),i>0){var o=Object.keys(r),a=o.find((function(e){return t.isOS(e)}));if(a){var u=this.satisfies(r[a]);if(void 0!==u)return u}var d=o.find((function(e){return t.isPlatform(e)}));if(d){var c=this.satisfies(r[d]);if(void 0!==c)return c}}if(s>0){var f=Object.keys(n).find((function(e){return t.isBrowser(e,!0)}));if(void 0!==f)return this.compareVersion(n[f])}},t.isBrowser=function(e,t){void 0===t&&(t=!1);var r=this.getBrowserName().toLowerCase(),i=e.toLowerCase(),n=a.default.getBrowserTypeByAlias(i);return t&&n&&(i=n.toLowerCase()),i===r},t.compareVersion=function(e){var t=[0],r=e,i=!1,n=this.getBrowserVersion();if(\"string\"==typeof n)return\">\"===e[0]||\"<\"===e[0]?(r=e.substr(1),\"=\"===e[1]?(i=!0,r=e.substr(2)):t=[],\">\"===e[0]?t.push(1):t.push(-1)):\"=\"===e[0]?r=e.substr(1):\"~\"===e[0]&&(i=!0,r=e.substr(1)),t.indexOf(a.default.compareVersions(n,r,i))>-1},t.isOS=function(e){return this.getOSName(!0)===String(e).toLowerCase()},t.isPlatform=function(e){return this.getPlatformType(!0)===String(e).toLowerCase()},t.isEngine=function(e){return this.getEngineName(!0)===String(e).toLowerCase()},t.is=function(e){return this.isBrowser(e)||this.isOS(e)||this.isPlatform(e)},t.some=function(e){var t=this;return void 0===e&&(e=[]),e.some((function(e){return t.is(e)}))},e}();t.default=d,e.exports=t.default},92:function(e,t,r){\"use strict\";t.__esModule=!0,t.default=void 0;var i,n=(i=r(17))&&i.__esModule?i:{default:i};var s=/version\\/(\\d+(\\.?_?\\d+)+)/i,o=[{test:[/googlebot/i],describe:function(e){var t={name:\"Googlebot\"},r=n.default.getFirstMatch(/googlebot\\/(\\d+(\\.\\d+))/i,e)||n.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/opera/i],describe:function(e){var t={name:\"Opera\"},r=n.default.getFirstMatch(s,e)||n.default.getFirstMatch(/(?:opera)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/opr\\/|opios/i],describe:function(e){var t={name:\"Opera\"},r=n.default.getFirstMatch(/(?:opr|opios)[\\s/](\\S+)/i,e)||n.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/SamsungBrowser/i],describe:function(e){var t={name:\"Samsung Internet for Android\"},r=n.default.getFirstMatch(s,e)||n.default.getFirstMatch(/(?:SamsungBrowser)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/Whale/i],describe:function(e){var t={name:\"NAVER Whale Browser\"},r=n.default.getFirstMatch(s,e)||n.default.getFirstMatch(/(?:whale)[\\s/](\\d+(?:\\.\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/MZBrowser/i],describe:function(e){var t={name:\"MZ Browser\"},r=n.default.getFirstMatch(/(?:MZBrowser)[\\s/](\\d+(?:\\.\\d+)+)/i,e)||n.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/focus/i],describe:function(e){var t={name:\"Focus\"},r=n.default.getFirstMatch(/(?:focus)[\\s/](\\d+(?:\\.\\d+)+)/i,e)||n.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/swing/i],describe:function(e){var t={name:\"Swing\"},r=n.default.getFirstMatch(/(?:swing)[\\s/](\\d+(?:\\.\\d+)+)/i,e)||n.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/coast/i],describe:function(e){var t={name:\"Opera Coast\"},r=n.default.getFirstMatch(s,e)||n.default.getFirstMatch(/(?:coast)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/yabrowser/i],describe:function(e){var t={name:\"Yandex Browser\"},r=n.default.getFirstMatch(/(?:yabrowser)[\\s/](\\d+(\\.?_?\\d+)+)/i,e)||n.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/ucbrowser/i],describe:function(e){var t={name:\"UC Browser\"},r=n.default.getFirstMatch(s,e)||n.default.getFirstMatch(/(?:ucbrowser)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/Maxthon|mxios/i],describe:function(e){var t={name:\"Maxthon\"},r=n.default.getFirstMatch(s,e)||n.default.getFirstMatch(/(?:Maxthon|mxios)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/epiphany/i],describe:function(e){var t={name:\"Epiphany\"},r=n.default.getFirstMatch(s,e)||n.default.getFirstMatch(/(?:epiphany)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/puffin/i],describe:function(e){var t={name:\"Puffin\"},r=n.default.getFirstMatch(s,e)||n.default.getFirstMatch(/(?:puffin)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/sleipnir/i],describe:function(e){var t={name:\"Sleipnir\"},r=n.default.getFirstMatch(s,e)||n.default.getFirstMatch(/(?:sleipnir)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/k-meleon/i],describe:function(e){var t={name:\"K-Meleon\"},r=n.default.getFirstMatch(s,e)||n.default.getFirstMatch(/(?:k-meleon)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/micromessenger/i],describe:function(e){var t={name:\"WeChat\"},r=n.default.getFirstMatch(/(?:micromessenger)[\\s/](\\d+(\\.?_?\\d+)+)/i,e)||n.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/qqbrowser/i],describe:function(e){var t={name:/qqbrowserlite/i.test(e)?\"QQ Browser Lite\":\"QQ Browser\"},r=n.default.getFirstMatch(/(?:qqbrowserlite|qqbrowser)[/](\\d+(\\.?_?\\d+)+)/i,e)||n.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/msie|trident/i],describe:function(e){var t={name:\"Internet Explorer\"},r=n.default.getFirstMatch(/(?:msie |rv:)(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/\\sedg\\//i],describe:function(e){var t={name:\"Microsoft Edge\"},r=n.default.getFirstMatch(/\\sedg\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/edg([ea]|ios)/i],describe:function(e){var t={name:\"Microsoft Edge\"},r=n.default.getSecondMatch(/edg([ea]|ios)\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/vivaldi/i],describe:function(e){var t={name:\"Vivaldi\"},r=n.default.getFirstMatch(/vivaldi\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/seamonkey/i],describe:function(e){var t={name:\"SeaMonkey\"},r=n.default.getFirstMatch(/seamonkey\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/sailfish/i],describe:function(e){var t={name:\"Sailfish\"},r=n.default.getFirstMatch(/sailfish\\s?browser\\/(\\d+(\\.\\d+)?)/i,e);return r&&(t.version=r),t}},{test:[/silk/i],describe:function(e){var t={name:\"Amazon Silk\"},r=n.default.getFirstMatch(/silk\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/phantom/i],describe:function(e){var t={name:\"PhantomJS\"},r=n.default.getFirstMatch(/phantomjs\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/slimerjs/i],describe:function(e){var t={name:\"SlimerJS\"},r=n.default.getFirstMatch(/slimerjs\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/blackberry|\\bbb\\d+/i,/rim\\stablet/i],describe:function(e){var t={name:\"BlackBerry\"},r=n.default.getFirstMatch(s,e)||n.default.getFirstMatch(/blackberry[\\d]+\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/(web|hpw)[o0]s/i],describe:function(e){var t={name:\"WebOS Browser\"},r=n.default.getFirstMatch(s,e)||n.default.getFirstMatch(/w(?:eb)?[o0]sbrowser\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/bada/i],describe:function(e){var t={name:\"Bada\"},r=n.default.getFirstMatch(/dolfin\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/tizen/i],describe:function(e){var t={name:\"Tizen\"},r=n.default.getFirstMatch(/(?:tizen\\s?)?browser\\/(\\d+(\\.?_?\\d+)+)/i,e)||n.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/qupzilla/i],describe:function(e){var t={name:\"QupZilla\"},r=n.default.getFirstMatch(/(?:qupzilla)[\\s/](\\d+(\\.?_?\\d+)+)/i,e)||n.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/firefox|iceweasel|fxios/i],describe:function(e){var t={name:\"Firefox\"},r=n.default.getFirstMatch(/(?:firefox|iceweasel|fxios)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/chromium/i],describe:function(e){var t={name:\"Chromium\"},r=n.default.getFirstMatch(/(?:chromium)[\\s/](\\d+(\\.?_?\\d+)+)/i,e)||n.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/chrome|crios|crmo/i],describe:function(e){var t={name:\"Chrome\"},r=n.default.getFirstMatch(/(?:chrome|crios|crmo)\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/GSA/i],describe:function(e){var t={name:\"Google Search\"},r=n.default.getFirstMatch(/(?:GSA)\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:function(e){var t=!e.test(/like android/i),r=e.test(/android/i);return t&&r},describe:function(e){var t={name:\"Android Browser\"},r=n.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/playstation 4/i],describe:function(e){var t={name:\"PlayStation 4\"},r=n.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/safari|applewebkit/i],describe:function(e){var t={name:\"Safari\"},r=n.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/.*/i],describe:function(e){var t=-1!==e.search(\"\\\\(\")?/^(.*)\\/(.*)[ \\t]\\((.*)/:/^(.*)\\/(.*) /;return{name:n.default.getFirstMatch(t,e),version:n.default.getSecondMatch(t,e)}}}];t.default=o,e.exports=t.default},93:function(e,t,r){\"use strict\";t.__esModule=!0,t.default=void 0;var i,n=(i=r(17))&&i.__esModule?i:{default:i},s=r(18);var o=[{test:[/Roku\\/DVP/],describe:function(e){var t=n.default.getFirstMatch(/Roku\\/DVP-(\\d+\\.\\d+)/i,e);return{name:s.OS_MAP.Roku,version:t}}},{test:[/windows phone/i],describe:function(e){var t=n.default.getFirstMatch(/windows phone (?:os)?\\s?(\\d+(\\.\\d+)*)/i,e);return{name:s.OS_MAP.WindowsPhone,version:t}}},{test:[/windows/i],describe:function(e){var t=n.default.getFirstMatch(/Windows ((NT|XP)( \\d\\d?.\\d)?)/i,e),r=n.default.getWindowsVersionName(t);return{name:s.OS_MAP.Windows,version:t,versionName:r}}},{test:[/macintosh/i],describe:function(e){var t=n.default.getFirstMatch(/mac os x (\\d+(\\.?_?\\d+)+)/i,e).replace(/[_\\s]/g,\".\"),r=n.default.getMacOSVersionName(t),i={name:s.OS_MAP.MacOS,version:t};return r&&(i.versionName=r),i}},{test:[/(ipod|iphone|ipad)/i],describe:function(e){var t=n.default.getFirstMatch(/os (\\d+([_\\s]\\d+)*) like mac os x/i,e).replace(/[_\\s]/g,\".\");return{name:s.OS_MAP.iOS,version:t}}},{test:function(e){var t=!e.test(/like android/i),r=e.test(/android/i);return t&&r},describe:function(e){var t=n.default.getFirstMatch(/android[\\s/-](\\d+(\\.\\d+)*)/i,e),r=n.default.getAndroidVersionName(t),i={name:s.OS_MAP.Android,version:t};return r&&(i.versionName=r),i}},{test:[/(web|hpw)[o0]s/i],describe:function(e){var t=n.default.getFirstMatch(/(?:web|hpw)[o0]s\\/(\\d+(\\.\\d+)*)/i,e),r={name:s.OS_MAP.WebOS};return t&&t.length&&(r.version=t),r}},{test:[/blackberry|\\bbb\\d+/i,/rim\\stablet/i],describe:function(e){var t=n.default.getFirstMatch(/rim\\stablet\\sos\\s(\\d+(\\.\\d+)*)/i,e)||n.default.getFirstMatch(/blackberry\\d+\\/(\\d+([_\\s]\\d+)*)/i,e)||n.default.getFirstMatch(/\\bbb(\\d+)/i,e);return{name:s.OS_MAP.BlackBerry,version:t}}},{test:[/bada/i],describe:function(e){var t=n.default.getFirstMatch(/bada\\/(\\d+(\\.\\d+)*)/i,e);return{name:s.OS_MAP.Bada,version:t}}},{test:[/tizen/i],describe:function(e){var t=n.default.getFirstMatch(/tizen[/\\s](\\d+(\\.\\d+)*)/i,e);return{name:s.OS_MAP.Tizen,version:t}}},{test:[/linux/i],describe:function(){return{name:s.OS_MAP.Linux}}},{test:[/CrOS/],describe:function(){return{name:s.OS_MAP.ChromeOS}}},{test:[/PlayStation 4/],describe:function(e){var t=n.default.getFirstMatch(/PlayStation 4[/\\s](\\d+(\\.\\d+)*)/i,e);return{name:s.OS_MAP.PlayStation4,version:t}}}];t.default=o,e.exports=t.default},94:function(e,t,r){\"use strict\";t.__esModule=!0,t.default=void 0;var i,n=(i=r(17))&&i.__esModule?i:{default:i},s=r(18);var o=[{test:[/googlebot/i],describe:function(){return{type:\"bot\",vendor:\"Google\"}}},{test:[/huawei/i],describe:function(e){var t=n.default.getFirstMatch(/(can-l01)/i,e)&&\"Nova\",r={type:s.PLATFORMS_MAP.mobile,vendor:\"Huawei\"};return t&&(r.model=t),r}},{test:[/nexus\\s*(?:7|8|9|10).*/i],describe:function(){return{type:s.PLATFORMS_MAP.tablet,vendor:\"Nexus\"}}},{test:[/ipad/i],describe:function(){return{type:s.PLATFORMS_MAP.tablet,vendor:\"Apple\",model:\"iPad\"}}},{test:[/kftt build/i],describe:function(){return{type:s.PLATFORMS_MAP.tablet,vendor:\"Amazon\",model:\"Kindle Fire HD 7\"}}},{test:[/silk/i],describe:function(){return{type:s.PLATFORMS_MAP.tablet,vendor:\"Amazon\"}}},{test:[/tablet(?! pc)/i],describe:function(){return{type:s.PLATFORMS_MAP.tablet}}},{test:function(e){var t=e.test(/ipod|iphone/i),r=e.test(/like (ipod|iphone)/i);return t&&!r},describe:function(e){var t=n.default.getFirstMatch(/(ipod|iphone)/i,e);return{type:s.PLATFORMS_MAP.mobile,vendor:\"Apple\",model:t}}},{test:[/nexus\\s*[0-6].*/i,/galaxy nexus/i],describe:function(){return{type:s.PLATFORMS_MAP.mobile,vendor:\"Nexus\"}}},{test:[/[^-]mobi/i],describe:function(){return{type:s.PLATFORMS_MAP.mobile}}},{test:function(e){return\"blackberry\"===e.getBrowserName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.mobile,vendor:\"BlackBerry\"}}},{test:function(e){return\"bada\"===e.getBrowserName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.mobile}}},{test:function(e){return\"windows phone\"===e.getBrowserName()},describe:function(){return{type:s.PLATFORMS_MAP.mobile,vendor:\"Microsoft\"}}},{test:function(e){var t=Number(String(e.getOSVersion()).split(\".\")[0]);return\"android\"===e.getOSName(!0)&&t>=3},describe:function(){return{type:s.PLATFORMS_MAP.tablet}}},{test:function(e){return\"android\"===e.getOSName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.mobile}}},{test:function(e){return\"macos\"===e.getOSName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.desktop,vendor:\"Apple\"}}},{test:function(e){return\"windows\"===e.getOSName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.desktop}}},{test:function(e){return\"linux\"===e.getOSName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.desktop}}},{test:function(e){return\"playstation 4\"===e.getOSName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.tv}}},{test:function(e){return\"roku\"===e.getOSName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.tv}}}];t.default=o,e.exports=t.default},95:function(e,t,r){\"use strict\";t.__esModule=!0,t.default=void 0;var i,n=(i=r(17))&&i.__esModule?i:{default:i},s=r(18);var o=[{test:function(e){return\"microsoft edge\"===e.getBrowserName(!0)},describe:function(e){if(/\\sedg\\//i.test(e))return{name:s.ENGINE_MAP.Blink};var t=n.default.getFirstMatch(/edge\\/(\\d+(\\.?_?\\d+)+)/i,e);return{name:s.ENGINE_MAP.EdgeHTML,version:t}}},{test:[/trident/i],describe:function(e){var t={name:s.ENGINE_MAP.Trident},r=n.default.getFirstMatch(/trident\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:function(e){return e.test(/presto/i)},describe:function(e){var t={name:s.ENGINE_MAP.Presto},r=n.default.getFirstMatch(/presto\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:function(e){var t=e.test(/gecko/i),r=e.test(/like gecko/i);return t&&!r},describe:function(e){var t={name:s.ENGINE_MAP.Gecko},r=n.default.getFirstMatch(/gecko\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/(apple)?webkit\\/537\\.36/i],describe:function(){return{name:s.ENGINE_MAP.Blink}}},{test:[/(apple)?webkit/i],describe:function(e){var t={name:s.ENGINE_MAP.WebKit},r=n.default.getFirstMatch(/webkit\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}}];t.default=o,e.exports=t.default}})}));","\nvar content = require(\"!!../../../../../node_modules/css-loader/index.js??ref--5-1!./Callout.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../../node_modules/css-loader/index.js??ref--5-1!./Callout.css\", function() {\n\t\tvar newContent = require(\"!!../../../../../node_modules/css-loader/index.js??ref--5-1!./Callout.css\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"._31CEeBztZQ2ewKQUbZHB0d {\\n    margin-bottom: 100px;\\n    padding: 30px 0 0;\\n    text-align: left;\\n    overflow: hidden;\\n    background: #fff;\\n}\\n\\n._1C9-Y2rNDc4T14OMhvgaA5 {\\n    text-align: center;\\n    margin-bottom: 30px;\\n\\tfont-size: 14px;\\n\\tfont-weight: 500;\\n\\tline-height: 18px;\\n\\tcolor: #656565;\\n}\\n\\n._1RFXgNswZlmchjkdomqGLu {\\n    box-sizing: border-box;\\n    display: flex;\\n    flex-direction: row;\\n    flex-wrap: wrap;\\n    justify-content: center;\\n    height: 284px;\\n    padding: 0 20px;\\n}\\n\\n._2J0cNqNHCoF2lmWVVFo_Tk {\\n    display: inline-block;\\n    position: relative;\\n    margin: 10px 0 20px;\\n}\\n\\n.woStC3vzhFDu-dmvV3T_l {\\n    box-sizing: border-box;\\n    width: 220px;\\n    padding: 10px 15px 10px 35px;\\n    height: 40px;\\n    border-radius: 4px;\\n    border: 1px solid #ececf0;\\n    background: #fff;\\n    color: #434343;\\n    font-size: 13px;\\n    line-height: 20px;\\n    outline: none;\\n}\\n.woStC3vzhFDu-dmvV3T_l::placeholder {\\n    color: #9b9b9b;\\n}\\n.woStC3vzhFDu-dmvV3T_l::-moz-placeholder {\\n    color: #9b9b9b;\\n}\\n.woStC3vzhFDu-dmvV3T_l:ms-input-placeholder {\\n    color: #9b9b9b;\\n}\\n.woStC3vzhFDu-dmvV3T_l::-webkit-input-placeholder {\\n    color: #9b9b9b;\\n}\\n\\n._1Hx16S2WcSuRLZhnCCnbZ_ {\\n    position: absolute;\\n    top: 8px;\\n    left: 10px;\\n    color: #9b9b9b;\\n    font-size: 17px;\\n}\\n\\n@media screen and (max-width: 960px) {\\n    ._31CEeBztZQ2ewKQUbZHB0d {\\n        float: none;\\n        width: auto;\\n        margin-bottom: 0;\\n        background: #fff;\\n    }\\n\\n    ._1RFXgNswZlmchjkdomqGLu {\\n        height: auto;\\n    }\\n\\n    /* showing only even items of related infographics in mobile view because single odd item would be centered, not left-aligned */\\n    ._1RFXgNswZlmchjkdomqGLu :last-child {\\n        display: none;\\n    }\\n    ._1RFXgNswZlmchjkdomqGLu :last-child:nth-child(even) {\\n        display: inline-block;\\n    }\\n\\n    ._1C9-Y2rNDc4T14OMhvgaA5 {\\n        text-align: center;\\n    }\\n\\n    ._2J0cNqNHCoF2lmWVVFo_Tk {\\n        width: 100%;\\n    }\\n\\n    .woStC3vzhFDu-dmvV3T_l {\\n        width: 100%;\\n    }\\n}\\n\", \"\"]);\n\n// exports\nexports.locals = {\n\t\"container\": \"_31CEeBztZQ2ewKQUbZHB0d\",\n\t\"title\": \"_1C9-Y2rNDc4T14OMhvgaA5\",\n\t\"infographicsContainer\": \"_1RFXgNswZlmchjkdomqGLu\",\n\t\"searchForm\": \"_2J0cNqNHCoF2lmWVVFo_Tk\",\n\t\"searchInput\": \"woStC3vzhFDu-dmvV3T_l\",\n\t\"searchIcon\": \"_1Hx16S2WcSuRLZhnCCnbZ_\"\n};","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};\n\nexport default unitlessKeys;\n","import invariant from 'invariant';\n\nimport {SELECTOR_HORIZONTAL_PADDING} from '../../../TextEditor/constants/TextEditorConstants';\nimport {calculateClippedRectangle} from '../../util/clippedEntity';\nimport getEntityChangesBasedOnRect from '../../../../app/callouts/utils/getEntityChangesBasedOnRect';\nimport {movementForLockedAspectRatio} from '../handle/utils';\nimport checkCalloutDeltaLimits from './checkCalloutDeltaLimits';\nimport arrangeCalloutAfterTransformations from './arrangeCalloutAfterTransformations';\n\n\nconst SCALE_POSITION_SLOPE_MULTIPLIERS = {\n    top: 2,\n    right: 1 / 2,\n    bottom: 2,\n    left: 1 / 2,\n};\n\nconst SCALE_ORIGIN_SLOPE_MULTIPLIERS = {\n    nw: 1,\n    ne: -1,\n    se: 1,\n    sw: -1,\n};\n\nconst SCALE_POSITION_ORIGIN_SLOPE_DELTA_MULTIPLIERS = {\n    top: {\n        nw: {x: -2, y: -1},\n        ne: {x: 2, y: -1},\n    },\n    right: {\n        ne: {x: 1, y: -2},\n        se: {x: 1, y: 2},\n    },\n    bottom: {\n        sw: {x: -2, y: 1},\n        se: {x: 2, y: 1},\n    },\n    left: {\n        nw: {x: -1, y: -2},\n        sw: {x: -1, y: 2},\n    },\n};\n\nconst SCALE_POSITION_ORIGIN_MOVEMENT_DELTA_MULTIPLIERS = {\n    top: {\n        sw: {x: -2, y: 0},\n        se: {x: 2, y: 0},\n    },\n    right: {\n        nw: {x: 0, y: -2},\n        sw: {x: 0, y: 2},\n    },\n    bottom: {\n        nw: {x: -2, y: 0},\n        ne: {x: 2, y: 0},\n    },\n    left: {\n        ne: {x: 0, y: -2},\n        se: {x: 0, y: 2},\n    },\n};\n\nfunction scaleCalloutItems(editorState, entities, scale) {\n    const minAllowedScale = entities.reduce((scale, entity) => {\n        const minHeight = entity.minHeight || 1;\n        const minWidth = entity.minWidth || 1;\n        const entityScale = Math.max(minHeight / entity.height, minWidth / entity.width);\n        return Math.max(scale, entityScale);\n    }, 0);\n    scale = Math.max(scale, minAllowedScale);\n\n    entities.forEach(e => {\n        let put = {};\n        if (e.getType() === 'TEXT') {\n            put.width = e.getWidth() * scale;\n            put.height = e.getHeight() * scale;\n            const scaleWidth = e.getProperty('scaleWidth');\n            const scaleHeight = e.getProperty('scaleHeight');\n            put.props = {\n                scaleX: put.width / (scaleWidth + SELECTOR_HORIZONTAL_PADDING * 2),\n                scaleY: put.height / scaleHeight,\n                scaleHeight,\n                scaleWidth,\n            };\n        } else {\n            const rect = calculateClippedRectangle(e);\n            rect.width = rect.width * scale;\n            rect.height = rect.height * scale;\n            put = getEntityChangesBasedOnRect(e, rect);\n        }\n        editorState = editorState.setEntity(e.getKey(), put);\n    });\n    return editorState;\n}\n\nfunction getCalloutScaleDelta(width, height, position, origin, startPoint, endPoint) {\n    if (origin in SCALE_POSITION_ORIGIN_SLOPE_DELTA_MULTIPLIERS[position]) {\n        // if outer handlers used then scale based on slope of vector from parent-side middle point to handler's corner\n        const multipliers = SCALE_POSITION_ORIGIN_SLOPE_DELTA_MULTIPLIERS[position][origin];\n        const slope = height / width * SCALE_POSITION_SLOPE_MULTIPLIERS[position] * SCALE_ORIGIN_SLOPE_MULTIPLIERS[origin];\n        const movement = movementForLockedAspectRatio(startPoint, endPoint, slope);\n        const deltaX = movement.x * multipliers.x;\n        const deltaY = movement.y * multipliers.y;\n        return {x: deltaX, y: deltaY};\n    } else if (origin in SCALE_POSITION_ORIGIN_MOVEMENT_DELTA_MULTIPLIERS[position]) {\n        // for handlers at the side of parent entity use movement based scaling\n        const multipliers = SCALE_POSITION_ORIGIN_MOVEMENT_DELTA_MULTIPLIERS[position][origin];\n        let deltaX = (endPoint.x - startPoint.x) * multipliers.x;\n        let deltaY = (endPoint.y - startPoint.y) * multipliers.y;\n        if (deltaX === 0) {\n            deltaX = deltaY * width / height;\n        } else {\n            deltaY = deltaX * height / width;\n        }\n        return {x: deltaX, y: deltaY};\n    }\n    return {x: 0, y: 0};\n}\n\nexport default function scaleCallout(editorState, entityWithCallout, entities, {\n    activeHandle,\n    origin,\n    startPoint,\n    endPoint,\n    scaleX,\n    scaleY,\n}) {\n    invariant(entities.size > 0 && entities.size <= 2, `Callout has ${entities.size} entities`);\n    const callout = entityWithCallout.getCallout();\n    const position = callout.get('position');\n\n    let delta = getCalloutScaleDelta(\n        callout.get('width'),\n        callout.get('height'),\n        position,\n        origin,\n        startPoint,\n        endPoint\n    );\n    if (delta.x === 0 && delta.y === 0) {\n        return;\n    }\n    delta.x = delta.x / scaleX;\n    delta.y = delta.y / scaleY;\n    delta = checkCalloutDeltaLimits(callout, delta);\n\n    const paddings = activeHandle.get('calloutPaddings');\n    let scale;\n    if (Math.abs(delta.x) > Math.abs(delta.y)) {\n        const xPaddings = paddings.get('horizontal').reduce((acc, padding) => acc + padding, 0);\n        scale = (callout.get('width') - xPaddings + delta.x) / (callout.get('width') - xPaddings);\n    } else {\n        const yPaddings = paddings.get('vertical').reduce((acc, padding) => acc + padding, 0);\n        scale = (callout.get('height') - yPaddings + delta.y) / (callout.get('height') - yPaddings);\n    }\n\n    editorState = scaleCalloutItems(editorState, entities, scale);\n    return arrangeCalloutAfterTransformations(editorState, entityWithCallout, entities, paddings);\n}\n","'use strict';\nvar IS_PURE = require('../internals/is-pure');\nvar global = require('../internals/global');\nvar fails = require('../internals/fails');\n\n// Forced replacement object prototype accessors methods\nmodule.exports = IS_PURE || !fails(function () {\n  var key = Math.random();\n  // In FF throws only define methods\n  // eslint-disable-next-line no-undef, no-useless-call\n  __defineSetter__.call(null, key, function () { /* empty */ });\n  delete global[key];\n});\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc');  // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","import PropTypes from 'prop-types';\nimport cx from 'classnames';\nimport React, {PureComponent} from 'react';\n\nimport Link from './Text/Link.react';\nimport AtlasImage from './Media/AtlasImage.react';\nimport Icon from './Media/Icon.react';\nimport Video from './Media/Video.react';\nimport Iframe from './Media/Iframe.react';\nimport Url from './Media/Url.react';\nimport TooltipWrapper from '../../app/freelayout_editor/components/contents/TooltipWrapper.react';\n\nexport default class Media extends PureComponent {\n    static propTypes = {\n        image: PropTypes.string,\n        link: PropTypes.string,\n        tooltipText: PropTypes.string,\n        type: PropTypes.string,\n        description: PropTypes.string,\n        style: PropTypes.object,\n        shrink: PropTypes.bool,\n        url: PropTypes.string,\n        accessibility: PropTypes.object,\n        id: PropTypes.number,\n        onRendered: PropTypes.func,\n        width: PropTypes.number,\n        height: PropTypes.number,\n        title: PropTypes.string,\n    };\n\n    render() {\n        let Component;\n        let link = this.props.link;\n        const props = {\n            url: this.props.image,\n            width: this.props.width,\n            accessibility: this.props.accessibility,\n            id: this.props.id,\n        };\n        switch (this.props.type) {\n            case 'atlas_image':\n                Component = AtlasImage;\n                break;\n            case 'icon': {\n                props.svgObj = JSON.parse(this.props.description);\n                Component = Icon;\n                break;\n            }\n            case 'youtube':\n                Component = Video;\n                props.url = `//www.youtube.com/embed/${this.props.url}?wmode=transparent`;\n                link = null;\n                break;\n            case 'vimeo':\n                Component = Video;\n                props.url = `//player.vimeo.com/video/${this.props.url}`;\n                link = null;\n                break;\n            case 'slideshare':\n                Component = Video;\n                props.url = `//www.slideshare.net/slideshow/embed_code/${this.props.url}`;\n                link = null;\n                break;\n            case 'iframe':\n                Component = Iframe;\n                props.url = this.props.url;\n                props.height = this.props.height ? this.props.height.toString() : 'auto';\n                link = null;\n                break;\n            case 'url':\n                props.description = this.props.description;\n                props.title = this.props.title;\n                props.url = this.props.url;\n                props.target = props.url.startsWith('mailto:') ? '_self' : '_blank';\n                Component = Url;\n                link = null;\n                break;\n            default:\n                Component = AtlasImage;\n                break;\n        }\n        const innerComponent = <Component {...props}/>;\n        const mediaComponent = link ? (<Link id={this.props.id} link={this.props.link}>{innerComponent}</Link>) : innerComponent;\n\n        const style = {\n            pointerEvents: 'auto',\n            ...this.props.style,\n        };\n\n        const content = (\n            <div\n                className={cx('moveable_w', {shrink: this.props.shrink})}\n                data-object-type=\"media\"\n                style={style}\n                ref={this.props.onRendered}\n            >\n                {mediaComponent}\n            </div>\n        );\n\n        if (this.props.tooltipText) {\n            return <TooltipWrapper text={this.props.tooltipText} entityKey={this.props.id}>{content}</TooltipWrapper>;\n        }\n\n        return content;\n    }\n}\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $lastIndexOf = require('../internals/array-last-index-of');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\n\n// `%TypedArray%.prototype.lastIndexOf` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.lastindexof\n// eslint-disable-next-line no-unused-vars\nArrayBufferViewCore.exportProto('lastIndexOf', function lastIndexOf(searchElement /* , fromIndex */) {\n  return $lastIndexOf.apply(aTypedArray(this), arguments);\n});\n","import React, {PureComponent} from 'react';\nimport PropTypes from 'prop-types';\nimport Bowser from 'bowser';\nimport ImmutablePropTypes from 'react-immutable-proptypes';\nimport styled from 'styled-components';\n\nimport ImageMask from './ImageMask.react';\nimport {FiltersPropTypes} from '../../../../../components/filters/types';\nimport BaseImage from '../../../../../components/BaseImage/BaseImage.react';\n\nconst OuterContainer = styled.div`\n    position: absolute;\n    width: 100%;\n    height: 100%;\n\n    // Hiding overflow helps aligning cropped content with calculated entity bounds in editor\n    // (as bounds are calculated in pixels but clip path for cropping in percents).\n    //\n    // Also fixes issue with pointer-events outside clip-path in Safari. If image is cropped and has link\n    // or tooltip they can be activated with moving/clicking cursor in cropped (not visible) image parts.\n    //\n    // Cannot be set for masked images as calculated bounds of images with rotated mask does not match\n    // real visible content. In result some content could be cut off.\n    ${props => props.type === 'crop' && `\n        overflow: hidden;\n    `}\n`;\n\n// Safari just renders SVG differently than other browsers (worse)\n// and doesn't need the inner translation, also is very glitchy if rendered\n// as svg <image> instead of regular <img>. Chrome is also sometimes glitchy\n// with svg <image> and scales incorrectly. The only browsers that don't support\n// css clip-path and need an svg <image> are IE/Edge.\n//\n// Safari 'SVG as clip-path' behaviour has changed since v12 - no need to remove SVG translation.\n// But still Safari incorrectly allows pointer-events outside clipped area\n// (hover is triggered on cursor over all image not only clipped image).\n//\n// “The weak can never forgive. Forgiveness is the attribute of the strong.” – Mahatma Gandhi\nconst parser = Bowser.getParser(window.navigator.userAgent);\nconst isPreV12Safari = parser.satisfies({[Bowser.BROWSER_MAP.safari]: '<12'});\nconst isPreV12iOS = parser.satisfies({[Bowser.PLATFORMS_MAP.ios]: '<12'});\nconst requiresSVGTranslation = !isPreV12Safari && !isPreV12iOS;\n\nclass ClippedImage extends PureComponent {\n    static propTypes = {\n        id: PropTypes.string.isRequired,\n        clip: PropTypes.object.isRequired,\n        type: PropTypes.oneOf(['mask', 'crop']).isRequired,\n        src: PropTypes.string.isRequired,\n        width: PropTypes.number.isRequired,\n        height: PropTypes.number.isRequired,\n        editing: PropTypes.bool,\n        opacity: PropTypes.number,\n        onDoubleClick: PropTypes.func,\n        maskProps: PropTypes.object,\n        accessibility: ImmutablePropTypes.record,\n        filters: FiltersPropTypes.Filters,\n        callout: ImmutablePropTypes.map,\n    };\n\n    static defaultProps = {\n        editing: false,\n    };\n\n    render() {\n        const {id, clip, type, width, height, src, opacity, filters, editing, callout} = this.props;\n\n        const imageContainerStyle = {};\n        const imageStyle = {\n            pointerEvents: 'auto',\n            opacity,\n            width,\n            height,\n        };\n        if (callout && callout.get('behaviour') === 'click') {\n            imageStyle.cursor = 'pointer';\n        }\n        let imageMask;\n\n        if (type === 'mask') {\n            // Shift the image by the negative mask offset so that\n            // it is positioned correctly againsted the clipped area.\n            if (!editing) {\n                const left = clip.get('boundingBox').get('left') * width;\n                const top = clip.get('boundingBox').get('top') * height;\n\n                imageContainerStyle.left = -left;\n                imageContainerStyle.top = -top;\n            }\n\n            const suffix = editing ? 'preview' : 'clip';\n            imageStyle.clipPath = `url(#${id}-${suffix})`;\n            imageStyle.WebkitClipPath = `url(#${id}-${suffix})`;\n\n            imageMask = (\n                <ImageMask\n                    id={id}\n                    mask={clip}\n                    pathSuffix={suffix}\n                    applyTranslation={requiresSVGTranslation || editing}\n                    {...this.props.maskProps}\n                />\n            );\n        } else if (type === 'crop') {\n            const left = clip.get('left') * width / 100;\n            const top = clip.get('top') * height / 100;\n\n            imageContainerStyle.left = -left;\n            imageContainerStyle.top = -top;\n\n            imageStyle.clipPath = `inset(${clip.get('top')}% ${clip.get('right')}% ${clip.get('bottom')}% ${clip.get('left')}%)`;\n            imageStyle.WebkitClipPath = `inset(${clip.get('top')}% ${clip.get('right')}% ${clip.get('bottom')}% ${clip.get('left')}%)`;\n        } else {\n            return null;\n        }\n\n        return (\n            <OuterContainer type={type}>\n                {imageMask}\n                <BaseImage\n                    className=\"ItemContent-image\"\n                    src={src}\n                    width={width}\n                    height={height}\n                    style={{...imageContainerStyle, ...imageStyle}}\n                    onDoubleClick={this.props.onDoubleClick}\n                    alt={this.props.accessibility && this.props.accessibility.label || ''}\n                    filters={filters}\n                    clip={clip}\n                />\n            </OuterContainer>\n        );\n    }\n}\n\nexport default ClippedImage;\n","\nimport {ReduceStore} from 'flux/utils';\nimport Immutable from 'immutable';\n\nimport Dispatcher from '../../dispatcher';\n\nimport {\n    PROGRESS_DIALOG_CRASH_PROGRESS,\n    PROGRESS_DIALOG_FINISH_PROGRESS,\n    PROGRESS_DIALOG_RESET_PROGRESS,\n    PROGRESS_DIALOG_SET_PROGRESS,\n} from '../constants';\n\nclass ProgressDialogStore extends ReduceStore {\n    getInitialState() {\n        return Immutable.Map({\n            completed: false,\n            error: '',\n            value: 0,\n        });\n    }\n\n    reduce(state, action) {\n        switch (action.type) {\n            case PROGRESS_DIALOG_CRASH_PROGRESS: {\n                return state.set('error', action.message);\n            }\n            case PROGRESS_DIALOG_RESET_PROGRESS: {\n                return state.merge({\n                    completed: false,\n                    error: '',\n                    value: 0,\n                });\n            }\n            case PROGRESS_DIALOG_SET_PROGRESS: {\n                let value = state.get('value') + action.value;\n\n                if (value >= 99) {\n                    value = 99;\n                }\n\n                return state.set('value', value);\n            }\n            case PROGRESS_DIALOG_FINISH_PROGRESS: {\n                return state.set('completed', true);\n            }\n            default: {\n                return state;\n            }\n        }\n    }\n\n    get completed() {\n        return this.getState().get('completed');\n    }\n\n    get error() {\n        return this.getState().get('error');\n    }\n\n    get value() {\n        return this.getState().get('value');\n    }\n}\n\nconst store = new ProgressDialogStore(Dispatcher);\nexport default store;\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.github.io/ecma262/#sec-object.defineproperties\nmodule.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) {\n  anObject(O);\n  var keys = objectKeys(Properties);\n  var length = keys.length;\n  var index = 0;\n  var key;\n  while (length > index) definePropertyModule.f(O, key = keys[index++], Properties[key]);\n  return O;\n};\n","import {isFlex} from '../app/constants';\nimport loadThemeAssets, {loadFonts} from './loadThemeAssets';\n\nexport default async function loadAssetsForInfographic(model, {loadAllBrandAssets} = {loadAllBrandAssets: false}) {\n    const theme = model.get('theme');\n    const fonts = [];\n\n    const customFontFamilies = [];\n    const customFontURLs = [];\n\n    const branding = model.get('branding');\n\n    if (isFlex(model.get('type'))) {\n        const elements = model.get('elements');\n        const content = elements.content || {};\n        const projectFonts = content.fonts;\n        if (projectFonts) {\n            for (const {family, foundry, source, url} of projectFonts) {\n                if (source === 'branding') {\n                    customFontFamilies.push(family);\n                    customFontURLs.push(url);\n                    continue;\n                }\n                if (!foundry) {\n                    continue;\n                }\n                fonts.push({\n                    fontFamily: family,\n                    fontWeights: [400, 700],\n                });\n            }\n        }\n    }\n\n    if (branding) {\n        if (loadAllBrandAssets) {\n            for (const {id, url} of branding.webfonts) {\n                customFontFamilies.push(id);\n                customFontURLs.push(url);\n            }\n        } else {\n            const {families, urls} = collectUsedBrandFonts(model);\n            customFontFamilies.push(...families);\n            customFontURLs.push(...urls);\n        }\n    }\n\n    window.loadingLog && window.loadingLog.push('loadAssetsForInfographic');\n    await loadThemeAssets(theme, fonts, {\n        families: customFontFamilies,\n        urls: customFontURLs,\n    });\n}\n\nexport async function loadEditorFonts(editorState) {\n    const projectFonts = editorState.getFonts();\n    const fonts = [];\n\n    for (const {family, foundry} of projectFonts) {\n        if (!foundry) {\n            continue;\n        }\n        fonts.push({\n            fontFamily: family,\n            fontWeights: [400, 700],\n        });\n    }\n    return loadFonts({\n        google: fonts,\n    });\n}\n\nfunction makeJqElement(html) {\n    //Apparently jQuery factory method ignores the outer elements, thus wrapping them in another container element\n    return $('<div>' + html + '</div>');\n}\n\nfunction textItemsFromChartData(data) {\n    const textItems = [];\n    for (const sheet of data) {\n        for (const row of sheet) {\n            for (const cell of row) {\n                textItems.push(makeJqElement(cell));\n            }\n        }\n    }\n    return textItems;\n}\n\nfunction collectUsedBrandFonts(infographicModel) {\n    const allBrandingFonts = infographicModel.get('branding').webfonts;\n    const usedFontFamilies = new Set();\n    const usedFontURLs = new Set();\n\n    const addFontsFromChart = (chartData) => {\n        const fontsFromChart = collectFontsFromChartData(chartData, allBrandingFonts);\n        for (const {id, url} of fontsFromChart) {\n            usedFontFamilies.add(id);\n            usedFontURLs.add(url);\n        }\n    };\n\n    const content = infographicModel.get('elements');\n    const textItems = [];\n    if (Array.isArray(content)) {\n        content.forEach((el) => {\n            if (el.type === 'particle' && el.content_type === 'text/html') {\n                textItems.push(makeJqElement(el.text));\n            } else if (el.type === 'chart') {\n                if (el.chart_type_nr === 23) { //F&F\n                    textItems.push(...textItemsFromChartData(el.data));\n                }\n                addFontsFromChart(el);\n            }\n        });\n    } else {\n        const {entities} = content.content.content;\n        for (const key of Object.keys(entities)) {\n            const entity = entities[key];\n            if (entity.type !== 'CHART' || entity.props.chartData.chart_type_nr !== 23) {\n                continue;\n            }\n            textItems.push(...textItemsFromChartData(entity.props.chartData.data));\n            addFontsFromChart(entity.props.chartData);\n        }\n    }\n\n\n    for (const $text of textItems) {\n        for (const {id, url} of allBrandingFonts) {\n            //let's look for any <font> with `face` corresponding to our brand font family\n            //and any element that has style with brand font family id in it. We don't want to\n            //look more specifically, like `font-family: ${id}` or something like that because\n            //one can never know how browsers format contenteditable.\n            if ($text.find(`font[face=\"${id}\"], [style*=\"${id}\"]`).length) {\n                usedFontFamilies.add(id);\n                usedFontURLs.add(url);\n            }\n        }\n    }\n    return {\n        families: Array.from(usedFontFamilies),\n        urls: Array.from(usedFontURLs),\n    };\n}\n\nfunction collectFontsFromChartData(chartData, allBrandingFonts) {\n    const fonts = [];\n    const labelLegendFontFamily = chartData.custom?.labels?.legend?.['font-family'];\n    if (labelLegendFontFamily) {\n        const font = allBrandingFonts.find(({id}) => id === labelLegendFontFamily);\n        if (font) {\n            fonts.push(font);\n        }\n    }\n    return fonts;\n}\n","var $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar toObject = require('../internals/to-object');\nvar nativeGetPrototypeOf = require('../internals/object-get-prototype-of');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeGetPrototypeOf(1); });\n\n// `Object.getPrototypeOf` method\n// https://tc39.github.io/ecma262/#sec-object.getprototypeof\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !CORRECT_PROTOTYPE_GETTER }, {\n  getPrototypeOf: function getPrototypeOf(it) {\n    return nativeGetPrototypeOf(toObject(it));\n  }\n});\n\n","export default function _nonIterableSpread() {\n  throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}","exports = module.exports = require(\"../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"._33ae4RZ2QpTKJApEocawq9 {\\n    cursor: crosshair;\\n}\\n._33ae4RZ2QpTKJApEocawq9 * {\\n    pointer-events: none;\\n}\\n\\n._3BVI3eE6EozMfAOnol2Qs6 {\\n    width: 100%;\\n    height: 100%;\\n}\\n\\n._24YLdmzyGki1VEeY3thxsm:hover {\\n    opacity: 0.8;\\n}\\n\", \"\"]);\n\n// exports\nexports.locals = {\n\t\"commenting\": \"_33ae4RZ2QpTKJApEocawq9\",\n\t\"portalNode\": \"_3BVI3eE6EozMfAOnol2Qs6\",\n\t\"withInteractivityHoverEffect\": \"_24YLdmzyGki1VEeY3thxsm\"\n};","'use strict';\n\nvar isAbsoluteURL = require('../helpers/isAbsoluteURL');\nvar combineURLs = require('../helpers/combineURLs');\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n  if (baseURL && !isAbsoluteURL(requestedURL)) {\n    return combineURLs(baseURL, requestedURL);\n  }\n  return requestedURL;\n};\n","/* global document, $, PREZIGRAM */\nimport i18n from 'i18next';\n\nimport React, {Component} from 'react';\nimport PropTypes from 'prop-types';\nimport {connect} from 'react-redux';\nimport styled from 'styled-components';\n\nimport cx from 'classnames';\nimport screenfull from 'screenfull';\nimport {CSSTransition} from 'react-transition-group';\nimport bowser from 'bowser';\nimport _ from 'lodash';\n\nimport {getTooltip} from '../../../../../../client/components/charts/tooltip';\nimport InfographicEditor from '../../../../components/FreeLayoutEditor/base/InfographicEditor';\nimport fluxContainer from '../../../../fluxContainer';\nimport CurrentInfographicStore from '../../../main/stores/CurrentInfographicStore';\nimport EditorStateStore from '../../stores/EditorStateStore';\nimport renderItemContents from '../renderItemContents.react';\nimport {exitFullscreen} from './actions';\nimport ControlBox from './ControlBox.react';\nimport PresentationStore from './store';\nimport {onScroll} from '../../Scroll/actions';\nimport ScrollStore from '../../Scroll/store';\nimport {switchPage, setPresentationSize} from './actions';\nimport {showControls, hideControls, showScrollProgress, hideScrollProgress} from './actions';\nimport keyCode from '../../../../common/keys';\nimport ProgressBarNavigation from './ProgressBarNavigation.react';\nimport style from './Presentation.css';\nimport animations from './animations.css';\nimport WebViewStore from '../../../../web/WebView.store';\n\nimport InfographicSideButtons from '../../../../components/InfographicSideButtons';\nimport {\n    INFOGRAPHIC_SIDE_BUTTON_DOWNLOADS,\n    INFOGRAPHIC_SIDE_BUTTON_SHARE,\n    INFOGRAPHIC_SIDE_BUTTON_FULLSCREEN,\n} from '../../../../components/InfographicSideButtons/constants';\n\nimport chartDefaultsInit from '../../../../shared/chart_defaults';\nimport LazyView from '../../../../components/IntersectionObserver/LazyView.react';\nimport Animation, {ANIMATION_ON_VIEW, ANIMATION_ON_SCROLL} from '../../../../components/Animation/Animation.react';\nimport Observer, {notifiyAboutCustomScroll} from '../../../../components/IntersectionObserver/Observer';\nimport {MaybeRotate} from '../MaybeRotate.react';\n\nimport Footer from '../../../../components/InfographicFooter/FlexFooter.react';\nimport {PresentationWatermark} from '../../../../prezigram/watermark/Watermark';\n\nimport dispatchEvent from '../../../../utils/dispatchEvent';\nimport {createMockObserver} from '../../../../components/IntersectionObserver/IntersectionObserverListener';\nimport PrezigramTheme from '../../../../contexts/theme/prezigram';\nimport Callouts from '../../../callouts/components/Callouts.react';\n\nimport {navigateToPageLinkHandler} from '../../Scroll/events';\nimport {\n    getAnimationIdx,\n    getAnimationSequenceLength,\n    getAnimationEntityKey,\n} from '../../../../components/FreeLayoutEditor/modifier/blockAnimationSequence';\nimport PresentationPage from './PresentationPage.react';\nimport {ScrollPage} from './ScrollPage.react';\nimport {PointerEventsCatcher} from './PointerEventsCatcher.react';\nimport Dispatcher from '../../../dispatcher';\nimport DownloadConstants from '../../../download/constants/DownloadConstants';\nimport ChartTabs from '../../../download/stores/ChartTabs';\n// Browser detection\nconst scrollAnimationsNotSupported = bowser.msie || bowser.msedge;\n\nconst SlidesContainer = styled.div`\n    user-select: none;\n    -moz-user-select: none;\n    -webkit-user-select: none;\n    -ms-user-select: none;\n    position: relative;\n    overflow: hidden;\n    margin: 0 auto;\n    ${props => props.isFullscreen && `\n        position: absolute;\n        top: 50%;\n        transform: translateY(-50%);\n        background: #434343;\n    `}\n    ${props => props.isFullscreen && props.theme.id === PrezigramTheme.id && `\n        background: #e7e9ec;\n    `}\n`;\n\nconst ScrollContainer = styled.div`\n    ${props => props.isFullscreen ? `\n        position: fixed;\n        top: 0;\n        left: 0;\n        right: 0;\n        bottom: 0;\n        overflow-y: auto;\n        overflow-x: hidden;\n        background: #434343;\n    ` : `\n        position: relative;\n    `}\n    ${props => props.isFullscreen && props.theme.id === PrezigramTheme.id && `\n        background: #e7e9ec;\n    `}\n`;\n\nconst ChartDefaults = chartDefaultsInit(i18n);\n\nconst CONTROL_BUTTON_SPACE = 72;\nconst HIDE_CONTROLS_AFTER_MSEC = 3000;\nconst SCROLL_PROGRESS_HIDE_AFTER_MSEC = 500;\nconst TRIGGER_TRANSITION_NOTIFICATION_AFTER_MSEC = 300;\n\nconst animationTypeMap = {\n    'no-animation': animations.animationNoAnimation,\n    'vertical-slide': animations.animationVerticalSlide,\n    slide: animations.animationSlide,\n    'scale-slide': animations.animationScaleSlide,\n    'scale-fade': animations.animationFade,\n    rotate: animations.animationRotate,\n    none: '',\n};\n\nconst fadeTransition = {\n    enter: style.animationEnter,\n    enterActive: style.animationEnterActive,\n    exit: style.animationExit,\n    exitActive: style.animationExitActive,\n};\n\nconst inputAreas = ['INPUT', 'SELECT', 'TEXTAREA'];\n\nfunction isMobileView(props) {\n    if (props.viewingBehavior === 'auto') {\n        //for expected prezi publish behavior we use embed mode when in web view\n        //for that reason there is exception here to allow mobile view mode in embed because in prezigram\n        //embed is actually web view as well...\n        //this to be honest is not best approach but for first launch without breaking infogram side we\n        //will stick to that, afterwards should be investigated if we can align web view and embed modes\n        //between infogram and prezigram\n\n        return (PREZIGRAM || !props.embed) && window.matchMedia('(max-width: 960px)').matches || props.presentationDevice == 'mobile' || props.presentationDevice && window.matchMedia('(max-width: 1280px)').matches;\n    }\n\n    return props.viewingBehavior === 'mobile';\n}\n\nconst Fade = (props) => (\n    <CSSTransition classNames={fadeTransition}\n                   timeout={{enter: 500, exit: 300}}\n                   in={props.active}\n                   unmountOnExit\n    >{props.children}</CSSTransition>\n);\nFade.propTypes = {\n    active: PropTypes.bool.isRequired,\n    children: PropTypes.node.isRequired,\n};\n@connect(state => ({\n    footerSettings: state.get('footerSettings'),\n}))\n@fluxContainer({withProps: true})\nexport default class Presentation extends Component {\n    static propTypes = {\n        embed: PropTypes.bool,\n        viewingBehavior: PropTypes.oneOf(['mobile', 'desktop', 'auto']),\n        container: PropTypes.object,\n        footerSettings: PropTypes.shape({\n            backgroundColor: PropTypes.string,\n            backgroundOpacity: PropTypes.number.isRequired,\n            bold: PropTypes.bool,\n            footerLayout: PropTypes.string,\n            footnoteType: PropTypes.string,\n            footnoteText: PropTypes.string,\n            footnoteStyle: PropTypes.shape({\n                bold: PropTypes.bool,\n                italic: PropTypes.bool,\n                fontSize: PropTypes.number,\n                color: PropTypes.string,\n            }),\n            italic: PropTypes.bool,\n            logoType: PropTypes.string,\n            logoImage: PropTypes.string,\n            customLink: PropTypes.string,\n            customLinkOption: PropTypes.string,\n        }),\n        forcedLiveDataInit: PropTypes.bool,\n        maxHeight: PropTypes.number,\n        maxWidth: PropTypes.number,\n        showBorder: PropTypes.bool,\n        width: PropTypes.number,\n        allowFullscreen: PropTypes.bool,\n        showChartsOnScroll: PropTypes.bool,\n        showSideBar: PropTypes.bool,\n        allowToShare: PropTypes.bool,\n        publicDownloads: PropTypes.bool,\n        presentationDevice: PropTypes.string,\n        registerDOMNode: PropTypes.bool,\n    };\n\n    static defaultProps = {\n        allowFullscreen: true,\n        showSideBar: true,\n        allowToShare: true,\n        presentationDevice: null,\n        viewingBehavior: 'auto',\n    };\n\n    static getStores() {\n        return [\n            CurrentInfographicStore,\n            EditorStateStore,\n            PresentationStore,\n            WebViewStore,\n            ScrollStore,\n        ];\n    }\n\n    state = {\n        lastTriggeredAnimationIdx: undefined,\n        completedAnimations: [],\n    };\n\n    mockObservers = {};\n\n    static calculateState(prevState, props) {\n        const editorState = EditorStateStore.editorState;\n        const pageCount = editorState.getCurrentContent().getBlocks().size;\n        const displayPagingControls = pageCount !== 1;\n        const buttonSpace = (PresentationStore.isFullscreen || !displayPagingControls ? 0 : CONTROL_BUTTON_SPACE);\n\n        const transition = pageCount > 1 ? EditorStateStore.presentationTransition : 'none';\n        const {isFullscreen, displayControls} = PresentationStore;\n\n        const isMobileWebView = isMobileView(props);\n\n        let width;\n        let height;\n\n        if (props.container && !isFullscreen) {\n            const bounds = props.container.getBoundingClientRect();\n            width = bounds.width;\n            height = Math.max(bounds.height - buttonSpace, 100);\n        } else {\n            width = PresentationStore.screenWidth;\n            height = Math.max(PresentationStore.screenHeight - buttonSpace, 100);\n        }\n\n        const iOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream;\n        if (iOS && !props.embed) {\n            const mql = window.matchMedia('(orientation: portrait)');\n            if (!mql.matches) {\n                const w = width;\n                width = height;\n                height = w;\n            }\n        }\n\n        const pageSize = editorState.getPageSize();\n        const scaleW = width / pageSize.width;\n        const scaleH = height / pageSize.height;\n        let scale = Math.min(scaleH, scaleW);\n        if (isMobileWebView) {\n            scale = scaleW;\n        }\n\n        if ((props.embed || transition === 'none') && !isFullscreen && !props.presentationDevice) {\n            // Embeds always fit just width because the async iframe\n            // will resize height itself later using the messages below.\n            scale = scaleW;\n        }\n\n        if (!props.embed && scale > 1 && !isFullscreen && !props.width && !props.presentationDevice) {\n            scale = 1;\n        }\n\n        // scaling for landscape reports in fullscreen:\n        if (transition === 'none' && isFullscreen && pageSize.width < pageSize.height && width > 1000) {\n            if (pageSize.width < 1000) {\n                // upscale to 1000px width\n                scale = 1000 / pageSize.width;\n            }\n            if (pageSize.width >= 1000) {\n                // scale to 100% width\n                scale = width / pageSize.width;\n            }\n        }\n\n        const animation = animationTypeMap[transition];\n\n        if (prevState && prevState.activePage !== PresentationStore.activePage) {\n            setTimeout(() => {\n                notifiyAboutCustomScroll();\n            }, transition === 'none' ? 0 : TRIGGER_TRANSITION_NOTIFICATION_AFTER_MSEC);\n        }\n\n        let mobWidth = false;\n        if (props.presentationDevice === 'mobile') {\n            scale = props.maxWidth / pageSize.width;\n            mobWidth = props.maxWidth;\n        } else if (props.presentationDevice === 'desktop') {\n            scale = props.maxWidth / pageSize.width;\n            if (scale > 1) {\n                scale = 1;\n            }\n            width = props.maxWidth;\n        }\n\n        height = Math.round(pageSize.height * scale + buttonSpace);\n\n        return {\n            activePage: PresentationStore.activePage,\n            animation,\n            buttonSpace,\n            displayControls,\n            displayPagingControls,\n            displayScrollProgress: PresentationStore.displayScrollProgress,\n            editorState,\n            height,\n            isFullscreen,\n            isMobileWebView,\n            pageCount,\n            pageSize,\n            scale,\n            transition,\n            width,\n            mobWidth,\n            allowFullscreen: props.allowFullscreen,\n            allowToShare: props.allowToShare,\n            firstVisiblePage: ScrollStore.firstVisiblePageIndex + 1,\n            lastVisiblePage: ScrollStore.lastVisiblePageIndex + 1,\n            transparent: CurrentInfographicStore.transparent,\n            showInteractivityHint: EditorStateStore.interactivityHint,\n            publicDownloads: props.publicDownloads,\n            presentationDevice: props.presentationDevice,\n        };\n    }\n\n    constructor(props) {\n        super(props);\n        this._onKeyDown = this._onKeyDown.bind(this);\n        this._onMouseMove = _.throttle(this._onMouseMove.bind(this), 300);\n        this._onScroll = _.throttle(this._onScroll.bind(this), 100);\n        this._fullScreenScroll = this._fullScreenScroll.bind(this);\n        this._onFullScreenChange = this._onFullScreenChange.bind(this);\n        this._updateDimensions = this._updateDimensions.bind(this);\n        this._controlsTimer = null;\n\n        this._rootElement = React.createRef();\n\n        this.observer = new Observer();\n    }\n\n    _updateDimensions() {\n        const width = this.props.maxWidth || this._rootElement.current.parentElement.clientWidth;\n        const height = this.props.maxHeight || this._rootElement.current.parentElement.clientHeight;\n        setPresentationSize(width, height);\n    }\n\n    componentDidMount() {\n        window.parent.postMessage('frameRender', '*');\n        dispatchEvent(window, 'frameRender');\n\n        $('#duckbase_container').hide();\n        if (screenfull.enabled) {\n            document.addEventListener(screenfull.raw.fullscreenchange, this._onFullScreenChange);\n        }\n        if (!this.props.embed) {\n            document.addEventListener('scroll', this._onScroll);\n        }\n        document.addEventListener('keydown', this._onKeyDown, false);\n        document.addEventListener('mousemove', this._onMouseMove, false);\n        document.addEventListener('click', navigateToPageLinkHandler, false);\n        window.addEventListener('resize', this._updateDimensions);\n        window.addEventListener('orientationchange', this._updateDimensions);\n        requestAnimationFrame(() => this._updateDimensions());\n        clearTimeout(this._controlsTimer);\n        this._controlsTimer = setTimeout(hideControls, HIDE_CONTROLS_AFTER_MSEC);\n\n        this.updateObserverRoot();\n    }\n\n    updateObserverRoot() {\n        this.observer.setRoot(this.state.transition === 'none' ? this._rootElement.current.firstElementChild : this._rootElement.current);\n    }\n\n    componentWillUnmount() {\n        $('#duckbase_container').show();\n        document.removeEventListener('click', navigateToPageLinkHandler, false);\n        if (screenfull.enabled) {\n            document.removeEventListener(screenfull.raw.fullscreenchange, this._onFullScreenChange);\n        }\n        if (!this.props.embed) {\n            document.removeEventListener('scroll', this._onScroll);\n        }\n        document.removeEventListener('keydown', this._onKeyDown);\n        document.removeEventListener('mousemove', this._onMouseMove);\n        window.removeEventListener('resize', this._updateDimensions);\n        window.removeEventListener('orientationchange', this._updateDimensions);\n        this.observer.destroy();\n    }\n\n    _onKeyDown(e) {\n        if (this.state.isFullscreen && inputAreas.indexOf(e.target.nodeName) === -1) {\n            switch (e.keyCode) {\n                case keyCode.LEFT_ARROW:\n                case keyCode.UP_ARROW:\n                case keyCode.KEY_P:\n                case keyCode.PAGE_UP:\n                case keyCode.BACKSPACE:\n                    getTooltip().hide();\n                    e.stopPropagation();\n                    e.preventDefault();\n                    this._stepBack(true);\n                    break;\n                case keyCode.RIGHT_ARROW:\n                case keyCode.DOWN_ARROW:\n                case keyCode.KEY_N:\n                case keyCode.PAGE_DOWN:\n                case keyCode.SPACE:\n                    getTooltip().hide();\n                    e.stopPropagation();\n                    e.preventDefault();\n                    this._stepForward(true);\n                    break;\n            }\n        }\n    }\n\n    _onMouseMove(e) {\n        showControls();\n        clearTimeout(this._controlsTimer);\n        if (e.target.getAttribute && e.target.getAttribute('data-do-not-hide')) return;\n        this._controlsTimer = setTimeout(hideControls, HIDE_CONTROLS_AFTER_MSEC);\n    }\n\n    _getActivePageBlock = () => {\n        return this.state.editorState\n            .getCurrentContent()\n            .getBlocks()\n            .get(this.state.activePage);\n    }\n\n    _getNextAnimationIdx = () => {\n        const activePage = this._getActivePageBlock();\n        const lastIdx = this.state.lastTriggeredAnimationIdx;\n        return Math.min(\n            lastIdx === undefined\n                ? 0\n                : lastIdx + 1,\n            getAnimationSequenceLength(activePage),\n        );\n    }\n\n    _getPendingAnimationsCount = () => {\n        return getAnimationSequenceLength(this._getActivePageBlock())\n            - this._getNextAnimationIdx();\n    }\n\n    _triggerNextAnimation = () => {\n        this.setState({\n            lastTriggeredAnimationIdx: this._getNextAnimationIdx(),\n        });\n    }\n\n    _returnToPreviousAnimation = () => {\n        const {lastTriggeredAnimationIdx, completedAnimations} = this.state;\n        this.setState({\n            completedAnimations: _.without(\n                completedAnimations,\n                getAnimationEntityKey(this._getActivePageBlock(), lastTriggeredAnimationIdx),\n            ),\n            lastTriggeredAnimationIdx: Math.max(lastTriggeredAnimationIdx - 1, -1),\n        });\n    }\n\n    _onCompleteAnimation = (id) => {\n        const {completedAnimations} = this.state;\n        if (completedAnimations.includes(id)){\n            return;\n        }\n        this.setState({\n            completedAnimations: [\n                ...completedAnimations,\n                id,\n            ],\n        });\n    }\n\n    _getAllAnimationsOnPage = (pageIdx) => {\n        return this.state\n            .editorState\n            .getCurrentContent()\n            .getBlocks()\n            .get(pageIdx)\n            .getEntities()\n            .filter(entity => entity.getAnimation())\n            .map(entity => entity.getKey());\n    }\n\n    /**\n     * If there are click triggered animations on current page,\n     * \"next\" does not immediately turn a page,\n     * instead, all pending animations are triggered on every advance\n     */\n    _stepForward = (turnPageIfNoAnimationsPending = true) => {\n        if (this._getPendingAnimationsCount()) {\n            this._triggerNextAnimation();\n        } else if (turnPageIfNoAnimationsPending) {\n            this._stepToNextPage();\n        }\n    }\n\n    /**\n     * Similarily to \"_stepForward\", does not immediately change page,\n     * but backtracks animation by animation until eventually changes\n     * the page, provided the corresponding flag is set appropriately\n     */\n\n    _stepBack = (turnPageIfNoAnimationsPending = true) => {\n        if (this.state.lastTriggeredAnimationIdx >= 0) {\n            this._returnToPreviousAnimation();\n        } else if (turnPageIfNoAnimationsPending) {\n            this._stepToPrevPage();\n        }\n    }\n\n    /**\n     * Explicit navigation to certain page,\n     * resets all animations on page\n     */\n    _navigateToPage = (idx) => {\n        switchPage(idx);\n\n        const allAnimationsOnPage = this._getAllAnimationsOnPage(idx);\n\n        const completedAnimations = this.state.completedAnimations.filter(\n            key => !allAnimationsOnPage.includes(key)\n        );\n\n        this.setState({\n            completedAnimations,\n            lastTriggeredAnimationIdx: undefined,\n        });\n    }\n\n    _navigateToNextPage = () => this._navigateToPage(this.state.activePage + 1);\n\n    _navigateToPrevPage = () => this._navigateToPage(this.state.activePage - 1);\n\n    /**\n     * Step-by-step navigation between pages,\n     * animation state and playback position is preserved\n     */\n    _stepToNextPage = () => {\n        const nextPageIndex = this.state.activePage + 1;\n        if (nextPageIndex < this.state.pageCount) {\n            switchPage(nextPageIndex);\n            this.setState({lastTriggeredAnimationIdx: undefined});\n        }\n    }\n\n    _stepToPrevPage = () => {\n        const prevPageIndex = this.state.activePage - 1;\n        if (prevPageIndex >= 0) {\n            const prevPageBlock = this.state.editorState\n                .getCurrentContent()\n                .getBlocks()\n                .get(prevPageIndex);\n            const allAnimationsOnPage = this._getAllAnimationsOnPage(prevPageIndex);\n\n            switchPage(prevPageIndex);\n\n            this.setState({\n                // Complete all animations in the previous page\n                // so that - even if you very quickly clicked through all of them -\n                // they would be registered as finished anyways\n                completedAnimations: this.state.completedAnimations\n                    .filter(key => !allAnimationsOnPage.includes(key))\n                    .concat(allAnimationsOnPage.toArray()),\n                // wind the playback \"head\" to the last animation index\n                lastTriggeredAnimationIdx: getAnimationSequenceLength(prevPageBlock) - 1,\n            });\n        }\n    }\n\n    _onInteract = () => this._stepForward(false)\n\n    _isSlidePresentation = () => {\n        const {animation, isMobileWebView, isFullscreen} = this.state;\n        return animation && (!isMobileWebView || isFullscreen);\n    }\n\n    _onScroll(e) {\n        const {isMobileWebView} = this.state;\n        if (this.state.transition === 'none' || isMobileWebView) {\n            onScroll(e);\n        }\n\n        showScrollProgress();\n        clearTimeout(this._scrollProgressTimer);\n        this._scrollProgressTimer = setTimeout(hideScrollProgress, SCROLL_PROGRESS_HIDE_AFTER_MSEC);\n    }\n\n    _fullScreenScroll() {\n        notifiyAboutCustomScroll();\n        getTooltip().hide();\n    }\n\n    _onFullScreenChange() {\n        if (!screenfull.isFullscreen) {\n            this._rootElement.current.removeEventListener('scroll', this._fullScreenScroll);\n            exitFullscreen();\n        } else {\n            this._rootElement.current.addEventListener('scroll', this._fullScreenScroll);\n        }\n\n        if (this._rootElement.current) {\n            // If exiting fullscreen dismounts Presentation component - there is no need to update.\n            this._updateDimensions();\n        }\n    }\n\n    //when transitions enabled for slides you can focus element on inactive tab\n    //sadly not good mechanism to hide those elements from tab order\n    //here we fix part of that behavior, browsers scrolls to hidden outside of screen content, we reset it\n    resetScroll = (e) => {\n        if (e.currentTarget && e.currentTarget.scrollTop !== 0) {\n            e.currentTarget.scrollTo(0, 0);\n            setTimeout(this.resetScroll, 100, e);\n        }\n    };\n\n    render() {\n        const {\n            width, mobWidth, height, scale,\n            editorState, isFullscreen,\n            displayPagingControls, displayControls,\n            transparent, publicDownloads,\n            allowFullscreen, allowToShare,\n        } = this.state;\n\n        let liveData = 'enabled';\n\n        if (this.props.forcedLiveDataInit) {\n            liveData = 'forceFirst';\n        }\n\n        const blockOverlay = PREZIGRAM ? PresentationWatermark : Footer;\n\n        const renderWebViewItemContents = (entity, design, extraProps, containerProps) => {\n            let item;\n            extraProps.canBeAnimated = true;\n            if (entity.getType() === 'CHART') { // Add live and hints data to charts\n                item = renderItemContents(\n                    entity,\n                    design,\n                    {\n                        ...extraProps,\n                        liveData,\n                        interactivityHintEnabled: !isFullscreen && this.state.showInteractivityHint,\n                        observer: this.observer,\n                        viewMode: this.props.embed ? 'embed' : 'web',\n                        onSheetClick: function(data, entityKey) {\n                            const {sheetIndex} = data;\n                            Dispatcher.dispatch({\n                                type: DownloadConstants.CHANGE_CHART_TAB,\n                                entityKey,\n                                sheetIndex,\n                            });\n                        },\n                        captureSheetIndex: ChartTabs.all.get(entity.getKey()),\n                    },\n                    containerProps\n                );\n            } else {\n                if (entity.isGroup()) {\n                    extraProps = Object.assign({}, extraProps, {\n                        renderItemContentsFn: renderWebViewItemContents,\n                        readOnly: true,\n                        design,\n                    });\n                }\n                item = renderItemContents(entity, design, extraProps, containerProps);\n            }\n\n            const animation = entity.getAnimation();\n\n            /**\n             * Unless it's slide presentation mode, ignore\n             * click triggered animations\n             */\n            const animated = animation\n                && (\n                    this._isSlidePresentation() ||\n                    (animation.get('regime') !== 'onClick')\n                );\n\n            const triggered = this.state.lastTriggeredAnimationIdx >= getAnimationIdx(this._getActivePageBlock(), entity.getKey());\n\n            let childObserver;\n\n            if (entity.getType() === 'CHART' && this.props.showChartsOnScroll) { // Show charts when they appear.\n                const chartData = entity.get('props').get('chartData');\n                const key = `${chartData.get('chart_type_nr')}_${chartData.get('modifier')}`;\n\n                if (ChartDefaults[key].chartComponentMetaData.animated) {\n                    if (animated && animation.get('regime') === ANIMATION_ON_VIEW) {\n                        childObserver = this.mockObservers[entity.key];\n                        if (!childObserver) {\n                            childObserver = createMockObserver();\n                            this.mockObservers[entity.key] = childObserver;\n                        }\n                    }\n                    item = (\n                        <LazyView\n                            height={entity.height}\n                            threshold={0.3}\n                            observer={childObserver ? childObserver : this.observer}\n                            visible={triggered}\n                        >\n                            {item}\n                        </LazyView>\n                    );\n                }\n            }\n\n            if (animated) { // Add object animations if required\n                const animationProps = animation.toObject();\n                // IE does not support frame-by-frame navigation with negative delay\n                // so as a fallback, display onScroll animations as onView\n                if (scrollAnimationsNotSupported && animationProps.regime === ANIMATION_ON_SCROLL) {\n                    animationProps.regime = ANIMATION_ON_VIEW;\n                }\n                const rotation = extraProps.rotate || 0;\n                const isOnActivePage = entity.getBlockKey() === this._getActivePageBlock().getKey();\n                const animationPropsOnActivePage = isOnActivePage\n                    ? {\n                        triggered,\n                        onComplete: this._onCompleteAnimation,\n                    }\n                    :{}\n                ;\n\n                item = (\n                    <MaybeRotate rotation={-rotation}>\n                        <Animation\n                            {...animationProps}\n                            {...animationPropsOnActivePage}\n                            complete={this.state.completedAnimations.includes(entity.getKey())}\n                            id={entity.getKey()}\n                            childObserver={childObserver}\n                            observer={this.observer}\n                        >\n                            <MaybeRotate rotation={rotation}>\n                                {item}\n                            </MaybeRotate>\n                        </Animation>\n                    </MaybeRotate>\n                );\n            }\n\n            return item;\n        };\n\n        const controlsWrapperStyle = {\n            width: mobWidth || Math.round(this.state.pageSize.width * scale),\n            height,\n        };\n\n        const containerStyle = {\n            width: mobWidth || width,\n            height,\n        };\n\n        const {isMobileWebView} = this.state;\n        const sideButtonsArray = [];\n        if (publicDownloads) {\n            sideButtonsArray.push(INFOGRAPHIC_SIDE_BUTTON_DOWNLOADS);\n        }\n        if (allowToShare && !PREZIGRAM) {\n            sideButtonsArray.push(INFOGRAPHIC_SIDE_BUTTON_SHARE);\n        }\n        if (allowFullscreen && screenfull.enabled || allowFullscreen && isMobileWebView) {\n            sideButtonsArray.push(INFOGRAPHIC_SIDE_BUTTON_FULLSCREEN);\n        }\n\n        let sideButtons;\n        if (this.props.showSideBar && !isFullscreen && sideButtonsArray.length > 0) {\n            sideButtons = (\n                <InfographicSideButtons\n                    isFreeLayout\n                    sideButtonClass={style.sideButton}\n                    sideButtons={sideButtonsArray}\n                    notClickable={this.state.presentationDevice !== null}\n                />\n            );\n        }\n\n        let closeFullScreenButton;\n        if (isMobileWebView && isFullscreen) {\n            closeFullScreenButton = (\n                <button\n                    className={style.closeFullScreenButton}\n                    onClick={exitFullscreen}\n                />\n            );\n        }\n\n        if (!this._isSlidePresentation()) {\n            let scrollProgress;\n            if (isMobileWebView && this.state.displayScrollProgress) {\n                const {firstVisiblePage, lastVisiblePage} = this.state;\n                const pageStatus = firstVisiblePage !== lastVisiblePage ? `${firstVisiblePage} - ${lastVisiblePage}` : `${firstVisiblePage}`;\n                scrollProgress = (\n                    <div className={cx(style.scrollProgress, style.mobilePagging, {[style.scrollProgressNoHeader]: !WebViewStore.displayHeader})}>\n                       {`${pageStatus} / ${this.state.pageCount}`}\n                    </div>\n                );\n            }\n\n            let transparentBackground = false;\n            if (!this.state.animation && this.props.embed && !isFullscreen && transparent) {\n                transparentBackground = true;\n            }\n\n            return (\n                <ScrollContainer\n                    id=\"presentation\"\n                    className={cx(style.container, isFullscreen && 'fullScreenScrollTarget')}\n                    isFullscreen={isFullscreen}\n                    ref={this._rootElement}\n                    style={_.pick(containerStyle, 'width')}\n                >\n                    <InfographicEditor\n                        allowDragAndDrop={false}\n                        blockOverlayComponent={blockOverlay}\n                        accessibleReadingOrder\n                        readOnly\n                        editorState={editorState}\n                        blockWrapperComponent={ScrollPage}\n                        renderItemContentsFn={renderWebViewItemContents}\n                        calloutsComponent={Callouts}\n                        scaleX={scale}\n                        scaleY={scale}\n                        transparentBackground={transparentBackground}\n                        registerDOMNode={this.props.registerDOMNode}\n                    />\n\n                    { sideButtons }\n\n                    {scrollProgress && <Fade active>{scrollProgress}</Fade>}\n                </ScrollContainer>\n            );\n        }\n\n        let borderElement;\n        if (this.props.showBorder) {\n            const className = cx(style.borderElement, {\n                [style.borderElementBottomBorder]: !displayPagingControls,\n                [style.borderElementWithControls]: displayPagingControls,\n            });\n            borderElement = <div className={className}/>;\n        }\n\n        const animationsPending = this._getPendingAnimationsCount() > 0;\n\n        return (\n            <div id=\"presentation\" className={cx(isFullscreen ? style.fullscreenWrapper : style.pageWrapper)}>\n                {/** Catch click/tap events on the whole viewport, outside presentation */}\n                {animationsPending &&\n                    <PointerEventsCatcher\n                        onInteract={this._onInteract}\n                        onSwipeForward={this._navigateToNextPage}\n                        onSwipeBack={this._navigateToPrevPage}\n                    />\n                }\n\n                { borderElement }\n\n                <SlidesContainer\n                    className={cx(style.container, style.slidesContainer, this.state.animation)}\n                    isFullscreen={isFullscreen}\n                    ref={this._rootElement}\n                    style={containerStyle}\n                    onScroll={this.resetScroll}\n                >\n                    <div className={style.editor}>\n                        <InfographicEditor\n                            allowDragAndDrop={false}\n                            blockOverlayComponent={blockOverlay}\n                            accessibleReadingOrder\n                            readOnly\n                            editorState={editorState}\n                            blockWrapperComponent={PresentationPage}\n                            renderItemContentsFn={renderWebViewItemContents}\n                            calloutsComponent={Callouts}\n                            scaleX={scale}\n                            scaleY={scale}\n                            registerDOMNode={this.props.registerDOMNode}\n                        />\n                    </div>\n\n                    {/** Catch all but control click/tap events in presentation */}\n                    {animationsPending &&\n                        <PointerEventsCatcher\n                            zIndex={1}\n                            onInteract={this._onInteract}\n                            onSwipeForward={this._navigateToNextPage}\n                            onSwipeBack={this._navigateToPrevPage}\n                        />\n                    }\n\n                    {!isFullscreen && displayPagingControls && (\n                        <div className={style.progressBar} style={{bottom: CONTROL_BUTTON_SPACE - 5, height: 5}}>\n                            <ProgressBarNavigation\n                                pageSwitchFunction={this._navigateToPage}\n                                activePage={this.state.activePage}\n                            />\n                        </div>\n                    )}\n\n                    <div className={style.controlsWrapper} style={controlsWrapperStyle}>\n                        {sideButtons && <Fade active>{sideButtons}</Fade>}\n                        <Fade active={displayPagingControls && (displayControls || !isFullscreen)}>\n                            <div className={cx(style.controlBox, {[style.controlBoxShareDialog]: this.props.presentationDevice})}>\n                                <ControlBox\n                                    switchToNextPage={this._navigateToNextPage}\n                                    switchToPrevPage={this._navigateToPrevPage}\n                                />\n                                {closeFullScreenButton}\n                            </div>\n                        </Fade>\n                    </div>\n\n                    <Fade active={isFullscreen && displayPagingControls && displayControls}>\n                        <div className={style.progressBar}>\n                            <ProgressBarNavigation\n                                pageSwitchFunction={this._navigateToPage}\n                                activePage={this.state.activePage}\n                            />\n                        </div>\n                    </Fade>\n                </SlidesContainer>\n            </div>\n        );\n    }\n\n    componentDidUpdate() {\n        let height = this.state.height;\n\n        if (this.state.transition === 'none') {\n            height = this._rootElement.current.clientHeight;\n        }\n\n        if (this.props.embed && !this.state.isFullscreen) {\n            window.parent.postMessage(`iframeHeight${window.graphicID}#${window.location.pathname.substr(1)}:${height}`, '*');\n            window.parent.postMessage(JSON.stringify({\n                src: window.location.toString(),\n                context: 'iframe.resize',\n                height: height,\n            }), '*');\n\n            window.parent.postMessage({\n                sentinel: 'amp',\n                type: 'embed-size',\n                height: height,\n            }, '*');\n        }\n\n        this.updateObserverRoot();\n    }\n}\n","import i18n from 'i18next';\nimport React from 'react';\n\nimport {FilterElementPropTypes} from '../types';\nimport IntensityOf from './IntensityOf.react';\nimport {Contrast} from './Contrast.react';\nimport {Brightness} from './Brightness.react';\nimport {Saturation} from './Saturation.react';\n\n/**\n * Riga\n *\n * Everything is gray and slightly depressing\n * for most of the year\n *\n * @param {string} in1 pointer to filter's input (same as SVG *in*)\n * @param {string} result pointer to output (same as SVG *result*)\n * @param {number} amount filter intensity (0-1)\n */\nconst Riga = ({amount, in1, result}) =>\n<>\n    <Contrast amount={0.9}/>\n    <Brightness amount={0.9}/>\n    <Saturation amount={0.8} result=\"Riga\"/>\n    <IntensityOf in1=\"Riga\" source={in1} amount={amount} result={result}/>\n</>\n;\n\nRiga.propTypes = FilterElementPropTypes;\n\nexport default {\n    Component: Riga,\n    get caption() {\n        return i18n.t('inspector.free.filters.riga');\n    },\n    max: 1,\n    min: 0,\n    default: 0.5,\n};\n","var classof = require('../internals/classof');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n  if (it != undefined) return it[ITERATOR]\n    || it['@@iterator']\n    || Iterators[classof(it)];\n};\n","var $ = require('../internals/export');\n\n// `Number.EPSILON` constant\n// https://tc39.github.io/ecma262/#sec-number.epsilon\n$({ target: 'Number', stat: true }, {\n  EPSILON: Math.pow(2, -52)\n});\n","module.exports = __webpack_public_path__ + \"31er7jQD84NUXxLlMrLa2K.svg\";","import {SET_VISIBLE_GUIDES} from '../constants';\nimport Dispatcher from '../../../../app/dispatcher';\n\nexport default function setVisibleGuides(visibleGuides) {\n    Dispatcher.dispatch({\n        type: SET_VISIBLE_GUIDES,\n        visibleGuides,\n    });\n}\n","import PropTypes from 'prop-types';\nimport React, {PureComponent} from 'react';\nimport cx from 'classnames';\n\nimport Spinner from '../../../../../widgets/spinner';\nimport style from './style.css';\n\nexport default class IFrame extends PureComponent {\n    static propTypes = {\n        inEditMode: PropTypes.bool,\n        mediaType: PropTypes.string,\n        url: PropTypes.string.isRequired,\n        height: PropTypes.oneOfType([\n            PropTypes.string,\n            PropTypes.number,\n        ]),\n    };\n\n    static initialPropsForData = (data, options) => {\n        // make sure number is integer\n        const width = Math.round(options.elementWidth);\n\n        return ({\n            width,\n            height: width * 0.75,\n        });\n    };\n\n    constructor(props) {\n        super(props);\n\n        this.state = {\n            isLoading: props.mediaType === 'iframe',\n        };\n\n        this.embedProps = {};\n        if (props.mediaType === 'iframe') {\n            this.embedProps.scrolling = props.inEditMode ? 'no' : 'auto';\n            this.embedProps.onLoad = this._iframeLoaded;\n            this.embedProps.sandbox = 'allow-forms allow-popups allow-scripts allow-same-origin allow-presentation';\n        } else {\n            this.embedProps.allowFullScreen = true;\n        }\n        this.embedProps.referrerPolicy = 'origin';\n    }\n\n    render() {\n        const {inEditMode, url, height} = this.props;\n\n        return (\n            <div className={cx(style.mediaEntity, {[style.loadingWrapper]: this.state.isLoading})}>\n                {inEditMode && <div className={style.overlay}/>}\n                {this.state.isLoading && <Spinner/>}\n                <iframe\n                    src={url}\n                    height={height}\n                    className={style.iframe}\n                    frameBorder=\"0\"\n                    {...this.embedProps}\n                />\n            </div>\n        );\n    }\n\n    _iframeLoaded = () => {\n        this.setState({\n            isLoading: false,\n        });\n    }\n}\n","import {\n    rotatePoint,\n    centerOf,\n    rad,\n    getBackRotatedEntityRectangle,\n} from '../../../../../../components/FreeLayoutEditor/handlers/handle/utils';\nimport {calculateBoundingBox} from '../../../../../../components/FreeLayoutEditor/util/bounds';\n/**\n * (RECURSIVE) Returns updated bounds for all parent groups starting from the entity initiated (bubble principle).\n * @param {Object} initiatorEntity Entity from where to start calculating changes\n * @param {Object} editorState Instace of EditorState (immutable)\n * @param {Bool} updateBounds Set true if you want to update bounds of initiatorEntity level/layer of depth.\n * @returns {Object} editorState\n */\nexport default function getEditorStateWithNewGroupBounds(editorState, initiatorEntity, updateBounds=false) {\n    if (!initiatorEntity) {\n        return editorState;\n    }\n    let group;\n    if (initiatorEntity.isGroup()) {\n        group = editorState.getEntity(initiatorEntity.getKey());\n    } else if (initiatorEntity.getGroupKey()) {\n        group = editorState.getEntity(initiatorEntity.getGroupKey());\n        updateBounds = true;\n    }\n\n    if (updateBounds) {\n        const entitiesInGroup = group.getChildrenKeys();\n        const entities = editorState.getEntities(entitiesInGroup);\n        /**\n         * In order to re-draw parent bounds correctly with rotation,\n         * we must rotated back children entities to its parents rotation, calculate new bound, and rotate it back.\n         * */\n        const zeroedEditorState = entities.reduce((editorState, entity) => {\n            const entityRectangle = getBackRotatedEntityRectangle(entity, group);\n            editorState = editorState.setEntity(entity.getKey(), {\n                ...entityRectangle,\n                transform: {rotate: entity.getTransform().rotate - group.getTransform().rotate},\n            });\n            return editorState;\n        }, editorState);\n        const newBounds = calculateBoundingBox(zeroedEditorState.getEntities(entitiesInGroup));\n        const {x, y} = rotatePoint(\n            centerOf(newBounds),\n            rad(group.getTransform().rotate),\n            centerOf(group.bounds())\n        );\n        newBounds.left = x - newBounds.width/2;\n        newBounds.top = y - newBounds.height/2;\n\n        editorState = editorState.setEntity(group.getKey(), {...newBounds});\n    }\n\n    const parentGroup = group && editorState.getEntity(group.getGroupKey());\n    if (parentGroup) {\n        return getEditorStateWithNewGroupBounds(editorState, parentGroup, true);\n    }\n    return editorState;\n}\n","var isObject = require('../internals/is-object');\n\nmodule.exports = function (it) {\n  if (!isObject(it) && it !== null) {\n    throw TypeError(\"Can't set \" + String(it) + ' as a prototype');\n  } return it;\n};\n","'use strict';\n\nvar Cancel = require('./Cancel');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n  if (typeof executor !== 'function') {\n    throw new TypeError('executor must be a function.');\n  }\n\n  var resolvePromise;\n  this.promise = new Promise(function promiseExecutor(resolve) {\n    resolvePromise = resolve;\n  });\n\n  var token = this;\n  executor(function cancel(message) {\n    if (token.reason) {\n      // Cancellation has already been requested\n      return;\n    }\n\n    token.reason = new Cancel(message);\n    resolvePromise(token.reason);\n  });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n  if (this.reason) {\n    throw this.reason;\n  }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n  var cancel;\n  var token = new CancelToken(function executor(c) {\n    cancel = c;\n  });\n  return {\n    token: token,\n    cancel: cancel\n  };\n};\n\nmodule.exports = CancelToken;\n","import arrayWithHoles from \"./arrayWithHoles\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit\";\nimport nonIterableRest from \"./nonIterableRest\";\nexport default function _slicedToArray(arr, i) {\n  return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || nonIterableRest();\n}","var $ = require('../internals/export');\nvar repeat = require('../internals/string-repeat');\n\n// `String.prototype.repeat` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.repeat\n$({ target: 'String', proto: true }, {\n  repeat: repeat\n});\n","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"._33uTN37Cm0rdlcqTayvc-1 {\\n    position: relative;\\n}\\n\\n.dszQmPq90Hj9i-pDPesOa {\\n    position: relative;\\n    margin-top: -60px;\\n    padding: 0 30px;\\n    text-align: center;\\n    font-size: 11px;\\n    height: 60px;\\n    line-height: 60px;\\n    color: #434343;\\n    font-weight: 500;\\n    z-index: 1;\\n    pointer-events: all;\\n    /* hidden overflow removes negative margin impact on blocks positioning */\\n    overflow: hidden;\\n    white-space: nowrap;\\n}\\n\\n.dszQmPq90Hj9i-pDPesOa._3lyA48phmbu6qNEaIsNEaU {\\n    pointer-events: none;\\n}\\n\\n.dszQmPq90Hj9i-pDPesOa.VIxqBxYBa-57LCD12igC4 {\\n    position: absolute;\\n    margin-top: 0;\\n    left: 0;\\n    bottom: 0;\\n    right: 0;\\n    height: 60px;\\n    cursor: pointer;\\n}\\n\\n.dszQmPq90Hj9i-pDPesOa.EmFUfYXmlWXyqMfA5uvvn {\\n    border: 1px solid #3195cb;\\n    left: -1px;\\n    right: -1px;\\n    bottom: -1px;\\n}\\n\\n.dszQmPq90Hj9i-pDPesOa.VIxqBxYBa-57LCD12igC4:hover:after,\\n.dszQmPq90Hj9i-pDPesOa.VIxqBxYBa-57LCD12igC4.EmFUfYXmlWXyqMfA5uvvn:after,\\n.dszQmPq90Hj9i-pDPesOa.VIxqBxYBa-57LCD12igC4._8aru-4wlZJy9MuzdJJt3_:after {\\n    content: '';\\n    display: block;\\n    position: absolute;\\n    left: 0;\\n    right: 0;\\n    top: 0;\\n    bottom: 0;\\n}\\n.dszQmPq90Hj9i-pDPesOa.VIxqBxYBa-57LCD12igC4:hover:after {\\n    background-color: rgba(49, 149, 203, 0.7);\\n}\\n\\n.dszQmPq90Hj9i-pDPesOa.VIxqBxYBa-57LCD12igC4._8aru-4wlZJy9MuzdJJt3_:hover:after {\\n    background-color: rgba(62, 167, 113, 0.7);\\n}\\n\\n._2f879mevJEaRjtApbXBjg- {\\n    position: relative;\\n}\\n\\n._2CUNS_VDTSlrSDuFje4_Gk {\\n    position: absolute;\\n    top: 0;\\n    left: 0;\\n    height: 60px;\\n    transform-origin: left top;\\n}\\n\\n._1yKGEX0KcHUPWWEKLYt5-Z {\\n    position: absolute;\\n    left: 50%;\\n    transform: translateX(-50%);\\n    transform-origin: center top;\\n}\\n\\n.GtlDt_t0JVGeGTJg1APgV {\\n    position: absolute;\\n    top: 0;\\n    right: 0;\\n    height: 60px;\\n    transform-origin: right top;\\n}\\n\\n.-M2RtHqrpZv6ZndTQetDE {\\n    height: 60px;\\n    display: flex;\\n    align-items: center;\\n}\\n\\n.-M2RtHqrpZv6ZndTQetDE .ig-logo {\\n    align-items: center;\\n    display: flex;\\n    height: 30px;\\n    position: initial;\\n}\\n\\n.-M2RtHqrpZv6ZndTQetDE .ig-logo img {\\n    max-height: 30px;\\n    vertical-align: middle;\\n}\\n\\n.-M2RtHqrpZv6ZndTQetDE .ig-logo img.infogramLogo {\\n    max-height: 35px;\\n    margin-top: 6px;\\n}\\n\", \"\"]);\n\n// exports\nexports.locals = {\n\t\"wrapper\": \"_33uTN37Cm0rdlcqTayvc-1\",\n\t\"container\": \"dszQmPq90Hj9i-pDPesOa\",\n\t\"disabled\": \"_3lyA48phmbu6qNEaIsNEaU\",\n\t\"selectable\": \"VIxqBxYBa-57LCD12igC4\",\n\t\"selected\": \"EmFUfYXmlWXyqMfA5uvvn\",\n\t\"upgradable\": \"_8aru-4wlZJy9MuzdJJt3_\",\n\t\"innerContainer\": \"_2f879mevJEaRjtApbXBjg-\",\n\t\"left\": \"_2CUNS_VDTSlrSDuFje4_Gk\",\n\t\"center\": \"_1yKGEX0KcHUPWWEKLYt5-Z\",\n\t\"right\": \"GtlDt_t0JVGeGTJg1APgV\",\n\t\"logo\": \"-M2RtHqrpZv6ZndTQetDE\"\n};","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $findIndex = require('../internals/array-iteration').findIndex;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\n\n// `%TypedArray%.prototype.findIndex` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.findindex\nArrayBufferViewCore.exportProto('findIndex', function findIndex(predicate /* , thisArg */) {\n  return $findIndex(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined);\n});\n","import React, {PureComponent, Component} from 'react';\nimport PropTypes from 'prop-types';\nimport {Container} from 'flux/utils';\n\nimport HandlersStore from '../handlers/store';\nimport style from './SmartGuidesOverlay.css';\n\nclass GuideLine extends PureComponent {\n    static propTypes = {\n        direction: PropTypes.oneOf(['horizontal', 'vertical']).isRequired,\n        coordinate: PropTypes.number.isRequired,\n        from: PropTypes.number.isRequired,\n        to: PropTypes.number.isRequired,\n        dashed: PropTypes.bool,\n        opacity: PropTypes.number,\n    };\n\n    static defaultProps = {\n        opacity: 1,\n    };\n\n    render() {\n        const {coordinate, direction, dashed, opacity, from, to} = this.props;\n        let inlineStyle;\n        if (direction === 'vertical') {\n            inlineStyle = {\n                top: from,\n                height: to - from,\n                left: coordinate,\n                width: 1,\n                opacity,\n                borderTop: 'none',\n            };\n        } else {\n            inlineStyle= {\n                left: from,\n                width: to - from,\n                top: coordinate,\n                height: 1,\n                opacity,\n                borderLeft: 'none',\n            };\n        }\n        return (\n            <div className={dashed ? style.dashedLine : style.line} style={inlineStyle}/>\n        );\n    }\n}\n\nclass SmartGuidesOverlay extends Component {\n    static propTypes = {\n        scaleX: PropTypes.number,\n        scaleY: PropTypes.number,\n    }\n\n    static defaultProps = {\n        scaleX: 1,\n        scaleY: 1,\n    }\n\n    static getStores() {\n        return [\n            HandlersStore,\n        ];\n    }\n\n    static calculateState() {\n        return {\n            showGuides: HandlersStore.resizing || HandlersStore.dragging,\n            visibleGuides: HandlersStore.visibleGuides,\n        };\n    }\n\n    render() {\n        const {showGuides, visibleGuides} = this.state;\n        if (!showGuides) {\n            return null;\n        }\n        const {scaleX, scaleY} = this.props;\n\n        return (\n            <div className={style.container}>\n                {visibleGuides.map((guide, i) => {\n                    if (guide.x) {\n                        return (\n                            <GuideLine\n                                coordinate={guide.x * scaleX}\n                                from={guide.y1 * scaleY}\n                                to={guide.y2 * scaleY}\n                                direction=\"vertical\"\n                                key={`${i}`}\n                                dashed={guide.dashed}\n                                opacity={guide.percent}\n                            />\n                        );\n                    } else if (guide.y) {\n                        return (\n                            <GuideLine\n                                coordinate={guide.y * scaleY}\n                                from={guide.x1 * scaleX}\n                                to={guide.x2 * scaleX}\n                                direction=\"horizontal\"\n                                key={`${i}`}\n                                dashed={guide.dashed}\n                                opacity={guide.percent}\n                            />\n                        );\n                    }\n                })}\n            </div>\n        );\n    }\n}\n\nexport default Container.create(SmartGuidesOverlay);\n","module.exports = __webpack_public_path__ + \"3ugQhuPhUCkwsE2rW6nfyQ.svg\";","module.exports = {};\n","import invariant from 'invariant';\n\nimport {calculateClippedRectangle} from '../../../components/FreeLayoutEditor/util/clippedEntity';\nimport getEntityChangesBasedOnRect from './getEntityChangesBasedOnRect';\n\nexport default function adjustCalloutToPaddings(alignment, entities, paddings) {\n    invariant(entities.size > 0 && entities.size <= 2, `Callout has ${entities.size} entities`);\n\n    const horizontal = paddings.get('horizontal');\n    const vertical = paddings.get('vertical');\n    const calloutChanges = {};\n    const contentChanges = {};\n\n    if (entities.size === 1) {\n        const entity = entities.first();\n        const rect = calculateClippedRectangle(entity);\n        calloutChanges.width = horizontal.get('left') + rect.width + horizontal.get('right');\n        calloutChanges.height = vertical.get('top') + rect.height + vertical.get('bottom');\n        rect.left = horizontal.get('left');\n        rect.top = vertical.get('top');\n        contentChanges[entity.getKey()] = getEntityChangesBasedOnRect(entity, rect);\n    } else {\n        const first = entities.first();\n        const last = entities.last();\n        const firstRect = calculateClippedRectangle(first);\n        const lastRect = calculateClippedRectangle(last);\n        if (alignment === 'horizontal') {\n            const heightWithoutPaddings = Math.max(firstRect.height, lastRect.height);\n            calloutChanges.width = horizontal.get('left') + firstRect.width + horizontal.get('between') + lastRect.width + horizontal.get('right');\n            calloutChanges.height = vertical.get('top') + heightWithoutPaddings + vertical.get('bottom');\n            firstRect.left = horizontal.get('left');\n            firstRect.top = vertical.get('top') + (heightWithoutPaddings - firstRect.height) / 2;\n            lastRect.left = firstRect.left + firstRect.width + horizontal.get('between');\n            lastRect.top = vertical.get('top') + (heightWithoutPaddings - lastRect.height) / 2;\n        } else {\n            const widthWithoutPaddings = Math.max(firstRect.width, lastRect.width);\n            calloutChanges.width = horizontal.get('left') + widthWithoutPaddings + horizontal.get('right');\n            calloutChanges.height = vertical.get('top') + firstRect.height + vertical.get('between') + lastRect.height + vertical.get('bottom');\n            firstRect.left = horizontal.get('left') + (widthWithoutPaddings - firstRect.width) / 2;\n            firstRect.top = vertical.get('top');\n            lastRect.left = horizontal.get('left') + (widthWithoutPaddings - lastRect.width) / 2;\n            lastRect.top = firstRect.top + firstRect.height + vertical.get('between');\n        }\n        contentChanges[first.getKey()] = getEntityChangesBasedOnRect(first, firstRect);\n        contentChanges[last.getKey()] = getEntityChangesBasedOnRect(last, lastRect);\n    }\n\n    calloutChanges.width = Math.round(calloutChanges.width);\n    calloutChanges.height = Math.round(calloutChanges.height);\n    return {\n        calloutChanges,\n        contentChanges,\n    };\n}\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $map = require('../internals/array-iteration').map;\nvar speciesConstructor = require('../internals/species-constructor');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;\n\n// `%TypedArray%.prototype.map` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.map\nArrayBufferViewCore.exportProto('map', function map(mapfn /* , thisArg */) {\n  return $map(aTypedArray(this), mapfn, arguments.length > 1 ? arguments[1] : undefined, function (O, length) {\n    return new (aTypedArrayConstructor(speciesConstructor(O, O.constructor)))(length);\n  });\n});\n","import _ from 'lodash';\n\nimport {\n    calculateClippedRectangle,\n    calculateTrueRectangle,\n} from '../../util/clippedEntity';\n\nimport {\n    RESIZE,\n    ROTATE,\n    transform,\n} from './transformations';\nimport shapeTextDimensions from '../../../../app/freelayout_editor/components/contents/Shape/shapeDimensions';\n\nimport {\n    Rectangle,\n    centerOf,\n} from './utils';\nimport {connectorTransform, transformOrphanConnectorEnds} from '../../../../app/connectors/modifier/connectorTransform';\nimport {calculateBoundingBox} from '../../util/bounds';\n\nimport {SELECTOR_HORIZONTAL_PADDING} from '../../../TextEditor/constants/TextEditorConstants';\n\nexport default function bulkTransform(editorState, entitiesToTransform, boundingBox, action, options) {\n    const {startCoordinates, newCoordinates, deltaRotation, boundingBoxSizeChange} = options;\n    const newEntityData = [];\n    const connectorEntityData = [];\n    let minSizeReached = false;\n    let newEditorState = editorState;\n\n    entitiesToTransform.forEach(entity => {\n        if (entity.getCalloutKey()) {\n            return;\n        }\n\n        const visibleRect = calculateClippedRectangle(entity);\n        const rect = Rectangle(visibleRect.left, visibleRect.top, visibleRect.width, visibleRect.height, visibleRect.transform.rotate);\n\n        const {rect: r} = transform(\n            rect,\n            startCoordinates,\n            newCoordinates,\n            action,\n            {\n                boundingBox: boundingBox,\n                deltaRotation: deltaRotation,\n                rotationOrigin: centerOf(boundingBox),\n                isMultiSelect: true,\n                lockAspectRatio: true,\n                maxHeight: entity.maxHeight,\n                minHeight: entity.minHeight || 1,\n                maxWidth: entity.maxWidth,\n                minWidth: entity.minWidth || 1,\n                boundingBoxSizeChange: boundingBoxSizeChange,\n                lockHeight: entity.isLine(),\n            }\n        );\n\n        const {left, top, width, height, rotation} = calculateTrueRectangle(entity, r);\n\n        const put = {\n            left: left,\n            top: top,\n            width: width,\n            height: height,\n        };\n\n        // connectors dont't need transform and minSizeReached also will be ignored\n        if (entity.isConnector()) {\n            connectorEntityData.push([entity, put]);\n            return;\n        }\n\n        put.transform = entity.transform.set('rotate', rotation);\n\n        const minWidthReached = entity.minWidth > 5 ? put.width < entity.minWidth : put.width < 5;\n        const minHeightReached = entity.minHeight > 5 ? put.height < entity.minHeight : put.height < 5;\n        if (minWidthReached || minHeightReached) {\n            minSizeReached = true;\n        }\n\n        if (entity.type === 'SHAPE' && entity.getProperty('content')) {\n            put.props = {\n                text: shapeTextDimensions(entity, width, height),\n            };\n        }\n\n        if (entity.type === 'TEXT') {\n            const scaleWidth = _.isNil(entity.getProperty('scaleWidth')) ? entity.width : entity.getProperty('scaleWidth');\n            const scaleHeight = _.isNil(entity.getProperty('scaleHeight')) ? entity.height : entity.getProperty('scaleHeight');\n            _.set(put, 'props.scaleX', (put.width - SELECTOR_HORIZONTAL_PADDING * 2) / scaleWidth);\n            _.set(put, 'props.scaleY', put.height / scaleHeight);\n            _.set(put, 'props.scaleWidth', scaleWidth);\n            _.set(put, 'props.scaleHeight', scaleHeight);\n        }\n\n        newEntityData.push([entity, put]);\n    });\n\n    if (!minSizeReached) {\n        newEntityData.forEach(([entity, put]) => {\n            newEditorState = newEditorState.setEntity(entity.getKey(), put);\n            newEditorState = connectorTransform(newEditorState, entity);\n        });\n\n        if (connectorEntityData.length > 0) {\n            const orphanConnectorEndsResult = transformOrphanConnectorEnds({\n                connectors: connectorEntityData,\n                selectedEntities: newEntityData,\n                editorState: newEditorState,\n                action,\n                boundingBox,\n                startPt: startCoordinates,\n                endPt: newCoordinates,\n                deltaRotation,\n            });\n\n            newEditorState = orphanConnectorEndsResult.editorState;\n\n            // update boundingBox if atleast one connector is connected to entity outside selection\n            if (orphanConnectorEndsResult.hasEntityOutsideSelection && [RESIZE, ROTATE].indexOf(action) !== -1) {\n                const allEntityKeys = [\n                    ...newEntityData.map(([entity]) => entity.getKey()),\n                    ...connectorEntityData.map(([entity]) => entity.getKey()),\n                ];\n\n                const entities = newEditorState.getEntities(allEntityKeys);\n\n                boundingBoxRect = calculateBoundingBox(entities);\n\n                return {\n                    editorState: newEditorState,\n                    boundingBoxRect,\n                };\n            }\n        }\n    }\n\n    let boundingBoxRect;\n    if (boundingBox && !minSizeReached) {\n        const transformResult = transform(\n            boundingBox,\n            startCoordinates,\n            newCoordinates,\n            action,\n            {\n                boundingBox: boundingBox,\n                isMultiSelect: true,\n                deltaRotation: deltaRotation,\n                lockAspectRatio: true,\n                minHeight: 1,\n                minWidth: 1,\n                boundingBoxSizeChange: boundingBoxSizeChange,\n            }\n        );\n        boundingBoxRect = transformResult.rect;\n    }\n\n    return {\n        editorState: !minSizeReached ? newEditorState : editorState,\n        boundingBoxRect: boundingBoxRect,\n    };\n}\n","import React from 'react';\nimport {Container} from 'flux/utils';\nimport PropTypes from 'prop-types';\nimport Sticker from 'react-stickyfill';\nimport styled from 'styled-components';\nimport cx from 'classnames';\n\nimport CurrentInfographicStore from '../../app/main/stores/CurrentInfographicStore';\nimport {engagementEvent} from '../../components/EngagementAnalytics/EngagementAnalytics.actions';\nimport PublicDownloadDialog from '../../components/Dialogs/PublicDownloadDialog.react.js';\nimport ShareDialog from '../../components/Dialogs/ShareDialog.react.js';\n\nimport {\n    enterFullscreen as enterResponsiveInfographicFullscreen,\n} from '../../web/ResponsiveInfographic/ResponsiveInfographic.actions';\nimport {\n    enterFullscreen as enterPresentationFullscreen,\n} from '../../app/freelayout_editor/components/Presentation/actions';\n\n\nimport style from './InfographicSideButtons.css';\nimport respStyle from '../../web/ResponsiveInfographic/ResponsiveInfographic.css';\n\nimport {\n    INFOGRAPHIC_SIDE_BUTTON_DOWNLOADS,\n    INFOGRAPHIC_SIDE_BUTTON_SHARE,\n    INFOGRAPHIC_SIDE_BUTTON_FULLSCREEN,\n} from './constants';\nimport {prezigram} from '../../contexts/theme/prezigram';\n\nconst SideButton = styled.button`\n    pointer-events: auto;\n    cursor: pointer;\n    background: #656565;\n    border: none;\n    border-radius: 20px;\n    width: 20px;\n    height: 20px;\n    position: sticky;\n    margin-top: ${props => prezigram(props.theme) ? 20 : 0}px;\n    top: 10px;\n    padding: 10px;\n    font-size: 16px;\n    text-align: center;\n    color: #fff;\n    transition: none;\n    margin-bottom: 5px;\n    z-index: 9;\n    min-width: auto;\n    box-sizing: content-box;\n    background-color: #656565;\n    background-position: center;\n    background-repeat: no-repeat;\n    background-size: 16px;\n\n    &:hover {\n        opacity: 1 !important;\n        transition: none;\n    }\n\n    &:focus {\n        opacity: 1;\n        transition: none;\n    }\n\n    @media (hover: none) {\n        opacity: .8;\n    }\n`;\n\nconst MoreButton = styled(SideButton)`\n    opacity: 0;\n    background-image: url(${require('./icon-more.svg')});\n`;\n\nconst CloseButton = styled(SideButton) `\n    background-image: url(${require('./icon-cancel.svg')});\n    background-size: 14px;\n`;\n\nconst DownloadButton = styled(SideButton) `\n    background-image: url(${require('./icon-download.svg')});\n`;\n\nconst ShareButton = styled(SideButton) `\n    background-image: url(${require('./icon-share.svg')});\n`;\n\nconst PresentationButton = styled(SideButton) `\n    background-image: url(${require('./icon-presentation.svg')});\n`;\n\nclass InfographicSideButtons extends React.Component {\n    static propTypes = {\n        className: PropTypes.string,\n        sideButtonClass: PropTypes.string,\n        isFreeLayout: PropTypes.bool,\n        sideButtons: PropTypes.array.isRequired,\n        notClickable: PropTypes.bool,\n    };\n\n    static getStores() {\n        return [\n            CurrentInfographicStore,\n        ];\n    }\n\n    static calculateState() {\n        return {\n            visibleSideButtons: false,\n            visibleDownloadDialog: false,\n            visibleShareDialog: false,\n            infographicModel: CurrentInfographicStore.model,\n        };\n    }\n\n    render() {\n        const {\n            visibleSideButtons,\n            visibleDownloadDialog,\n            visibleShareDialog,\n        } = this.state;\n        const {\n            sideButtonClass,\n            sideButtons,\n        } = this.props;\n\n        let publicDownloadDialog;\n        let position;\n\n        if (visibleDownloadDialog) {\n            if (sideButtons.length > 1) {\n                position = sideButtons.indexOf(INFOGRAPHIC_SIDE_BUTTON_DOWNLOADS) + 1;\n            }\n\n            publicDownloadDialog = <PublicDownloadDialog position={position} onClose={this._closeDownloadDialog}/>;\n        }\n\n        let shareDialog;\n        if (visibleShareDialog) {\n            if (sideButtons.length > 1) {\n                position = sideButtons.indexOf(INFOGRAPHIC_SIDE_BUTTON_SHARE) + 1;\n            }\n\n            shareDialog = <ShareDialog onClose={this._closeShareDialog} position={position}/>;\n        }\n\n        if (!visibleSideButtons && sideButtons.length > 1) {\n            return (\n                <div\n                    className={cx(style.sideButtonsContainer, {\n                        [style.notClickableContainer]: this.props.notClickable,\n                    })}\n                >\n                    <Sticker>\n                        <MoreButton\n                            className={cx(sideButtonClass, style.singleButton)}\n                            onClick={this._toggleSideButtons}\n                            aria-label={'Show side buttons'}\n                            data-do-not-hide\n                        />\n                    </Sticker>\n                </div>\n            );\n        }\n        return (\n                <div className=\"sideButtonsHolder\">\n                    <div\n                        className={cx(style.sideButtonsContainer, respStyle.sideButtonContainer, {\n                            [style.notClickableContainer]: this.props.notClickable,\n                        })}\n                    >\n                        {this.props.sideButtons.length > 1 && (\n                            <Sticker>\n                                <CloseButton\n                                    onClick={this._toggleSideButtons}\n                                    aria-label={'Close side buttons'}\n                                    data-do-not-hide\n                                />\n                            </Sticker>\n                        )}\n                        {this.props.sideButtons.includes(INFOGRAPHIC_SIDE_BUTTON_DOWNLOADS) && (\n                            <Sticker>\n                                <DownloadButton\n                                    className={cx(sideButtonClass, {\n                                        [style.singleButton]: this.props.sideButtons.length === 1 && !visibleDownloadDialog,\n                                    })}\n                                    onClick={this._toggleDownloadDialog}\n                                    aria-label={'Download infographic'}\n                                    data-do-not-hide\n                                />\n                            </Sticker>\n                        )}\n                        {this.props.sideButtons.includes(INFOGRAPHIC_SIDE_BUTTON_SHARE) && (\n                            <Sticker>\n                                <ShareButton\n                                    className={cx(sideButtonClass, {\n                                        [style.singleButton]: this.props.sideButtons.length === 1 && !visibleShareDialog,\n                                    })}\n                                    aria-label={'Share infographic'}\n                                    onClick={this._toggleShareDialog}\n                                    data-do-not-hide\n                                />\n                            </Sticker>\n                        )}\n                        {this.props.sideButtons.includes(INFOGRAPHIC_SIDE_BUTTON_FULLSCREEN) && (\n                            <Sticker>\n                                <PresentationButton\n                                    className={cx(sideButtonClass, style.fullscreenButton, {\n                                        [style.singleButton]: this.props.sideButtons.length === 1,\n                                    })}\n                                    aria-label={'Enter presentation mode'}\n                                    onClick={this._enterFullscreen}\n                                    data-do-not-hide\n                                />\n                            </Sticker>\n                        )}\n                    </div>\n                    {publicDownloadDialog}\n                    {shareDialog}\n                </div>\n        );\n    }\n\n    _closeShareDialog = () => {\n        this.setState({\n            visibleShareDialog: false,\n        });\n    }\n\n    _closeDownloadDialog = () => {\n        this.setState({\n            visibleDownloadDialog: false,\n        });\n    }\n\n    _toggleSideButtons = () => {\n        this.setState({\n            visibleSideButtons: !this.state.visibleSideButtons,\n            visibleDownloadDialog: false,\n            visibleShareDialog: false,\n        });\n    }\n\n    _toggleShareDialog = () => {\n        if (this.props.notClickable) {\n            return;\n        }\n        engagementEvent('', 'shareButton', 'click');\n        this.setState({\n            visibleShareDialog: !this.state.visibleShareDialog,\n            visibleDownloadDialog: false,\n        });\n    }\n\n    _enterFullscreen = () => {\n        if (this.props.notClickable) {\n            return;\n        }\n        if (this.props.isFreeLayout) {\n            enterPresentationFullscreen();\n        } else {\n            enterResponsiveInfographicFullscreen();\n        }\n    }\n\n    _toggleDownloadDialog = () => {\n        if (this.props.notClickable) {\n            return;\n        }\n        this.setState({\n            visibleDownloadDialog: !this.state.visibleDownloadDialog,\n            visibleShareDialog: false,\n        });\n    }\n}\n\nexport default Container.create(InfographicSideButtons, {withProps: true});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar toLength = require('../internals/to-length');\nvar toOffset = require('../internals/to-offset');\nvar toObject = require('../internals/to-object');\nvar fails = require('../internals/fails');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\n\nvar FORCED = fails(function () {\n  // eslint-disable-next-line no-undef\n  new Int8Array(1).set({});\n});\n\n// `%TypedArray%.prototype.set` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.set\nArrayBufferViewCore.exportProto('set', function set(arrayLike /* , offset */) {\n  aTypedArray(this);\n  var offset = toOffset(arguments.length > 1 ? arguments[1] : undefined, 1);\n  var length = this.length;\n  var src = toObject(arrayLike);\n  var len = toLength(src.length);\n  var index = 0;\n  if (len + offset > length) throw RangeError('Wrong length');\n  while (index < len) this[offset + index] = src[index++];\n}, FORCED);\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/define-iterator');\n\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// `String.prototype[@@iterator]` method\n// https://tc39.github.io/ecma262/#sec-string.prototype-@@iterator\ndefineIterator(String, 'String', function (iterated) {\n  setInternalState(this, {\n    type: STRING_ITERATOR,\n    string: String(iterated),\n    index: 0\n  });\n// `%StringIteratorPrototype%.next` method\n// https://tc39.github.io/ecma262/#sec-%stringiteratorprototype%.next\n}, function next() {\n  var state = getInternalState(this);\n  var string = state.string;\n  var index = state.index;\n  var point;\n  if (index >= string.length) return { value: undefined, done: true };\n  point = charAt(string, index);\n  state.index += point.length;\n  return { value: point, done: false };\n});\n","import {Record, Map, fromJS} from 'immutable';\n\nimport Transform from './Transform';\n\nimport generateUniqueIdentifier from '../util/generateUniqueIdentifier';\n\nimport resolveDesignProperty from './resolveDesignProperty';\nimport {rectToBounds, roundRect} from '../util/bounds';\nimport {calculateClippedRectangle} from '../util/clippedEntity';\n\nconst defaultRecord = {\n    key: '',\n    type: null,\n    blockKey: null,\n    top: null,\n    left: null,\n    width: null,\n    height: null,\n    transform: new Transform(),\n    props: Map(),\n    lockAspectRatio: false,\n    maxWidth: null,\n    maxHeight: null,\n    minWidth: null,\n    minHeight: null,\n    locked: false,\n    groupKey: undefined,\n    filters: Map(),\n    calloutKey: undefined,\n};\n\nconst SHAPES_WITHOUT_TEXT = ['line', 'arrow', 'calloutCircle', 'pointer', 'path'];\n\nconst ACCESSIBILITY_RECORDS = {\n    CHART: Record({\n        enabled: true,\n        label: 'Chart',\n        description: '',\n    }),\n    IMAGE: Record({\n        enabled: true,\n        label: 'Image',\n        description: '',\n    }),\n    TEXT: Record({\n        enabled: true,\n    }),\n    SHAPE: Record({\n        enabled: false,\n        label: 'Shape',\n        description: '',\n    }),\n    MEDIA: Record({\n        enabled: true,\n    }),\n    GROUP: Record({\n        enabled: true,\n        label: 'Group',\n        description: '',\n        readChildren: true,\n    }),\n    CONNECTOR: Record({\n        enabled: true,\n        label: 'Connector',\n        description: '',\n    }),\n};\n\nconst InfographicEntityRecord = Record(defaultRecord);\n\nexport default class InfographicEntity extends InfographicEntityRecord {\n    static fromRawEntity(raw, blockKey) {\n        const type = raw.type;\n        if (!type) {\n            throw new Error('\"type\" must be defined');\n        }\n\n        const left = raw.left;\n        if (typeof left === 'undefined') {\n            throw new Error('\"left\" must be defined');\n        }\n\n        const top = raw.top;\n        if (typeof top === 'undefined') {\n            throw new Error('\"top\" must be defined');\n        }\n\n        const width = raw.width;\n        if (typeof width === 'undefined') {\n            throw new Error('\"width\" must be defined');\n        }\n\n        const height = raw.height;\n        if (typeof height === 'undefined') {\n            throw new Error('\"height\" must be defined');\n        }\n\n        const record = {\n            type: type,\n            left: left,\n            top: top,\n            width: width,\n            height: height,\n            props: fromJS(raw.props || {}),\n            key: raw.key || generateUniqueIdentifier(),\n            lockAspectRatio: raw.lockAspectRatio || false,\n            maxWidth: raw.maxWidth || 10000,\n            maxHeight: raw.maxHeight || 10000,\n            minWidth: raw.minWidth || 1,\n            minHeight: raw.minHeight || 1,\n            locked: raw.locked,\n            groupKey: raw.groupKey,\n            filters: Map(raw.filters || {}),\n            calloutKey: raw.calloutKey,\n        };\n\n        if (raw.transform) {\n            record.transform = Transform.fromRawTransform(raw.transform);\n        } else {\n            record.transform = new Transform();\n        }\n\n        if (blockKey) {\n            record.blockKey = blockKey;\n        }\n\n        return new InfographicEntity(record);\n    }\n\n    static set(entity, put) {\n        return entity.merge(put);\n    }\n\n    getKey() {\n        return this.get('key');\n    }\n\n    getBlockKey() {\n        return this.get('blockKey');\n    }\n\n    getType() {\n        return this.get('type');\n    }\n\n    getTop() {\n        return this.get('top');\n    }\n\n    getLeft() {\n        return this.get('left');\n    }\n\n    getWidth() {\n        return this.get('width');\n    }\n\n    getHeight() {\n        return this.get('height');\n    }\n\n    getLocked() {\n        return this.get('locked');\n    }\n\n    getAccessibility() {\n        const type = this.getType();\n        let accessibility;\n        if (type === 'CHART') {\n            accessibility = this.getProperty('chartData').get('accessibility');\n        } else {\n            accessibility = this.getProps().get('accessibility');\n        }\n\n        return ACCESSIBILITY_RECORDS[type](accessibility);\n    }\n\n    getProps() {\n        return this.get('props');\n    }\n\n    getAnimation() {\n        return this.getProps().get('animation');\n    }\n\n    getCallout() {\n        return this.getProps().get('callout');\n    }\n\n    getCalloutKey() {\n        return this.get('calloutKey');\n    }\n\n    getTransform() {\n        return this.get('transform');\n    }\n\n    getGroupKey() {\n        return this.get('groupKey');\n    }\n\n    getChildrenKeys() {\n        return this.getProps().get('entityKeys');\n    }\n\n    getFilters() {\n        return this.get('filters');\n    }\n\n    get isAspectRatioLocked() {\n        return this.get('lockAspectRatio') || !!this.getProperty('mask');\n    }\n\n    get disallowAspectRatioChange() {\n        const isMasked = !!this.getProperty('mask');\n        const isVideo = this.getProperty('mediaType') === 'video';\n\n        return isMasked || isVideo;\n    }\n\n    rectangle() {\n        return {\n            left: this.left,\n            top: this.top,\n            height: this.height,\n            width: this.width,\n        };\n    }\n\n    getRotate() {\n        const transform = this.get('transform');\n        return transform.rotate || 0;\n    }\n\n    bounds(unclipped = false, ignoreRotation = false) {\n        let rotate = this.transform.rotate;\n\n        if (unclipped) {\n            return roundRect(rectToBounds(this.rectangle(), ignoreRotation ? 0 : rotate));\n        }\n\n        const rect = calculateClippedRectangle(this);\n        const mask = this.getProperty('mask');\n\n        if (mask) {\n            rotate += mask.get('rotate');\n        }\n\n        return roundRect(rectToBounds(rect, ignoreRotation ? 0 : rotate));\n    }\n\n    getProperty(key, design = null) {\n        const props = this.getProps();\n        if (props.has(key)) {\n            let value = props.get(key);\n            if (design) {\n                const resolved = resolveDesignProperty(design, this.getType(), value);\n                if (resolved.match) {\n                    value = resolved.value;\n                }\n            }\n            return value;\n        }\n        return null;\n    }\n\n    isLine() {\n        return this.type === 'SHAPE' && this.getProperty('type') === 'line';\n    }\n\n    isCustomPath() {\n        return this.type === 'SHAPE' && this.getProperty('type') === 'path';\n    }\n\n    canHaveText() {\n        return this.type === 'SHAPE' && SHAPES_WITHOUT_TEXT.indexOf(this.getProperty('type')) === -1;\n    }\n\n    isConnector() {\n        return this.type === 'CONNECTOR';\n    }\n\n    isGroup() {\n        return this.type === 'GROUP';\n    }\n\n    /**\n     * Tests whether this entity is a chart, or a specific type of a chart -\n     * e.g. BAR, BAR_STACKED, WORDCLOUD etc.\n     *\n     * @param {string|undefined} typeMod one of the predefined constants from 'chart_constants.js' file to test against.\n     * If omitted, will check just if this is a chart in general\n     * @returns {boolean} true, if typeMod fits this entity; P.S. false also if this is not even a chart\n     */\n    isChart(typeMod) {\n        if (!typeMod) {\n            return this.type === 'CHART';\n        }\n        const chartData = this.getIn(['props', 'chartData']);\n        if (!chartData) {\n            return false;\n        }\n        return typeMod === `${chartData.get('chart_type_nr')}_${chartData.get('modifier')}`;\n    }\n}\n","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar buildURL = require('./../helpers/buildURL');\nvar buildFullPath = require('../core/buildFullPath');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar createError = require('../core/createError');\n\nmodule.exports = function xhrAdapter(config) {\n  return new Promise(function dispatchXhrRequest(resolve, reject) {\n    var requestData = config.data;\n    var requestHeaders = config.headers;\n\n    if (utils.isFormData(requestData)) {\n      delete requestHeaders['Content-Type']; // Let the browser set it\n    }\n\n    var request = new XMLHttpRequest();\n\n    // HTTP basic authentication\n    if (config.auth) {\n      var username = config.auth.username || '';\n      var password = config.auth.password || '';\n      requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n    }\n\n    var fullPath = buildFullPath(config.baseURL, config.url);\n    request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n    // Set the request timeout in MS\n    request.timeout = config.timeout;\n\n    // Listen for ready state\n    request.onreadystatechange = function handleLoad() {\n      if (!request || request.readyState !== 4) {\n        return;\n      }\n\n      // The request errored out and we didn't get a response, this will be\n      // handled by onerror instead\n      // With one exception: request that using file: protocol, most browsers\n      // will return status as 0 even though it's a successful request\n      if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n        return;\n      }\n\n      // Prepare the response\n      var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n      var responseData = !config.responseType || config.responseType === 'text' ? request.responseText : request.response;\n      var response = {\n        data: responseData,\n        status: request.status,\n        statusText: request.statusText,\n        headers: responseHeaders,\n        config: config,\n        request: request\n      };\n\n      settle(resolve, reject, response);\n\n      // Clean up request\n      request = null;\n    };\n\n    // Handle browser request cancellation (as opposed to a manual cancellation)\n    request.onabort = function handleAbort() {\n      if (!request) {\n        return;\n      }\n\n      reject(createError('Request aborted', config, 'ECONNABORTED', request));\n\n      // Clean up request\n      request = null;\n    };\n\n    // Handle low level network errors\n    request.onerror = function handleError() {\n      // Real errors are hidden from us by the browser\n      // onerror should only fire if it's a network error\n      reject(createError('Network Error', config, null, request));\n\n      // Clean up request\n      request = null;\n    };\n\n    // Handle timeout\n    request.ontimeout = function handleTimeout() {\n      var timeoutErrorMessage = 'timeout of ' + config.timeout + 'ms exceeded';\n      if (config.timeoutErrorMessage) {\n        timeoutErrorMessage = config.timeoutErrorMessage;\n      }\n      reject(createError(timeoutErrorMessage, config, 'ECONNABORTED',\n        request));\n\n      // Clean up request\n      request = null;\n    };\n\n    // Add xsrf header\n    // This is only done if running in a standard browser environment.\n    // Specifically not if we're in a web worker, or react-native.\n    if (utils.isStandardBrowserEnv()) {\n      var cookies = require('./../helpers/cookies');\n\n      // Add xsrf header\n      var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n        cookies.read(config.xsrfCookieName) :\n        undefined;\n\n      if (xsrfValue) {\n        requestHeaders[config.xsrfHeaderName] = xsrfValue;\n      }\n    }\n\n    // Add headers to the request\n    if ('setRequestHeader' in request) {\n      utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n        if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n          // Remove Content-Type if data is undefined\n          delete requestHeaders[key];\n        } else {\n          // Otherwise add header to the request\n          request.setRequestHeader(key, val);\n        }\n      });\n    }\n\n    // Add withCredentials to request if needed\n    if (!utils.isUndefined(config.withCredentials)) {\n      request.withCredentials = !!config.withCredentials;\n    }\n\n    // Add responseType to request if needed\n    if (config.responseType) {\n      try {\n        request.responseType = config.responseType;\n      } catch (e) {\n        // Expected DOMException thrown by browsers not compatible XMLHttpRequest Level 2.\n        // But, this can be suppressed for 'json' type as it can be parsed by default 'transformResponse' function.\n        if (config.responseType !== 'json') {\n          throw e;\n        }\n      }\n    }\n\n    // Handle progress if needed\n    if (typeof config.onDownloadProgress === 'function') {\n      request.addEventListener('progress', config.onDownloadProgress);\n    }\n\n    // Not all browsers support upload events\n    if (typeof config.onUploadProgress === 'function' && request.upload) {\n      request.upload.addEventListener('progress', config.onUploadProgress);\n    }\n\n    if (config.cancelToken) {\n      // Handle cancellation\n      config.cancelToken.promise.then(function onCanceled(cancel) {\n        if (!request) {\n          return;\n        }\n\n        request.abort();\n        reject(cancel);\n        // Clean up request\n        request = null;\n      });\n    }\n\n    if (requestData === undefined) {\n      requestData = null;\n    }\n\n    // Send the request\n    request.send(requestData);\n  });\n};\n","export const INFOGRAPHIC_SETTINGS_SET_VALUE = 'INFOGRAPHIC_SETTINGS_SET_VALUE';\nexport const INFOGRAPHIC_SETTINGS_SET_OPEN_SECTION = 'INFOGRAPHIC_SETTINGS_SET_OPEN_SECTION';\n\n/* Section keys */\nexport const INFOGRAPHIC_SETTINGS_LOGO_SECTION = '0';\nexport const INFOGRAPHIC_SETTINGS_SHARE_BUTTON_SECTION = '1';\nexport const INFOGRAPHIC_SETTINGS_PROJECT_VIEW_EXPERIENCE_SECTION = '2';\nexport const INFOGRAPHIC_SETTINGS_ACCESSIBILITY_SECTION = '3';\n\nexport default {\n    INFOGRAPHIC_SETTINGS_SET_VALUE,\n    INFOGRAPHIC_SETTINGS_SET_OPEN_SECTION,\n    INFOGRAPHIC_SETTINGS_LOGO_SECTION,\n    INFOGRAPHIC_SETTINGS_SHARE_BUTTON_SECTION,\n    INFOGRAPHIC_SETTINGS_PROJECT_VIEW_EXPERIENCE_SECTION,\n    INFOGRAPHIC_SETTINGS_ACCESSIBILITY_SECTION,\n};\n","export default function _nonIterableRest() {\n  throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n}","/* eslint react/no-danger: 0 */\nimport PropTypes from 'prop-types';\n\nimport React, {PureComponent} from 'react';\n\nexport default class BodyText extends PureComponent {\n    static propTypes = {\n        text: PropTypes.string,\n    };\n\n    render() {\n        return (\n            <div className=\"moveable particle body-text ig-theme-group-text\">\n                <div className=\"bodytext\">\n                    <div className=\"innertext\" dangerouslySetInnerHTML={{__html: this.props.text}}/>\n                </div>\n            </div>\n        );\n    }\n}\n","import React from 'react';\n\nimport {FilterElementPropTypes} from '../types';\n\n/**\n * Sepia\n *\n * Yellow and dark monochrome conversion.\n * Used as intermediate processing block for other filters.\n *\n * @param {string} in1 pointer to filter's input (same as SVG *in*)\n * @param {string} result pointer to output (same as SVG *result*)\n */\nexport const Sepia = ({in1, result}) =>\n    <feColorMatrix\n        in={in1}\n        type=\"matrix\"\n        values=\"0.39 0.769 0.189 0  0\n                0.349 0.686 0.168 0  0\n                0.272 0.534 0.131 0  0\n                    0  0 0 1  0\"\n        result={result}\n    />\n;\n\nSepia.propTypes = FilterElementPropTypes;\n","function invariant(condition, message) {\n    if (!condition) {\n        throw new Error('Invariant error: ' + message);\n    }\n}\n\nmodule.exports = invariant;\n","var $ = require('../internals/export');\nvar sign = require('../internals/math-sign');\n\nvar abs = Math.abs;\nvar pow = Math.pow;\n\n// `Math.cbrt` method\n// https://tc39.github.io/ecma262/#sec-math.cbrt\n$({ target: 'Math', stat: true }, {\n  cbrt: function cbrt(x) {\n    return sign(x = +x) * pow(abs(x), 1 / 3);\n  }\n});\n","var $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar anObject = require('../internals/an-object');\nvar toPrimitive = require('../internals/to-primitive');\nvar definePropertyModule = require('../internals/object-define-property');\nvar fails = require('../internals/fails');\n\n// MS Edge has broken Reflect.defineProperty - throwing instead of returning false\nvar ERROR_INSTEAD_OF_FALSE = fails(function () {\n  // eslint-disable-next-line no-undef\n  Reflect.defineProperty(definePropertyModule.f({}, 1, { value: 1 }), 1, { value: 2 });\n});\n\n// `Reflect.defineProperty` method\n// https://tc39.github.io/ecma262/#sec-reflect.defineproperty\n$({ target: 'Reflect', stat: true, forced: ERROR_INSTEAD_OF_FALSE, sham: !DESCRIPTORS }, {\n  defineProperty: function defineProperty(target, propertyKey, attributes) {\n    anObject(target);\n    var key = toPrimitive(propertyKey, true);\n    anObject(attributes);\n    try {\n      definePropertyModule.f(target, key, attributes);\n      return true;\n    } catch (error) {\n      return false;\n    }\n  }\n});\n","import _ from 'lodash';\nimport React, {Component, Fragment} from 'react';\nimport PropTypes from 'prop-types';\nimport cx from 'classnames';\nimport screenfull from 'screenfull';\n\nimport Text from './Text.react.js';\nimport Chart from './Chart.react.js';\nimport Media from './Media.react.js';\nimport Footer from '../../components/InfographicFooter/Footer.react';\n\nimport containerStyle from './style.css';\nimport {exitFullscreen} from './ResponsiveInfographic.actions';\n\nimport Observer from '../../components/IntersectionObserver/Observer';\n\nimport InfographicSideButtons from '../../components/InfographicSideButtons';\nimport {\n    INFOGRAPHIC_SIDE_BUTTON_DOWNLOADS,\n    INFOGRAPHIC_SIDE_BUTTON_SHARE,\n    INFOGRAPHIC_SIDE_BUTTON_FULLSCREEN,\n} from '../../components/InfographicSideButtons/constants';\nimport ShareDialog from '../../components/Dialogs/ShareDialog.react';\n\nexport default class ResponsiveInfographic extends Component {\n    static propTypes = {\n        allowFullscreen: PropTypes.bool,\n        allowToShare: PropTypes.bool,\n        elements: PropTypes.array,\n        embed: PropTypes.bool,\n        footer: PropTypes.object,\n        forcedLiveDataInit: PropTypes.bool,\n        fullscreen: PropTypes.bool,\n        publicDownloads: PropTypes.bool,\n        rtl: PropTypes.bool,\n        showChartsOnScroll: PropTypes.bool,\n        shrinkMargin: PropTypes.number,\n        transparent: PropTypes.bool,\n        zeroPadding: PropTypes.bool,\n        width: PropTypes.number,\n        interactivityHintEnabled: PropTypes.bool,\n        notClickableSideButtons: PropTypes.bool,\n    };\n\n    state = {\n        shareDialogVisible: false,\n    }\n\n    constructor(props) {\n        super(props);\n\n        this.elementsRenderedMap = new Map;\n        this.observer = new Observer();\n    }\n\n    shouldComponentUpdate(nextProps, nextState) {\n        if (this.state.shareDialogVisible === nextState.shareDialogVisible) {\n            return !!nextProps.embed;\n        }\n        return true;\n    }\n\n    _toggleShareDialog = () => {\n        return this.setState({shareDialogVisible: !this.state.shareDialogVisible});\n    }\n\n    _onFullScreenChange = () => {\n        if (screenfull.enabled && !screenfull.isFullscreen) {\n            exitFullscreen();\n        }\n    }\n\n    componentDidMount() {\n        if (screenfull.enabled) {\n            document.addEventListener(screenfull.raw.fullscreenchange, this._onFullScreenChange);\n        }\n    }\n\n    componentWillUnmount() {\n        if (screenfull.enabled) {\n            document.removeEventListener(screenfull.raw.fullscreenchange, this._onFullScreenChange);\n        }\n    }\n\n    getPreviousElementsRendered(index) {\n        return Promise.all(this.props.elements.slice(0, index + 1).map((element) => {\n            return this.elementsRenderedMap.get(element);\n        }));\n    }\n\n    setObserverRoot = (element) => {\n        if (element) {\n            this.observer.setRoot(element);\n        }\n    }\n\n    render() {\n        const {shrinkMargin, elements, publicDownloads, footer} = this.props;\n        if (footer.button) {\n            footer.button.onButtonClick = this._toggleShareDialog;\n        }\n        let sideButtons;\n        if (publicDownloads || this.props.allowToShare || this.props.allowFullscreen) {\n            const sideButtonsArray = [];\n            if (publicDownloads) {\n                sideButtonsArray.push(INFOGRAPHIC_SIDE_BUTTON_DOWNLOADS);\n            }\n            if (this.props.allowFullscreen) {\n                sideButtonsArray.push(INFOGRAPHIC_SIDE_BUTTON_FULLSCREEN);\n            }\n            if (this.props.allowToShare) {\n                sideButtonsArray.push(INFOGRAPHIC_SIDE_BUTTON_SHARE);\n            }\n            sideButtons = (\n                <InfographicSideButtons\n                    sideButtons={sideButtonsArray}\n                    notClickable={this.props.notClickableSideButtons}\n                />\n            );\n        }\n\n        let itemMayBeSecondInLine = false;\n        const items = elements.map((entry, i) => {\n            const isShrunk = !!entry.shrink || _.get(entry, 'custom.shrink') == 2;\n            const style = {};\n\n            if (isShrunk) {\n                if (itemMayBeSecondInLine) {\n                    style.marginLeft = shrinkMargin;\n                }\n                style.width = `calc(50% - ${shrinkMargin / 2}px)`;\n            }\n            let callback;\n            const willBeRendered = entry.type !== 'particle' || (entry.text || entry.title || entry.particle_type === 'separator');\n            if (willBeRendered) {\n                this.elementsRenderedMap.set(entry, new Promise((resolve) => {\n                    callback = resolve;\n                }));\n            }\n            itemMayBeSecondInLine = !itemMayBeSecondInLine && isShrunk;\n            if (entry.type === 'particle' && willBeRendered) {\n                return (\n                    <Text\n                        author={entry.title}\n                        text={entry.text}\n                        type={entry.particle_type}\n                        shrink={isShrunk}\n                        key={i}\n                        style={style}\n                        id={entry.object_id}\n                        onRendered={callback}\n                    />\n                );\n            } else if (entry.type === 'chart') {\n                return (\n                    <Chart\n                        accessibility={entry.accessibility}\n                        element={entry}\n                        id={`chart_${entry.object_id}`}\n                        key={i}\n                        shrink={isShrunk}\n                        style={style}\n                        observer={this.observer}\n                        onRendered={callback}\n                        showChartsOnScroll={this.props.showChartsOnScroll}\n                        previousElementsRendered={this.getPreviousElementsRendered(i)}\n                        forcedLiveDataInit={this.props.forcedLiveDataInit}\n                        interactivityHintEnabled={this.props.interactivityHintEnabled}\n                        embed={this.props.embed}\n                    />\n                );\n            } else if (entry.type === 'media') {\n                return (\n                    <Media\n                        id={entry.object_id}\n                        image={entry.image}\n                        link={entry.url}\n                        tooltipText={entry.tooltipText}\n                        type={entry.media_type}\n                        description={entry.description}\n                        title={entry.title}\n                        shrink={isShrunk}\n                        key={i}\n                        style={style}\n                        width={entry.image_width}\n                        height={entry.height}\n                        url={entry.url}\n                        accessibility={entry.accessibility}\n                        onRendered={callback}\n                    />\n                );\n            }\n        });\n\n        const classNames = [\n            'ig-container',\n            'relative',\n            {zeropadding: this.props.zeroPadding},\n            {transparent: this.props.transparent},\n            {'embed-mode': this.props.embed},\n            {rtl: this.props.rtl},\n            {[containerStyle.fullscreen]: this.props.fullscreen},\n        ];\n        const style = this.props.embed ? {} : {maxWidth: this.props.width};\n        return (\n            <div className={cx(classNames)} style={style} ref={this.setObserverRoot}>\n                {sideButtons}\n                <div className=\"ig-items\">{items}</div>\n                {(footer.logo !== undefined || footer.copyrightNotice !== undefined || footer.button !== undefined) &&\n                    <Fragment>\n                        <div id=\"footer\">\n                            <div className=\"footer-bottom\" style={footer.footerStyle}>\n                                <Footer {...footer}/>\n                            </div>\n                        </div>\n                        {this.state.shareDialogVisible && <ShareDialog type=\"footer\" onClose={this._toggleShareDialog}/>}\n                    </Fragment>\n                }\n            </div>\n        );\n    }\n}\n","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!./Avatar.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!./Avatar.css\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!./Avatar.css\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","import {GRID_SNAPPING_THRESHOLD} from '../base/constants';\nimport visibleGuidesFromMatches from '../util/visibleGuidesFromMatches';\nimport {calculateBoundingBox} from '../util/bounds';\nimport HandlersStore from '../handlers/store';\nimport setVisibleGuides from '../handlers/actions/setVisibleGuides';\nimport {connectorMove} from '../../../app/connectors/modifier/connectorTransform';\n\nexport default function moveEntitiesWithSnapping(editorState, entityKeys, dx, dy) {\n    const {initialBoundingBox} = this.props;\n    // Get all entity data before transition was started.\n    const entities = entityKeys.map(key => HandlersStore.initialEntityPositions.get(key) || editorState.getEntity(key));\n    if (entities.length === 0) {\n        return editorState;\n    }\n\n    let adjustedDx = dx;\n    let adjustedDy = dy;\n\n    if (this.snapIndex) {\n        // Calculate common bounding box bor all selected entities\n        const selectionBoundingBox = calculateBoundingBox(entities, true);\n        if (this.shouldShowObjectGuides) {\n            // If object snapping is on, we need to draw guides\n            const newSelectionBox = {\n                top: selectionBoundingBox.top + dy,\n                left: selectionBoundingBox.left + dx,\n                width: selectionBoundingBox.width,\n                height: selectionBoundingBox.height,\n            };\n            const matches = this.snapIndex.query(newSelectionBox);\n            // Just draw everyting received from index.\n            setVisibleGuides(visibleGuidesFromMatches(matches, newSelectionBox));\n        }\n\n        const matches = this.snapIndex.query({\n            top: selectionBoundingBox.top + dy,\n            left: selectionBoundingBox.left + dx,\n            width: selectionBoundingBox.width,\n            height: selectionBoundingBox.height,\n        }, GRID_SNAPPING_THRESHOLD);\n\n        let verticalSnapHit = null;\n        let horizontalSnapHit = null;\n        for (const m of matches) {\n            if (m.direction === 'vertical' || m.direction === 'vertical-center') {\n                if (!verticalSnapHit || Math.abs(verticalSnapHit.delta) > Math.abs(m.delta)) {\n                    verticalSnapHit = m;\n                    adjustedDx = dx - m.delta;\n                }\n            } else if (m.direction === 'horizontal' || m.direction === 'horizontal-center') {\n                if (!horizontalSnapHit || Math.abs(horizontalSnapHit.delta) > Math.abs(m.delta)) {\n                    horizontalSnapHit = m;\n                    adjustedDy = dy - m.delta;\n                }\n            }\n        }\n    }\n\n    let hasConnector = false;\n    for (const entity of entities) {\n        const put = {\n            top: Math.round(entity.top + adjustedDy),\n            left: Math.round(entity.left + adjustedDx),\n        };\n\n        if (entity.isConnector()) {\n            const connectorMoveResult = connectorMove({\n                editorState,\n                entities,\n                connector: entity,\n                put,\n                adjustedDx,\n                adjustedDy,\n            });\n            hasConnector = hasConnector || true;\n            if (!connectorMoveResult.skip) {\n                editorState = editorState.setEntity(entity.key, connectorMoveResult.put);\n            }\n            continue;\n        }\n\n        editorState = editorState.setEntity(entity.key, put);\n    }\n\n    if (hasConnector) {\n        const allEntityKeys = entities.map(entity => entity.getKey());\n        const newEntities = editorState.getEntities(allEntityKeys);\n        this.updateSelectionBoundBox(calculateBoundingBox(newEntities, true));\n    } else if (initialBoundingBox) {\n        this.updateSelectionBoundBox({\n            top: initialBoundingBox.get('top') + Math.round(adjustedDy),\n            left: initialBoundingBox.get('left') + Math.round(adjustedDx),\n            width: initialBoundingBox.get('width'),\n            height: initialBoundingBox.get('height'),\n            rotation: initialBoundingBox.get('rotation'),\n        });\n    }\n    return editorState;\n}\n","\nvar content = require(\"!!../../../../../node_modules/css-loader/index.js??ref--5-1!./MouseSelectionOverlay.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../../node_modules/css-loader/index.js??ref--5-1!./MouseSelectionOverlay.css\", function() {\n\t\tvar newContent = require(\"!!../../../../../node_modules/css-loader/index.js??ref--5-1!./MouseSelectionOverlay.css\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n  module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n  module.exports = require('./cjs/scheduler.development.js');\n}\n","var $ = require('../internals/export');\n\nvar abs = Math.abs;\nvar sqrt = Math.sqrt;\n\n// `Math.hypot` method\n// https://tc39.github.io/ecma262/#sec-math.hypot\n$({ target: 'Math', stat: true }, {\n  hypot: function hypot(value1, value2) { // eslint-disable-line no-unused-vars\n    var sum = 0;\n    var i = 0;\n    var aLen = arguments.length;\n    var larg = 0;\n    var arg, div;\n    while (i < aLen) {\n      arg = abs(arguments[i++]);\n      if (larg < arg) {\n        div = larg / arg;\n        sum = sum * div * div + 1;\n        larg = arg;\n      } else if (arg > 0) {\n        div = arg / larg;\n        sum += div * div;\n      } else sum += arg;\n    }\n    return larg === Infinity ? Infinity : larg * sqrt(sum);\n  }\n});\n","// this method was added to unscopables after implementation\n// in popular engines, so it's moved to a separate module\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\naddToUnscopables('flat');\n","var classof = require('../internals/classof-raw');\n\n// `thisNumberValue` abstract operation\n// https://tc39.github.io/ecma262/#sec-thisnumbervalue\nmodule.exports = function (value) {\n  if (typeof value != 'number' && classof(value) != 'Number') {\n    throw TypeError('Incorrect invocation');\n  }\n  return +value;\n};\n","var $ = require('../internals/export');\n\nvar floor = Math.floor;\nvar log = Math.log;\nvar LOG2E = Math.LOG2E;\n\n// `Math.clz32` method\n// https://tc39.github.io/ecma262/#sec-math.clz32\n$({ target: 'Math', stat: true }, {\n  clz32: function clz32(x) {\n    return (x >>>= 0) ? 31 - floor(log(x + 0.5) * LOG2E) : 32;\n  }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar forEach = require('../internals/array-for-each');\n\n// `Array.prototype.forEach` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.foreach\n$({ target: 'Array', proto: true, forced: [].forEach != forEach }, {\n  forEach: forEach\n});\n","import PropTypes from 'prop-types';\nimport React, {PureComponent} from 'react';\nimport cx from 'classnames';\n\nimport style from './Avatar.css';\n\nexport default class Avatar extends PureComponent {\n    static propTypes = {\n        avatarClass: PropTypes.string,\n        avatarImage: PropTypes.string,\n        fullName: PropTypes.string,\n        onClick: PropTypes.func,\n        tooltip: PropTypes.string,\n        tooltipClass: PropTypes.string,\n        clickable: PropTypes.bool,\n        greyed: PropTypes.bool,\n        actionColor: PropTypes.string,\n        title: PropTypes.string,\n        showName: PropTypes.bool,\n        border: PropTypes.bool,\n        customCss: PropTypes.string,\n    };\n\n    render() {\n        const {avatarClass, avatarImage, fullName, onClick, tooltip, clickable = true, actionColor, showName, border, customCss} = this.props;\n\n        let actionColorIndicator;\n\n        if (actionColor) {\n            actionColorIndicator = <div className={style.actionColorIndicator} style={{backgroundColor: actionColor}}/>;\n        }\n\n        const imageStyle = {\n            backgroundImage: `url(\"${avatarImage}\")`,\n        };\n\n        const userImage = (\n            <div style={imageStyle} className={style.userImage}/>\n        );\n\n        let avatarTooltip;\n        let userName;\n        if (!showName) {\n            avatarTooltip = (\n                <span className={cx(style.tooltip, this.props.tooltipClass)}\n                      data-tooltip-position=\"bottom\"\n                      data-tooltip={tooltip}\n                />\n            );\n        } else {\n            userName = (\n                <span className={style.userName}>\n                    {fullName}\n                </span>\n            );\n        }\n\n\n        return (\n            <div className={cx(style.user, avatarClass, border && style.hasBorder)}\n                 onClick={clickable ? onClick : undefined} data-tooltip={tooltip} data-tooltip-position=\"bottom\"\n                 css={customCss}\n            >\n                {userImage}\n                {avatarTooltip}\n                {userName}\n                {actionColorIndicator}\n            </div>\n        );\n    }\n}\n","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"._360AiK26uf2XClw9cv3DiB {\\n\\theight: 100%;\\n\\tbox-sizing: border-box;\\n\\tposition: relative;\\n\\tborder-radius: 50%;\\n\\tcolor: #656565;\\n\\tfont-size: 11px;\\n\\tfont-weight: 700;\\n\\tline-height: 35px;\\n\\ttext-align: center;\\n\\tcursor: pointer;\\n    overflow: hidden;\\n}\\n._2m4SU84CScg_oSH1_OwZO4 {\\n    width: 100%;\\n    height: 100%;\\n    border-radius: 50%;\\n    background-size: cover;\\n    background-repeat: no-repeat;\\n}\\n\\n._1ZStJRzcF-PSSYq6fzo_lW {\\n    position: absolute;\\n    top: -10px;\\n    left: -10px;\\n    width: calc(100% + 20px);\\n    height: calc(100% + 20px);\\n    z-index: 10;\\n}\\n._1kAG7-yb5QTbTbmsOASwsS {\\n    position: absolute;\\n    bottom: -35px;\\n    left: 30%;\\n    margin-left: -15%;\\n    width: 70%;\\n    line-height: 16px;\\n    font-size: 13px;\\n    font-weight: 500;\\n}\\n\\n._39uSez4Mv-MBEy41IoYFcg {\\n    position: absolute;\\n    border-radius: 50%;\\n    left: 50%;\\n    height: 13px;\\n    width: 13px;\\n    transform: translate3d(-50%, 0, 0);\\n    top: 75%;\\n    border: 3px solid rgb(57, 57, 57);\\n}\\n\\n._1rQjSZS7hv77gi93vwt1A6 {\\n\\tborder: 3px solid #393939;\\n}\\n\\n._1dX2ME-_jpatal9Kgvo4nw {\\n\\tposition: absolute;\\n\\ttop: 50%;\\n\\tleft: 50%;\\n\\ttransform: translate(-50%, -50%);\\n}\\n\", \"\"]);\n\n// exports\nexports.locals = {\n\t\"user\": \"_360AiK26uf2XClw9cv3DiB\",\n\t\"userImage\": \"_2m4SU84CScg_oSH1_OwZO4\",\n\t\"tooltip\": \"_1ZStJRzcF-PSSYq6fzo_lW\",\n\t\"userName\": \"_1kAG7-yb5QTbTbmsOASwsS\",\n\t\"actionColorIndicator\": \"_39uSez4Mv-MBEy41IoYFcg\",\n\t\"hasBorder\": \"_1rQjSZS7hv77gi93vwt1A6\",\n\t\"initials\": \"_1dX2ME-_jpatal9Kgvo4nw\"\n};","module.exports = require('../internals/global');\n","const slug = require('slug');\n\nmodule.exports = (text) => slug(text, {\n    lower: true,\n    symbols: false,\n}) || '-';\n","import i18n from 'i18next';\nimport React from 'react';\n\nimport {FilterElementPropTypes} from '../types';\nimport {Contrast} from './Contrast.react';\nimport {Saturation} from './Saturation.react';\nimport IntensityOf from './IntensityOf.react';\nimport {Brightness} from './Brightness.react';\n\n/**\n * SanFrancisco\n *\n * Bloom and brighter colors for land of sun and psychodelics\n *\n * @param {string} in1 pointer to filter's input (same as SVG *in*)\n * @param {string} result pointer to output (same as SVG *result*)\n * @param {number} amount filter intensity (0-1)\n */\nconst SanFrancisco = ({in1, amount, result}) =>\n    <>\n        <Contrast amount={1.2} in1={in1}/>\n        <Brightness amount={1.2}/>\n        <Saturation amount={1.5} result=\"adjustments\"/>\n        <feGaussianBlur stdDeviation=\"0.01\"/>\n        <feComposite in2=\"adjustments\" operator=\"arithmetic\" k2=\"0.8\" k3=\"1\" result=\"SanFrancisco\"/>\n        <IntensityOf in1=\"SanFrancisco\" source={in1} amount={amount} result={result}/>\n    </>\n;\n\nSanFrancisco.propTypes = FilterElementPropTypes;\n\nexport default {\n    Component: SanFrancisco,\n    get caption() {\n        return i18n.t('inspector.free.filters.sanfrancisco');\n    },\n    min: 0,\n    max: 1,\n    default: 0.5,\n};\n","export const CHART_SETTINGS_REFRESH = 'CHART_SETTINGS_REFRESH';\nexport const CHART_SETTINGS_OPEN_SHEET = 'CHART_SETTINGS_OPEN_SHEET';\nexport const CHART_SETTINGS_OPEN_SETTINGS_SECTION = 'CHART_SETTINGS_OPEN_SETTINGS_SECTION';\nexport const CHART_SETTINGS_CUSTOM_TYPE_STANDARD = 'CHART_SETTINGS_CUSTOM_TYPE_STANDARD';\nexport const CHART_SETTINGS_CUSTOM_TYPE_COLLAPSE_PANEL = 'CHART_SETTINGS_CUSTOM_TYPE_COLLAPSE_PANEL';\nexport const CHART_SETTINGS_CUSTOM_TYPE_BAR_RACE = 'CHART_SETTINGS_CUSTOM_TYPE_BAR_RACE';\nexport const CHART_SETTINGS_SHAPE_SEARCH = 'CHART_SETTINGS_SHAPE_SEARCH';\nexport const CHART_SETTINGS_LOAD_SETTINGS_FILTER = 'CHART_SETTINGS_LOAD_SETTINGS_FILTER';\nexport const CHART_SETTINGS_TAB_CHANGE = 'CHART_SETTINGS_TAB_CHANGE';\n","import i18n from 'i18next';\nimport React from 'react';\n\nimport {FilterElementPropTypes} from '../types';\n\n/**\n * Basic blur. Eats performance for breakfast\n *\n * @param {string} in1 pointer to filter's input (same as SVG *in*)\n * @param {string} result pointer to output (same as SVG *result*)\n * @param {number} amount amount of blur (0-30) (px)\n */\nconst Blur = ({amount, in1, result}) =>\n    <>\n        <feGaussianBlur\n            stdDeviation={amount}\n            in={in1}\n            result={result}\n        />\n        <feComponentTransfer>\n            <feFuncA type=\"table\" tableValues=\"1 1\"/>\n        </feComponentTransfer>\n    </>\n;\n\nBlur.propTypes = FilterElementPropTypes;\n\nexport default {\n    Component: Blur,\n    get caption() {\n        return i18n.t('inspector.free.filters.blur');\n    },\n    /**\n     * 30   px      if primitiveUnits=\"userSpaceOnUse\"\n     * 0.05 units   if primitiveUnits=\"objectBoundingBox\"\n     * */\n    max: 30,\n    min: 0,\n    default: 0,\n};\n","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".WxRKc5CzC-8fAhmNyZQAH {\\n    background-color: white;\\n    width: 100%;\\n    position: relative;\\n    border-radius: 5px;\\n    background: #fff;\\n    height: 5px;\\n    overflow: hidden;\\n}\\n\\n.UuR2tBZYzy-HwTBU0p0GB {\\n    position: absolute;\\n    top: 0;\\n    left: 0;\\n    bottom: 0;\\n    background: #3195cb;\\n    transition: width 500ms;\\n}\\n\\n.UuR2tBZYzy-HwTBU0p0GB._2oPBTo2719Oi12hkVuIdZq {\\n    position: initial;\\n}\\n\\n._25baY51SvXzngA6a53i3f- {\\n    background: #c32f2f;\\n    position: absolute;\\n    top: 0;\\n    left: 0;\\n    bottom: 0;\\n    right: 0;\\n}\\n\\n.UuR2tBZYzy-HwTBU0p0GB._2oPBTo2719Oi12hkVuIdZq:before {\\n    content: '';\\n    position: absolute;\\n    background-color: inherit;\\n    top: 0;\\n    left: 0;\\n    bottom: 0;\\n    will-change: left, right;\\n    animation: _2oPBTo2719Oi12hkVuIdZq 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite;\\n}\\n.UuR2tBZYzy-HwTBU0p0GB._2oPBTo2719Oi12hkVuIdZq:after {\\n    content: '';\\n    position: absolute;\\n    background-color: inherit;\\n    top: 0;\\n    left: 0;\\n    bottom: 0;\\n    will-change: left, right;\\n    animation: _33LTL7Om2ibPAYul77lVVS 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) infinite;\\n    -webkit-animation-delay: 1.15s;\\n    animation-delay: 1.15s;\\n}\\n\\n@keyframes _2oPBTo2719Oi12hkVuIdZq {\\n    0% {\\n        left: -35%;\\n        right: 100%;\\n    }\\n    60% {\\n        left: 100%;\\n        right: -90%;\\n    }\\n    100% {\\n        left: 100%;\\n        right: -90%;\\n    }\\n}\\n@keyframes _33LTL7Om2ibPAYul77lVVS {\\n    0% {\\n        left: -200%;\\n        right: 100%;\\n    }\\n    60% {\\n        left: 107%;\\n        right: -8%;\\n    }\\n    100% {\\n        left: 107%;\\n        right: -8%;\\n    }\\n}\\n\", \"\"]);\n\n// exports\nexports.locals = {\n\t\"container\": \"WxRKc5CzC-8fAhmNyZQAH\",\n\t\"progress\": \"UuR2tBZYzy-HwTBU0p0GB\",\n\t\"indeterminate\": \"_2oPBTo2719Oi12hkVuIdZq\",\n\t\"error\": \"_25baY51SvXzngA6a53i3f-\",\n\t\"indeterminate-short\": \"_33LTL7Om2ibPAYul77lVVS\"\n};","import PropTypes from 'prop-types';\nimport React, {PureComponent} from 'react';\nimport ImmutablePropTypes from 'react-immutable-proptypes';\n\nimport AccessibleWrapper from '../AccessibleWrapper';\nimport TooltipWrapper from '../TooltipWrapper.react';\n\nconst DEFAULT_FILL_COLOR = '#656565';\n\nexport async function initialPropsForData(data, options) {\n    return {\n        width: options.elementWidth,\n        height: options.elementWidth,\n        props: {\n            fill: `{{fillColor|${DEFAULT_FILL_COLOR}}}`,\n            opacity: 1,\n        },\n    };\n}\n\nexport default class Icon extends PureComponent {\n    static propTypes = {\n        id: PropTypes.string.isRequired,\n        opacity: PropTypes.number,\n        path: PropTypes.string.isRequired,\n        pathWidth: PropTypes.number.isRequired,\n        pathHeight: PropTypes.number.isRequired,\n        fill: PropTypes.string,\n        tooltipText: PropTypes.string,\n        accessibility: ImmutablePropTypes.record,\n        callout: ImmutablePropTypes.map,\n    };\n\n    render() {\n        const {path, pathWidth, pathHeight} = this.props;\n        let {opacity, fill} = this.props;\n        const size = 32;\n        const transformW = Math.max((size - pathWidth) / 2, 0);\n        const transformH = Math.max((size - pathHeight) / 2, 0);\n        const transform = `translate(${transformW} ${transformH})`;\n        fill = fill || DEFAULT_FILL_COLOR;\n\n        const props = {\n            fill: fill,\n            transform: transform,\n            d: path,\n        };\n\n        if (typeof opacity !== 'number') {\n            opacity = 1;\n        }\n\n        const svgStyle = {\n            opacity,\n            // catch events svg level because content can be made from lines without any fill (important for tooltips)\n            pointerEvents: 'auto',\n        };\n\n        let onClick;\n        if (this.props.callout) {\n            if (this.props.callout.get('behaviour') === 'click') {\n                svgStyle.cursor = 'pointer';\n            } else {\n                // iOS < 13 have issues with touch events if element is not link or button.\n                // In result hover type callouts do not work if empty click listener (or cursor: pointer) is not set.\n                onClick = () => {};\n            }\n        }\n\n        let icon = (\n            <svg\n                style={svgStyle}\n                width=\"100%\"\n                height=\"100%\"\n                overflow=\"visible\"\n                viewBox=\"0 0 32 32\"\n                preserveAspectRatio=\"none\"\n                onClick={onClick}\n            >\n                <path {...props}/>\n            </svg>\n        );\n\n        if (this.props.tooltipText) {\n            icon = <TooltipWrapper text={this.props.tooltipText} entityKey={this.props.id}>{icon}</TooltipWrapper>;\n        }\n\n        if (this.props.accessibility && this.props.accessibility.enabled) {\n            const role = this.props.callout ? 'button' : 'img';\n            icon = (\n                <AccessibleWrapper id={this.props.id} role={role} accessibility={this.props.accessibility}>\n                    {icon}\n                </AccessibleWrapper>\n            );\n        }\n\n        return icon;\n    }\n}\n","export const REVISIONS_SHOW = 'REVISIONS_SHOW';\nexport const REVISIONS_HIDE = 'REVISIONS_HIDE';\nexport const REVISION_PREVIEW = 'REVISION_PREVIEW';\nexport const REVISIONS_LOAD_REQUEST = 'REVISIONS_LOAD_REQUEST';\nexport const REVISIONS_LOAD_SUCCEEDED = 'REVISIONS_LOAD_SUCCEEDED';\nexport const REVISIONS_LIST_READY = 'REVISIONS_LIST_READY';\nexport const REVISIONS_DISPLAY_REVISION = 'REVISIONS_DISPLAY_REVISION';\nexport const REVISIONS_PAYWALL_HIT = 'REVISIONS_PAYWALL_HIT';\n\n","/* eslint react/no-danger: 0 */\nimport PropTypes from 'prop-types';\n\nimport React, {PureComponent} from 'react';\n\nexport default class Headline extends PureComponent {\n    static propTypes = {\n        text: PropTypes.string,\n    };\n\n    render() {\n        return (\n            <h1 className=\"moveable particle headline ig-theme-group-text\" data-tip=\"ig-title\">\n                <div className=\"maintitle\">\n                    <div className=\"innertext\" dangerouslySetInnerHTML={{__html: this.props.text}}/>\n                </div>\n            </h1>\n        );\n    }\n}\n","var $ = require('../internals/export');\nvar global = require('../internals/global');\nvar userAgent = require('../internals/user-agent');\n\nvar slice = [].slice;\nvar MSIE = /MSIE .\\./.test(userAgent); // <- dirty ie9- check\n\nvar wrap = function (scheduler) {\n  return function (handler, timeout /* , ...arguments */) {\n    var boundArgs = arguments.length > 2;\n    var args = boundArgs ? slice.call(arguments, 2) : undefined;\n    return scheduler(boundArgs ? function () {\n      // eslint-disable-next-line no-new-func\n      (typeof handler == 'function' ? handler : Function(handler)).apply(this, args);\n    } : handler, timeout);\n  };\n};\n\n// ie9- setTimeout & setInterval additional parameters fix\n// https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#timers\n$({ global: true, bind: true, forced: MSIE }, {\n  // `setTimeout` method\n  // https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#dom-settimeout\n  setTimeout: wrap(global.setTimeout),\n  // `setInterval` method\n  // https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#dom-setinterval\n  setInterval: wrap(global.setInterval)\n});\n","(function() {\n    /* eslint-disable no-undef */\n    __webpack_public_path__ = require('webpack_public_path');\n    /* eslint-enable no-undef */\n})();\n","var fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar split = ''.split;\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n  // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n  // eslint-disable-next-line no-prototype-builtins\n  return !Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n  return classof(it) == 'String' ? split.call(it, '') : Object(it);\n} : Object;\n","var global = require('../internals/global');\n\nmodule.exports = function (a, b) {\n  var console = global.console;\n  if (console && console.error) {\n    arguments.length === 1 ? console.error(a) : console.error(a, b);\n  }\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar hide = require('../internals/hide');\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n  hide(ArrayPrototype, UNSCOPABLES, create(null));\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n  ArrayPrototype[UNSCOPABLES][key] = true;\n};\n","var isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\n// `IsRegExp` abstract operation\n// https://tc39.github.io/ecma262/#sec-isregexp\nmodule.exports = function (it) {\n  var isRegExp;\n  return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) == 'RegExp');\n};\n","import invariant from 'invariant';\n\nimport HandlersStore from '../store';\nimport EditorState from '../../immutable/EditorState';\nimport startResizing from '../actions/startResizing';\nimport resetHandlers from '../actions/resetHandle';\nimport {CALLOUT_HANDLE} from '../../../../app/callouts/constants/config';\nimport resizeCallout from './resizeCallout';\nimport scaleCallout from './scaleCallout';\n\nconst SCALE_ORIGINS = ['nw', 'ne', 'se', 'sw'];\n\nfunction getOrigin(activeHandle) {\n    const handleType = activeHandle.get('type');\n    const matches = CALLOUT_HANDLE.exec(handleType);\n    invariant(matches.length === 2, `invalid callout handler '${handleType}'`);\n    return matches[1];\n}\n\nfunction stopResizing(e) {\n    this.exitCurrentMode();\n    resetHandlers();\n    if (this.props.updateMousePosition) {\n        // update position after transformations as during them not saved\n        this.props.updateMousePosition(e.clientX, e.clientY);\n    }\n}\n\nconst CalloutHandler = {\n    async onMouseMove(e) {\n        const activeHandle = HandlersStore.activeHandle;\n        const startPoint = {x: HandlersStore.pointerDownX, y: HandlersStore.pointerDownY};\n        const endPoint = {x: e.clientX, y: e.clientY};\n        const entities = activeHandle.get('calloutEntities');\n        const entityWithCallout = activeHandle.get('entityWithCallout');\n        invariant(!!entityWithCallout, `callout entity not available for resize`);\n\n        let editorState = this.props.editorState;\n        const originalContent = editorState.getCurrentContent();\n\n        const {scaleX, scaleY} = this.props;\n        const origin = getOrigin(activeHandle);\n        const transformFunc = SCALE_ORIGINS.indexOf(origin) !== -1\n            ? scaleCallout\n            : resizeCallout\n        ;\n        editorState = transformFunc(editorState, entityWithCallout, entities, {\n            activeHandle,\n            origin,\n            startPoint,\n            endPoint,\n            scaleX,\n            scaleY,\n        });\n        if (!editorState) {\n            return;\n        }\n\n        if (!HandlersStore.resizing) {\n            editorState = EditorState.push(editorState, originalContent);\n            startResizing();\n        }\n        this.update(editorState);\n    },\n\n    onMouseUp(e) {\n        stopResizing.call(this, e);\n    },\n\n    onMouseLeave(e) {\n        stopResizing.call(this, e);\n    },\n};\n\nexport default CalloutHandler;\n","'use strict';\nvar $ = require('../internals/export');\nvar $some = require('../internals/array-iteration').some;\nvar sloppyArrayMethod = require('../internals/sloppy-array-method');\n\n// `Array.prototype.some` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.some\n$({ target: 'Array', proto: true, forced: sloppyArrayMethod('some') }, {\n  some: function some(callbackfn /* , thisArg */) {\n    return $some(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n  }\n});\n","export const ZOOM_SWITCH_TO_THUMBS_VIEW = 'zoom-switch-to-thumbs-view';\nexport const ZOOM_SWITCH_TO_SINGLE_VIEW = 'zoom-switch-to-single-view';\nexport const ZOOM_TO_THUMBS = 'zoom-to-thumbs';\nexport const ZOOM_TO_SINGLE = 'zoom-to-single';\n","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar toLength = require('../internals/to-length');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\n// @@match logic\nfixRegExpWellKnownSymbolLogic('match', 1, function (MATCH, nativeMatch, maybeCallNative) {\n  return [\n    // `String.prototype.match` method\n    // https://tc39.github.io/ecma262/#sec-string.prototype.match\n    function match(regexp) {\n      var O = requireObjectCoercible(this);\n      var matcher = regexp == undefined ? undefined : regexp[MATCH];\n      return matcher !== undefined ? matcher.call(regexp, O) : new RegExp(regexp)[MATCH](String(O));\n    },\n    // `RegExp.prototype[@@match]` method\n    // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@match\n    function (regexp) {\n      var res = maybeCallNative(nativeMatch, regexp, this);\n      if (res.done) return res.value;\n\n      var rx = anObject(regexp);\n      var S = String(this);\n\n      if (!rx.global) return regExpExec(rx, S);\n\n      var fullUnicode = rx.unicode;\n      rx.lastIndex = 0;\n      var A = [];\n      var n = 0;\n      var result;\n      while ((result = regExpExec(rx, S)) !== null) {\n        var matchStr = String(result[0]);\n        A[n] = matchStr;\n        if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n        n++;\n      }\n      return n === 0 ? null : A;\n    }\n  ];\n});\n","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!./FlexFooter.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!./FlexFooter.css\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!./FlexFooter.css\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","import {ReduceStore} from 'flux/utils';\nimport {\n    Map,\n    List,\n    OrderedMap,\n} from 'immutable';\nimport invariant from 'invariant';\n\nimport Dispatcher from '../../dispatcher';\n\nimport EditorStateStore from '../../freelayout_editor/stores/EditorStateStore';\nimport {\n    EDITOR_STATE_CHANGE,\n    EXTERNAL_EDITOR_STATE_CHANGE,\n} from '../../freelayout_editor/constants/EditorConstants';\nimport Constants from '../../constants';\nimport DownloadConstants from '../constants/DownloadConstants';\n\nclass DownloadPageStore extends ReduceStore {\n    getInitialState() {\n        return Map({\n            allSelected: true,\n            noneSelected: false,\n            selectAllType: 'check',\n            pages: mapEditorStateToPages(EditorStateStore.editorState),\n        });\n    }\n\n    reduce(state, action) {\n        switch (action.type) {\n            case EDITOR_STATE_CHANGE:\n            case EXTERNAL_EDITOR_STATE_CHANGE:\n            case Constants.INFOGRAPHIC_LOADED: {\n                Dispatcher.waitFor([EditorStateStore.getDispatchToken()]);\n                const {editorState} = EditorStateStore;\n                return state.merge({\n                    noneSelected: false,\n                    pages: mapEditorStateToPages(editorState),\n                });\n            }\n            case DownloadConstants.TOGGLE_PAGE_SELECTION: {\n                const {pageId} = action;\n                let pages = state.get('pages');\n                invariant(pages.has(pageId), 'Requested page does not exist');\n                const page = pages.get(pageId);\n                const checked = !page.get('checked');\n                pages = pages.set(pageId, page.set('checked', checked));\n                let allSelected = state.get('allSelected');\n\n                let selectAllType = state.get('selectAllType');\n\n                const totalCount = pages.count();\n                //This is an O(n) operation\n                const checkedCount = pages.filter(page => page.get('checked')).count();\n\n                selectAllType = totalCount === checkedCount ? 'check' : 'minus';\n                allSelected = checkedCount > 0;\n\n                return state.merge({\n                    allSelected,\n                    selectAllType,\n                    pages,\n                    noneSelected: checkedCount === 0,\n                });\n            }\n            case DownloadConstants.TOGGLE_ALL_PAGE_SELECTION: {\n                const allSelected = !state.get('allSelected');\n                const pages = state.get('pages').map(page => page.set('checked', allSelected));\n                return state.merge({\n                    allSelected,\n                    pages,\n                    selectAllType: 'check',\n                    noneSelected: !allSelected,\n                });\n            }\n            case DownloadConstants.UPDATE_PAGE_RESOLUTION_FLAGS: {\n                const pages = state.get('pages').withMutations(pages => {\n                    action.pages.forEach(page => {\n                        const updatedPage = pages.get(page.id).set('isLowResolution', page.isLowResolution);\n                        pages.set(page.id, updatedPage);\n                    });\n                });\n                return state.set('pages', pages);\n            }\n        }\n        return state;\n    }\n\n    get allSelected() {\n        return this.getState().get('allSelected');\n    }\n\n    get noneSelected() {\n        return this.getState().get('noneSelected');\n    }\n\n    get selectAllType() {\n        return this.getState().get('selectAllType');\n    }\n\n    get pages() {\n        return List(this.getState().get('pages').values());\n    }\n\n    get pagesCount() {\n        return this.getState().get('pages').size;\n    }\n\n    hiddenPageIndexes() {\n        let index = 0;\n        return this.getState().get('pages').reduce((list, page) => {\n            if (!page.get('checked')) {\n                list.push(index);\n            }\n            index++;\n            return list;\n        }, []);\n    }\n\n    pageIsVisible(pageId) {\n        return this.getState().get('pages').get(pageId).get('checked');\n    }\n}\n\nfunction mapEditorStateToPages(editorState) {\n    if (!editorState) {\n        return List();\n    }\n    return OrderedMap().withMutations(mutable => {\n        editorState.getCurrentContent().getBlocks().forEach(block => {\n            const id = block.getKey();\n            mutable.set(id, Map({\n                id,\n                checked: true,\n                isLowResolution: false,\n            }));\n        });\n    });\n}\n\nexport default new DownloadPageStore(Dispatcher);\n","export {default as color, rgb, hsl} from \"./color\";\nexport {default as lab, hcl, lch, gray} from \"./lab\";\nexport {default as cubehelix} from \"./cubehelix\";\n","var anObject = require('../internals/an-object');\nvar aFunction = require('../internals/a-function');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.github.io/ecma262/#sec-speciesconstructor\nmodule.exports = function (O, defaultConstructor) {\n  var C = anObject(O).constructor;\n  var S;\n  return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? defaultConstructor : aFunction(S);\n};\n","import i18n from 'i18next';\nimport React from 'react';\n\nimport {FilterElementPropTypes} from '../types';\nimport {Contrast} from './Contrast.react';\nimport {Saturation} from './Saturation.react';\nimport IntensityOf from './IntensityOf.react';\nimport {Brightness} from './Brightness.react';\n\n/**\n * HDR\n *\n * Flattens the colors, accenting darks and lights\n * to make image seem sharper\n *\n * @param {string} in1 pointer to filter's input (same as SVG *in*)\n * @param {string} result pointer to output (same as SVG *result*)\n * @param {number} amount filter intensity (0-1)\n */\nconst HDR = ({in1, amount, result}) =>\n    <>\n        <feBlend mode=\"screen\" in={in1} in2={in1} result=\"screened\"/>\n        <feBlend mode=\"multiply\" in={in1} in2=\"screened\"/>\n        <Contrast amount={1.2}/>\n        <Saturation amount={1.2} result=\"saturated\"/>\n        <Brightness amount={1.2} result=\"HDR\"/>\n        <IntensityOf in1=\"HDR\" source={in1} amount={amount} result={result}/>\n    </>\n;\n\nHDR.propTypes = FilterElementPropTypes;\n\nexport default {\n    Component: HDR,\n    get caption() {\n        return i18n.t('inspector.free.filters.HDR');\n    },\n    min: 0,\n    max: 1,\n    default: 0.5,\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n  // Chrome 38 Symbol has incorrect toString conversion\n  // eslint-disable-next-line no-undef\n  return !String(Symbol());\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $trim = require('../internals/string-trim').trim;\nvar forcedStringTrimMethod = require('../internals/forced-string-trim-method');\n\n// `String.prototype.trim` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.trim\n$({ target: 'String', proto: true, forced: forcedStringTrimMethod('trim') }, {\n  trim: function trim() {\n    return $trim(this);\n  }\n});\n","import Dispatcher from '../../app/dispatcher';\nimport {ENGAGEMENT_EVENT, ENGAGEMENT_INSCREEN} from './EngagementAnalytics.constants';\n\nconst engagementEvent = (objectId, type, action) => {\n    Dispatcher.dispatch({\n        type: ENGAGEMENT_EVENT,\n        objectId,\n        eventType: type,\n        action,\n    });\n};\n\nconst engagementInscreen = () => {\n    Dispatcher.dispatch({\n        type: ENGAGEMENT_INSCREEN,\n    });\n};\n\nexport {\n    engagementEvent,\n    engagementInscreen,\n};\n","import {flattenEntities} from './flatten';\n\nexport default function isPartOfGroup(editorState, groupKey, entityKey) {\n    if (groupKey === entityKey) {\n        return false;\n    }\n    return !!flattenEntities(editorState, editorState.getEntities(groupKey)).find(e => e.key === entityKey);\n}\n","var typedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Float64Array` constructor\n// https://tc39.github.io/ecma262/#sec-typedarray-objects\ntypedArrayConstructor('Float64', 8, function (init) {\n  return function Float64Array(data, byteOffset, length) {\n    return init(this, data, byteOffset, length);\n  };\n});\n","/* global _ */\nimport EventEmitter from 'event-emitter';\nimport Immutable from 'immutable';\n\nimport DownloadConstants from '../constants/DownloadConstants';\nimport Dispatcher from '../../dispatcher';\n\nvar EVENT_CHANGE = 'change';\n\nvar emitter = EventEmitter({});\n\nvar frameVisible = false;\n\nvar framePosition = Immutable.fromJS({\n    top: 0,\n    left: 0,\n    width: 0,\n    height: 0,\n});\n\nvar objectId;\n\nvar objectType;\n\nvar childIndex;\n\nvar SelectionFrameStore = {\n    addListener: function(callback) {\n        emitter.on(EVENT_CHANGE, callback);\n    },\n\n    removeListener: function(callback) {\n        emitter.off(EVENT_CHANGE, callback);\n    },\n\n    isFrameVisible: function() {\n        return frameVisible;\n    },\n\n    getFramePosition: function() {\n        return framePosition.toJS();\n    },\n\n    getObjectId: function() {\n        return objectId;\n    },\n\n    getObjectType: function() {\n        return objectType;\n    },\n\n    getChildIndex: function() {\n        return childIndex;\n    },\n};\n\nDispatcher.register(function(action) {\n    switch (action.type) {\n        case DownloadConstants.REVEAL_SELECTION_FRAME:\n            frameVisible = true;\n            framePosition = Immutable.fromJS(_.pick(action.position, 'top', 'left', 'width', 'height'));\n            objectId = action.objectId;\n            objectType = action.objectType;\n            childIndex = action.childIndex;\n            emitter.emit(EVENT_CHANGE);\n            break;\n        case DownloadConstants.HIDE_SELECTION_FRAME:\n        case DownloadConstants.TOGGLE_ALL_ELEMENTS_VISIBLE:\n        case DownloadConstants.SET_ELEMENT_VISIBLE:\n        case DownloadConstants.SET_ELEMENT_CHILD_VISIBLE:\n            frameVisible = false;\n            emitter.emit(EVENT_CHANGE);\n            break;\n    }\n});\n\nexport default SelectionFrameStore;\n","'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n  if (config.cancelToken) {\n    config.cancelToken.throwIfRequested();\n  }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n  throwIfCancellationRequested(config);\n\n  // Ensure headers exist\n  config.headers = config.headers || {};\n\n  // Transform request data\n  config.data = transformData(\n    config.data,\n    config.headers,\n    config.transformRequest\n  );\n\n  // Flatten headers\n  config.headers = utils.merge(\n    config.headers.common || {},\n    config.headers[config.method] || {},\n    config.headers\n  );\n\n  utils.forEach(\n    ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n    function cleanHeaderConfig(method) {\n      delete config.headers[method];\n    }\n  );\n\n  var adapter = config.adapter || defaults.adapter;\n\n  return adapter(config).then(function onAdapterResolution(response) {\n    throwIfCancellationRequested(config);\n\n    // Transform response data\n    response.data = transformData(\n      response.data,\n      response.headers,\n      config.transformResponse\n    );\n\n    return response;\n  }, function onAdapterRejection(reason) {\n    if (!isCancel(reason)) {\n      throwIfCancellationRequested(config);\n\n      // Transform response data\n      if (reason && reason.response) {\n        reason.response.data = transformData(\n          reason.response.data,\n          reason.response.headers,\n          config.transformResponse\n        );\n      }\n    }\n\n    return Promise.reject(reason);\n  });\n};\n","var $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar aFunction = require('../internals/a-function');\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar create = require('../internals/object-create');\nvar bind = require('../internals/function-bind');\nvar fails = require('../internals/fails');\n\nvar nativeConstruct = getBuiltIn('Reflect', 'construct');\n\n// `Reflect.construct` method\n// https://tc39.github.io/ecma262/#sec-reflect.construct\n// MS Edge supports only 2 arguments and argumentsList argument is optional\n// FF Nightly sets third argument as `new.target`, but does not create `this` from it\nvar NEW_TARGET_BUG = fails(function () {\n  function F() { /* empty */ }\n  return !(nativeConstruct(function () { /* empty */ }, [], F) instanceof F);\n});\nvar ARGS_BUG = !fails(function () {\n  nativeConstruct(function () { /* empty */ });\n});\nvar FORCED = NEW_TARGET_BUG || ARGS_BUG;\n\n$({ target: 'Reflect', stat: true, forced: FORCED, sham: FORCED }, {\n  construct: function construct(Target, args /* , newTarget */) {\n    aFunction(Target);\n    anObject(args);\n    var newTarget = arguments.length < 3 ? Target : aFunction(arguments[2]);\n    if (ARGS_BUG && !NEW_TARGET_BUG) return nativeConstruct(Target, args, newTarget);\n    if (Target == newTarget) {\n      // w/o altered newTarget, optimization for 0-4 arguments\n      switch (args.length) {\n        case 0: return new Target();\n        case 1: return new Target(args[0]);\n        case 2: return new Target(args[0], args[1]);\n        case 3: return new Target(args[0], args[1], args[2]);\n        case 4: return new Target(args[0], args[1], args[2], args[3]);\n      }\n      // w/o altered newTarget, lot of arguments case\n      var $args = [null];\n      $args.push.apply($args, args);\n      return new (bind.apply(Target, $args))();\n    }\n    // with altered newTarget, not support built-in constructors\n    var proto = newTarget.prototype;\n    var instance = create(isObject(proto) ? proto : Object.prototype);\n    var result = Function.apply.call(Target, instance, args);\n    return isObject(result) ? result : instance;\n  }\n});\n","/* global _ */\nimport i18n from 'i18next';\n\nimport EventEmitter from 'event-emitter';\nimport Immutable from 'immutable';\n\nimport Constants from '../../constants';\nimport DownloadConstants from '../constants/DownloadConstants';\nimport DownloadTypes from '../constants/DownloadTypes';\n\nimport CurrentInfographicStore from '../../main/stores/CurrentInfographicStore';\n\nimport Dispatcher from '../../dispatcher';\nimport chartDefaultsInit from '../../../shared/chart_defaults';\nimport OutlineElement from './ElementRecord';\nimport SeriesElement from './SeriesRecord';\nimport extractDataSets from '../extract_datasets';\nimport elementUtils from '../../../utils/elements';\n\nconst chartDefaults = chartDefaultsInit(i18n);\n\nvar EVENT_CHANGE = 'change';\n\nvar emitter = EventEmitter({});\n\nvar elements = createElementCollection();\nvar allCheckedState = {\n    checked: false,\n    checkType: 'check',\n};\n\nvar hiddenElements = Immutable.Map();\nvar ignoredCharts = Immutable.Map();\n\nlet outlineVisible = true;\n\nvar OutlineStore = {\n    addListener: function(callback) {\n        emitter.on(EVENT_CHANGE, callback);\n    },\n\n    removeListener: function(callback) {\n        emitter.off(EVENT_CHANGE, callback);\n    },\n\n    getElements: function() {\n        const list = elements.toList();\n        if (outlineVisible) {\n            return list;\n        }\n        //assume that -- since the outline is not visibile -- we are interested in displaying all elements\n        //disregarding they've been checked or not.\n        //This is necessary so that HTML view in dowloads always displays all elements,\n        //however keeping their checked states at the same time (so that user can switch to Image or Print tab\n        //without losing her settings)\n        return list.map(element => {\n            const children = element.get('children').map(child => child.set('checked', true));\n            return element.merge({\n                checked: true,\n                children,\n            });\n        });\n    },\n\n    allElementsChecked: function() {\n        return allCheckedState.checked;\n    },\n\n    getAllCheckedType: function() {\n        return allCheckedState.checkType;\n    },\n\n    readHiddenElements: function() {\n        var map = {};\n        if (!outlineVisible) {\n            return map;\n        }\n        elements.forEach(function(element) {\n            if (!element.get('checked')) {\n                map[element.get('id')] = {\n                    hidden: true,\n                    children: [],\n                };\n                return;\n            }\n            var childIndexes = filterHiddenChildren(element);\n            if (childIndexes.length) {\n                map[element.get('id')] = {\n                    hidden: false,\n                    children: childIndexes,\n                };\n            }\n        });\n        return map;\n    },\n\n    elementIsVisible: function(elementId) {\n        var el = mustFindElement(elementId, true);\n        if (!el) {\n            return false;\n        }\n        return el.get('checked');\n    },\n\n    readHiddenChildren: function(elementId) {\n        var element = mustFindElement(elementId);\n        return filterHiddenChildren(element);\n    },\n\n    isOutlineVisible() {\n        return outlineVisible;\n    },\n};\n\nfunction collectElements(infographic) {\n    var allDataSeries = extractDataSets(infographic);\n\n    var titleNumbers = {};\n\n    elements = createElementCollection().withMutations(function(map) {\n        collectOutlineElements(map, infographic, allDataSeries, titleNumbers);\n    });\n\n    elements = elements.withMutations(function(map) {\n        elements.forEach(function(element) {\n            var title = element.get('title');\n            if (title in titleNumbers && titleNumbers[title].count > 1) {\n                title = title + ' #' + (++titleNumbers[title].current);\n                map.set(element.get('id'), element.set('title', title));\n            }\n        });\n    });\n\n    allCheckedState = elementsChecked();\n\n    emitChange();\n}\n\nDispatcher.register(function(action) {\n    switch (action.type) {\n        case DownloadConstants.SETTINGS_LOADED:\n            var settings = action.settings || {};\n            //required for backwards compatibility\n            ignoredCharts = Immutable.fromJS(settings.ignoredDataSets || {});\n\n            hiddenElements = Immutable.fromJS(settings.hiddenElements || {});\n            break;\n        case DownloadConstants.COLLECT_ELEMENTS:\n            collectElements(action.infographic);\n            break;\n        case Constants.INFOGRAPHIC_LOADED:\n            Dispatcher.waitFor([CurrentInfographicStore.getDispatchToken()]);\n            collectElements(CurrentInfographicStore.model);\n            break;\n        case DownloadConstants.SET_ELEMENT_VISIBLE:\n            var key = action.elementId;\n            var element = findElementByKey(key);\n            if (!element) {\n                break;\n            }\n\n            var elementChecked = action.visible;\n\n            var children = element.get('children').map(function(child) {\n                return child.set('checked', action.visible);\n            });\n            element = element.merge({\n                checked: elementChecked,\n                checkType: 'check',\n                children: children,\n            });\n\n            elements = elements.set(key, element);\n\n            allCheckedState = elementsChecked();\n\n            emitChange({\n                type: 'element',\n                elementId: action.elementId,\n                visible: action.visible,\n            });\n            break;\n        case DownloadConstants.SET_ELEMENT_CHILD_VISIBLE:\n            /* eslint-disable no-redeclare */\n            var key = action.elementId;\n            var element = findElementByKey(key);\n            if (!element) {\n                break;\n            }\n            var children = element.get('children');\n            /* eslint-enable no-redeclare */\n            var child = children.get(action.index);\n            if (!child) {\n                break;\n            }\n            child = child.set('checked', action.visible);\n            children = children.set(action.index, child);\n\n            var elementState = elementChildrenChecked(children);\n            elementState.children = children;\n            element = element.merge(elementState);\n\n            elements = elements.set(key, element);\n\n            allCheckedState = elementsChecked();\n\n            emitChange({\n                type: 'child',\n                elementId: action.elementId,\n                index: action.index,\n                visible: action.visible,\n            });\n            break;\n        case DownloadConstants.TOGGLE_ALL_ELEMENTS_VISIBLE:\n            var visible = action.visible;\n            elements = elements.withMutations(function(map) {\n                elements.forEach(function(element) {\n                    var children = element.get('children');\n                    children = children.withMutations(function(mutable) {\n                        children.forEach(function(child, index) {\n                            child = child.set('checked', visible);\n                            mutable.set(index, child);\n                        });\n                    });\n                    element = element.merge({\n                        checked: visible,\n                        checkType: 'check',\n                        children: children,\n                    });\n                    map.set(element.get('id'), element);\n                });\n            });\n\n            allCheckedState = {\n                checked: visible,\n                checkType: 'check',\n            };\n\n            emitChange({\n                type: 'all',\n                visible: visible,\n            });\n            break;\n        case DownloadConstants.CHANGE_TAB: {\n            const {id} = action;\n            outlineVisible = id !== DownloadTypes.TYPE_HTML;\n            emitChange();\n            break;\n        }\n    }\n});\n\nfunction emitChange(payload) {\n    emitter.emit(EVENT_CHANGE, payload);\n}\n\nfunction collectOutlineElements(map, infographic, allDataSeries, titleNumbers) {\n    const elements = infographic.get('elements');\n    elements && elements.forEach && elements.forEach(function(element) {\n        if (!elementUtils.shouldRenderElement(element, 'download')) {\n            return;\n        }\n        var elementId = '' + element.object_id;\n        var objectId = objectIdFromElement(element);\n\n        var checkState = {\n            checked: true,\n            checkType: 'check',\n        };\n\n        if (hiddenElements.has(elementId)) {\n            checkState.checked = !hiddenElements.get(elementId).get('hidden');\n        }\n\n        var allJsSeries;\n        if (elementId in allDataSeries) {\n            allJsSeries = allDataSeries[elementId];\n        } else if (objectId in allDataSeries) {\n            allJsSeries = allDataSeries[objectId];\n        }\n\n        var series;\n\n        if (allJsSeries && allJsSeries.length) {\n            var checkedChildrenCount = 0;\n            var uncheckedChildrenCount = 0;\n            series = Immutable.List().withMutations(function(mutable) {\n                allJsSeries.forEach(function(jsSeries, index) {\n                    var seriesChecked;\n                    if (checkState.checked) {\n                        seriesChecked = true;\n                        if (hiddenElements.has(elementId)) {\n                            seriesChecked = hiddenElements.get(elementId).get('children').indexOf(index) === -1;\n                        } else if (ignoredCharts.has(objectId)) {\n                            seriesChecked = ignoredCharts.get(objectId).indexOf(index) === -1;\n                        }\n\n                        if (seriesChecked) {\n                            checkedChildrenCount++;\n                        } else {\n                            uncheckedChildrenCount++;\n                        }\n                    } else {\n                        seriesChecked = false;\n                    }\n\n                    mutable.push(SeriesElement({\n                        title: jsSeries.title,\n                        checked: seriesChecked,\n                    }));\n                });\n            });\n            checkState = resolveParentCheckedState(checkedChildrenCount, uncheckedChildrenCount);\n        } else {\n            series = Immutable.List();\n        }\n\n        var elementTitle = inferElementTitle(element);\n        if (elementTitle in titleNumbers) {\n            titleNumbers[elementTitle].count++;\n        } else {\n            titleNumbers[elementTitle] = {\n                count: 1,\n                current: 0,\n            };\n        }\n\n        map.set(elementId, OutlineElement(_.extend({\n            id: elementId,\n            title: elementTitle,\n            type: element.type,\n            children: series,\n        }, checkState)));\n    });\n}\n\nfunction createElementCollection() {\n    return Immutable.OrderedMap();\n}\n\nfunction findElementByKey(key) {\n    return elements.get(key, null);\n}\n\nfunction mustFindElement(elementId, nothrow) {\n    var el = findElementByKey('' + elementId);\n    if (!el && !nothrow) {\n        throw new Error('No such element: ' + elementId);\n    }\n    return el;\n}\n\nfunction filterHiddenChildren(element) {\n    return element.get('children').reduce(function(indexes, child, childIndex) {\n        if (!child.get('checked')) {\n            indexes.push(childIndex);\n        }\n        return indexes;\n    }, []);\n}\n\nfunction elementChildrenChecked(children) {\n    var checkedCount = 0;\n    var uncheckedCount = 0;\n    if (!children.size) {\n        return 'all';\n    }\n    children.forEach(function(child) {\n        if (child.get('checked')) {\n            checkedCount++;\n        } else {\n            uncheckedCount++;\n        }\n    });\n    return resolveParentCheckedState(checkedCount, uncheckedCount);\n}\n\nfunction elementsChecked() {\n    if (elements.size === 0) {\n        return {\n            checked: false,\n            checkType: 'check',\n        };\n    }\n    var checkState = {\n        checked: true,\n        checkType: 'check',\n    };\n    var someAreChecked = false;\n    var someAreUnchecked = false;\n    elements.forEach(function(element) {\n        var elementChecked = element.get('checked');\n        var elementCheckType = element.get('checkType');\n        if (elementChecked && elementCheckType === 'check') {\n            someAreChecked = true;\n        } else {\n            someAreUnchecked = true;\n        }\n        if (someAreChecked && someAreUnchecked) {\n            return false;\n        }\n    });\n    if (someAreChecked && someAreUnchecked) {\n        checkState.checkType = 'minus';\n    } else if (someAreChecked) {\n        checkState.checkType = 'check';\n    } else {\n        checkState.checked = false;\n    }\n    return checkState;\n}\n\nfunction resolveParentCheckedState(checked, unchecked) {\n    if (checked === 0) {\n        return {\n            checked: false,\n            checkType: 'check',\n        };\n    }\n    if (unchecked === 0) {\n        return {\n            checked: true,\n            checkType: 'check',\n        };\n    }\n    return {\n        checked: true,\n        checkType: 'minus',\n    };\n}\n\nfunction objectIdFromElement(element) {\n    var type = element.type;\n    var objectId;\n    switch (type) {\n        case 'particle':\n            objectId = element.particle_id;\n            break;\n        case 'chart':\n            objectId = element.chart_id;\n            break;\n        case 'media':\n            objectId = element.object_id;\n            break;\n        default:\n            throw new Error('Unrecognized element type: ' + type);\n    }\n    return objectId;\n}\n\nfunction inferElementTitle(element) {\n    var type = element.type;\n    switch (type) {\n        case 'particle':\n            var particleType = element.particle_type;\n            var particleKey;\n            if (particleType === 'separator') {\n                particleKey = 'separator';\n            } else if (particleType === 'image') {\n                return i18n.t('app.download.media_type_image');\n            }\n\n            if (particleKey) {\n                return i18n.t('app.download.particle_type_separator');\n            }\n\n            var text = (_.unescape((element.text || element.title) || '').replace(/&nbsp;/g, ' ')).trim();\n            if (text) {\n                text = text.replace(/<[^>]+>/ig, '').trim();\n                if (text) {\n                    return text;\n                }\n            }\n            return 'Text';\n        case 'media':\n            var mediaType = element.media_type;\n            var mediaKey;\n            if (mediaType === 'gallery_image' || mediaType === 'flickr') {\n                return i18n.t('app.download.media_type_image');\n            } else if (mediaType === 'twitter') {\n                return i18n.t('app.download.media_type_tweet');\n            } else if (mediaType === 'slideshare') {\n                return i18n.t('app.download.media_type_slides');\n            } else if (mediaType === 'vimeo' || mediaType === 'youtube') {\n                return i18n.t('app.download.media_type_video');\n            } else if (mediaType === 'url') {\n                return i18n.t('app.download.media_type_link');\n            }\n            if (!mediaKey) {\n                return i18n.t('app.download.media_type_unknown');\n            }\n            break;\n        case 'chart': {\n            const key =`${element.chart_type_nr}_${element.modifier}`;\n            if (key in chartDefaults) {\n                return chartDefaults[key].i18n;\n            }\n            return key;\n        }\n        default:\n            return 'Object';\n    }\n}\n\n\nexport default OutlineStore;\n","import chart_constants from './chart_constants';\nimport _ from 'lodash'\n\nexport default _.invert(chart_constants);\n","import {ReduceStore} from 'flux/utils';\nimport {Map, Stack, is, Record} from 'immutable';\n\nimport {calculateBoundingBox} from '../../../components/FreeLayoutEditor/util/bounds';\nimport AppDispatcher from '../../dispatcher';\nimport Selection from '../../../components/FreeLayoutEditor/immutable/Selection';\nimport {\n    EDITOR_STATE_CHANGE,\n    EXTERNAL_EDITOR_STATE_CHANGE,\n    ADD_RAW_ENTITY,\n    ADD_ENTITY,\n    REMOVE_ENTITIES,\n    ADD_BLOCK,\n    SELECTION_STATE_CHANGE,\n    EDITOR_STATE_UNDO,\n    EDITOR_STATE_REDO,\n    SELECTION_BOUNDING_BOX_CHANGE,\n    INITIAL_BOUNDING_BOX_CHANGE,\n    PUSH_BOUND_UNDO_STACK,\n    EXIT_GROUP_EDIT_MODE,\n    ENTER_GROUP_EDIT_MODE,\n} from '../../../app/freelayout_editor/constants/EditorConstants';\nimport {INFOGRAPHIC_LOADED} from '../../../app/constants';\nimport {RESET_HANDLE} from '../../../components/FreeLayoutEditor/handlers/constants';\nimport EditorStateStore from './EditorStateStore';\nimport Rectangle from '../../../components/FreeLayoutEditor/immutable/Rectangle';\n\nconst VersioningData = Record({\n    box: Rectangle(),\n    selection: null,\n});\n\nclass SelectionStateStore extends ReduceStore {\n    getInitialState() {\n        return Map({\n            currentSelection: Selection.createEmpty(),\n            boundingBox: null,\n            initialBoundingBox: null,\n            multiSelectionActive: false,\n            boundUndoStack: Stack(),\n            boundRedoStack: Stack(),\n            groupsInEditMode: Stack(),\n        });\n    }\n\n    reduce(state, action) {\n        switch (action.type) {\n            case INFOGRAPHIC_LOADED: {\n                return state.set('groupsInEditMode', Stack());\n            }\n            case ENTER_GROUP_EDIT_MODE: {\n                return state.update('groupsInEditMode', (groups) => groups.push(action.payload.groupKey));\n            }\n            case EXIT_GROUP_EDIT_MODE: {\n                if (!action.payload.groupKey) {\n                    return state.set('groupsInEditMode', Stack());\n                }\n                return state.update('groupsInEditMode', (groups) => groups.skipUntil(key => key === action.payload.groupKey));\n            }\n            case PUSH_BOUND_UNDO_STACK: {\n                const boundUndoStack = state.get('boundUndoStack').push(VersioningData({\n                    box: state.get('initialBoundingBox'),\n                    selection: state.get('currentSelection'),\n                }));\n                return state.set('boundUndoStack', boundUndoStack);\n            }\n\n            case INITIAL_BOUNDING_BOX_CHANGE: {\n                let rect = action.payload.rect;\n                //if no rect passed, it is not transformation/selection change but we have to force a new bound. (alignment for example)\n                if (!rect) {\n                    rect = getBoundingBox(state.get('currentSelection'));\n                }\n                return state.merge({\n                    initialBoundingBox: Rectangle(rect),\n                    boundingBox: Rectangle(rect),\n                });\n            }\n\n            case SELECTION_BOUNDING_BOX_CHANGE: {\n                let rect = action.payload.rect;\n\n                if (!rect) {\n                    rect = getBoundingBox(state.get('currentSelection'));\n                }\n                return state.set('boundingBox', Rectangle(rect));\n            }\n\n            case SELECTION_STATE_CHANGE: {\n                const {selection: newSelection} = action;\n                const {ignoreGroups} = action.options || {};\n\n                if (is(state.get('currentSelection'), newSelection)) {\n                    return state;\n                }\n\n                let groupsInEditMode = state.get('groupsInEditMode');\n                if (newSelection.isEmpty()) {\n                    return state.merge({\n                        groupsInEditMode: ignoreGroups ? groupsInEditMode : Stack(),\n                        currentSelection: newSelection,\n                    });\n                }\n\n                let boundingBox;\n                let initialBoundingBox;\n                const multiSelectionActive = isMultiSelectionActive(newSelection, EditorStateStore.editorState);\n                if (multiSelectionActive) {\n                    boundingBox = getBoundingBox(newSelection);\n                    initialBoundingBox = boundingBox;\n                }\n\n                if (groupsInEditMode.size && !ignoreGroups) {\n                    // exit group edit if selection has changed to entities that are not part of group\n                    if (newSelection.isEmpty()) {\n                        groupsInEditMode = Stack();\n                    } else {\n                        // check by first entity only as selection should not contain entities from different groups\n                        const entity = EditorStateStore.editorState.getEntity(newSelection.getEntities().first());\n                        groupsInEditMode = groupsInEditMode.skipUntil(groupKey => groupKey === entity.getGroupKey());\n                    }\n                }\n\n                return state.merge({\n                    currentSelection: newSelection,\n                    boundingBox: boundingBox,\n                    initialBoundingBox: initialBoundingBox,\n                    multiSelectionActive,\n                    boundUndoStack: Stack(),\n                    boundRedoStack: Stack(),\n                    groupsInEditMode,\n                });\n            }\n\n            case RESET_HANDLE: {\n                const initialBoundingBox = state.get('boundingBox');\n                const multiSelectionActive = isMultiSelectionActive(state.get('currentSelection'), EditorStateStore.editorState);\n                return state.merge({\n                    initialBoundingBox,\n                    multiSelectionActive,\n                });\n            }\n\n            case EXTERNAL_EDITOR_STATE_CHANGE: {\n                const {editorState: nextEditorState} = action;\n                // Content can be deleted hence we need to adjust the selection accordingly;\n                const newSelection = removeLockedEntitiesFromSelection(adjustSelection(nextEditorState, state.get('currentSelection')), nextEditorState);\n                const multiSelectionActive = isMultiSelectionActive(newSelection, nextEditorState);\n\n                if (multiSelectionActive) {\n                    const newBound = getBoundingBox(newSelection, {editorState: nextEditorState});\n                    if (!is(state.get('currentSelection'), newSelection)) {\n                        return state.merge({\n                            currentSelection: newSelection,\n                            initialBoundingBox: newBound,\n                            boundingBox: newBound,\n                            multiSelectionActive: multiSelectionActive,\n                            boundUndoStack: Stack(),\n                            boundRedoStack: Stack(),\n                        });\n                    }\n\n                    const boundUndoStack = state.get('boundUndoStack').push(VersioningData({\n                        box: state.get('initialBoundingBox'),\n                        selection: state.get('currentSelection'),\n                    }));\n\n                    return state.merge({\n                        currentSelection: newSelection,\n                        initialBoundingBox: newBound,\n                        boundingBox: newBound,\n                        multiSelectionActive: multiSelectionActive,\n                        boundUndoStack,\n                    });\n                }\n\n                return state.merge({\n                    currentSelection: newSelection,\n                    boundingBox: null,\n                    initialBoundingBox: null,\n                    multiSelectionActive: multiSelectionActive,\n                    boundUndoStack: Stack(),\n                    boundRedoStack: Stack(),\n                });\n            }\n\n            case EDITOR_STATE_CHANGE:\n            case REMOVE_ENTITIES:\n            case EDITOR_STATE_UNDO:\n            case EDITOR_STATE_REDO: {\n                AppDispatcher.waitFor([EditorStateStore.getDispatchToken()]);\n                const nextEditorState = action.editorState ?? EditorStateStore.editorState;\n\n                if (action.type === REMOVE_ENTITIES) {\n                    const {groupKeysToExit} = EditorStateStore;\n                    if (groupKeysToExit && !groupKeysToExit.isEmpty()) {\n                        const groupKey = groupKeysToExit.pop();\n                        state = state.update('groupsInEditMode', (groups) => groups.skipUntil(key => key === groupKey));\n                    }\n                }\n\n                // Content can be deleted hence we need to adjust the selection accordingly;\n                const newSelection = adjustSelection(nextEditorState, state.get('currentSelection'));\n\n                const multiSelectionActive = isMultiSelectionActive(newSelection, nextEditorState);\n                if (multiSelectionActive) {\n                    if (!state.get('boundingBox')) {\n                        const newBound = getBoundingBox(newSelection, {editorState: nextEditorState});\n                        return state.merge({\n                            currentSelection: newSelection,\n                            initialBoundingBox: Rectangle(newBound),\n                            boundingBox: Rectangle(newBound),\n                            multiSelectionActive: multiSelectionActive,\n                            boundUndoStack: Stack(),\n                            boundRedoStack: Stack(),\n                        });\n                    }\n\n                    if (action.type === EDITOR_STATE_UNDO) {\n                        const boundUndoStack = state.get('boundUndoStack');\n                        const nextBound = boundUndoStack.size && boundUndoStack.peek();\n                        const selectionChanged = nextBound && !is(nextBound.selection, newSelection);\n                        const newBound = nextBound && !selectionChanged && nextBound.box || getBoundingBox(newSelection, {editorState: nextEditorState});\n                        return state.merge({\n                            currentSelection: newSelection,\n                            initialBoundingBox: Rectangle(newBound),\n                            boundingBox: Rectangle(newBound),\n                            boundUndoStack: boundUndoStack.size && boundUndoStack.pop() || Stack(),\n                            boundRedoStack: state.get('boundRedoStack').push(VersioningData({\n                                box: state.get('initialBoundingBox'),\n                                selection: state.get('currentSelection'),\n                            })),\n                        });\n                    }\n\n                    if (action.type === EDITOR_STATE_REDO) {\n                        const boundRedoStack = state.get('boundRedoStack');\n                        const nextBound = boundRedoStack.size && boundRedoStack.peek();\n                        const selectionChanged = nextBound && !is(nextBound.selection, newSelection);\n                        const newBound = nextBound && !selectionChanged && nextBound.box || getBoundingBox(newSelection, {editorState: nextEditorState});\n                        return state.merge({\n                            currentSelection: newSelection,\n                            initialBoundingBox: Rectangle(newBound),\n                            boundingBox: Rectangle(newBound),\n                            boundRedoStack: boundRedoStack.size && boundRedoStack.pop() || Stack(),\n                            boundUndoStack: state.get('boundUndoStack').push(VersioningData({\n                                box: state.get('initialBoundingBox'),\n                                selection: state.get('currentSelection'),\n                            })),\n                        });\n                    }\n\n                    const someEntitiesWhereDeleted = !is(state.get('currentSelection'), newSelection);\n                    if (someEntitiesWhereDeleted) {\n                        const newBound = getBoundingBox(newSelection, {editorState: nextEditorState});\n                        return state.merge({\n                            currentSelection: newSelection,\n                            initialBoundingBox: Rectangle(newBound),\n                            boundingBox: Rectangle(newBound),\n                            boundUndoStack: Stack(),\n                            boundRedoStack: Stack(),\n                        });\n                    }\n\n                    return state.merge({\n                        currentSelection: newSelection,\n                    });\n                }\n\n                return state.merge({\n                    currentSelection: newSelection,\n                    boundingBox: null,\n                    initialBoundingBox: null,\n                    multiSelectionActive: false,\n                    boundUndoStack: Stack(),\n                    boundRedoStack: Stack(),\n                });\n            }\n\n            case ADD_BLOCK:\n            case ADD_ENTITY:\n            case ADD_RAW_ENTITY: {\n                const {selectionState: newSelection, editorState: nextEditorState} = action;\n                let boundingBox = {};\n                let initialBoundingBox = {};\n                const multiSelectionActive = isMultiSelectionActive(newSelection, nextEditorState);\n\n                if (multiSelectionActive) {\n                    boundingBox = getBoundingBox(newSelection, {editorState: nextEditorState});\n                    initialBoundingBox = boundingBox;\n                }\n                const groupsInEditMode = action.type === ADD_BLOCK ? Stack() : state.get('groupsInEditMode');\n                return state.merge({\n                    currentSelection: newSelection,\n                    boundingBox: boundingBox,\n                    initialBoundingBox: initialBoundingBox,\n                    multiSelectionActive,\n                    boundUndoStack: Stack(),\n                    boundRedoStack: Stack(),\n                    groupsInEditMode,\n                });\n            }\n\n            default:\n                return state;\n        }\n    }\n\n    get groupsInEditMode() {\n        return this.getState().get('groupsInEditMode');\n    }\n\n    get groupBeingEdited() {\n        return this.getState().get('groupsInEditMode').first();\n    }\n\n    get currentSelection() {\n        return this.getState().get('currentSelection');\n    }\n\n    get boundingBox() {\n        return this.getState().get('boundingBox');\n    }\n\n    get initialBoundingBox() {\n        return this.getState().get('initialBoundingBox');\n    }\n\n    get multiSelectionActive() {\n        return this.getState().get('multiSelectionActive');\n    }\n}\n\nfunction isMultiSelectionActive(selection, editorState) {\n    return selection.getEntities().filter(eKey => {\n        return !editorState.getEntity(eKey).getLocked();\n    }).size > 1;\n}\n\n// Some object may be deleted, we should delete all references\n// to deleted items in selection.\nfunction adjustSelection(editorState, selection) {\n    let needsAdjustment = false;\n\n    const remainingContentKeys = selection.getEntities().filter(key => {\n        if (editorState.getCurrentContent().containsEntity(key)) return true;\n        needsAdjustment = true;\n        return false;\n    });\n\n    const remainingBlockKeys = selection.getBlocks().filter(key => {\n        if (editorState.getCurrentContent().getBlock(key)) return true;\n        needsAdjustment = true;\n        return false;\n    });\n\n    if (!needsAdjustment) return selection;\n    return Selection.createFromBlockAndEntityKeys(remainingBlockKeys, remainingContentKeys);\n}\n\nfunction removeLockedEntitiesFromSelection(selection, nextEditorState) {\n    const keys = selection.getEntities().filter(key => !nextEditorState.getEntity(key).getLocked());\n    if (selection.getEntities().size === keys.size) {\n        return selection;\n    }\n    return Selection.createFromEntityKeys(keys);\n}\n\nfunction getBoundingBox(selection, options={}) {\n    const editorState = options.editorState || EditorStateStore.editorState;\n    const entitiesToMove = editorState.getEntities(selection.getEntities());\n    const {top, left, width, height} = calculateBoundingBox(entitiesToMove);\n\n    return Rectangle({\n        left,\n        top,\n        width,\n        height,\n        rotation: options.rotation || 0,\n    });\n}\n\nconst selectionStateStore = new SelectionStateStore(AppDispatcher);\n\nexport default selectionStateStore;\n","import {SET_CREATED_CONNECTOR} from '../constants';\nimport Dispatcher from '../../../../app/dispatcher';\n\nexport default function setCreatedConnector(entityKey) {\n    Dispatcher.dispatch({\n        type: SET_CREATED_CONNECTOR,\n        entityKey,\n    });\n}\n","/* global PREZIGRAM */\nimport _ from 'lodash';\nimport {is} from 'immutable';\nimport {glassboxWebPrezigram} from '@prezi/client-logger-module';\n\nimport EditorState from '../../immutable/EditorState';\nimport allHandlers from '../allHandlers';\nimport {\n    RESIZE,\n    RESIZE_SIDE,\n    MOVE,\n    ROTATE,\n    RESIZE_WIDTH,\n    SCALE_TEXT,\n} from './transformations';\nimport {\n    GRID_SNAPPING_THRESHOLD,\n    GRID_SNAPPING_VISIBLE_THRESHOLD,\n} from '../../base/constants';\nimport {calculateBoundingBox, rectToBounds} from '../../util/bounds';\nimport visibleGuidesFromMatches from '../../util/visibleGuidesFromMatches';\nimport {\n    Point,\n    centerOf,\n    convertPointToBlock,\n} from './utils';\nimport HandlersStore from '../store';\nimport setVisibleGuides from '../actions/setVisibleGuides';\nimport resetHandlers from '../actions/resetHandle';\nimport setActiveHandle from '../actions/setActiveHandle';\nimport setCreatedConnector from '../actions/setCreatedConnector';\nimport updateActiveHandle from '../actions/updateActiveHandle';\nimport setConnectorTargetEntity from '../actions/setConnectorTargetEntity';\nimport startResizing from '../actions/startResizing';\nimport bulkTransform from './bulkTransform';\nimport singleTransform from './singleTransform';\nimport pushBoundUndoStack from '../../../../app/freelayout_editor/actions/pushBoundUndoStack';\nimport {logModifyObjectWebJs, logAddObjectConnectorWebJs} from '../../../../../../glassbox/client_logger';\nimport {modify_object_action} from '../../../../../../glassbox/logger_constants';\nimport getEditorStateWithNewGroupBounds from '../../../../app/freelayout_editor/components/contents/Group/utils/getEditorStateWithNewGroupBounds';\nimport {flattenEntities} from '../../../../app/freelayout_editor/components/contents/Group/utils/flatten';\nimport {resize, create} from '../../../../app/connectors/components/contents/Connector/helper';\nimport {bringToFrontOfEntity} from '../../modifier/InfographicEditorUtils';\nimport addEntities from '../../modifier/addEntities';\nimport {connectorTransform} from '../../../../app/connectors/modifier/connectorTransform';\nimport adjustCalloutOnItemChange from '../../../../app/callouts/utils/adjustCalloutOnItemChange';\nimport shouldAdjustCalloutInnerPadding from '../../../../app/callouts/utils/shouldAdjustCalloutInnerPadding';\nimport getProjectIdFromUrl from '../../util/getProjectIdFromUrl';\n\nfunction stopDragging(e) {\n    this.exitCurrentMode();\n    resetHandlers();\n    if (this.props.updateMousePosition) {\n        // update position after transformations as during them not saved\n        this.props.updateMousePosition(e.clientX, e.clientY);\n    }\n}\n\nfunction centerOfHandle(entity, handle) {\n    const sb = allHandlers.handlerForKey(handle, entity.getKey());\n    return centerOf(sb.getBoundingClientRect());\n}\n\nfunction snap(newCoordinates, activeHandle) {\n    if (!this.snapIndex) {\n        return;\n    }\n\n    const matches = this.snapIndex.queryPoint({\n        y: newCoordinates.y,\n        x: newCoordinates.x,\n    }, GRID_SNAPPING_THRESHOLD);\n\n    let minDx = Infinity;\n    let minDy = Infinity;\n    for (const m of matches) {\n        if (m.direction === 'vertical' && Math.abs(minDx) > Math.abs(m.delta)) minDx = m.delta;\n        if (m.direction === 'horizontal' && Math.abs(minDy) > Math.abs(m.delta)) minDy = m.delta;\n    }\n    if (minDx !== Infinity) {\n        newCoordinates.x -= minDx - activeHandle.get('dx') / this.props.scaleX;\n    }\n    if (minDy !== Infinity) {\n        newCoordinates.y -= minDy - activeHandle.get('dy') / this.props.scaleY;\n    }\n}\n\nfunction guides(newCoordinates, newEntity) {\n    if (!this.snapIndex || !this.shouldShowObjectGuides) {\n        return;\n    }\n\n    const matches = this.snapIndex.queryPoint({\n        y: newCoordinates.y,\n        x: newCoordinates.x,\n    }, GRID_SNAPPING_VISIBLE_THRESHOLD);\n    const newSelectionBox = rectToBounds({\n        left: newEntity.getLeft(),\n        top: newEntity.getTop(),\n        height: newEntity.getHeight(),\n        width: newEntity.getWidth(),\n    }, newEntity.getTransform().rotate);\n\n    setVisibleGuides(visibleGuidesFromMatches(matches, newSelectionBox));\n}\n\nfunction logActions({editorState, objectAction, currentSelection, multiSelectionActive}) {\n    if (['RESIZESIDE', 'FROM', 'TO'].indexOf(objectAction) !== -1) {\n        objectAction = modify_object_action.RESIZE;\n    } else if (!_.values(modify_object_action).includes(objectAction)) {\n        objectAction = modify_object_action.OTHER;\n    }\n\n    let key = '';\n    let type;\n    //create undo snapshot\n    if (multiSelectionActive) {\n        pushBoundUndoStack();\n        type = 'MULTIPLE';\n    } else {\n        key = currentSelection.getEntities().first();\n        type = editorState.getEntity(key).get('type').toUpperCase();\n    }\n\n    if (PREZIGRAM) {\n        if (objectAction === modify_object_action.MOVE) {\n            glassboxWebPrezigram.logDragObject({\n                prezi_oid: getProjectIdFromUrl(),\n                editing_mode: 'DEFAULT',\n                topic_relationship: 'GRAM',\n                object_id: key,\n                object_type: type,\n            });\n        } else {\n            glassboxWebPrezigram.logModifyObject({\n                prezi_oid: getProjectIdFromUrl(),\n                editing_mode: 'DEFAULT',\n                topic_relationship: 'GRAM',\n                object_id: key,\n                object_type: type,\n                modify_action: objectAction,\n            });\n        }\n    } else {\n        logModifyObjectWebJs({\n            project_id: window.location.href.split('/').pop(),\n            object_id: key,\n            object_type: type,\n            modify_object_action: objectAction,\n        });\n    }\n}\n\nconst HandleDragHandler = {\n    onMouseMove(e) {\n        let {editorState, currentSelection, initialBoundingBox, multiSelectionActive} = this.props;\n        const activeHandle = HandlersStore.activeHandle;\n        if (!HandlersStore.pointerDown) {\n            stopDragging.call(this, e);\n            return;\n        }\n\n        //this means we've just started resizing/rotating something\n        if (!HandlersStore.resizing) {\n            const objectAction = activeHandle.get('type').toUpperCase();\n\n            // we don't know created connector's key here\n            // and these logs are all about modifying\n            if (objectAction !== 'CONNECTORCREATE') {\n                logActions({\n                    editorState,\n                    objectAction,\n                    currentSelection,\n                    multiSelectionActive,\n                });\n            }\n\n            editorState = EditorState.push(editorState, editorState.getCurrentContent());\n        }\n        const activeEntities = HandlersStore.initialEntityPositions || flattenEntities(editorState, editorState.getEntities(currentSelection.getEntities()));\n        const current = activeEntities.find(e => e.getKey() === activeHandle.get('key'));\n        const group = current && current.isGroup() ? current : null;\n\n        if (!multiSelectionActive && group) {\n            multiSelectionActive = true;\n            initialBoundingBox = group.rectangle();\n            initialBoundingBox.rotation = group.getTransform().rotate;\n        }\n\n        if (HandlersStore.pointerDownX < 0 || HandlersStore.pointerDownY < 0) {\n            const pointerDownLocation = {\n                x: e.clientX,\n                y: e.clientY,\n            };\n            setActiveHandle(HandlersStore.activeHandle, activeEntities, pointerDownLocation);\n        }\n\n        const blockRect = activeHandle.get('blockRect');\n        const startCoordinates = convertPointToBlock(Point(HandlersStore.pointerDownX, HandlersStore.pointerDownY), blockRect, this.props.scaleX, this.props.scaleY);\n        const newCoordinates = convertPointToBlock(Point(e.clientX, e.clientY), blockRect, this.props.scaleX, this.props.scaleY);\n\n        if (activeHandle.get('type') === 'connectorCreate') {\n            updateActiveHandle(newCoordinates);\n            startResizing();\n\n            const content = editorState.getCurrentContent();\n            const block = content.getBlock(current.getBlockKey());\n\n            if (HandlersStore.createdConnectorKey === null) { // create a new connector\n                const {entity, targetEntity} = create(startCoordinates, newCoordinates, current, block, content.getPageSize(), this.props.groupsInEditMode);\n                setConnectorTargetEntity(targetEntity);\n                const addOptions = {};\n                if (entity.groupKey) {\n                    addOptions.groupBeingEdited = entity.groupKey;\n                }\n                const addEntitiesResult = addEntities(editorState, [entity], addOptions);\n                const {entityKeys} = addEntitiesResult;\n                let newEditorState = addEntitiesResult.editorState;\n                const createdConnectorKey = entityKeys[0];\n                if (PREZIGRAM) {\n                    glassboxWebPrezigram.logInsertConnector({\n                        prezi_oid: getProjectIdFromUrl(),\n                    });\n                } else {\n                    logAddObjectConnectorWebJs({\n                        project_id: window.location.href.split('/').pop(),\n                        object_id: createdConnectorKey,\n                    });\n                }\n                setCreatedConnector(createdConnectorKey);\n                if (entity.groupKey) {\n                    newEditorState = getEditorStateWithNewGroupBounds(newEditorState, block.getEntity(createdConnectorKey));\n                }\n                return this.update(EditorState.set(newEditorState));\n            }\n\n            const connector = block.getEntity(HandlersStore.createdConnectorKey);\n            snap.call(this, newCoordinates, activeHandle);\n            const {changes, targetEntity} = resize('to', newCoordinates, connector, block, content.getPageSize(), this.props.groupsInEditMode, e.shiftKey);\n            let newEditorState = editorState.setEntity(connector.getKey(), changes);\n            setConnectorTargetEntity(targetEntity);\n            const newEntity = newEditorState.getEntity(connector.getKey());\n            guides.call(this, newCoordinates, newEntity);\n            if (this.props.groupsInEditMode.first()) {\n                newEditorState = getEditorStateWithNewGroupBounds(newEditorState, newEntity);\n            }\n            return this.update(EditorState.set(newEditorState));\n        }\n\n        if (current && current.isConnector()) {\n            startResizing();\n            const connectionType = activeHandle.get('type');\n            const content = editorState.getCurrentContent();\n            const block = content.getBlock(current.getBlockKey());\n\n            snap.call(this, newCoordinates, activeHandle);\n            const {changes, targetEntity} = resize(connectionType, newCoordinates, current, block, content.getPageSize(), this.props.groupsInEditMode, e.shiftKey);\n            let newEditorState = editorState.setEntity(current.getKey(), changes);\n            if (targetEntity !== null && connectionType === 'to') {\n                newEditorState = bringToFrontOfEntity(newEditorState, targetEntity.getKey(), current.getKey());\n            }\n            setConnectorTargetEntity(targetEntity);\n            const newEntity = newEditorState.getEntity(current.getKey());\n            guides.call(this, newCoordinates, newEntity);\n            if (this.props.groupsInEditMode.first()) {\n                newEditorState = getEditorStateWithNewGroupBounds(newEditorState, newEntity);\n            }\n            return this.update(EditorState.set(newEditorState));\n        }\n\n        let action = MOVE;\n        let rotationOrigin = null;\n\n        const updateOptions = {};\n        switch (activeHandle.get('type')) {\n            case 'resize':\n                action = RESIZE;\n                break;\n            case 'resizeSide':\n                action = RESIZE | RESIZE_SIDE;\n                break;\n            case 'resizeWidth':\n                action = RESIZE | RESIZE_WIDTH;\n                break;\n            case 'scaleText':\n                action = RESIZE | SCALE_TEXT;\n                break;\n            case 'rotate':\n                action = ROTATE;\n                break;\n            case 'begin':\n            case 'end':\n                action = RESIZE | ROTATE;\n                break;\n        }\n\n        let newEditorState;\n\n        if (multiSelectionActive) {\n            const {editorState: transformedEditorState, boundingBoxRect} = bulkTransform(\n                editorState,\n                activeEntities,\n                initialBoundingBox,\n                action,\n                {\n                    startCoordinates,\n                    newCoordinates,\n                }\n            );\n            newEditorState = transformedEditorState;\n\n            if (boundingBoxRect) {\n                this.updateSelectionBoundBox(boundingBoxRect);\n            }\n        } else {\n            const entity = activeEntities.first();\n            const lineHandleIndex = ['begin', 'end'].indexOf(activeHandle.get('type'));\n            if (!HandlersStore.resizing && lineHandleIndex !== -1) {\n                const originCenter = centerOfHandle(entity, ['end', 'begin'][lineHandleIndex]);\n                const adjustedOriginCenter = Point(\n                    originCenter.x + activeHandle.get('dx'),\n                    originCenter.y + activeHandle.get('dy')\n                );\n                // Element is rotated around origin center,\n                // but rotation delta is calculated based on origin center adjusted by cursor deltas\n                this._rotationOrigin = convertPointToBlock(originCenter, blockRect, this.props.scaleX, this.props.scaleY);\n                this._rotationOriginAdjusted = convertPointToBlock(adjustedOriginCenter, blockRect, this.props.scaleX, this.props.scaleY);\n            }\n\n            if (action & RESIZE && !entity.getCalloutKey()) {\n                // Snap\n                snap.call(this, newCoordinates, activeHandle);\n            }\n\n            if (action & RESIZE | ROTATE) {\n                rotationOrigin = this._rotationOrigin;\n            }\n\n            const adjustCalloutInnerPadding = shouldAdjustCalloutInnerPadding(\n                entity,\n                activeHandle.get('entityWithCallout') ? activeHandle.get('entityWithCallout').getCallout() : undefined,\n                activeHandle.get('calloutEntities'),\n                blockRect,\n                {x: HandlersStore.pointerDownX, y: HandlersStore.pointerDownY}\n            );\n\n            const proportional = e.altKey || (entity.getCalloutKey() && !adjustCalloutInnerPadding);\n            const changes = singleTransform(entity, action, {\n                startCoordinates,\n                newCoordinates,\n                altKey: proportional,\n                shiftKey: e.shiftKey,\n                rotationOriginAdjusted: this._rotationOriginAdjusted,\n                rotationOrigin: rotationOrigin,\n                entityOverrides: HandlersStore.entityOverrides,\n                editorState,\n            });\n\n            newEditorState = editorState.setEntity(entity.getKey(), changes);\n            editorState = connectorTransform(editorState, entity);\n\n            if (entity.getGroupKey()) {\n                const group = newEditorState.getEntity(entity.getGroupKey());\n                const newBounds = calculateBoundingBox(newEditorState.getEntities(group.getChildrenKeys()));\n                newEditorState = newEditorState.setEntity(group.getKey(), {...newBounds});\n            }\n\n            if (entity.getCalloutKey()) {\n                let calloutPaddings = activeHandle.get('calloutPaddings');\n                if (adjustCalloutInnerPadding) {\n                    // if inner callout resize handler used then paddings are adjusted if not callout with fixed paddings\n                    const alignment = activeHandle.get('entityWithCallout').getCallout().get('alignment');\n                    const put = {};\n                    const between = calloutPaddings.get(alignment).get('between');\n                    if (alignment === 'horizontal') {\n                        put.horizontal = {between: Math.max(0, between + entity.width - changes.width)};\n                    } else {\n                        put.vertical = {between: Math.max(0, between + entity.height - changes.height)};\n                    }\n                    calloutPaddings = calloutPaddings.mergeDeep(put);\n                }\n                newEditorState = adjustCalloutOnItemChange(\n                    newEditorState,\n                    entity,\n                    calloutPaddings\n                );\n            }\n\n            const newEntity = newEditorState.getEntity(entity.getKey());\n\n            updateOptions.entityOverrides = {\n                [newEntity.key]: {\n                    left: newEntity.left,\n                    top: newEntity.top,\n                    height: newEntity.height,\n                    width: newEntity.width,\n                },\n            };\n            if (action & RESIZE && !entity.getCalloutKey()) {\n                guides.call(this, newCoordinates, newEntity);\n            }\n            if (newEntity.groupKey) {\n                newEditorState = getEditorStateWithNewGroupBounds(newEditorState, newEntity);\n            }\n\n            updateOptions.changes = {\n                entities: {\n                    [newEntity.key]: (function(prevEntity, nextEntity) {\n                        const put = {};\n                        for (const prop of ['left', 'top', 'width', 'height', 'transform']) {\n                            if (!is(prevEntity[prop], nextEntity[prop])) {\n                                if (typeof prevEntity[prop] === 'object') {\n                                    put[prop] = diffObjects(prevEntity[prop], nextEntity[prop]);\n                                } else {\n                                    put[prop] = nextEntity[prop];\n                                }\n                            }\n                        }\n                        return put;\n                    })(entity, newEntity),\n                },\n            };\n        }\n\n        if (group) {\n            newEditorState = getEditorStateWithNewGroupBounds(newEditorState, group);\n        }\n        startResizing();\n        this.update(EditorState.set(newEditorState), updateOptions);\n    },\n\n    onMouseUp(e) {\n        stopDragging.call(this, e);\n    },\n};\n\nfunction diffObjects(a, b) {\n    const diff = {};\n    for (const key of a.keys()) {\n        if (!is(a[key], b[key])) {\n            diff[key] = b[key];\n        }\n    }\n    for (const key of b.keys()) {\n        if (!(key in a)) {\n            diff[key] = b[key];\n        }\n    }\n    return diff;\n}\n\nexport default HandleDragHandler;\n","import {List, Map} from 'immutable';\n\nimport allHandlers from '../allHandlers';\nimport {selectionMouseDown} from '../../MouseSelection/actions';\nimport {GridSettings} from '../../../../common/GridHelpers';\nimport {EntityIndex, GridIndex} from '../../snapIndex';\nimport {\n    GRID_SNAPPING_VISIBLE_THRESHOLD,\n} from '../../base/constants';\nimport setActiveHandle from '../actions/setActiveHandle';\nimport {flattenBlockEntities} from '../../../../app/freelayout_editor/components/contents/Group/utils/flatten';\nimport {\n    CALLOUT_HANDLE,\n    CALLOUT_SIDE_HANDLES,\n} from '../../../../app/callouts/constants/config';\nimport {getCalloutPaddings} from '../../../../app/callouts/utils/getCalloutPaddings';\nimport {getRelativeBlockRect} from '../../dom';\n\nexport default function editOnMouseDown(e) {\n    if ('button' in e && e.button !== 2 && e.button !== 0) {\n        return;\n    }\n\n    if (this.props.navigating && this.props.scroll) {\n        e.preventDefault();\n        this.setMode('navigation');\n        const editorScroll = this.props.scroll;\n        const scrollContainer = editorScroll.element;\n        setActiveHandle({\n            type: 'scroll',\n            scrollLeft: scrollContainer.scrollLeft,\n            scrollTop: scrollContainer.scrollTop,\n        }, null, {\n            x: e.clientX,\n            y: e.clientY,\n        });\n        return;\n    }\n\n    const editorState = this.props.editorState;\n    let currentSelection = this.props.currentSelection;\n    const handler = allHandlers.handlerForElement(e.target);\n    if (handler && handler.type === 'selectMarker') {\n        e.preventDefault();\n        currentSelection = currentSelection.clear();\n        const comment = this.props.comments.find(comment => comment.key === handler.key);\n        if (comment.objectId) {\n            currentSelection = currentSelection.addEntities(comment.objectId);\n        }\n    }\n\n    if ('button' in e && e.button === 2) {\n        // on right-click select target entity/block\n        if (handler && handler.type === 'select_entity') {\n            if (!currentSelection.getEntities().includes(handler.key)) {\n                this.updateSelection(currentSelection.clear().addEntities(handler.key));\n            } else {\n                this.updateSelection(currentSelection.clearBlocks());\n            }\n        } else if (handler && handler.type === 'select_block') {\n            this.updateSelection(currentSelection.clear().addBlocks(handler.key));\n        }\n        return;\n    }\n\n    let moveableEntityKeys = currentSelection.getEntities();\n    let block;\n    const handlerEntity = handler && editorState.getEntity(handler.key);\n    if (handlerEntity) { // handler might be a block then entity will not exist\n        moveableEntityKeys = [...moveableEntityKeys, handler.key];\n        block = editorState.getCurrentContent().getBlock(handlerEntity.getBlockKey());\n    } else if (moveableEntityKeys.size) {\n        const entity = editorState.getEntity(moveableEntityKeys.first());\n        block = editorState.getCurrentContent().getBlock(entity.getBlockKey());\n    }\n\n    let entitiesToMove;\n    if (handler && handler.type.match(CALLOUT_HANDLE)) {\n        // callout resize\n        const origin = CALLOUT_HANDLE.exec(handler.type)[1];\n        const callout = handlerEntity.getCallout();\n        if (callout.get('entities').size === 1 && callout.get('fixedPaddings') && CALLOUT_SIDE_HANDLES.indexOf(origin) !== -1) {\n            // Simulates inner entity resize if fixedPaddings callout resize with 1 entity and side resize\n            // (if not fixed then side resize changes paddings)\n            const innerEntity = block.getEntity(callout.get('entities').first());\n            entitiesToMove = Map({[innerEntity.getKey()]: innerEntity});\n            handler.key = innerEntity.getKey();\n            if (innerEntity.getType() === 'TEXT') {\n                handler.type = 'resizeWidth';\n            } else {\n                handler.type = 'resizeSide';\n            }\n        } else {\n            e.preventDefault();\n            this.setMode('callout');\n            entitiesToMove = Map({[handlerEntity.getKey()]: handlerEntity});\n        }\n    } else if (handlerEntity && handlerEntity.getCalloutKey()) {\n        entitiesToMove = Map({[handlerEntity.getKey()]: handlerEntity});\n    } else if (block) {\n        // filter one-block entities\n        // (when selection in one block, click & drag in other block, then process only click & drag entities)\n        const moveableEntities = block.getEntitiesByKeys(moveableEntityKeys).filter(entity => !entity.locked);\n        entitiesToMove = flattenBlockEntities(block, moveableEntities);\n    } else {\n        entitiesToMove = Map();\n    }\n\n    let activeHandle;\n    if (handler) {\n        let dx = 0;\n        let dy = 0;\n        if (e.target) {\n            // Click could happen anywhere inside the handle.\n            const handleRect = e.target.getBoundingClientRect();\n            if (handler && handler.type === 'selectMarker') {\n                // Calculate deltas from marker bottom-center to mouse pointer.\n                dx = (e.clientX - (handleRect.left + handleRect.width / 2));\n                dy = (e.clientY - handleRect.bottom - 6);\n            } else {\n                // Calculate deltas from handle center to mouse pointer.\n                dx = (e.clientX - (handleRect.left + handleRect.width / 2));\n                dy = (e.clientY - (handleRect.top + handleRect.height / 2));\n            }\n        }\n        const mouseDownOn = Date.now();\n        const blockRect = entitiesToMove.size ? getRelativeBlockRect(entitiesToMove.first()) : null;\n        activeHandle = {...handler, dx, dy, mouseDownOn, blockRect};\n\n        // store callout and its entities data if callout item or callout is transformed\n        if (entitiesToMove.size === 1 && entitiesToMove.first().getCalloutKey()) {\n            activeHandle.entityWithCallout = block.getEntity(entitiesToMove.first().getCalloutKey());\n        } else if (entitiesToMove.size === 1 && entitiesToMove.first().getCallout()) {\n            activeHandle.entityWithCallout = entitiesToMove.first();\n        }\n        if (activeHandle.entityWithCallout) {\n            const callout = activeHandle.entityWithCallout.getCallout();\n            activeHandle.calloutEntities = block.getEntitiesByKeys(callout.get('entities'), {orderByKeys: true});\n            activeHandle.calloutPaddings = getCalloutPaddings(callout, activeHandle.calloutEntities);\n        }\n    }\n    const pointerDownLocation = {\n        x: e.clientX,\n        y: e.clientY,\n    };\n    setActiveHandle(activeHandle, entitiesToMove, pointerDownLocation);\n\n    // Update index if entity is selected\n    this.snapIndex = null;\n    if (entitiesToMove.size && !(activeHandle && activeHandle.entityWithCallout)) {\n        if (this.shouldShowObjectGuides) {\n            // If snap objects is on, index should contain other (non-selected) entities.\n            const excludedEntityKeys = List(entitiesToMove.keys());\n            this.snapIndex = new EntityIndex(block.getEntities(), excludedEntityKeys, GRID_SNAPPING_VISIBLE_THRESHOLD);\n            this.snapIndex.addRect({\n                top: 0,\n                left: 0,\n                width: editorState.getPageSize().width,\n                height: editorState.getPageSize().height,\n            });\n        } else if (this.props.guideSettings && this.props.guideSettings.showGuides) {\n            // If guides snapping is on, index should contain grid values only.\n            const {guides, baselines} = new GridSettings(\n                editorState.getPageSize().width,\n                editorState.getPageSize().height,\n                this.props.guideSettings.columnCount,\n                this.props.guideSettings.whitespacePercent,\n                this.props.guideSettings.rowSpacing\n            ).getGridLines();\n\n            this.snapIndex = new GridIndex(guides, baselines);\n        }\n    }\n\n    if (currentSelection !== this.props.currentSelection) {\n        this.updateSelection(currentSelection);\n    }\n    const rect = this._element.getBoundingClientRect();\n    const mouseX = e.clientX - rect.left;\n    const mouseY = e.clientY - rect.top;\n    selectionMouseDown(mouseX, mouseY);\n}\n","var $ = require('../internals/export');\nvar $entries = require('../internals/object-to-array').entries;\n\n// `Object.entries` method\n// https://tc39.github.io/ecma262/#sec-object.entries\n$({ target: 'Object', stat: true }, {\n  entries: function entries(O) {\n    return $entries(O);\n  }\n});\n","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!./WebInfographicThumbnail.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!./WebInfographicThumbnail.css\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!./WebInfographicThumbnail.css\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","/* global ga */\nimport i18n from 'i18next';\nimport React, {PureComponent} from 'react';\nimport _ from 'lodash';\nimport cx from 'classnames';\n\nimport Header from './Header';\nimport Footer from './Footer';\nimport WebInfographicsGrid from './WebInfographicsGrid';\nimport SearchForm from './SearchForm';\nimport {InlineSpinner} from '../widgets/spinner';\nimport style from './WebSearchView.css';\n\nconst MIN_SEARCH_TERM_LENGTH = 3;\n\nexport default class WebSearchView extends PureComponent {\n    constructor(props) {\n        super(props);\n\n        const searchTerm = this.getHash();\n\n        this.debouncedOnScroll = _.throttle(this.onScroll, 200, {leading: true});\n\n        this.state = {\n            error: false,\n            infographics: [],\n            loading: !!searchTerm,\n            resultsCount: null,\n            searchFrom: 0,\n            searchTerm,\n        };\n    }\n\n    render() {\n        let noResults;\n\n        const infographics = this.state.infographics.map(item => {\n            return {\n                authorImage: item.user.avatar,\n                authorLink: item.user.profileName,\n                authorName: item.full_name,\n                imageURL: item.imageURL,\n                path: item.path,\n                title: item.title,\n            };\n        });\n\n        if (this.state.error) {\n            noResults = (\n                <div className={style.error}>\n                    { i18n.t('web.search.error')}\n                </div>\n            );\n        }\n\n        if (this.state.resultsCount === 0) {\n            noResults = (\n                <h3\n                    className={cx('icon-search', style.resultsCount, style.noResults)}\n                >\n                    {i18n.t('web.search.no_results_1', {term: this.state.searchTerm})}\n                    <br/>\n                    {i18n.t('web.search.no_results_2')}\n                </h3>\n            );\n        }\n\n        return (\n            <div\n                className={style.container}\n            >\n                <Header\n                    avatarURL={window.user.avatar}\n                    avatarFullName={window.user.name}\n                    className={style.header}\n                    showAvatar={window.user.isAuthenticated}\n                    showRegisterButton\n                />\n\n                <h1 className={style.heading}>{i18n.t('web.search.heading')}</h1>\n                <h2 className={style.subheading}>{i18n.t('web.search.subheading')}</h2>\n\n                <SearchForm\n                    defaultValue={this.state.searchTerm}\n                    onSubmitForm={this.onSearchSubmitForm}\n                />\n\n                {noResults}\n\n                {this.state.resultsCount > 0 &&\n                <h3\n                    className={style.resultsCount}\n                >\n                    {i18n.t('web.search.results_count', {count: this.state.resultsCount, term: this.state.searchTerm})}\n                </h3>}\n\n                {this.state.infographics.length > 0 && <WebInfographicsGrid infographics={infographics}/>}\n\n                {this.state.loading && <div style={{textAlign: 'center'}}><InlineSpinner/></div>}\n\n                {this.state.infographics.length === this.state.resultsCount && <Footer/>}\n            </div>\n        );\n    }\n\n    componentDidMount() {\n        window.addEventListener('scroll', _.debounce(this.debouncedOnScroll));\n        if (this.state.searchTerm) {\n            this.search(this.state.searchTerm);\n        }\n    }\n\n    componentWillUnmount() {\n        window.removeEventListener('scroll', _.debounce(this.debouncedOnScroll));\n    }\n\n    UNSAFE_componentWillUpdate(nextProps, nextState) {\n        if (this.state.loading) return;\n\n        const {searchTerm, searchFrom} = nextState;\n\n        this.search(searchTerm, searchFrom);\n    }\n\n    onScroll = () => {\n        const scrolledToBottom = document.documentElement.scrollTop === (document.documentElement.scrollHeight - document.documentElement.clientHeight);\n        if (scrolledToBottom && this.state.infographics.length < this.state.resultsCount) {\n            this.setState({\n                loading: true,\n                searchFrom: this.state.infographics.length,\n            });\n        }\n    }\n\n    onSearchSubmitForm = searchTerm => {\n        if (searchTerm.length < MIN_SEARCH_TERM_LENGTH) return;\n\n        window.location.hash = searchTerm;\n        this.setState({\n            error: false,\n            infographics: [],\n            loading: true,\n            resultsCount: null,\n            searchFrom: 0,\n            searchTerm,\n        });\n\n        ga('Web.send', 'event', 'search', this.state.searchTerm);\n    }\n\n    search = (searchTerm, from = 0) => {\n        fetch(`/api/search/${searchTerm}?from=${from}`).then(response => {\n            return response.json();\n        }).then(data => {\n            this.setState(prevState => {\n                return {\n                    infographics: prevState.infographics.concat(data.hits),\n                    loading: false,\n                    resultsCount: data.total,\n                };\n            });\n        }).catch(() => {\n            this.setState({\n                error: true,\n                loading: false,\n                resultsCount: null,\n            });\n        });\n    }\n\n    getHash() {\n        const hash = window.location.hash;\n        const pattern = '#\\\\S{' + MIN_SEARCH_TERM_LENGTH + ',}';\n        return hash.match(pattern) ? decodeURIComponent(hash.replace(/^#/, '').replace(/\\+/g, ' ')) : '';\n    }\n}\n","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!./style.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!./style.css\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!./style.css\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/forced-string-html-method');\n\n// `String.prototype.sub` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.sub\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('sub') }, {\n  sub: function sub() {\n    return createHTML(this, 'sub', '', '');\n  }\n});\n","import EditorState from '../immutable/EditorState';\n\n\nexport default function addEntitiesInternal(editorState, {groupBeingEdited}, ...entities) {\n    let content = editorState.getCurrentContent();\n    let blocks = content.getBlocks();\n    let block = content.getBlock(entities[0].blockKey);\n    const blockIndex = content.getBlockIndex(block.key);\n    if (groupBeingEdited) {\n        let insertIndex = block.getEntities().findIndex(e => e.key === groupBeingEdited);\n        if (insertIndex < 0) {\n            insertIndex = 0;\n        }\n        block = block.set('entities', block.getEntities().splice(insertIndex, 0, ...entities));\n    } else {\n        block = block.set('entities', block.getEntities().push(...entities));\n    }\n    blocks = blocks.set(blockIndex, block);\n    content = content.merge({\n        blocks: blocks,\n    });\n\n    editorState = EditorState.set(editorState, {\n        currentContent: content,\n    });\n    return editorState;\n}\n","import {ReduceStore} from 'flux/utils';\nimport {fromJS} from 'immutable';\n\nimport Dispatcher from '../../dispatcher';\nimport {\n    FREELAYOUT_ACTIVE_PAGE_CHANGED,\n    FREELAYOUT_SCROLL_START,\n    FREELAYOUT_SCROLL_END,\n    FREELAYOUT_SCROLL_START_PROCESSING_EVENTS,\n    FREELAYOUT_SCROLL_STOP_PROCESSING_EVENTS,\n} from './constants';\nimport EditorStateStore from '../stores/EditorStateStore';\nimport Constants from '../../constants';\n\nconst defaultState = {\n    activePageId: null,\n    activePageIndex: -1,\n    scrolling: false,\n    processingEvents: true,\n    firstVisiblePageIndex: null,\n    lastVisiblePageIndex: null,\n};\n\nclass ScrollStore extends ReduceStore {\n    getInitialState() {\n        return fromJS(defaultState);\n    }\n\n    get activePageIndex() {\n        return this.getState().get('activePageIndex');\n    }\n\n    get firstVisiblePageIndex() {\n        return this.getState().get('firstVisiblePageIndex');\n    }\n\n    get lastVisiblePageIndex() {\n        return this.getState().get('lastVisiblePageIndex');\n    }\n\n    get activePageId() {\n        return this.getState().get('activePageId');\n    }\n\n    get scrolling() {\n        return this.getState().get('scrolling');\n    }\n\n    get processingEvents() {\n        return this.getState().get('processingEvents');\n    }\n\n    reduce(state, action) {\n        switch (action.type) {\n            case Constants.INFOGRAPHIC_LOADED:\n                Dispatcher.waitFor([EditorStateStore.getDispatchToken()]);\n                if (!EditorStateStore.editorState || EditorStateStore.editorState.getCurrentContent().getBlocks().size === 0) {\n                    return state.merge(defaultState);\n                }\n                return state.merge({\n                    activePageId: EditorStateStore.editorState.getCurrentContent().getBlocks().first().getKey(),\n                    activePageIndex: 0,\n                });\n            case FREELAYOUT_ACTIVE_PAGE_CHANGED: {\n                const {activePageId, activePageIndex, firstVisiblePageIndex, lastVisiblePageIndex} = action;\n                return state.merge({\n                    activePageId,\n                    activePageIndex,\n                    firstVisiblePageIndex,\n                    lastVisiblePageIndex,\n                });\n            }\n            case FREELAYOUT_SCROLL_START:\n                return state.merge({scrolling: true});\n            case FREELAYOUT_SCROLL_END:\n                return state.merge({scrolling: false});\n            case FREELAYOUT_SCROLL_START_PROCESSING_EVENTS:\n                return state.merge({processingEvents: true});\n            case FREELAYOUT_SCROLL_STOP_PROCESSING_EVENTS:\n                return state.merge({processingEvents: false});\n            default:\n                return state;\n        }\n    }\n}\n\nexport default new ScrollStore(Dispatcher);\n","'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}\n","/*!\n  Copyright (c) 2017 Jed Watson.\n  Licensed under the MIT License (MIT), see\n  http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg) && arg.length) {\n\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\tif (inner) {\n\t\t\t\t\tclasses.push(inner);\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","\nimport PropTypes from 'prop-types';\nimport React, {PureComponent} from 'react';\n\nimport linkIsSafe from '../linkIsSafe';\nimport {StyledLink} from './StyledMedia.js';\n\nexport default class Link extends PureComponent {\n    static propTypes = {\n        height: PropTypes.number.isRequired,\n        width: PropTypes.number.isRequired,\n        scaleX: PropTypes.number.isRequired,\n        scaleY: PropTypes.number.isRequired,\n        url: PropTypes.string.isRequired,\n        title: PropTypes.string,\n        description: PropTypes.string,\n    };\n\n    // TODO calculate text size based on font size?\n    static initialPropsForData = (data, options) => {\n        const width = options.elementWidth;\n        const height = 0.75 * width;\n        return {width, height};\n    };\n\n    render() {\n        const {height, width, url, title, description} = this.props;\n        const style = {\n            width: `${width}px`,\n            height: `${height}px`,\n            transform: `scale(${this.props.scaleX}, ${this.props.scaleY})`,\n            transformOrigin: '0 0',\n        };\n\n        const linkProps = {};\n        if (linkIsSafe(url)) {\n            linkProps.href = url;\n        }\n\n        return (\n            <StyledLink className=\"ItemContent-link\" style={style}>\n                <div className=\"text\">\n                    <h2>{title}</h2>\n                    <p>{description}</p>\n                    <a {...linkProps} title={url} target=\"_blank\" rel=\"nofollow noopener noreferrer\">{url}</a>\n                </div>\n                <div className=\"clear\"/>\n            </StyledLink>\n        );\n    }\n}\n","var DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar isForced = require('../internals/is-forced');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar defineProperty = require('../internals/object-define-property').f;\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar isRegExp = require('../internals/is-regexp');\nvar getFlags = require('../internals/regexp-flags');\nvar redefine = require('../internals/redefine');\nvar fails = require('../internals/fails');\nvar setSpecies = require('../internals/set-species');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\nvar NativeRegExp = global.RegExp;\nvar RegExpPrototype = NativeRegExp.prototype;\nvar re1 = /a/g;\nvar re2 = /a/g;\n\n// \"new\" should create a new object, old webkit bug\nvar CORRECT_NEW = new NativeRegExp(re1) !== re1;\n\nvar FORCED = DESCRIPTORS && isForced('RegExp', (!CORRECT_NEW || fails(function () {\n  re2[MATCH] = false;\n  // RegExp constructor can alter flags and IsRegExp works correct with @@match\n  return NativeRegExp(re1) != re1 || NativeRegExp(re2) == re2 || NativeRegExp(re1, 'i') != '/a/i';\n})));\n\n// `RegExp` constructor\n// https://tc39.github.io/ecma262/#sec-regexp-constructor\nif (FORCED) {\n  var RegExpWrapper = function RegExp(pattern, flags) {\n    var thisIsRegExp = this instanceof RegExpWrapper;\n    var patternIsRegExp = isRegExp(pattern);\n    var flagsAreUndefined = flags === undefined;\n    return !thisIsRegExp && patternIsRegExp && pattern.constructor === RegExpWrapper && flagsAreUndefined ? pattern\n      : inheritIfRequired(CORRECT_NEW\n        ? new NativeRegExp(patternIsRegExp && !flagsAreUndefined ? pattern.source : pattern, flags)\n        : NativeRegExp((patternIsRegExp = pattern instanceof RegExpWrapper)\n          ? pattern.source\n          : pattern, patternIsRegExp && flagsAreUndefined ? getFlags.call(pattern) : flags)\n      , thisIsRegExp ? this : RegExpPrototype, RegExpWrapper);\n  };\n  var proxy = function (key) {\n    key in RegExpWrapper || defineProperty(RegExpWrapper, key, {\n      configurable: true,\n      get: function () { return NativeRegExp[key]; },\n      set: function (it) { NativeRegExp[key] = it; }\n    });\n  };\n  var keys = getOwnPropertyNames(NativeRegExp);\n  var index = 0;\n  while (keys.length > index) proxy(keys[index++]);\n  RegExpPrototype.constructor = RegExpWrapper;\n  RegExpWrapper.prototype = RegExpPrototype;\n  redefine(global, 'RegExp', RegExpWrapper);\n}\n\n// https://tc39.github.io/ecma262/#sec-get-regexp-@@species\nsetSpecies('RegExp');\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toLength = require('../internals/to-length');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n  return function ($this, el, fromIndex) {\n    var O = toIndexedObject($this);\n    var length = toLength(O.length);\n    var index = toAbsoluteIndex(fromIndex, length);\n    var value;\n    // Array#includes uses SameValueZero equality algorithm\n    // eslint-disable-next-line no-self-compare\n    if (IS_INCLUDES && el != el) while (length > index) {\n      value = O[index++];\n      // eslint-disable-next-line no-self-compare\n      if (value != value) return true;\n    // Array#indexOf ignores holes, Array#includes - not\n    } else for (;length > index; index++) {\n      if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n    } return !IS_INCLUDES && -1;\n  };\n};\n\nmodule.exports = {\n  // `Array.prototype.includes` method\n  // https://tc39.github.io/ecma262/#sec-array.prototype.includes\n  includes: createMethod(true),\n  // `Array.prototype.indexOf` method\n  // https://tc39.github.io/ecma262/#sec-array.prototype.indexof\n  indexOf: createMethod(false)\n};\n","import Dispatcher from '../../../app/dispatcher';\nimport fetchChartLiveData from './fetchChartLiveData';\n\nimport {\n    DATA_UPLOAD_LOADING_START,\n    DATA_UPLOAD_LOADING_END,\n} from '../DataEditor.constants';\n\n\nexport default function fetchNewLiveData(chart, sheetIndex, force) {\n    Dispatcher.dispatch({\n        type: DATA_UPLOAD_LOADING_START,\n    });\n\n    return fetchChartLiveData(chart, sheetIndex, force).then(() => {\n        Dispatcher.dispatch({\n            type: DATA_UPLOAD_LOADING_END,\n        });\n    }).catch((err) => {\n        Dispatcher.dispatch({\n            type: DATA_UPLOAD_LOADING_END,\n        });\n\n        Dispatcher.dispatch({\n            type: 'show-message',\n            messageType: 'error',\n            body: err.message,\n        });\n    });\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar $padStart = require('../internals/string-pad').start;\nvar WEBKIT_BUG = require('../internals/webkit-string-pad-bug');\n\n// `String.prototype.padStart` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.padstart\n$({ target: 'String', proto: true, forced: WEBKIT_BUG }, {\n  padStart: function padStart(maxLength /* , fillString = ' ' */) {\n    return $padStart(this, maxLength, arguments.length > 1 ? arguments[1] : undefined);\n  }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $filter = require('../internals/array-iteration').filter;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\n// `Array.prototype.filter` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.filter\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !arrayMethodHasSpeciesSupport('filter') }, {\n  filter: function filter(callbackfn /* , thisArg */) {\n    return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n  }\n});\n","'use strict';\nvar bind = require('../internals/bind-context');\nvar toObject = require('../internals/to-object');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar toLength = require('../internals/to-length');\nvar createProperty = require('../internals/create-property');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\n// `Array.from` method implementation\n// https://tc39.github.io/ecma262/#sec-array.from\nmodule.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n  var O = toObject(arrayLike);\n  var C = typeof this == 'function' ? this : Array;\n  var argumentsLength = arguments.length;\n  var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n  var mapping = mapfn !== undefined;\n  var index = 0;\n  var iteratorMethod = getIteratorMethod(O);\n  var length, result, step, iterator;\n  if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined, 2);\n  // if the target is not iterable or it's an array with the default iterator - use a simple case\n  if (iteratorMethod != undefined && !(C == Array && isArrayIteratorMethod(iteratorMethod))) {\n    iterator = iteratorMethod.call(O);\n    result = new C();\n    for (;!(step = iterator.next()).done; index++) {\n      createProperty(result, index, mapping\n        ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true)\n        : step.value\n      );\n    }\n  } else {\n    length = toLength(O.length);\n    result = new C(length);\n    for (;length > index; index++) {\n      createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);\n    }\n  }\n  result.length = index;\n  return result;\n};\n","export function minifyRotation(rotation) {\n    // Convert number to user-friendly range from -89 to 270 (so that there will\n    // be no 1000° for example). First we add 449 to make sure number is always\n    // positive (360 + 89) and then subtract 89 to allow some negative values as well.\n    return (rotation % 360 + 449) % 360 - 89;\n}\n\nexport function calculateVisibleRotation(entity) {\n    let rotation = entity.getTransform().getRotate();\n    const mask = entity.getProperty('mask');\n    if (mask && mask.get('rotate')) {\n        rotation += mask.get('rotate');\n    }\n\n    return minifyRotation(rotation);\n}\n\nexport function calculateClippedRectangle(entity) {\n    const rect = entity.rectangle();\n    rect.transform = entity.getTransform();\n\n    const crop = entity.getProperty('crop');\n    const mask = entity.getProperty('mask');\n\n    if (crop) {\n        // Crop dimensions are top, right, bottom, left percentages\n        // that are directly used for clip path inset.\n        rect.left += Math.round(crop.get('left') * entity.getWidth() / 100);\n        rect.top += Math.round(crop.get('top') * entity.getHeight() / 100);\n\n        rect.width = Math.round(entity.getWidth() * (100 - crop.get('left') - crop.get('right')) / 100);\n        rect.height = Math.round(entity.getHeight() * (100 - crop.get('top') - crop.get('bottom')) / 100);\n    } else if (mask) {\n        const maskBox = mask.get('boundingBox');\n        rect.width = Math.round(rect.width * maskBox.get('width'));\n        rect.height = Math.round(rect.height * maskBox.get('height'));\n\n        rect.left = Math.round(rect.left + maskBox.get('left') * entity.getWidth());\n        rect.top = Math.round(rect.top + maskBox.get('top') * entity.getHeight());\n\n        rect.transform = rect.transform.set('rotate', calculateVisibleRotation(entity));\n    }\n    return rect;\n}\n\nexport function calculateTrueRectangle(entity, {left, top, width, height, rotation}) {\n    const crop = entity.getProperty('crop');\n    const mask = entity.getProperty('mask');\n\n    if (crop) {\n        width /= (100 - crop.get('left') - crop.get('right')) / 100;\n        height /= (100 - crop.get('top') - crop.get('bottom')) / 100;\n\n        left -= Math.round(crop.get('left') * width / 100);\n        top -= Math.round(crop.get('top') * height / 100);\n    } else if (mask) {\n        const maskBox = mask.get('boundingBox');\n        width /= maskBox.get('width');\n        height /= maskBox.get('height');\n\n        left -= maskBox.get('left') * width;\n        top -= maskBox.get('top') * height;\n        rotation = rotation - mask.get('rotate');\n    }\n\n    rotation = minifyRotation(rotation);\n    return {left, top, width, height, rotation};\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar aFunction = require('../internals/a-function');\nvar toObject = require('../internals/to-object');\nvar fails = require('../internals/fails');\nvar sloppyArrayMethod = require('../internals/sloppy-array-method');\n\nvar nativeSort = [].sort;\nvar test = [1, 2, 3];\n\n// IE8-\nvar FAILS_ON_UNDEFINED = fails(function () {\n  test.sort(undefined);\n});\n// V8 bug\nvar FAILS_ON_NULL = fails(function () {\n  test.sort(null);\n});\n// Old WebKit\nvar SLOPPY_METHOD = sloppyArrayMethod('sort');\n\nvar FORCED = FAILS_ON_UNDEFINED || !FAILS_ON_NULL || SLOPPY_METHOD;\n\n// `Array.prototype.sort` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.sort\n$({ target: 'Array', proto: true, forced: FORCED }, {\n  sort: function sort(comparefn) {\n    return comparefn === undefined\n      ? nativeSort.call(toObject(this))\n      : nativeSort.call(toObject(this), aFunction(comparefn));\n  }\n});\n","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Map` constructor\n// https://tc39.github.io/ecma262/#sec-map-objects\nmodule.exports = collection('Map', function (get) {\n  return function Map() { return get(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong, true);\n","export const MIN_CALLOUT_ENTITY_HEIGHT = 10;\nexport const MIN_CALLOUT_ENTITY_WIDTH = 10;\nexport const MIN_CALLOUT_HEIGHT = 30;\nexport const MIN_CALLOUT_WIDTH = 30;\n\n// if page width <= 600 then all callouts are showed as overlays\nexport const CALLOUTS_MOBILE_WIDTH = 600;\n\n// when mouse leaves entity, it will wait the specified time before hiding callout (type: hover)\nexport const CALLOUT_HIDE_DELAY = 500;\n\n// overlays will be scaled to 85% of page width/height\nexport const OVERLAY_CALLOUT_SCALE = 0.85;\n\nexport const CALLOUT_PADDING = 10;\n\n// margin between callout side and entity\nexport const CALLOUT_MARGIN = 10;\n\nexport const CALLOUT_SHADOW = {\n    x: 0,\n    y: 2,\n    radius: 40,\n    spread: 0,\n    color: 'rgba(0, 0, 0, 0.5)',\n};\n\nexport const CALLOUT_HANDLE = /callout_([nesw]{1,2})/;\nexport const CALLOUT_SIDE_HANDLES = ['w', 'n', 'e', 's'];\n\nexport const CALLOUT_CLOSE_BUTTON_SIZE = 20;\n","var DESCRIPTORS = require('../internals/descriptors');\nvar objectDefinePropertyModule = require('../internals/object-define-property');\nvar regExpFlags = require('../internals/regexp-flags');\n\n// `RegExp.prototype.flags` getter\n// https://tc39.github.io/ecma262/#sec-get-regexp.prototype.flags\nif (DESCRIPTORS && /./g.flags != 'g') {\n  objectDefinePropertyModule.f(RegExp.prototype, 'flags', {\n    configurable: true,\n    get: regExpFlags\n  });\n}\n","export const currentBrowserIsIE = (function() {\n    var ua = window.navigator.userAgent;\n    return ua.indexOf('MSIE ') !== -1 || ua.indexOf('Trident/') !== -1;  // IE 11 has no more \"MSIE\" in it\n})();\n","export default function _typeof(obj) {\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}","import _ from 'lodash';\nimport PropTypes from 'prop-types';\nimport React, {Component} from 'react';\nimport {Container} from 'flux/utils';\n\nimport {getTooltip, setTooltip, tooltipDummy} from '../../../../../../client/components/charts/tooltip';\nimport ToolTip from '../../../../common/chart_factory/infogram-charts-tooltip';\nimport {optionsSupported} from '../../../../common/eventListenerOptions';\nimport HandlersStore from '../../../../components/FreeLayoutEditor/handlers/store';\nimport {engagementEvent} from '../../../../components/EngagementAnalytics/EngagementAnalytics.actions';\nimport style from './TooltipWrapper.css';\n\nfunction updateTooltip(tooltip, e, text, key=null) {\n    const nativeEvent = e.nativeEvent || e;\n    let pos;\n    if (nativeEvent.changedTouches) {\n        pos = {\n            x: nativeEvent.changedTouches[0].pageX - document.documentElement.scrollLeft,\n            y: nativeEvent.changedTouches[0].pageY - document.documentElement.scrollTop,\n        };\n    } else {\n        pos = {\n            x: nativeEvent.pageX - document.documentElement.scrollLeft,\n            y: nativeEvent.pageY - document.documentElement.scrollTop,\n        };\n    }\n\n    tooltip.setOptions({\n        text,\n        pos,\n        value: '',\n        key,\n    });\n}\n\nexport function hideTooltip() {\n    getTooltip().hide();\n}\n\nclass TooltipWrapper extends Component {\n    static propTypes = {\n        children: PropTypes.any.isRequired,\n        entityKey: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\n        text: PropTypes.string.isRequired,\n    };\n\n    static getStores() {\n        return [\n            HandlersStore,\n        ];\n    }\n\n    static calculateState() {\n        const {dragging, resizing, navigating} = HandlersStore;\n        return {\n            transforming: dragging || resizing || navigating,\n        };\n    }\n\n    constructor(props) {\n        super(props);\n        this._wrapper = React.createRef();\n    }\n\n    componentDidMount() {\n        if (this.state.transforming) {\n            this.hideTooltip();\n        } else {\n            this.initTooltip();\n        }\n\n        if (this._wrapper.current) {\n            this._wrapper.current.addEventListener('touchstart', this._onTouchStart, optionsSupported ? {capture: true, passive: false} : true);\n        }\n    }\n\n    componentDidUpdate(prevProps, prevState) {\n        if (this.state.transforming !== prevState.transforming) {\n            if (this.state.transforming && !prevState.transforming) {\n                this.hideTooltip();\n            } else {\n                this.initTooltip();\n            }\n        }\n    }\n\n    componentWillUnmount() {\n        this.hideTooltip();\n        if (this._wrapper.current) {\n            this._wrapper.current.removeEventListener('touchstart', this._onTouchStart, optionsSupported ? {capture: true, passive: false} : true);\n        }\n    }\n\n    render() {\n        return (\n            <div\n                ref={this._wrapper}\n                onMouseMove={this.showTooltip}\n                onMouseEnter={this._logEngagement}\n                onMouseOut={this.hideTooltip}\n                className={style.tooltip}\n            >\n                {this.props.children}\n            </div>\n        );\n    }\n\n    _logEngagement = () => {\n        engagementEvent(this.props.entityKey, 'tooltip', 'show');\n    };\n\n    _isTooltipVisible = () => {\n        if (!this.tooltip || !getTooltip().isVisible) {\n            return false;\n        }\n        return this.props.entityKey === getTooltip().key;\n    };\n\n    _onTouchStart = (e) => {\n        if (this._isTooltipVisible()) {\n            this.hideTooltip();\n            // stop touch event from calling mouse-move event which would bring tooltip back to life\n            e.preventDefault();\n            e.stopPropagation();\n        } else {\n            this.showTooltip(e);\n        }\n    };\n\n    showTooltip = (e) => {\n        if (this.state.transforming) {\n            return;\n        }\n        updateTooltip(this.tooltip, e, this.props.text, this.props.entityKey);\n    };\n\n    hideTooltip = () => {\n        if (this.tooltip) {\n            this.tooltip.hide();\n        }\n    };\n\n    initTooltip = () => {\n        if (getTooltip() === tooltipDummy) {\n            setTooltip(new ToolTip({\n                escapeFn: _.escape,\n            }));\n        }\n        this.tooltip = getTooltip();\n    }\n}\n\nexport default Container.create(TooltipWrapper);\n","exports = module.exports = require(\"../../../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"._1ReWgYUONQstNoqE4Pn496 {\\n    position: absolute;\\n    top: 0;\\n    left: 0;\\n    right: 0;\\n    bottom: 0;\\n}\\n._1ReWgYUONQstNoqE4Pn496 svg {\\n    display: block;\\n}\\n\\n._2356ndiwQU6NomCBJKs9g0 {\\n    position: absolute;\\n    top: 0;\\n    pointer-events: auto;\\n}\\n\\n._2aZZQKZwuGgVRoSp1vrhhj > div {\\n    overflow: visible;\\n}\\n\\n._2aZZQKZwuGgVRoSp1vrhhj > div:after {\\n    content: '';\\n    left: 0;\\n    top: 0;\\n    position: absolute;\\n    width: calc(100% - 2px);\\n    height: calc(100% - 2px);\\n    border: 1px solid #3195CB;\\n}\\n\", \"\"]);\n\n// exports\nexports.locals = {\n\t\"shape\": \"_1ReWgYUONQstNoqE4Pn496\",\n\t\"textComponent\": \"_2356ndiwQU6NomCBJKs9g0\",\n\t\"editing\": \"_2aZZQKZwuGgVRoSp1vrhhj\"\n};","var toInteger = require('../internals/to-integer');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.github.io/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n  return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","const Theme = {\n    id: 'PreziGram',\n\n    /**\n     * Official Prezi color palette\n     * https://www.figma.com/file/4aFAdgjS7Jhx2uOgxUTmUR/Prezigram-UI-ideas?node-id=1188%3A1\n     * All variable names aligned with design document ^\n    **/\n\n    /* Primary & secondary main colours */\n    text: '#000000', // black\n    background: '#FFFFFF', // white\n\n    /* Opacity levels */\n    alpha8: 0.08,\n    alpha24: 0.24,\n    alpha32: 0.32,\n    alpha40: 0.4,\n    alpha80: 0.8,\n\n    gold: '#DFAB29',\n\n    /* Primary palette: white, neutral (gray), blue */\n    white: '#FFFFFF',\n\n    /* neutral family */\n    neutral50: '#F6F7F9',\n    neutral60: '#ECEDEF',\n    neutral80: '#DFE1E4',\n    neutral90: '#DDDFE2',\n    neutral100: '#D3D6DA',\n    neutral200: '#B1B8BE',\n    neutral300: '#929AA3',\n    neutral400: '#747C87',\n    neutral500: '#565E6D',\n    neutral600: '#374050',\n    neutral700: '#152235',\n    neutral800: '#051225',\n\n    /* blue family */\n    blue50: '#E6F5FF',\n    blue100: '#BBE8FF',\n    blue200: '#82C8FF',\n    blue300: '#50AAFF',\n    blue400: '#3181FF',\n    blue500: '#1E55EB',\n    blue600: '#192D9B',\n\n    /* Secondary palette */\n\n    /* teal family */\n    teal50: '#E1FFFA',\n    teal100: '#9BF5F5',\n    teal200: '#5FE1E1',\n    teal300: '#00C6C6',\n    teal400: '#00A0AA',\n    teal500: '#00717F',\n    teal600: '#004B64',\n\n    /* green */\n    green50: '#F0FFCD',\n    green100: '#BCFC8F',\n    green200: '#85E870',\n    green300: '#44CB67',\n    green400: '#1AA651',\n    green500: '#007850',\n    green600: '#004F3F',\n\n    /* orange */\n    orange50: '#FFFEC3',\n    orange100: '#FFF00A',\n    orange200: '#FFC805',\n    orange300: '#FF9105',\n    orange400: '#F05A0F',\n    orange500: '#C83205',\n    orange600: '#801705',\n\n    /* purple family */\n    purple50: '#FFEBFF',\n    purple100: '#FFC8FF',\n    purple200: '#FF96FC',\n    purple300: '#FD6AFA',\n    purple400: '#E628E1',\n    purple500: '#A409B8',\n    purple600: '#62008F',\n\n    /* red family */\n    red50: '#FFF0F2',\n    red100: '#FFD7DC',\n    red200: '#FFAEB9',\n    red300: '#FF7D91',\n    red400: '#FA375A',\n    red500: '#C8002D',\n    red600: '#7D002D',\n\n    fonts: {\n        ralewayRegular: 'RalewayRegular, Helvetica, sans-serif',\n        ralewayMedium: 'RalewayMedium, Helvetica, sans-serif',\n        ralewaySemiBold: 'RalewaySemiBold, Helvetica, sans-serif',\n        ralewayBold: 'RalewayBold, Helvetica, sans-serif',\n        ralewayHeavy: 'RalewayHeavy, Helvetica, sans-serif',\n    },\n\n    tooltip: 'rgba(21, 34, 53, 0.8)',\n\n    shadow: {\n        colours: {\n            default: 'rgba(0, 0, 0, 0.1)',\n            menus: 'rgba(0, 0, 0, 0.2)',\n            hover: 'rgba(0, 0, 0, 0.3)',\n        },\n        size: '20px',\n        get default() {return `0px 0px ${Theme.shadow.size} ${Theme.shadow.colours.default}`;},\n        get menus() {return `0px 0px ${Theme.shadow.size} ${Theme.shadow.colours.menus}`;},\n        get hover() {return `0px 0px ${Theme.shadow.size} ${Theme.shadow.colours.hover}`;},\n        get right() {return `${Theme.shadow.size} 0 ${Theme.shadow.size} -${Theme.shadow.size} ${Theme.shadow.colours.default}`;},\n        get left() {return `-${Theme.shadow.size} 0 ${Theme.shadow.size} -${Theme.shadow.size} ${Theme.shadow.colours.default}`;},\n    },\n};\nexport default Theme;\n\nexport function prezigram(theme) {\n    return theme.id === Theme.id;\n}\n","var hasOwnProperty = {}.hasOwnProperty;\n\nmodule.exports = function (it, key) {\n  return hasOwnProperty.call(it, key);\n};\n","import Immutable from 'immutable';\n\nvar Series = Immutable.Record({\n    title: undefined,\n    checked: undefined,\n    disabled: false,\n});\n\nexport default Series;\n","'use strict';\nvar anObject = require('../internals/an-object');\nvar toPrimitive = require('../internals/to-primitive');\n\nmodule.exports = function (hint) {\n  if (hint !== 'string' && hint !== 'number' && hint !== 'default') {\n    throw TypeError('Incorrect hint');\n  } return toPrimitive(anObject(this), hint !== 'number');\n};\n","export var deg2rad = Math.PI / 180;\nexport var rad2deg = 180 / Math.PI;\n","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n    __assign = Object.assign || function(t) {\n        for (var s, i = 1, n = arguments.length; i < n; i++) {\n            s = arguments[i];\n            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n                t[p] = s[p];\n        }\n        return t;\n    };\n    return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar es6_promise_1 = require(\"es6-promise\");\nvar axios_1 = require(\"axios\");\nes6_promise_1.polyfill();\nvar LogLevel;\n(function (LogLevel) {\n    LogLevel[LogLevel[\"INFO\"] = 0] = \"INFO\";\n    LogLevel[LogLevel[\"WARN\"] = 1] = \"WARN\";\n    LogLevel[LogLevel[\"ERROR\"] = 2] = \"ERROR\";\n})(LogLevel = exports.LogLevel || (exports.LogLevel = {}));\nvar ClientLogger = /** @class */ (function () {\n    function ClientLogger(config) {\n        this.config = config;\n        if (config.isProduction && !config.logApiEndpoint) {\n            throw new Error('Missing logApiEndpoint in production mode!');\n        }\n    }\n    ClientLogger.prototype.sendLogRequest = function (data) {\n        var _this = this;\n        return Promise.resolve()\n            .then(function () {\n            return axios_1.default.post(_this.config.logApiEndpoint, [data], {\n                headers: {\n                    'Content-Type': 'application/json',\n                },\n                responseType: 'json',\n                timeout: 2000,\n            });\n        })\n            .then(function (response) { });\n    };\n    ClientLogger.prototype.log = function (logMessage) {\n        if (logMessage == null) {\n            return Promise.reject('logMessage is null');\n        }\n        if (this.config.fillPayloadDefaults) {\n            try {\n                logMessage = this.config.fillPayloadDefaults(logMessage);\n            }\n            catch (e) {\n                return Promise.reject(e);\n            }\n        }\n        var preparedLogMessage = this.prepareLogMessage(logMessage);\n        if (!this.config.isProduction) {\n            if (console) {\n                // It's alright to log to the console locally, in debugging scenarios\n                // tslint:disable-next-line:ban\n                console.log(preparedLogMessage);\n            }\n            return Promise.resolve(undefined);\n        }\n        else {\n            return this.sendLogRequest(preparedLogMessage).catch(function (error) {\n                return Promise.reject(error);\n            });\n        }\n    };\n    ClientLogger.prototype.prepareLogMessage = function (logMessage) {\n        var currentDate = logMessage.currentDate || new Date();\n        var currentTime = currentDate.getTime();\n        return __assign({}, logMessage.payload, { current_time: currentTime, created: Math.floor(currentTime / 1000), msecs: currentTime % 1000, client_datetime: currentDate.toISOString(), _object: logMessage.object, object: logMessage.object, _action: logMessage.action, trigger: logMessage.trigger, _category: logMessage.category || 'website', source: logMessage.source || this.config.defaultSource, levelname: LogLevel[logMessage.logLevel || this.config.defaultLogLevel], name: logMessage.name || 'debug', levelno: logMessage.levelno || 20, relativeCreated: logMessage.relativeCreated || 0, msg: logMessage.msg || '', platform: logMessage.platform || 'website', session_id: logMessage.session_id || '' }, (logMessage.prezi_id ? { prezi_id: logMessage.prezi_id } : {}));\n    };\n    return ClientLogger;\n}());\nexports.ClientLogger = ClientLogger;\n","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar toInteger = require('../internals/to-integer');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\nvar max = Math.max;\nvar min = Math.min;\nvar floor = Math.floor;\nvar SUBSTITUTION_SYMBOLS = /\\$([$&'`]|\\d\\d?|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&'`]|\\d\\d?)/g;\n\nvar maybeToString = function (it) {\n  return it === undefined ? it : String(it);\n};\n\n// @@replace logic\nfixRegExpWellKnownSymbolLogic('replace', 2, function (REPLACE, nativeReplace, maybeCallNative) {\n  return [\n    // `String.prototype.replace` method\n    // https://tc39.github.io/ecma262/#sec-string.prototype.replace\n    function replace(searchValue, replaceValue) {\n      var O = requireObjectCoercible(this);\n      var replacer = searchValue == undefined ? undefined : searchValue[REPLACE];\n      return replacer !== undefined\n        ? replacer.call(searchValue, O, replaceValue)\n        : nativeReplace.call(String(O), searchValue, replaceValue);\n    },\n    // `RegExp.prototype[@@replace]` method\n    // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@replace\n    function (regexp, replaceValue) {\n      var res = maybeCallNative(nativeReplace, regexp, this, replaceValue);\n      if (res.done) return res.value;\n\n      var rx = anObject(regexp);\n      var S = String(this);\n\n      var functionalReplace = typeof replaceValue === 'function';\n      if (!functionalReplace) replaceValue = String(replaceValue);\n\n      var global = rx.global;\n      if (global) {\n        var fullUnicode = rx.unicode;\n        rx.lastIndex = 0;\n      }\n      var results = [];\n      while (true) {\n        var result = regExpExec(rx, S);\n        if (result === null) break;\n\n        results.push(result);\n        if (!global) break;\n\n        var matchStr = String(result[0]);\n        if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n      }\n\n      var accumulatedResult = '';\n      var nextSourcePosition = 0;\n      for (var i = 0; i < results.length; i++) {\n        result = results[i];\n\n        var matched = String(result[0]);\n        var position = max(min(toInteger(result.index), S.length), 0);\n        var captures = [];\n        // NOTE: This is equivalent to\n        //   captures = result.slice(1).map(maybeToString)\n        // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\n        // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\n        // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\n        for (var j = 1; j < result.length; j++) captures.push(maybeToString(result[j]));\n        var namedCaptures = result.groups;\n        if (functionalReplace) {\n          var replacerArgs = [matched].concat(captures, position, S);\n          if (namedCaptures !== undefined) replacerArgs.push(namedCaptures);\n          var replacement = String(replaceValue.apply(undefined, replacerArgs));\n        } else {\n          replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n        }\n        if (position >= nextSourcePosition) {\n          accumulatedResult += S.slice(nextSourcePosition, position) + replacement;\n          nextSourcePosition = position + matched.length;\n        }\n      }\n      return accumulatedResult + S.slice(nextSourcePosition);\n    }\n  ];\n\n  // https://tc39.github.io/ecma262/#sec-getsubstitution\n  function getSubstitution(matched, str, position, captures, namedCaptures, replacement) {\n    var tailPos = position + matched.length;\n    var m = captures.length;\n    var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n    if (namedCaptures !== undefined) {\n      namedCaptures = toObject(namedCaptures);\n      symbols = SUBSTITUTION_SYMBOLS;\n    }\n    return nativeReplace.call(replacement, symbols, function (match, ch) {\n      var capture;\n      switch (ch.charAt(0)) {\n        case '$': return '$';\n        case '&': return matched;\n        case '`': return str.slice(0, position);\n        case \"'\": return str.slice(tailPos);\n        case '<':\n          capture = namedCaptures[ch.slice(1, -1)];\n          break;\n        default: // \\d\\d?\n          var n = +ch;\n          if (n === 0) return match;\n          if (n > m) {\n            var f = floor(n / 10);\n            if (f === 0) return match;\n            if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1);\n            return match;\n          }\n          capture = captures[n - 1];\n      }\n      return capture === undefined ? '' : capture;\n    });\n  }\n});\n","var $ = require('../internals/export');\nvar log1p = require('../internals/math-log1p');\n\nvar nativeAcosh = Math.acosh;\nvar log = Math.log;\nvar sqrt = Math.sqrt;\nvar LN2 = Math.LN2;\n\nvar FORCED = !nativeAcosh\n  // V8 bug: https://code.google.com/p/v8/issues/detail?id=3509\n  || Math.floor(nativeAcosh(Number.MAX_VALUE)) != 710\n  // Tor Browser bug: Math.acosh(Infinity) -> NaN\n  || nativeAcosh(Infinity) != Infinity;\n\n// `Math.acosh` method\n// https://tc39.github.io/ecma262/#sec-math.acosh\n$({ target: 'Math', stat: true, forced: FORCED }, {\n  acosh: function acosh(x) {\n    return (x = +x) < 1 ? NaN : x > 94906265.62425156\n      ? log(x) + LN2\n      : log1p(x - 1 + sqrt(x - 1) * sqrt(x + 1));\n  }\n});\n","import React, {PureComponent} from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport {CALLOUT_CLOSE_BUTTON_SIZE} from '../constants/config';\n\n\nconst CloseButton = styled.div`\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    width: ${CALLOUT_CLOSE_BUTTON_SIZE}px;\n    height: ${CALLOUT_CLOSE_BUTTON_SIZE}px;\n    border-radius: 4px;\n    background: url(${require('./assets/icon-cancel.svg')}) #000 center no-repeat;\n    background-size: 50%;\n    z-index: 1;\n    position: absolute;\n    font-size: ${CALLOUT_CLOSE_BUTTON_SIZE / 2}px;\n    cursor: pointer;\n    right: -${CALLOUT_CLOSE_BUTTON_SIZE / 2}px;\n    top: -${CALLOUT_CLOSE_BUTTON_SIZE / 2}px;\n`;\n\nexport default class CalloutCloseButton extends PureComponent {\n    static propTypes = {\n        onClose: PropTypes.func.isRequired,\n    };\n\n    render() {\n        return (\n            <CloseButton onClick={this.props.onClose}/>\n        );\n    }\n}\n","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport TransitionGroup from './TransitionGroup';\n/**\n * The `<ReplaceTransition>` component is a specialized `Transition` component\n * that animates between two children.\n *\n * ```jsx\n * <ReplaceTransition in>\n *   <Fade><div>I appear first</div></Fade>\n *   <Fade><div>I replace the above</div></Fade>\n * </ReplaceTransition>\n * ```\n */\n\nvar ReplaceTransition =\n/*#__PURE__*/\nfunction (_React$Component) {\n  _inheritsLoose(ReplaceTransition, _React$Component);\n\n  function ReplaceTransition() {\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\n    _this.handleEnter = function () {\n      for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n        args[_key2] = arguments[_key2];\n      }\n\n      return _this.handleLifecycle('onEnter', 0, args);\n    };\n\n    _this.handleEntering = function () {\n      for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n        args[_key3] = arguments[_key3];\n      }\n\n      return _this.handleLifecycle('onEntering', 0, args);\n    };\n\n    _this.handleEntered = function () {\n      for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n        args[_key4] = arguments[_key4];\n      }\n\n      return _this.handleLifecycle('onEntered', 0, args);\n    };\n\n    _this.handleExit = function () {\n      for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n        args[_key5] = arguments[_key5];\n      }\n\n      return _this.handleLifecycle('onExit', 1, args);\n    };\n\n    _this.handleExiting = function () {\n      for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n        args[_key6] = arguments[_key6];\n      }\n\n      return _this.handleLifecycle('onExiting', 1, args);\n    };\n\n    _this.handleExited = function () {\n      for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n        args[_key7] = arguments[_key7];\n      }\n\n      return _this.handleLifecycle('onExited', 1, args);\n    };\n\n    return _this;\n  }\n\n  var _proto = ReplaceTransition.prototype;\n\n  _proto.handleLifecycle = function handleLifecycle(handler, idx, originalArgs) {\n    var _child$props;\n\n    var children = this.props.children;\n    var child = React.Children.toArray(children)[idx];\n    if (child.props[handler]) (_child$props = child.props)[handler].apply(_child$props, originalArgs);\n    if (this.props[handler]) this.props[handler](ReactDOM.findDOMNode(this));\n  };\n\n  _proto.render = function render() {\n    var _this$props = this.props,\n        children = _this$props.children,\n        inProp = _this$props.in,\n        props = _objectWithoutPropertiesLoose(_this$props, [\"children\", \"in\"]);\n\n    var _React$Children$toArr = React.Children.toArray(children),\n        first = _React$Children$toArr[0],\n        second = _React$Children$toArr[1];\n\n    delete props.onEnter;\n    delete props.onEntering;\n    delete props.onEntered;\n    delete props.onExit;\n    delete props.onExiting;\n    delete props.onExited;\n    return React.createElement(TransitionGroup, props, inProp ? React.cloneElement(first, {\n      key: 'first',\n      onEnter: this.handleEnter,\n      onEntering: this.handleEntering,\n      onEntered: this.handleEntered\n    }) : React.cloneElement(second, {\n      key: 'second',\n      onEnter: this.handleExit,\n      onEntering: this.handleExiting,\n      onEntered: this.handleExited\n    }));\n  };\n\n  return ReplaceTransition;\n}(React.Component);\n\nReplaceTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  in: PropTypes.bool.isRequired,\n  children: function children(props, propName) {\n    if (React.Children.count(props[propName]) !== 2) return new Error(\"\\\"\" + propName + \"\\\" must be exactly two transition components.\");\n    return null;\n  }\n} : {};\nexport default ReplaceTransition;","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar thisNumberValue = require('../internals/this-number-value');\n\nvar nativeToPrecision = 1.0.toPrecision;\n\nvar FORCED = fails(function () {\n  // IE7-\n  return nativeToPrecision.call(1, undefined) !== '1';\n}) || !fails(function () {\n  // V8 ~ Android 4.3-\n  nativeToPrecision.call({});\n});\n\n// `Number.prototype.toPrecision` method\n// https://tc39.github.io/ecma262/#sec-number.prototype.toprecision\n$({ target: 'Number', proto: true, forced: FORCED }, {\n  toPrecision: function toPrecision(precision) {\n    return precision === undefined\n      ? nativeToPrecision.call(thisNumberValue(this))\n      : nativeToPrecision.call(thisNumberValue(this), precision);\n  }\n});\n","/* global PREZIGRAM */\nimport {glassboxWebPrezigram} from '@prezi/client-logger-module';\n\nimport {tooltipDummy, getTooltip, setTooltip} from '../../../../../../client/components/charts/tooltip';\nimport EditorState from '../../immutable/EditorState';\nimport moveEntitiesWithSnapping from '../../modifier/moveEntitiesWithSnapping';\nimport {connectorBounds} from '../../../../app/connectors/modifier/connectorBounds';\nimport resetHandlers from '../actions/resetHandle';\nimport startDragging from '../actions/startDragging';\nimport HandlersStore from '../store';\nimport pushBoundUndoStack from '../../../../app/freelayout_editor/actions/pushBoundUndoStack';\nimport {logModifyObjectWebJs} from '../../../../../../glassbox/client_logger';\nimport {modify_object_action} from '../../../../../../glassbox/logger_constants';\nimport getEditorStateWithNewGroupBounds from '../../../../app/freelayout_editor/components/contents/Group/utils/getEditorStateWithNewGroupBounds';\nimport {flattenEntities} from '../../../../app/freelayout_editor/components/contents/Group/utils/flatten';\nimport setActiveHandle from '../actions/setActiveHandle';\nimport getProjectIdFromUrl from '../../util/getProjectIdFromUrl';\n\nconst DRAGGING_MIN_MOUSE_DOWN_TIME = 120;\nlet tooltip;\nlet axis;\nfunction stopDragging(e) {\n    if (tooltip && tooltip !== tooltipDummy) {\n        setTooltip(tooltip);\n        tooltip = null;\n    }\n    this.exitCurrentMode();\n    resetHandlers();\n    if (this.props.updateMousePosition) {\n        // update position after dragging as during drag not saved\n        this.props.updateMousePosition(e.clientX, e.clientY);\n    }\n}\n\nconst DragHandler = {\n    async onMouseMove(e) {\n        e.preventDefault();\n\n        if ('button' in e && e.button !== 0) {\n            return;\n        }\n\n        if (this.props.updateMousePosition) {\n            this.props.updateMousePosition(e.clientX, e.clientY);\n        }\n\n        const activeHandle = HandlersStore.activeHandle;\n\n        if (activeHandle.get('type') === 'selectMarker') {\n            const mouseDownOn = activeHandle && activeHandle.get('mouseDownOn');\n            if (mouseDownOn && (Date.now() - mouseDownOn) < DRAGGING_MIN_MOUSE_DOWN_TIME) {\n                return;\n            }\n            const comment = this.props.comments && this.props.comments.find(c => c.key === activeHandle.get('key'));\n            if (comment) {\n                this.props.onMoveComment(comment, {\n                    mouseX: e.clientX - activeHandle.get('dx'),\n                    mouseY: e.clientY - activeHandle.get('dy'),\n                    scaleX: this.props.scaleX,\n                    scaleY: this.props.scaleY,\n                });\n            }\n            startDragging();\n        } else {\n            const {currentSelection, multiSelectionActive} = this.props;\n            let editorState = this.props.editorState;\n            let moveableEntities = HandlersStore.initialEntityPositions;\n            const firstEntity = moveableEntities.first();\n            if (!HandlersStore.dragging) {\n                if (getTooltip() !== tooltipDummy) {\n                    tooltip = getTooltip().hide();\n                    setTooltip(tooltipDummy);\n                }\n\n                //create undo snapshot\n                if (multiSelectionActive) {\n                    pushBoundUndoStack();\n                }\n\n                if (!currentSelection.getEntities().includes(activeHandle.get('key'))) {\n                    const flattenSelectionKeys = [...flattenEntities(editorState, editorState.getEntities(currentSelection.getEntities())).keys()];\n                    moveableEntities = moveableEntities.filter(e =>!flattenSelectionKeys.includes(e.key));\n                    setActiveHandle(activeHandle, moveableEntities, {\n                        x: HandlersStore.pointerDownX,\n                        y: HandlersStore.pointerDownY,\n                    });\n                    this.updateSelection(currentSelection.clear().addEntities(activeHandle.get('key')));\n                }\n\n                if (firstEntity && firstEntity.getCalloutKey()) {\n                    // drag disabled for callout items\n                    return;\n                }\n\n                editorState = EditorState.push(editorState, editorState.getCurrentContent());\n                let type;\n                let key = '';\n                if (multiSelectionActive) {\n                    type = 'MULTIPLE';\n                } else {\n                    key = activeHandle.get('key');\n                    type = editorState.getEntity(key).getType().toUpperCase();\n                }\n\n                if (PREZIGRAM) {\n                    glassboxWebPrezigram.logDragObject({\n                        prezi_oid: getProjectIdFromUrl(),\n                        editing_mode: 'DEFAULT',\n                        topic_relationship: 'GRAM',\n                        object_id: key,\n                        object_type: type,\n                    });\n                } else {\n                    logModifyObjectWebJs({\n                        project_id: window.location.href.split('/').pop(),\n                        object_id: key,\n                        object_type: type,\n                        modify_object_action: modify_object_action.MOVE,\n                    });\n                }\n\n                if (!moveableEntities.size) {\n                    return;\n                }\n\n                if (e.altKey) {\n                    e.persist();\n                    const {keys, editorState: nextEditorState} = await this.duplicateEntities(\n                        editorState,\n                        moveableEntities,\n                        firstEntity.getBlockKey(),\n                        {ignoreOffset: true}\n                    );\n                    editorState = nextEditorState;\n                    moveableEntities = flattenEntities(editorState, editorState.getEntities(keys));\n                    const {activeHandle, pointerDownX, pointerDownY} = HandlersStore;\n                    setActiveHandle(activeHandle, moveableEntities, {x: pointerDownX, y: pointerDownY});\n                }\n            }\n\n            let dx = (e.clientX - HandlersStore.pointerDownX) / this.props.scaleX;\n            let dy = (e.clientY - HandlersStore.pointerDownY) / this.props.scaleY;\n\n            if (!moveableEntities.size) {\n                return;\n            }\n\n            if (e.shiftKey) {\n                axis = axis || lockAxis(dx, dy);\n                if (axis === 'x') {\n                    dy = 0;\n                } else if (axis === 'y') {\n                    dx = 0;\n                }\n            }\n\n            editorState = moveEntitiesWithSnapping.call(this, editorState, [...moveableEntities.keys()], dx, dy);\n            const connectorBoundsResult = connectorBounds(editorState, [...moveableEntities.keys()]);\n            editorState = connectorBoundsResult.editorState;\n            const activeEntity = editorState.getEntity(HandlersStore.activeHandle.get('key'));\n            editorState = getEditorStateWithNewGroupBounds(editorState, activeEntity);\n\n            if (multiSelectionActive && connectorBoundsResult.updated) {\n                this.updateSelectionBoundBox();\n            }\n\n            const blockKey = moveableEntities.first().getBlockKey();\n            const entityKeys = moveableEntities.valueSeq().map(({key}) => key);\n            const entities = editorState.getCurrentContent().getBlock(blockKey).getEntitiesByKeys(entityKeys);\n            const changes = entities.reduce((acc, entity) => {\n                acc.entities[entity.key] = {\n                    top: entity.top,\n                    left: entity.left,\n                };\n                return acc;\n            }, {entities: {}});\n\n            startDragging();\n            this.update(editorState, {changes});\n        }\n    },\n\n    onMouseUp(e) {\n        axis = null;\n        const activeHandle = HandlersStore.activeHandle;\n        if (activeHandle && activeHandle.get('type') === 'selectMarker') {\n            const comment = this.props.comments && this.props.comments.find(c => c.key === activeHandle.get('key'));\n            if (comment) {\n                const mouseDownOn = activeHandle && activeHandle.get('mouseDownOn');\n                if ((Date.now() - mouseDownOn) > DRAGGING_MIN_MOUSE_DOWN_TIME) {\n                    if (comment && comment.id) {\n                        this.props.onCommentPositionChanged(comment);\n                    }\n                } else {\n                    this.props.onToggleComment(comment);\n                }\n            }\n        }\n        stopDragging.call(this, e);\n    },\n\n    onMouseLeave(e) {\n        stopDragging.call(this, e);\n    },\n};\n\nfunction lockAxis(dx, dy) {\n    const absX = Math.abs(dx);\n    const absY = Math.abs(dy);\n    //To better determine direction mouse needs to be moved more.\n    if (absX + absY < 15) {\n        return null;\n    } else if (absX > absY) {\n        return 'x';\n    } else if (absX < absY) {\n        return 'y';\n    }\n    return null;\n}\n\nexport default DragHandler;\n","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"._3eulAmB9iZmcVskJEYsVlb {\\n    position: absolute;\\n    left: 50%;\\n    top: 50px;\\n    transform: translateX(-50%);\\n    overflow-y: auto;\\n    overflow-x: hidden;\\n}\\n\\n.OEOvBc8BILps8dUBiU1pr {\\n    position: absolute;\\n    top: 0;\\n    left: 0;\\n    bottom: 0;\\n    right: 0;\\n    overflow-y: auto;\\n    overflow-x: hidden;\\n}\\n\\n.OEOvBc8BILps8dUBiU1pr:hover ._2z3mfrsSLUwY883BAO6OxL {\\n   opacity: .01;\\n}\\n\", \"\"]);\n\n// exports\nexports.locals = {\n\t\"containerFullscreen\": \"_3eulAmB9iZmcVskJEYsVlb\",\n\t\"wrapperFullscreen\": \"OEOvBc8BILps8dUBiU1pr\",\n\t\"sideButtonContainer\": \"_2z3mfrsSLUwY883BAO6OxL\"\n};","module.exports = __webpack_public_path__ + \"3L9u1wXuCG8HPpd1YCnNKT.svg\";","import React, {PureComponent} from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nconst Container = styled.div`\n    position: absolute;\n    top: 0;\n    left: 0;\n    right: 0;\n    bottom: 0;\n    cursor: pointer;\n    ${props => props.zIndex\n        && `z-index: ${props.zIndex};`\n    }\n`;\n\nexport class PointerEventsCatcher extends PureComponent {\n    static propTypes = {\n        onSwipeForward: PropTypes.func.isRequired,\n        onSwipeBack: PropTypes.func.isRequired,\n        onInteract: PropTypes.func.isRequired,\n        zIndex: PropTypes.number,\n    }\n\n    containerRef = React.createRef();\n\n    touchStart = (e) => {\n        this.xSwipe = null;\n        this.ySwipe = null;\n        if (e.touches.length === 1) {\n            this.xSwipe = e.touches.item(0).clientX;\n            this.ySwipe = e.touches.item(0).clientY;\n        }\n    }\n\n    touchEnd = (e) => {\n        if (!this.xSwipe || !this.ySwipe) {\n            return;\n        }\n        const xUp = e.changedTouches.item(0).clientX;\n        const yUp = e.changedTouches.item(0).clientY;\n        const xDiff = this.xSwipe - xUp;\n        const yDiff = this.ySwipe - yUp;\n\n        if (Math.abs(xDiff) > Math.abs(yDiff)) {\n            if (xDiff > 0) {\n                this.props.onSwipeForward();\n            } else {\n                this.props.onSwipeBack();\n            }\n        } else if (!xDiff && !yDiff) { // TODO Maybe some threshold delta?\n            // no swipe ergo - TAP\n            this.props.onInteract();\n        }\n        this.xSwipe = null;\n        this.ySwipe = null;\n\n        e.preventDefault();\n        e.stopPropagation();\n    }\n\n    render() {\n        return (\n            <Container\n                ref={this.containerRef}\n                zIndex={this.props.zIndex}\n                onTouchStart={this.touchStart}\n                onTouchEnd={this.touchEnd}\n                // mouse CLICK only\n                onClick={this.props.onInteract}\n            />\n        );\n    }\n}\n","import styled from 'styled-components';\n\nconst StyledLink = styled.div`\n    background: #fff;\n    border: 2px solid #ddd;\n    box-sizing: border-box;\n    border-radius: 3px;\n\n    h2 {\n        font: bold 17px/1.5 'Roboto';\n        color: #282727;\n        border: none;\n    }\n\n    .text {\n        padding: 25px 25px 50px;\n    }\n\n    p {\n        margin-top: 15px;\n        font-size: 13px;\n        color: #656565;\n    }\n\n    a {\n        display: block;\n        margin-top: 10px;\n        word-wrap: break-word;\n        font: bold 13px/1.2 'Roboto';\n        color: #3796c9;\n    }\n\n    img {\n        float: right;\n        max-width: 30%;\n    }\n`;\n\nconst StyledImage = styled.div`\n    text-align: center;\n\n    img {\n        height: auto;\n        width: 100%;\n        max-width: 100%;\n        padding-bottom: 0;\n    }\n\n    .graphic-link:hover {\n        opacity: 0.9;\n        cursor: pointer;\n    }\n`;\n\nconst StyledVideo = styled.div`\n    height: 0;\n    padding-bottom: 75%;\n\n    iframe {\n        position: absolute;\n        top: 0;\n        left: 0;\n        width: 100%;\n        height: 100%;\n    }\n\n    img.video {\n        height: auto;\n        width: 100%;\n        max-width: 100%;\n        padding-bottom: 0;\n    }\n\n    img.play-icon {\n        position: absolute;\n        left: 50%;\n        top: 50%;\n        width: 100px;\n        height: 100px;\n        margin-left: -50px;\n        margin-top: -50px;\n    }\n`;\n\nconst StyledIframe = styled.div`\n    height: 0;\n    padding-bottom: 75%;\n\n    iframe {\n        position: absolute;\n        top: 0;\n        left: 0;\n        width: 100%;\n        height: 100%;\n    }\n\n    img.video {\n        height: auto;\n        width: 100%;\n        max-width: 100%;\n        padding-bottom: 0;\n    }\n`;\n\nexport {\n    StyledLink,\n    StyledImage,\n    StyledVideo,\n    StyledIframe,\n};\n","const userInfo = {} as UserInfo;\n\nexport type UserInfo = {\n    readonly id: number; // Numerical user id\n    readonly oid: string; // String representation of user id\n    readonly email: string;\n    readonly firstName: string;\n    readonly lastName: string;\n    readonly orgMember: number[]; // ids of the organizations the user is member of\n    readonly orgAdmin: number[]; // ids of the organizations the user is admin in\n    readonly features: {\n        // Standard and Plus\n        publish_private_sharing: boolean;\n        publish_download: boolean;\n        publish_maps: boolean;\n        publish_pro_images: boolean;\n        publish_no_watermark: boolean;\n\n        // Premium\n        publish_sql_connectors: boolean;\n        publish_iframe_import: boolean;\n        publish_page_linking: boolean;\n    };\n}\nexport function setUserInfo(newUserInfo: UserInfo): void {\n    Object.assign(userInfo, newUserInfo);\n}\n\nexport default userInfo;\n","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport TransitionGroupContext from './TransitionGroupContext';\nimport { getChildMapping, getInitialChildMapping, getNextChildMapping } from './utils/ChildMapping';\n\nvar values = Object.values || function (obj) {\n  return Object.keys(obj).map(function (k) {\n    return obj[k];\n  });\n};\n\nvar defaultProps = {\n  component: 'div',\n  childFactory: function childFactory(child) {\n    return child;\n  }\n  /**\n   * The `<TransitionGroup>` component manages a set of transition components\n   * (`<Transition>` and `<CSSTransition>`) in a list. Like with the transition\n   * components, `<TransitionGroup>` is a state machine for managing the mounting\n   * and unmounting of components over time.\n   *\n   * Consider the example below. As items are removed or added to the TodoList the\n   * `in` prop is toggled automatically by the `<TransitionGroup>`.\n   *\n   * Note that `<TransitionGroup>`  does not define any animation behavior!\n   * Exactly _how_ a list item animates is up to the individual transition\n   * component. This means you can mix and match animations across different list\n   * items.\n   */\n\n};\n\nvar TransitionGroup =\n/*#__PURE__*/\nfunction (_React$Component) {\n  _inheritsLoose(TransitionGroup, _React$Component);\n\n  function TransitionGroup(props, context) {\n    var _this;\n\n    _this = _React$Component.call(this, props, context) || this;\n\n    var handleExited = _this.handleExited.bind(_assertThisInitialized(_assertThisInitialized(_this))); // Initial children should all be entering, dependent on appear\n\n\n    _this.state = {\n      contextValue: {\n        isMounting: true\n      },\n      handleExited: handleExited,\n      firstRender: true\n    };\n    return _this;\n  }\n\n  var _proto = TransitionGroup.prototype;\n\n  _proto.componentDidMount = function componentDidMount() {\n    this.mounted = true;\n    this.setState({\n      contextValue: {\n        isMounting: false\n      }\n    });\n  };\n\n  _proto.componentWillUnmount = function componentWillUnmount() {\n    this.mounted = false;\n  };\n\n  TransitionGroup.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, _ref) {\n    var prevChildMapping = _ref.children,\n        handleExited = _ref.handleExited,\n        firstRender = _ref.firstRender;\n    return {\n      children: firstRender ? getInitialChildMapping(nextProps, handleExited) : getNextChildMapping(nextProps, prevChildMapping, handleExited),\n      firstRender: false\n    };\n  };\n\n  _proto.handleExited = function handleExited(child, node) {\n    var currentChildMapping = getChildMapping(this.props.children);\n    if (child.key in currentChildMapping) return;\n\n    if (child.props.onExited) {\n      child.props.onExited(node);\n    }\n\n    if (this.mounted) {\n      this.setState(function (state) {\n        var children = _extends({}, state.children);\n\n        delete children[child.key];\n        return {\n          children: children\n        };\n      });\n    }\n  };\n\n  _proto.render = function render() {\n    var _this$props = this.props,\n        Component = _this$props.component,\n        childFactory = _this$props.childFactory,\n        props = _objectWithoutPropertiesLoose(_this$props, [\"component\", \"childFactory\"]);\n\n    var contextValue = this.state.contextValue;\n    var children = values(this.state.children).map(childFactory);\n    delete props.appear;\n    delete props.enter;\n    delete props.exit;\n\n    if (Component === null) {\n      return React.createElement(TransitionGroupContext.Provider, {\n        value: contextValue\n      }, children);\n    }\n\n    return React.createElement(TransitionGroupContext.Provider, {\n      value: contextValue\n    }, React.createElement(Component, props, children));\n  };\n\n  return TransitionGroup;\n}(React.Component);\n\nTransitionGroup.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  /**\n   * `<TransitionGroup>` renders a `<div>` by default. You can change this\n   * behavior by providing a `component` prop.\n   * If you use React v16+ and would like to avoid a wrapping `<div>` element\n   * you can pass in `component={null}`. This is useful if the wrapping div\n   * borks your css styles.\n   */\n  component: PropTypes.any,\n\n  /**\n   * A set of `<Transition>` components, that are toggled `in` and out as they\n   * leave. the `<TransitionGroup>` will inject specific transition props, so\n   * remember to spread them through if you are wrapping the `<Transition>` as\n   * with our `<Fade>` example.\n   *\n   * While this component is meant for multiple `Transition` or `CSSTransition`\n   * children, sometimes you may want to have a single transition child with\n   * content that you want to be transitioned out and in when you change it\n   * (e.g. routes, images etc.) In that case you can change the `key` prop of\n   * the transition child as you change its content, this will cause\n   * `TransitionGroup` to transition the child out and back in.\n   */\n  children: PropTypes.node,\n\n  /**\n   * A convenience prop that enables or disables appear animations\n   * for all children. Note that specifying this will override any defaults set\n   * on individual children Transitions.\n   */\n  appear: PropTypes.bool,\n\n  /**\n   * A convenience prop that enables or disables enter animations\n   * for all children. Note that specifying this will override any defaults set\n   * on individual children Transitions.\n   */\n  enter: PropTypes.bool,\n\n  /**\n   * A convenience prop that enables or disables exit animations\n   * for all children. Note that specifying this will override any defaults set\n   * on individual children Transitions.\n   */\n  exit: PropTypes.bool,\n\n  /**\n   * You may need to apply reactive updates to a child as it is exiting.\n   * This is generally done by using `cloneElement` however in the case of an exiting\n   * child the element has already been removed and not accessible to the consumer.\n   *\n   * If you do need to update a child as it leaves you can provide a `childFactory`\n   * to wrap every child, even the ones that are leaving.\n   *\n   * @type Function(child: ReactElement) -> ReactElement\n   */\n  childFactory: PropTypes.func\n} : {};\nTransitionGroup.defaultProps = defaultProps;\nexport default TransitionGroup;","import React, {PureComponent} from 'react';\nimport PropTypes from 'prop-types';\nimport ImmutablePropTypes from 'react-immutable-proptypes';\n\nimport hiddenOffScreen from '../AccessibilityDescriptionStyle.js';\n\n\nclass AccessibleWrapper extends PureComponent {\n    static propTypes = {\n        id: PropTypes.string.isRequired,\n        role: PropTypes.string.isRequired,\n        children: PropTypes.any,\n        accessibility: ImmutablePropTypes.record,\n    };\n\n    render() {\n        const descriptionID = `${this.props.id}_description`;\n        const label = this.props.accessibility.label;\n        const description = this.props.accessibility.description;\n        let descriptionTag;\n        if (description) {\n            descriptionTag = (<span id={descriptionID} style={hiddenOffScreen}>{description}</span>);\n        }\n        return (\n            <div\n                role={this.props.role}\n                style={{height: '100%'}}\n                aria-label={label ? label : undefined}\n                aria-describedby={description ? descriptionID : undefined}\n            >\n                {this.props.children}\n                {descriptionTag}\n            </div>\n        );\n    }\n}\n\nexport default AccessibleWrapper;\n","var global = require('../internals/global');\nvar setGlobal = require('../internals/set-global');\nvar IS_PURE = require('../internals/is-pure');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || setGlobal(SHARED, {});\n\n(module.exports = function (key, value) {\n  return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n  version: '3.1.3',\n  mode: IS_PURE ? 'pure' : 'global',\n  copyright: '© 2019 Denis Pushkarev (zloirock.ru)'\n});\n","var getBuiltIn = require('../internals/get-built-in');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n  var keys = getOwnPropertyNamesModule.f(anObject(it));\n  var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n  return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar FORCED = require('../internals/forced-object-prototype-accessors-methods');\nvar toObject = require('../internals/to-object');\nvar toPrimitive = require('../internals/to-primitive');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\n\n// `Object.prototype.__lookupSetter__` method\n// https://tc39.github.io/ecma262/#sec-object.prototype.__lookupSetter__\nif (DESCRIPTORS) {\n  $({ target: 'Object', proto: true, forced: FORCED }, {\n    __lookupSetter__: function __lookupSetter__(P) {\n      var O = toObject(this);\n      var key = toPrimitive(P, true);\n      var desc;\n      do {\n        if (desc = getOwnPropertyDescriptor(O, key)) return desc.set;\n      } while (O = getPrototypeOf(O));\n    }\n  });\n}\n","import removeEntities from '../../../../../../components/FreeLayoutEditor/modifier/removeEntities';\nimport getEditorStateWithNewGroupBounds from './getEditorStateWithNewGroupBounds';\nimport EditorState from '../../../../../../components/FreeLayoutEditor/immutable/EditorState';\n\n/**\n * @param {Object} editorState Instace of EditorState (immutable)\n * @param {String} groupKey Group key that needs to be disassembled\n * @returns {Object} {editorState: Object, entityKeys: Array}\n */\nexport default function disassembleGroup(editorState, groupKey) {\n    let newEditorState = editorState;\n    const group = newEditorState.getEntity(groupKey);\n    const entityKeysToSeparate = group.getChildrenKeys();\n    if (group.getGroupKey()) {\n        const parentGroup = newEditorState.getEntity(group.getGroupKey());\n        const parentGroupChildren = parentGroup.getChildrenKeys();\n        const groupsIndex = parentGroupChildren.indexOf(groupKey);\n        const newSetOfKeys = parentGroupChildren.remove(groupsIndex).concat(entityKeysToSeparate).toSet().toList();\n        //Hacky way how to overcome merge issue. Have to think of something better;\n        newEditorState = newEditorState.setEntity(parentGroup.getKey(), {props: null});\n        newEditorState = newEditorState.setEntity(parentGroup.getKey(), {props: {entityKeys: newSetOfKeys}});\n        newEditorState = getEditorStateWithNewGroupBounds(newEditorState, parentGroup, true);\n    }\n\n    newEditorState = EditorState.push(newEditorState, newEditorState.getCurrentContent());\n    newEditorState = removeEntities(newEditorState, groupKey);\n    entityKeysToSeparate.forEach(key => {\n        newEditorState = newEditorState.setEntity(key, {groupKey: group.getGroupKey()});\n    });\n    return {\n        editorState: newEditorState,\n        entityKeys: entityKeysToSeparate,\n        groupKeyToExit: group.getGroupKey(),\n    };\n}\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n  return relativeURL\n    ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n    : baseURL;\n};\n","module.exports = __webpack_public_path__ + \"3oQG2Hiu4kwmPmdMH6hDfH.svg\";","var $ = require('../internals/export');\nvar isInteger = require('../internals/is-integer');\n\nvar abs = Math.abs;\n\n// `Number.isSafeInteger` method\n// https://tc39.github.io/ecma262/#sec-number.issafeinteger\n$({ target: 'Number', stat: true }, {\n  isSafeInteger: function isSafeInteger(number) {\n    return isInteger(number) && abs(number) <= 0x1FFFFFFFFFFFFF;\n  }\n});\n","/* global PREZIGRAM */\nimport {glassboxWebPrezigram} from '@prezi/client-logger-module';\nimport {Map} from 'immutable';\n\nimport EditorState from '../immutable/EditorState';\nimport {logRemoveObjectWebJs} from '../../../../../glassbox/client_logger';\n\nimport cleanupAssets from './cleanupAssets';\nimport cleanupConnectors from '../../../app/connectors/modifier/cleanupConnectors';\nimport cleanupCallouts from '../../../app/callouts/actions/cleanupCallouts';\nimport getProjectIdFromUrl from '../util/getProjectIdFromUrl';\n\nexport default function removeEntities(editorState, ...entityKeys) {\n    const currentContent = editorState.getCurrentContent();\n    const keysToDelete = entityKeys.filter(key => !currentContent.getEntity(key).locked);\n    let updatedState = editorState;\n\n    const removedCalloutEntities = [];\n    const removedCallouts = [];\n\n    keysToDelete.forEach(key => {\n        const entity = updatedState.getEntity(key);\n\n        if (PREZIGRAM) {\n            glassboxWebPrezigram.logDeleteObject({\n                prezi_oid: getProjectIdFromUrl(),\n                object_id: key,\n                object_type: entity.getType().toUpperCase(),\n                delete_type: 'KEY_DEL',\n                editing_mode: 'DEFAULT',\n                topic_relationship: 'GRAM',\n            });\n        } else {\n            logRemoveObjectWebJs({\n                project_id: window.location.href.split('/').pop(),\n                object_id: key,\n                object_type: entity.getType().toUpperCase(),\n            });\n        }\n        updatedState = cleanupConnectors(updatedState, entity);\n        if (entity.getCalloutKey()) {\n            removedCalloutEntities.push(entity);\n        }\n        if (entity.getCallout()) {\n            removedCallouts.push(entity);\n        }\n    });\n\n    updatedState = EditorState.set(updatedState, {\n        currentContent: updatedState.getCurrentContent().removeEntities(...keysToDelete),\n    });\n\n    if (removedCalloutEntities.length || removedCallouts.length) {\n        updatedState = cleanupCallouts(updatedState, editorState, removedCallouts, removedCalloutEntities);\n    }\n    updatedState = cleanupAssets(updatedState);\n\n    if (keysToDelete.length > 0) {\n        updatedState = EditorState.set(updatedState, {\n            currentContent: updatedState.getCurrentContent().update('layouts', (layouts) => {\n                return layouts.reduce((layouts, layout, layoutName) => {\n                    if (!layout.has('entities')) {\n                        return layouts;\n                    }\n                    return layouts.set(layoutName, layout.update('entities', (entities) => {\n                        keysToDelete.forEach(key => entities = entities.delete(key));\n                        return entities;\n                    }));\n                }, Map());\n            }),\n        });\n    }\n\n    return updatedState;\n}\n","// a string of all valid unicode whitespaces\n// eslint-disable-next-line max-len\nmodule.exports = '\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u00A0\\u1680\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n","var requireObjectCoercible = require('../internals/require-object-coercible');\nvar whitespaces = require('../internals/whitespaces');\n\nvar whitespace = '[' + whitespaces + ']';\nvar ltrim = RegExp('^' + whitespace + whitespace + '*');\nvar rtrim = RegExp(whitespace + whitespace + '*$');\n\n// `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation\nvar createMethod = function (TYPE) {\n  return function ($this) {\n    var string = String(requireObjectCoercible($this));\n    if (TYPE & 1) string = string.replace(ltrim, '');\n    if (TYPE & 2) string = string.replace(rtrim, '');\n    return string;\n  };\n};\n\nmodule.exports = {\n  // `String.prototype.{ trimLeft, trimStart }` methods\n  // https://tc39.github.io/ecma262/#sec-string.prototype.trimstart\n  start: createMethod(1),\n  // `String.prototype.{ trimRight, trimEnd }` methods\n  // https://tc39.github.io/ecma262/#sec-string.prototype.trimend\n  end: createMethod(2),\n  // `String.prototype.trim` method\n  // https://tc39.github.io/ecma262/#sec-string.prototype.trim\n  trim: createMethod(3)\n};\n","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","import i18n from 'i18next';\nimport React, {PureComponent} from 'react';\nimport PropTypes from 'prop-types';\nimport cx from 'classnames';\n\nimport style from './PublicDownloadDialog.css';\n\nimport {downloadPublic} from '../../app/download/utils/DownloadWebAPIUtils';\n\nconst FIRST_POSITION_TOP_MARGIN = 50;\n\nclass PublicDownloadDialog extends PureComponent {\n    static propTypes = {\n        className: PropTypes.string,\n        position: PropTypes.number,\n        onClose: PropTypes.func.isRequired,\n        type: PropTypes.string,\n    };\n\n    render() {\n        const blockStyle = {};\n        if (this.props.position) {\n            blockStyle.top = FIRST_POSITION_TOP_MARGIN * this.props.position;\n        }\n\n        return (\n            <div className={cx(style.publicDownloadDialogHolder, {[style.headerPublicDownloadDialogHolder]: this.props.type === 'header'})} style={blockStyle}>\n                <div className={cx(style.publicDownloadDialog, this.props.className)} style={blockStyle}>\n                    <div className={style.dialogHeader}>\n                        {i18n.t('web.download') || 'Download'}\n                        <span onClick={this._onClose} className={style.close}/>\n                    </div>\n\n                    <div className={style.dialogContainer}>\n                        <div className={cx(style.dialogButton, style.jpgFile)} onClick={this._download} data-type=\"jpg\">\n                            {i18n.t('web.jpg_image') || 'JPG image'}\n                        </div>\n\n                        <div className={cx(style.dialogButton, style.pngFile)} onClick={this._download} data-type=\"png\">\n                            {i18n.t('web.png_image') || 'PNG image'}\n                        </div>\n\n                        <div className={cx(style.dialogButton, style.pdfFile)} onClick={this._download} data-type=\"pdf\">\n                            {i18n.t('web.pdf_file') || 'PDF file'}\n                        </div>\n                    </div>\n                </div>\n            </div>\n        );\n    }\n\n    _download = (e) => {\n        const type = e.currentTarget.getAttribute('data-type');\n        downloadPublic(type);\n    }\n\n    _onClose = (e) => {\n        e.preventDefault();\n        this.props.onClose();\n    }\n}\n\nexport default PublicDownloadDialog;\n","import AppDispatcher from '../../dispatcher';\n\nimport {\n    DISPLAY_IMAGE_CROPPING_CONTROLS,\n    DISPLAY_IMAGE_MASKING_CONTROLS,\n    EXIT_CLIPPING_MODE,\n    APPLY_IMAGE_CLIP,\n    REMOVE_IMAGE_CLIP,\n    START_CLIP_RESIZE,\n    START_CLIP_MOVE,\n    MOVE_IMAGE_MASK,\n    START_CLIP_ROTATE,\n    RESIZE_IMAGE_CROP,\n    MOVE_IMAGE_CROP,\n    TRANSFORM_IMAGE_MASK,\n    STOP_CLIPPING,\n} from '../constants/EditorConstants';\n\nexport function startImageClipEditing(entity) {\n    if (entity.getType() === 'IMAGE' && entity.getProperty('subType') !== 'icon') {\n        const mask = entity.getProperty('mask');\n        if (mask) {\n            showImageMaskControls({entity, mask, isNew: false});\n        } else {\n            showImageCropControls(entity);\n        }\n    }\n}\n\nexport function showImageCropControls(entity) {\n    AppDispatcher.dispatch({\n        type: DISPLAY_IMAGE_CROPPING_CONTROLS,\n        entity,\n    });\n}\n\nexport function showImageMaskControls({entity, mask, isNew = true}) {\n    AppDispatcher.dispatch({\n        type: DISPLAY_IMAGE_MASKING_CONTROLS,\n        entity,\n        mask,\n        isNew,\n    });\n}\n\nfunction saveClip(clipProps, offset, key, options = {}) {\n    AppDispatcher.dispatch({\n        type: APPLY_IMAGE_CLIP,\n        key,\n        clipProps,\n        offset,\n        options,\n    });\n}\n\nexport function saveMask(mask, offset, key, options) {\n    saveClip({\n        mask,\n        crop: null,\n    }, offset, key, options);\n}\n\nexport function saveCrop(crop, offset, key, options) {\n    saveClip({\n        crop,\n        mask: null,\n    }, offset, key, options);\n}\n\nexport function startClipResize({startPoint, resizeOrigin, scaleX, scaleY}) {\n    AppDispatcher.dispatch({\n        type: START_CLIP_RESIZE,\n        startPoint,\n        resizeOrigin,\n        scaleX,\n        scaleY,\n    });\n}\n\nexport function startClipRotate({startPoint, scaleX, scaleY}) {\n    AppDispatcher.dispatch({\n        type: START_CLIP_ROTATE,\n        startPoint,\n        scaleX,\n        scaleY,\n    });\n}\n\nexport function startClipMove({startPoint, scaleX, scaleY}) {\n    AppDispatcher.dispatch({\n        type: START_CLIP_MOVE,\n        startPoint,\n        scaleX,\n        scaleY,\n    });\n}\n\nexport function transformImageMask(endPoint) {\n    AppDispatcher.dispatch({\n        type: TRANSFORM_IMAGE_MASK,\n        endPoint,\n    });\n}\n\nexport function resizeImageCrop(endPoint, lockAspectRatio = false) {\n    AppDispatcher.dispatch({\n        type: RESIZE_IMAGE_CROP,\n        endPoint,\n        lockAspectRatio,\n    });\n}\n\nexport function moveImageMask(endPoint) {\n    AppDispatcher.dispatch({\n        type: MOVE_IMAGE_MASK,\n        endPoint,\n    });\n}\n\nexport function moveImageCrop(endPoint) {\n    AppDispatcher.dispatch({\n        type: MOVE_IMAGE_CROP,\n        endPoint,\n    });\n}\n\nexport function exitClippingMode() {\n    AppDispatcher.dispatch({\n        type: EXIT_CLIPPING_MODE,\n    });\n}\n\nexport function stopClipping() {\n    AppDispatcher.dispatch({\n        type: STOP_CLIPPING,\n    });\n}\n\nexport function removeImageClip(key) {\n    AppDispatcher.dispatch({\n        type: REMOVE_IMAGE_CLIP,\n        key,\n    });\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar client_logger_1 = require(\"./client.logger\");\nexports.ClientLogger = client_logger_1.ClientLogger;\nexports.LogLevel = client_logger_1.LogLevel;\nvar WebsiteLogger_1 = require(\"./WebsiteLogger\");\nexports.WebsiteLogger = WebsiteLogger_1.WebsiteLogger;\nexports.logConfig = WebsiteLogger_1.logConfig;\nvar glassboxWebJs = require(\"./glassbox/WebJs\");\nexports.glassboxWebJs = glassboxWebJs;\nvar glassboxWebPrezigram = require(\"./glassbox/WebPrezigram\");\nexports.glassboxWebPrezigram = glassboxWebPrezigram;\nvar glassboxWebWebgl = require(\"./glassbox/WebWebgl\");\nexports.glassboxWebWebgl = glassboxWebWebgl;\nvar glassboxPreziAirWeb = require(\"./glassbox/PreziAirWeb\");\nexports.glassboxPreziAirWeb = glassboxPreziAirWeb;\n","var isRegExp = require('../internals/is-regexp');\n\nmodule.exports = function (it) {\n  if (isRegExp(it)) {\n    throw TypeError(\"The method doesn't accept regular expressions\");\n  } return it;\n};\n","/* global app */\nimport i18n from 'i18next';\n\nimport Constants from '../../constants';\nimport Dispatcher from '../../dispatcher';\nimport UserError from '../../../UserError';\n\nimport createBackboneModelFromJSON from '../utils/createBackboneModelFromJSON';\nimport loadAssetsForInfographic from '../../../common/loadAssetsForInfographic';\n\nexport function load(id, additionalParameters = null, options = null) {\n    Dispatcher.dispatch({\n        type: Constants.INFOGRAPHIC_LOADING,\n        id,\n    });\n\n    let hasQueryString = false;\n    let url = `/api/infographics/${id}`;\n    if (options && options.nocache) {\n        url += '?' + Date.now();\n        hasQueryString = true;\n    }\n    if (additionalParameters) {\n        const paramsStr = Object.keys(additionalParameters).map((key) => {\n            return encodeURIComponent(key) + '=' + encodeURIComponent(additionalParameters[key]);\n        }).join('&');\n\n        if (paramsStr) {\n            url += (hasQueryString ? '&' : '?') + paramsStr;\n        }\n    }\n\n    return fetch(url, {\n        credentials: 'same-origin',\n    });\n}\n\n/**\n * @param {String} id                    Infographic Id\n */\nexport default function loadInfographic(id, options = null) {\n    load(id, null, options).catch(() => {\n        throw new UserError(i18n.t('app.errors.connectivity'));\n    }).then(async response => {\n        const {status} = response;\n        if (status !== 200) {\n            if (status === 403) {\n                const text = await response.text();\n                throw new UserError(text);\n            }\n\n            throw new UserError('Invalid HTTP response');\n        }\n\n        // As response.json also return promise, call dispatcher in next .then() call\n        return response.json();\n    }).then(raw => {\n        return loadInfographicFromRawData(raw);\n    }).catch(reason => {\n        if (reason instanceof UserError) {\n            const payload = {\n                type: Constants.INFOGRAPHIC_LOAD_ERROR,\n            };\n\n            if (reason.message) {\n                payload.message = reason.message;\n            }\n\n            Dispatcher.dispatch(payload);\n            app.router.navigate('#/library');\n        } else {\n            throw reason;\n        }\n    });\n}\n\nexport async function loadInfographicFromRawData(data, {loadAssets, loadAllBrandAssets} = {loadAssets: true, loadAllBrandAssets: false}) {\n    window.loadingLog && window.loadingLog.push('loadInfographicFromRawData');\n    const model = createBackboneModelFromJSON(data);\n\n    if (loadAssets) {\n        await loadAssetsForInfographic(model, {loadAllBrandAssets});\n    }\n    window.loadingLog && window.loadingLog.push('INFOGRAPHIC_LOADED');\n    Dispatcher.dispatch({\n        type: Constants.INFOGRAPHIC_LOADED,\n        data: model,\n    });\n}\n","import React, {PureComponent} from 'react';\nimport PropTypes from 'prop-types';\n\nimport _ from 'lodash';\n\nimport WebInfographicThumbnail from '../WebInfographicThumbnail';\n\nimport style from './WebInfographicsGrid.css';\n\nexport default class WebInfographicsGrid extends PureComponent {\n    static propTypes = {\n        infographics: PropTypes.array.isRequired,\n    }\n\n    render() {\n        // This creates empty elements which help flexbox to align elements correctly in the last row\n        // Waiting for CSS Grid or Flexbox Level 2 in the future for cleaner solution\n        const lastRowPadding = _.times(15, i => <div className={style.lastRowPadding} key={i}/>);\n\n        return (\n            <div className={style.container}>\n                {this.props.infographics.map(item => <WebInfographicThumbnail key={item.path} {...item}/>)}\n\n                {lastRowPadding}\n            </div>\n        );\n    }\n}\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n  return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n  object[key] = value;\n  return object;\n};\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar $join = [].join;\n\n// `%TypedArray%.prototype.join` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.join\n// eslint-disable-next-line no-unused-vars\nArrayBufferViewCore.exportProto('join', function join(separator) {\n  return $join.apply(aTypedArray(this), arguments);\n});\n","export const PROGRESS_DIALOG_CRASH_PROGRESS = 'progress-dialog-crash-progress';\nexport const PROGRESS_DIALOG_FINISH_PROGRESS = 'progress-dialog-finish-progress';\nexport const PROGRESS_DIALOG_RESET_PROGRESS = 'progress-dialog-reset-progress';\nexport const PROGRESS_DIALOG_SET_PROGRESS = 'progress-dialog-set-progress';\n","import React, {PureComponent} from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport PrezigramTheme from '../../contexts/theme/prezigram';\nimport Reveal from './Reveal.react';\n\nconst Header = styled.div`\n    white-space: nowrap;\n    background-color: #656565;\n    border-radius: 4px;\n\n    ${props => props.theme.id === PrezigramTheme.id && `\n        background-color: ${PrezigramTheme.neutral60};\n        border: 1px solid ${PrezigramTheme.neutral80};\n    `}\n`;\n\nconst HeaderContents = styled.div`\n    display: inline-block;\n    vertical-align: middle;\n`;\n\nconst Contents = styled.div`\n    margin-top: 5px;\n    box-shadow: 0 10px 40px 0 rgba(0, 0, 0, 0.5);\n    background-color: #2d2d2d;\n    border-radius: 4px;\n\n    ${props => props.theme.id === PrezigramTheme.id && `\n        background-color: ${PrezigramTheme.white};\n        box-shadow: ${PrezigramTheme.shadow.menus};\n    `}\n`;\n\nconst Arrow = styled.span`\n    position: absolute;\n    display: inline-block;\n    width: 12px;\n    height: 12px;\n    top: 7px;\n    right: 8px;\n`;\n\nconst ArrowDown = styled(Arrow)`\n    background: url(${require('./icon-down.svg')}) center/contain no-repeat;\n\n    ${props => props.theme.id === PrezigramTheme.id && `\n        background: url(${require('./icon-down-prezigram.svg')}) center/8px no-repeat;\n    `}\n`;\n\nconst ArrowUp = styled(Arrow)`\n    background: url(${require('./icon-up.svg')}) center/contain no-repeat;\n\n    ${props => props.theme.id === PrezigramTheme.id && `\n        background: url(${require('./icon-up-prezigram.svg')}) center/8px no-repeat;\n    `}\n`;\n\nexport default class Dropdown extends PureComponent {\n    static propTypes = {\n        open: PropTypes.bool,\n        onToggle: PropTypes.func.isRequired,\n        header: PropTypes.node.isRequired,\n        align: PropTypes.oneOf(['left', 'right']),\n        children: PropTypes.node,\n        zIndex: PropTypes.number,\n    };\n\n    static defaultProps = {\n        align: 'left',\n        open: false,\n    };\n\n    render() {\n        const {open} = this.props;\n        const header = (\n            <Header>\n                <HeaderContents>\n                    {this.props.header}\n                </HeaderContents>\n                {open ? <ArrowUp/> : <ArrowDown/>}\n            </Header>\n        );\n\n        return (\n            <Reveal header={header}\n                    onToggle={this.props.onToggle}\n                    open={open}\n                    align={this.props.align}\n                    zIndex={this.props.zIndex}\n            >\n                <Contents>{this.props.children}</Contents>\n            </Reveal>\n        );\n    }\n}\n","\n\nexport const ELEMENT_MENU_TAB_CHANGE = 'ELEMENT_MENU_TAB_CHANGE';\nexport const ELEMENT_MENU_CLOSE = 'ELEMENT_MENU_CLOSE';\n\nexport const ELEMENT_MENU_DRAG_BEGIN = 'ELEMENT_MENU_DRAG_BEGIN';\nexport const ELEMENT_MENU_DRAG_END = 'ELEMENT_MENU_DRAG_END';\nexport const ELEMENT_MENU_DRAG_ENTER = 'ELEMENT_MENU_DRAG_ENTER';\nexport const ELEMENT_MENU_DRAG_LEAVE = 'ELEMENT_MENU_DRAG_LEAVE';\n\nexport const ELEMENT_MENU_CHARTS_FILTER = 'ELEMENT_MENU_CHARTS_FILTER';\nexport const ELEMENT_MENU_CHARTS_SORTMODE_TYPE = 0;\nexport const ELEMENT_MENU_CHARTS_SORTMODE_USECASE = 1;\n\nexport const ELEMENT_MENU_SHAPES_FILTER = 'ELEMENT_MENU_SHAPES_FILTER';\n\nexport const ELEMENT_MENU_MAPS_FILTER = 'ELEMENT_MENU_MAPS_FILTER';\nexport const ELEMENT_MENU_MAPS_THUMBS = 'ELEMENT_MENU_MAPS_THUMBS';\nexport const ELEMENT_MENU_MAPS_SHOW_PREVIEW = 'ELEMENT_MENU_MAPS_SHOW_PREVIEW';\nexport const ELEMENT_MENU_MAPS_HIDE_PREVIEW = 'ELEMENT_MENU_MAPS_HIDE_PREVIEW';\nexport const ELEMENT_MENU_CUSTOM_MAPS_LOADED = 'ELEMENT_MENU_CUSTOM_MAPS_LOADED';\nexport const ELEMENT_MENU_PUSH_CUSTOM_MAP = 'ELEMENT_MENU_PUSH_CUSTOM_MAP';\nexport const ELEMENT_MENU_MAPS_LOADING = 'ELEMENT_MENU_MAPS_LOADING';\n\n//TODO remove these\nexport const ELEMENT_MENU_IMAGES_RESET = 'ELEMENT_MENU_IMAGES_RESET';\nexport const ELEMENT_MENU_IMAGES_LOADED = 'ELEMENT_MENU_IMAGES_LOADED';\nexport const ELEMENT_MENU_IMAGE_LOAD_FAILED = 'ELEMENT_MENU_IMAGE_LOAD_FAILED';\nexport const ELEMENT_MENU_IMAGES_ADDED = 'ELEMENT_MENU_IMAGES_ADDED';\nexport const ELEMENT_MENU_IMAGE_UPLOAD_STARTED = 'ELEMENT_MENU_IMAGE_UPLOAD_STARTED';\nexport const ELEMENT_MENU_IMAGE_UPLOAD_FINISHED = 'ELEMENT_MENU_IMAGE_UPLOAD_FINISHED';\nexport const ELEMENT_MENU_IMAGE_UPLOADED = 'ELEMENT_MENU_IMAGE_UPLOADED';\nexport const ELEMENT_MENU_IMAGE_UPLOAD_FAILED = 'ELEMENT_MENU_IMAGE_UPLOAD_FAILED';\nexport const ELEMENT_MENU_IMAGE_DELETE_DIALOG = 'ELEMENT_MENU_IMAGE_DELETE_DIALOG';\nexport const ELEMENT_MENU_IMAGE_DELETION_CONFIRMED = 'ELEMENT_MENU_IMAGE_DELETION_CONFIRMED';\nexport const ELEMENT_MENU_IMAGE_DELETED = 'ELEMENT_MENU_IMAGE_DELETED';\nexport const ELEMENT_MENU_IMAGE_DELETE_FAILED = 'ELEMENT_MENU_IMAGE_DELETE_FAILED';\nexport const ELEMENT_MENU_IMAGE_DELETE_DIALOG_CLOSE = 'ELEMENT_MENU_IMAGE_DELETE_DIALOG_CLOSE';\nexport const ELEMENT_MENU_IMAGE_RENAMED = 'ELEMENT_MENU_IMAGE_RENAMED';\n\nexport const ELEMENT_MENU_MAP_LOAD_FAILED = 'ELEMENT_MENU_MAP_LOAD_FAILED';\n\nexport const FREE_MAP_GROUP = 'Free';\n\nexport const ELEMENT_MENU_MEDIA_LOADING = 'ELEMENT_MENU_MEDIA_LOADING';\nexport const ELEMENT_MENU_MEDIA_RESULTS = 'ELEMENT_MENU_MEDIA_RESULTS';\nexport const ELEMENT_MENU_MEDIA_REFRESH = 'ELEMENT_MENU_MEDIA_REFRESH';\nexport const ELEMENT_MENU_MEDIA_SEARCH_FAILED = 'ELEMENT_MENU_MEDIA_SEARCH_FAILED';\nexport const ELEMENT_MENU_MEDIA_SEARCH = 'ELEMENT_MENU_MEDIA_SEARCH';\nexport const ELEMENT_MENU_MEDIA_SOURCE_CHANGE = 'ELEMENT_MENU_MEDIA_SOURCE_CHANGE';\nexport const ELEMENT_MENU_MEDIA_SOURCE_YOUTUBE = 0;\nexport const ELEMENT_MENU_MEDIA_SOURCE_VIMEO = 1;\nexport const ELEMENT_MENU_MEDIA_SOURCE_SLIDESHARE = 2;\nexport const ELEMENT_MENU_MEDIA_SOURCE_FLICKR = 3;\nexport const ELEMENT_MENU_MEDIA_SOURCE_LINK = 4;\nexport const ELEMENT_MENU_MEDIA_SOURCE_GIPHY = 5;\nexport const ELEMENT_MENU_MEDIA_SOURCE_IFRAME = 6;\n\nexport const ELEMENT_MENU_GOOGLEANALYTICS_LOADING_STARTED = 'ELEMENT_MENU_GOOGLEANALYTICS_LOADING_STARTED';\nexport const ELEMENT_MENU_GOOGLEANALYTICS_LOADED = 'ELEMENT_MENU_GOOGLEANALYTICS_LOADED';\nexport const ELEMENT_MENU_GOOGLEANALYTICS_SELECT_CHANGE = 'ELEMENT_MENU_GOOGLEANALYTICS_SELECT_CHANGE';\n\nexport const ELEMENT_MENU_INTEGRATION_SECTION_CHANGE = 'ELEMENT_MENU_INTEGRATION_SECTION_CHANGE';\nexport const ELEMENT_MENU_TYPE_SELECTED = 'ELEMENT_MENU_TYPE_SELECTED';\n\nexport const ELEMENT_MENU_GRAPHICS_SORTMODE_TYPE = 0;\nexport const ELEMENT_MENU_GRAPHICS_SORTMODE_PREVIEW_ALL = 1;\nexport const ELEMENT_MENU_GRAPHICS_SORTMODE_IMAGE = 2;\nexport const ELEMENT_MENU_GRAPHICS_SORTMODE_ICON = 3;\nexport const ELEMENT_MENU_GRAPHICS_SORTMODE_FLAG = 4;\nexport const ELEMENT_MENU_GRAPHICS_SORTMODE_STICKER = 5;\nexport const ELEMENT_MENU_GRAPHICS_SORTMODE_CUSTOM_ICON = 6;\nexport const ELEMENT_MENU_GRAPHICS_SORTMODE_MASKS = 7;\nexport const ELEMENT_MENU_GRAPHICS_SORTMODE_GIPHY = 8;\nexport const ELEMENT_MENU_GRAPHICS_SORTMODE_ELEMENT = 9;\nexport const ELEMENT_MENU_GRAPHICS_SORTMODE_VIDEOS = 10;\nexport const ELEMENT_MENU_GRAPHICS_RESULTS = 'ELEMENT_MENU_GRAPHICS_RESULTS';\nexport const ELEMENT_MENU_GRAPHICS_SEARCH_FAILED = 'ELEMENT_MENU_GRAPHICS_SEARCH_FAILED';\nexport const ELEMENT_MENU_GRAPHICS_LOADING = 'ELEMENT_MENU_GRAPHICS_LOADING';\nexport const ELEMENT_MENU_GRAPHICS_LOAD_MORE = 'ELEMENT_MENU_GRAPHICS_LOAD_MORE';\nexport const ELEMENT_MENU_GRAPHICS_BASIC_USER_SEARCH = 5;\nexport const ELEMENT_MENU_GRAPHICS_BASIC_USER_TYPE_SEARCH = 2;\nexport const ELEMENT_MENU_GRAPHICS_TAB_CHANGE = 'ELEMENT_MENU_GRAPHICS_TAB_CHANGE';\nexport const ELEMENT_MENU_GRAPHICS_TAB_GRAPHICS = 0;\nexport const ELEMENT_MENU_GRAPHICS_TAB_IMAGE_GALLERY = 1;\n\nexport const ELEMENT_MENU_INTEGRATIONS_FILTER = 'ELEMENT_MENU_INTEGRATIONS_FILTER';\nexport const ELEMENT_MENU_INTEGRATIONS_FORM_SET_ERROR = 'ELEMENT_MENU_INTEGRATIONS_FORM_SET_ERROR';\nexport const ELEMENT_MENU_INTEGRATIONS_FORM_UPDATE_FIELD = 'ELEMENT_MENU_INTEGRATIONS_FORM_UPDATE_FIELD';\nexport const ELEMENT_MENU_INTEGRATIONS_FORM_DIALOG_OPENED = 'ELEMENT_MENU_INTEGRATIONS_FORM_DIALOG_OPENED';\nexport const ELEMENT_MENU_INTEGRATIONS_FORM_DIALOG_CLOSED = 'ELEMENT_MENU_INTEGRATIONS_FORM_DIALOG_CLOSED';\nexport const ELEMENT_MENU_INTEGRATIONS_FORM_SET_LOADING = 'ELEMENT_MENU_INTEGRATIONS_FORM_SET_LOADING';\nexport const ELEMENT_MENU_INTEGRATIONS_SORTMODE_TYPE = 0;\nexport const ELEMENT_MENU_INTEGRATIONS_SORTMODE_DATA = 1;\nexport const ELEMENT_MENU_INTEGRATIONS_SORTMODE_MEDIA = 2;\n\nexport const ELEMENT_MENU_ELEMENTS_RESULTS = 'ELEMENT_MENU_ELEMENTS_RESULTS';\n\nexport const ELEMENT_MENU_IMAGE_GALLERY_FORMAT_ALL = 0;\nexport const ELEMENT_MENU_IMAGE_GALLERY_FORMAT_JPG = 1;\nexport const ELEMENT_MENU_IMAGE_GALLERY_FORMAT_PNG = 2;\nexport const ELEMENT_MENU_IMAGE_GALLERY_FORMAT_GIF = 3;\nexport const ELEMENT_MENU_IMAGE_GALLERY_FORMAT_SVG = 4;\nexport const ELEMENT_MENU_IMAGE_GALLERY_SORT_RECENTLY_UPLOADED = 0;\nexport const ELEMENT_MENU_IMAGE_GALLERY_SORT_RECENTLY_USED = 1;\nexport const ELEMENT_MENU_IMAGE_GALLERY_VIEW_MODE_GRID = 'grid';\nexport const ELEMENT_MENU_IMAGE_GALLERY_VIEW_MODE_LIST = 'list';\n","module.exports = function (bitmap, value) {\n  return {\n    enumerable: !(bitmap & 1),\n    configurable: !(bitmap & 2),\n    writable: !(bitmap & 4),\n    value: value\n  };\n};\n","'use strict';\n\nmodule.exports = function isCancel(value) {\n  return !!(value && value.__CANCEL__);\n};\n","// Polyfill for creating CustomEvents on IE9/10/11\n\n// code pulled from:\n// https://github.com/d4tocchini/customevent-polyfill\n// https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent#Polyfill\n\ntry {\n    var ce = new window.CustomEvent('test');\n    ce.preventDefault();\n    if (ce.defaultPrevented !== true) {\n        // IE has problems with .preventDefault() on custom events\n        // http://stackoverflow.com/questions/23349191\n        throw new Error('Could not prevent default');\n    }\n} catch(e) {\n  var CustomEvent = function(event, params) {\n    var evt, origPrevent;\n    params = params || {\n      bubbles: false,\n      cancelable: false,\n      detail: undefined\n    };\n\n    evt = document.createEvent(\"CustomEvent\");\n    evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);\n    origPrevent = evt.preventDefault;\n    evt.preventDefault = function () {\n      origPrevent.call(this);\n      try {\n        Object.defineProperty(this, 'defaultPrevented', {\n          get: function () {\n            return true;\n          }\n        });\n      } catch(e) {\n        this.defaultPrevented = true;\n      }\n    };\n    return evt;\n  };\n\n  CustomEvent.prototype = window.Event.prototype;\n  window.CustomEvent = CustomEvent; // expose definition to window\n}\n","import _ from 'lodash';\n\nexport const tooltipDummy = {\n    setText() {\n        return this;\n    },\n    setValue() {\n        return this;\n    },\n    setPosition() {\n        return this;\n    },\n    setBackground() {\n        return this;\n    },\n    setColor() {\n        return this;\n    },\n    setParent() {\n        return this;\n    },\n    show() {\n        return this;\n    },\n    interaction() {\n        return this;\n    },\n    hide() {\n        // this is to hide on a tooltip that was showing before\n        // if tooltip was disabled\n        if (instance !== tooltipDummy) {\n            instance.hide.apply(instance, arguments);\n        }\n        return this;\n    },\n    self: {\n        css() {\n            return false;\n        },\n        style: {},\n    },\n};\n\nlet instance = tooltipDummy;\n\nexport function setTooltip(inst) {\n    instance = inst;\n}\n\nexport default function tooltip() {\n    return instance;\n}\n\nexport {tooltip as getTooltip};\n\nexport function createStyledTooltip(chartInstance) {\n    const interaction = chartInstance.createInteractionCaller();\n    const textStyle = _.get(chartInstance, 'options.style.tooltip.text');\n    const valueStyle = _.get(chartInstance, 'options.style.tooltip.value');\n    const backgroundColor = _.get(chartInstance, 'options.style.tooltip.backgroundColor') || '#ff0000';\n    const enabled = _.get(chartInstance, 'options.tooltip.enabled');\n    return (function(textStyle, valueStyle, enabled) {\n        if (enabled) {\n            return function() {\n                return {\n                    setText(text) {\n                        tooltip().setText(text, textStyle);\n                        return this;\n                    },\n                    setValue(value) {\n                        tooltip().setValue(value, valueStyle);\n                        return this;\n                    },\n                    setPosition() {\n                        tooltip().setPosition.apply(tooltip(), arguments);\n                        return this;\n                    },\n                    setColor() {\n                        tooltip().setColor.apply(tooltip(), arguments);\n                        return this;\n                    },\n                    setBackground() {\n                        tooltip().setBackground(backgroundColor);\n                        return this;\n                    },\n                    setParent() {\n                        tooltip().setParent.apply(tooltip(), arguments);\n                        return this;\n                    },\n                    interaction(type) {\n                        interaction('tooltip', type);\n                        return this;\n                    },\n                    show() {\n                        tooltip().show.apply(tooltip(), arguments);\n                        return this;\n                    },\n                    hide() {\n                        tooltip().hide.apply(tooltip(), arguments);\n                        return this;\n                    },\n                    self: tooltip().self,\n                };\n            };\n        }\n        return function() {\n            return tooltipDummy;\n        };\n    })(textStyle, valueStyle, enabled);\n}\n","var typedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Uint8Array` constructor\n// https://tc39.github.io/ecma262/#sec-typedarray-objects\ntypedArrayConstructor('Uint8', 1, function (init) {\n  return function Uint8Array(data, byteOffset, length) {\n    return init(this, data, byteOffset, length);\n  };\n});\n","var $ = require('../internals/export');\nvar isObject = require('../internals/is-object');\nvar anObject = require('../internals/an-object');\nvar has = require('../internals/has');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\n\n// `Reflect.get` method\n// https://tc39.github.io/ecma262/#sec-reflect.get\nfunction get(target, propertyKey /* , receiver */) {\n  var receiver = arguments.length < 3 ? target : arguments[2];\n  var descriptor, prototype;\n  if (anObject(target) === receiver) return target[propertyKey];\n  if (descriptor = getOwnPropertyDescriptorModule.f(target, propertyKey)) return has(descriptor, 'value')\n    ? descriptor.value\n    : descriptor.get === undefined\n      ? undefined\n      : descriptor.get.call(receiver);\n  if (isObject(prototype = getPrototypeOf(target))) return get(prototype, propertyKey, receiver);\n}\n\n$({ target: 'Reflect', stat: true }, {\n  get: get\n});\n","require('../modules/es.symbol');\nrequire('../modules/es.symbol.async-iterator');\nrequire('../modules/es.symbol.description');\nrequire('../modules/es.symbol.has-instance');\nrequire('../modules/es.symbol.is-concat-spreadable');\nrequire('../modules/es.symbol.iterator');\nrequire('../modules/es.symbol.match');\nrequire('../modules/es.symbol.match-all');\nrequire('../modules/es.symbol.replace');\nrequire('../modules/es.symbol.search');\nrequire('../modules/es.symbol.species');\nrequire('../modules/es.symbol.split');\nrequire('../modules/es.symbol.to-primitive');\nrequire('../modules/es.symbol.to-string-tag');\nrequire('../modules/es.symbol.unscopables');\nrequire('../modules/es.object.assign');\nrequire('../modules/es.object.create');\nrequire('../modules/es.object.define-property');\nrequire('../modules/es.object.define-properties');\nrequire('../modules/es.object.entries');\nrequire('../modules/es.object.freeze');\nrequire('../modules/es.object.from-entries');\nrequire('../modules/es.object.get-own-property-descriptor');\nrequire('../modules/es.object.get-own-property-descriptors');\nrequire('../modules/es.object.get-own-property-names');\nrequire('../modules/es.object.get-prototype-of');\nrequire('../modules/es.object.is');\nrequire('../modules/es.object.is-extensible');\nrequire('../modules/es.object.is-frozen');\nrequire('../modules/es.object.is-sealed');\nrequire('../modules/es.object.keys');\nrequire('../modules/es.object.prevent-extensions');\nrequire('../modules/es.object.seal');\nrequire('../modules/es.object.set-prototype-of');\nrequire('../modules/es.object.values');\nrequire('../modules/es.object.to-string');\nrequire('../modules/es.object.define-getter');\nrequire('../modules/es.object.define-setter');\nrequire('../modules/es.object.lookup-getter');\nrequire('../modules/es.object.lookup-setter');\nrequire('../modules/es.function.bind');\nrequire('../modules/es.function.name');\nrequire('../modules/es.function.has-instance');\nrequire('../modules/es.array.from');\nrequire('../modules/es.array.is-array');\nrequire('../modules/es.array.of');\nrequire('../modules/es.array.concat');\nrequire('../modules/es.array.copy-within');\nrequire('../modules/es.array.every');\nrequire('../modules/es.array.fill');\nrequire('../modules/es.array.filter');\nrequire('../modules/es.array.find');\nrequire('../modules/es.array.find-index');\nrequire('../modules/es.array.flat');\nrequire('../modules/es.array.flat-map');\nrequire('../modules/es.array.for-each');\nrequire('../modules/es.array.includes');\nrequire('../modules/es.array.index-of');\nrequire('../modules/es.array.join');\nrequire('../modules/es.array.last-index-of');\nrequire('../modules/es.array.map');\nrequire('../modules/es.array.reduce');\nrequire('../modules/es.array.reduce-right');\nrequire('../modules/es.array.reverse');\nrequire('../modules/es.array.slice');\nrequire('../modules/es.array.some');\nrequire('../modules/es.array.sort');\nrequire('../modules/es.array.splice');\nrequire('../modules/es.array.species');\nrequire('../modules/es.array.unscopables.flat');\nrequire('../modules/es.array.unscopables.flat-map');\nrequire('../modules/es.array.iterator');\nrequire('../modules/es.string.from-code-point');\nrequire('../modules/es.string.raw');\nrequire('../modules/es.string.code-point-at');\nrequire('../modules/es.string.ends-with');\nrequire('../modules/es.string.includes');\nrequire('../modules/es.string.match');\nrequire('../modules/es.string.match-all');\nrequire('../modules/es.string.pad-end');\nrequire('../modules/es.string.pad-start');\nrequire('../modules/es.string.repeat');\nrequire('../modules/es.string.replace');\nrequire('../modules/es.string.search');\nrequire('../modules/es.string.split');\nrequire('../modules/es.string.starts-with');\nrequire('../modules/es.string.trim');\nrequire('../modules/es.string.trim-start');\nrequire('../modules/es.string.trim-end');\nrequire('../modules/es.string.iterator');\nrequire('../modules/es.string.anchor');\nrequire('../modules/es.string.big');\nrequire('../modules/es.string.blink');\nrequire('../modules/es.string.bold');\nrequire('../modules/es.string.fixed');\nrequire('../modules/es.string.fontcolor');\nrequire('../modules/es.string.fontsize');\nrequire('../modules/es.string.italics');\nrequire('../modules/es.string.link');\nrequire('../modules/es.string.small');\nrequire('../modules/es.string.strike');\nrequire('../modules/es.string.sub');\nrequire('../modules/es.string.sup');\nrequire('../modules/es.regexp.constructor');\nrequire('../modules/es.regexp.exec');\nrequire('../modules/es.regexp.flags');\nrequire('../modules/es.regexp.to-string');\nrequire('../modules/es.parse-int');\nrequire('../modules/es.parse-float');\nrequire('../modules/es.number.constructor');\nrequire('../modules/es.number.epsilon');\nrequire('../modules/es.number.is-finite');\nrequire('../modules/es.number.is-integer');\nrequire('../modules/es.number.is-nan');\nrequire('../modules/es.number.is-safe-integer');\nrequire('../modules/es.number.max-safe-integer');\nrequire('../modules/es.number.min-safe-integer');\nrequire('../modules/es.number.parse-float');\nrequire('../modules/es.number.parse-int');\nrequire('../modules/es.number.to-fixed');\nrequire('../modules/es.number.to-precision');\nrequire('../modules/es.math.acosh');\nrequire('../modules/es.math.asinh');\nrequire('../modules/es.math.atanh');\nrequire('../modules/es.math.cbrt');\nrequire('../modules/es.math.clz32');\nrequire('../modules/es.math.cosh');\nrequire('../modules/es.math.expm1');\nrequire('../modules/es.math.fround');\nrequire('../modules/es.math.hypot');\nrequire('../modules/es.math.imul');\nrequire('../modules/es.math.log10');\nrequire('../modules/es.math.log1p');\nrequire('../modules/es.math.log2');\nrequire('../modules/es.math.sign');\nrequire('../modules/es.math.sinh');\nrequire('../modules/es.math.tanh');\nrequire('../modules/es.math.to-string-tag');\nrequire('../modules/es.math.trunc');\nrequire('../modules/es.date.now');\nrequire('../modules/es.date.to-json');\nrequire('../modules/es.date.to-iso-string');\nrequire('../modules/es.date.to-string');\nrequire('../modules/es.date.to-primitive');\nrequire('../modules/es.json.to-string-tag');\nrequire('../modules/es.promise');\nrequire('../modules/es.promise.finally');\nrequire('../modules/es.map');\nrequire('../modules/es.set');\nrequire('../modules/es.weak-map');\nrequire('../modules/es.weak-set');\nrequire('../modules/es.array-buffer.constructor');\nrequire('../modules/es.array-buffer.is-view');\nrequire('../modules/es.array-buffer.slice');\nrequire('../modules/es.data-view');\nrequire('../modules/es.typed-array.int8-array');\nrequire('../modules/es.typed-array.uint8-array');\nrequire('../modules/es.typed-array.uint8-clamped-array');\nrequire('../modules/es.typed-array.int16-array');\nrequire('../modules/es.typed-array.uint16-array');\nrequire('../modules/es.typed-array.int32-array');\nrequire('../modules/es.typed-array.uint32-array');\nrequire('../modules/es.typed-array.float32-array');\nrequire('../modules/es.typed-array.float64-array');\nrequire('../modules/es.typed-array.from');\nrequire('../modules/es.typed-array.of');\nrequire('../modules/es.typed-array.copy-within');\nrequire('../modules/es.typed-array.every');\nrequire('../modules/es.typed-array.fill');\nrequire('../modules/es.typed-array.filter');\nrequire('../modules/es.typed-array.find');\nrequire('../modules/es.typed-array.find-index');\nrequire('../modules/es.typed-array.for-each');\nrequire('../modules/es.typed-array.includes');\nrequire('../modules/es.typed-array.index-of');\nrequire('../modules/es.typed-array.iterator');\nrequire('../modules/es.typed-array.join');\nrequire('../modules/es.typed-array.last-index-of');\nrequire('../modules/es.typed-array.map');\nrequire('../modules/es.typed-array.reduce');\nrequire('../modules/es.typed-array.reduce-right');\nrequire('../modules/es.typed-array.reverse');\nrequire('../modules/es.typed-array.set');\nrequire('../modules/es.typed-array.slice');\nrequire('../modules/es.typed-array.some');\nrequire('../modules/es.typed-array.sort');\nrequire('../modules/es.typed-array.subarray');\nrequire('../modules/es.typed-array.to-locale-string');\nrequire('../modules/es.typed-array.to-string');\nrequire('../modules/es.reflect.apply');\nrequire('../modules/es.reflect.construct');\nrequire('../modules/es.reflect.define-property');\nrequire('../modules/es.reflect.delete-property');\nrequire('../modules/es.reflect.get');\nrequire('../modules/es.reflect.get-own-property-descriptor');\nrequire('../modules/es.reflect.get-prototype-of');\nrequire('../modules/es.reflect.has');\nrequire('../modules/es.reflect.is-extensible');\nrequire('../modules/es.reflect.own-keys');\nrequire('../modules/es.reflect.prevent-extensions');\nrequire('../modules/es.reflect.set');\nrequire('../modules/es.reflect.set-prototype-of');\n\nmodule.exports = require('../internals/path');\n","'use strict';\nvar $ = require('../internals/export');\nvar flattenIntoArray = require('../internals/flatten-into-array');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar aFunction = require('../internals/a-function');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\n// `Array.prototype.flatMap` method\n// https://github.com/tc39/proposal-flatMap\n$({ target: 'Array', proto: true }, {\n  flatMap: function flatMap(callbackfn /* , thisArg */) {\n    var O = toObject(this);\n    var sourceLen = toLength(O.length);\n    var A;\n    aFunction(callbackfn);\n    A = arraySpeciesCreate(O, 0);\n    A.length = flattenIntoArray(A, O, O, sourceLen, 0, 1, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n    return A;\n  }\n});\n","import i18n from 'i18next';\nimport Immutable from 'immutable';\nimport React, {PureComponent} from 'react';\nimport PropTypes from 'prop-types';\n\nimport WebInfographicThumbnail from '../WebInfographicThumbnail';\nimport style from './RelatedInfographics.css';\n\nclass Header extends PureComponent {\n    static propTypes = {\n        items: PropTypes.instanceOf(Immutable.List),\n    }\n\n    render() {\n        const relatedInfographics = this.props.items.map(item => {\n            return (\n                <WebInfographicThumbnail\n                    imageURL={item.get('imageURL')}\n                    key={item.get('path')}\n                    path={item.get('path')}\n                    title={item.get('title')}\n                />\n            );\n        });\n\n        return (\n            <div className={style.container}>\n                <div className={style.title}>\n                    {i18n.t('web.related_infographics')}\n                </div>\n\n                <div className={style.infographicsContainer}>\n                    { relatedInfographics }\n                </div>\n            </div>\n        );\n    }\n\n    _onSearchSubmit = e => {\n        e.preventDefault();\n        window.location.href = `/search#${this.searchInput.value.replace(/\\s+/g, '+')}`;\n    }\n}\n\nexport default Header;\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar createProperty = require('../internals/create-property');\n\nvar ISNT_GENERIC = fails(function () {\n  function F() { /* empty */ }\n  return !(Array.of.call(F) instanceof F);\n});\n\n// `Array.of` method\n// https://tc39.github.io/ecma262/#sec-array.of\n// WebKit Array.of isn't generic\n$({ target: 'Array', stat: true, forced: ISNT_GENERIC }, {\n  of: function of(/* ...args */) {\n    var index = 0;\n    var argumentsLength = arguments.length;\n    var result = new (typeof this == 'function' ? this : Array)(argumentsLength);\n    while (argumentsLength > index) createProperty(result, index, arguments[index++]);\n    result.length = argumentsLength;\n    return result;\n  }\n});\n","export const Rectangle = (left, top, width, height, rotation = 0) => ({\n    left, top, width, height, rotation,\n});\n\nexport const Point = (x, y) => ({\n    x, y,\n});\n\nexport const centerOf = (rect) => ({\n    x: rect.width / 2 + rect.left,\n    y: rect.height / 2 + rect.top,\n});\n\n/**\n * Ensures degrees are always positive\n * @param {number} deg\n */\nexport function positiveDeg(deg) {\n    return (360 + Math.round(deg)) % 360;\n}\n\nexport const deg = (rad) => (\n    rad * 180 / Math.PI\n);\n\nexport const rad = (deg) => (\n    deg * Math.PI / 180\n);\n\nexport const rotatePoint = (point, angle, origin = Point(0, 0)) => {\n    if (angle === 0) {\n        return Point(point.x, point.y);\n    }\n    const cos = Math.cos(angle);\n    const sin = Math.sin(angle);\n    const dx = point.x - origin.x;\n    const dy = point.y - origin.y;\n    return Point(\n        dx * cos - dy * sin + origin.x,\n        dx * sin + dy * cos + origin.y\n    );\n};\n\nexport function snapValue(value, interval, threshold) {\n    let remainder = Math.abs(value) % interval;\n    let cells = Math.floor(Math.abs(value) / interval);\n    if (remainder > threshold) {\n        remainder = interval - remainder;\n        cells += 1;\n    }\n    if (remainder <= threshold) {\n        const snapped = cells * interval;\n        return value < 0 ? -snapped: snapped;\n    }\n    return value;\n}\n\nexport function calculateRotation(startPoint, endPoint, rotationOrigin) {\n    const startPointAngleToOrigin = Math.atan2(startPoint.y - rotationOrigin.y, startPoint.x - rotationOrigin.x);\n    const endPointAngleToOrigin = Math.atan2(endPoint.y - rotationOrigin.y, endPoint.x - rotationOrigin.x);\n    return endPointAngleToOrigin - startPointAngleToOrigin;\n}\n\nexport function movementForLockedAspectRatioByOrigin(startPoint, endPoint, origin, rect, angle, cos, sin) {\n    // Movement end point is set to foot of perpendicular from cursor to aspect ratio vector\n    const delta1 = Point((cos > 0 ? -1 : 1) * rect.width / 2, (sin > 0 ? -1 : 1) * rect.height / 2);\n    const delta2 = Point((cos < 0 ? -1 : 1) * rect.width / 2, (sin < 0 ? -1 : 1) * rect.height / 2);\n\n    const p1 = Point(origin.x + delta1.x, origin.y + delta1.y);\n    const p2 = Point(origin.x + delta2.x, origin.y + delta2.y);\n\n    const rotatedP1 = rotatePoint(p1, angle, origin);\n    const rotatedP2 = rotatePoint(p2, angle, origin);\n\n    const aspectSlope = (rotatedP2.y - rotatedP1.y) / (rotatedP2.x - rotatedP1.x);\n    return movementForLockedAspectRatio(startPoint, endPoint, aspectSlope);\n}\n\nexport function movementForLockedAspectRatio(startPoint, endPoint, aspectSlope) {\n    // Movement end point is set to foot of perpendicular from cursor to aspect ratio vector\n    const pSlope = -1 / aspectSlope;\n    const px = (pSlope * endPoint.x - aspectSlope * startPoint.x - endPoint.y + startPoint.y) / (pSlope - aspectSlope);\n    const py = pSlope * px - pSlope * endPoint.x + endPoint.y;\n    return Point(px - startPoint.x, py - startPoint.y);\n}\n\nexport function distance(pointA, pointB) {\n    return Math.sqrt(Math.pow(pointB.x - pointA.x, 2) + Math.pow(pointB.y - pointA.y, 2));\n}\n\nexport function angleOfVector(pointA, pointB) {\n    return Math.atan2(pointB.y - pointA.y, pointB.x - pointA.x);\n}\n\nexport function movePoint(point, angle, distance) {\n    return Point(\n        point.x + Math.cos(angle) * distance,\n        point.y + Math.sin(angle) * distance\n    );\n}\n\nexport function roundRotation(rotation, forLine) {\n    // for smooth line movements rotation with higher precision is used\n    return forLine ? Math.round(rotation * 100) / 100 : Math.round(rotation);\n}\n\nexport function findOverlapingEntitiesInBlock(entities, blockRect, pointOfContact, scaleX, scaleY) {\n    const {x, y} = convertPointToBlock(pointOfContact, blockRect, scaleX, scaleY);\n    return entities.filter(e => {\n        const rect = e.bounds();\n        return y < (rect.top+rect.height) && y > rect.top && x < (rect.left+rect.width) && x > rect.left;\n    });\n}\n\nexport function convertPointToBlock(point, blockRect, scaleX, scaleY) {\n    return {\n        x: (point.x - blockRect.left) / scaleX,\n        y: (point.y - blockRect.top) / scaleY,\n    };\n}\n\n/**\n* returns new position of a resized rectangle as if it's visual coordinates\n* are not changed.\n*\n* @param {Point} realSizeChange - rectangle size change with changes along x and y axis\n* @param {Rectangle} rect - rectangle to be resized\n* @return {Point} - new actual coordinates of the rectangle\n*/\nexport function getPositionOnSizeChange(realSizeChange, rect) {\n    if (!rect.rotation) {\n        return {\n            x: rect.left,\n            y: rect.top,\n        };\n    }\n    const rectAngle = rad(rect.rotation);\n    const realMovement = rotatePoint(realSizeChange, rectAngle);\n    const center = centerOf(rect);\n    const newCenter = Point(center.x + realMovement.x / 2, center.y + realMovement.y / 2);\n    return {\n        x: newCenter.x - (rect.width + realSizeChange.x) / 2,\n        y: newCenter.y - (rect.height + realSizeChange.y) / 2,\n    };\n}\n\nexport function getBackRotatedEntityRectangle(entity, adjustmentEntity) {\n    const entityRectangle = entity.rectangle();\n    const {x, y} = rotatePoint(\n        centerOf(entityRectangle),\n        rad(-adjustmentEntity.getTransform().rotate),\n        centerOf(adjustmentEntity.bounds())\n    );\n\n    entityRectangle.left = x - entityRectangle.width / 2;\n    entityRectangle.top = y - entityRectangle.height / 2;\n    return entityRectangle;\n}\n","var isObject = require('../internals/is-object');\n\nvar floor = Math.floor;\n\n// `Number.isInteger` method implementation\n// https://tc39.github.io/ecma262/#sec-number.isinteger\nmodule.exports = function isInteger(it) {\n  return !isObject(it) && isFinite(it) && floor(it) === it;\n};\n","\"use strict\";\n\nvar isValue = require(\"../value/is\");\n\n// prettier-ignore\nvar possibleTypes = { \"object\": true, \"function\": true, \"undefined\": true /* document.all */ };\n\nmodule.exports = function (value) {\n\tif (!isValue(value)) return false;\n\treturn hasOwnProperty.call(possibleTypes, typeof value);\n};\n","import {Record} from 'immutable';\nimport _ from 'lodash';\n\nimport CurrentInfographicStore from '../../app/main/stores/CurrentInfographicStore.js';\n\nimport {\n    FOOTER_SETTINGS_SET_BACKGROUND_COLOR,\n    FOOTER_SETTINGS_SET_BACKGROUND_OPACITY,\n    FOOTER_SETTINGS_SET_FOOTER_LAYOUT,\n    FOOTER_SETTINGS_SET_FOOTNOTE_TYPE,\n    FOOTER_SETTINGS_SET_LOGO_TYPE,\n    FOOTER_SETTINGS_SET_LOGO_VALUE,\n    FOOTER_SETTINGS_SET_FONT_STYLE,\n    FOOTER_SETTINGS_SET_FONT_SIZE,\n    FOOTER_SETTINGS_SET_FOOTNOTE_TEXT,\n    FOOTER_SETTINGS_SET_TEXT_COLOR,\n    FOOTER_SETTINGS_SET_CUSTOM_LINK,\n    FOOTER_SETTINGS_SET_CUSTOM_LINK_OPTION,\n    FOOTER_SETTINGS_TOGGLE_CUSTOM_LINK,\n    FOOTER_SETTINGS_SET_BUTTON_BACKGROUND_COLOR,\n    FOOTER_SETTINGS_SET_BUTTON_TEXT_COLOR,\n    FOOTER_SETTINGS_SET_BUTTON_TEXT,\n    FOOTER_SETTINGS_SET_PAGINATION_FORMAT,\n    FOOTER_SETTINGS_SET_PAGINATION_STARTING_NUMBER,\n    FOOTER_SETTINGS_SET_LOGO_LINK,\n    FOOTER_SETTINGS_SET_LOGO_NAME,\n    FOOTER_SETTINGS_SET_FOOTER_VISIBILITY,\n} from '../constants/action-types';\nimport AccountLogic from '../../views/account_logic';\nimport {\n    INFOGRAPHIC_LOADED,\n    INFOGRAPHIC_THEME_CHANGE,\n    PROFILE_LOADED,\n    RECEIVE_EXTRA_DATA,\n} from '../../app/constants';\nimport {\n    INFOGRAPHIC_SETTINGS_SET_VALUE,\n} from '../../components/InfographicSettings/InfographicSettings.constants';\nimport {TEMPLATE_PREVIEW_LOADED} from '../../store/constants/template-preview';\nimport {REVISIONS_DISPLAY_REVISION} from '../../store/constants/revisions';\n\nconst initialState = new Record({\n    backgroundColor: '#fff',\n    backgroundOpacity: 100,\n    bold: false,\n    buttonBackgroundColor: '#d51a1a',\n    buttonText: 'Share',\n    buttonTextColor: '#ffffff',\n    customLink: '',\n    customLinkOption: '',\n    fontSize: 11,\n    footerLayout: 'text_left-logo_right',\n    footnoteText: 'Create and publish your infographic',\n    footnoteType: 'shareButton',\n    hasCustomLink: false,\n    italic: false,\n    logoColor: '#d51a1a',\n    logoImage: '',\n    logoLink: '',\n    logoType: 'custom_logo-infogram',\n    paginationFormat: 'x / y',\n    paginationStartWith: 1,\n    showFooter: false,\n    textColor: '#464646',\n    userLogoImage: '',\n    logoName: '',\n    logoWidth: 0,\n    logoHeight: 0,\n})();\n\nexport default function(state = initialState, action) {\n    switch (action.type) {\n        case PROFILE_LOADED: {\n            const settings = AccountLogic.getCurrentProfile().infographic_settings;\n            const logoValue = settings.custom_logo === 'custom' ? settings.custom_logo_value : '';\n            return state.set('userLogoImage', logoValue);\n        }\n        case INFOGRAPHIC_SETTINGS_SET_VALUE: {\n            if (action.payload.property === 'custom_logo_value') {\n                return state.set('logoImage', action.payload.value);\n            }\n            return state;\n        }\n        case INFOGRAPHIC_THEME_CHANGE: {\n            if (!action.payload.theme) {\n                return state;\n            }\n            const {theme} = action.payload;\n            const logoImages = theme.get('logoImages');\n            const footerOptions = theme.get('footerOptions');\n            const newOptions = {\n                backgroundColor: _.get(footerOptions, 'common.background', theme.get('color').bg),\n                buttonText: footerOptions.shareButton.text,\n                buttonBackgroundColor: footerOptions.shareButton.background,\n                buttonTextColor: footerOptions.shareButton.color,\n                logoColor: footerOptions.shareButton.background,\n                logoImage: state.userLogoImage || logoImages[0],\n                logoWidth: footerOptions.logo.width,\n                logoHeight: footerOptions.logo.height,\n            };\n            return state.merge(newOptions);\n        }\n        case RECEIVE_EXTRA_DATA: {\n            return state.merge(action.payload.payload.footerSettings);\n        }\n        case FOOTER_SETTINGS_SET_PAGINATION_STARTING_NUMBER: {\n            const number = parseInt(action.payload, 10);\n            if (!isNaN(number)) {\n                return state.set('paginationStartWith', number);\n            }\n            return state;\n        }\n        case FOOTER_SETTINGS_SET_FOOTER_VISIBILITY: {\n            return state.set('showFooter', action.payload);\n        }\n        case FOOTER_SETTINGS_SET_PAGINATION_FORMAT:\n            return state.set('paginationFormat', action.payload);\n        case FOOTER_SETTINGS_SET_BACKGROUND_COLOR:\n            return state.set('backgroundColor', action.payload);\n        case FOOTER_SETTINGS_SET_BACKGROUND_OPACITY:\n            return state.set('backgroundOpacity', action.payload);\n        case FOOTER_SETTINGS_SET_FOOTER_LAYOUT:\n            return state.set('footerLayout', action.payload);\n        case FOOTER_SETTINGS_SET_FOOTNOTE_TYPE: {\n            const type = action.payload;\n            if (type === 'none' && state.logoType !== 'custom_logo-none') {\n                return state.merge({\n                    footerLayout: 'right',\n                    footnoteType: type,\n                });\n            } else if (type !== 'none' && state.logoType !== 'custom_logo-none' && state.footnoteType === 'none') {\n                return state.merge({\n                    footnoteType: type,\n                    footerLayout: 'text_left-logo_right',\n                });\n            }\n            return state.set('footnoteType', type);\n        }\n        case FOOTER_SETTINGS_SET_LOGO_TYPE: {\n            const type = action.payload;\n            if (type === 'custom_logo-none' && state.footnoteType !== 'none') {\n                return state.merge({\n                    footerLayout: 'left',\n                    logoType: type,\n                });\n            } else if (type !== 'custom_logo-none' && state.footnoteType !== 'none' && state.logoType === 'custom_logo-none') {\n                if (type === 'custom_logo-infogram') {\n                    return state.merge({\n                        footerLayout: 'text_left-logo_right',\n                        logoType: type,\n                        logoImage: _.get(CurrentInfographicStore.model.get('theme'), 'attributes.logoImages[0]', ''),\n                    });\n                }\n                return state.merge({\n                    footerLayout: 'text_left-logo_right',\n                    logoType: type,\n                });\n            }\n            if (type === 'custom_logo-infogram') {\n                return state.merge({\n                    logoType: type,\n                    logoImage: _.get(CurrentInfographicStore.model.get('theme'), 'attributes.logoImages[0]', ''),\n                });\n            }\n            return state.set('logoType', type);\n        }\n        case FOOTER_SETTINGS_SET_LOGO_NAME:\n            return state.set('logoName', action.payload);\n        case FOOTER_SETTINGS_SET_LOGO_LINK:\n            return state.set('logoLink', action.payload);\n        case FOOTER_SETTINGS_SET_CUSTOM_LINK:\n            return state.set('customLink', action.payload);\n        case FOOTER_SETTINGS_SET_CUSTOM_LINK_OPTION:\n            return state.set('customLinkOption', action.payload);\n        case FOOTER_SETTINGS_SET_FOOTNOTE_TEXT:\n            return state.set('footnoteText', action.payload);\n        case FOOTER_SETTINGS_SET_TEXT_COLOR:\n            return state.set('textColor', action.payload);\n        case FOOTER_SETTINGS_SET_BUTTON_BACKGROUND_COLOR:\n            return state.set('buttonBackgroundColor', action.payload);\n        case FOOTER_SETTINGS_SET_BUTTON_TEXT_COLOR:\n            return state.set('buttonTextColor', action.payload);\n        case FOOTER_SETTINGS_SET_BUTTON_TEXT:\n            return state.set('buttonText', action.payload);\n        case FOOTER_SETTINGS_SET_LOGO_VALUE:\n            return state.set('logoImage', action.payload);\n        case FOOTER_SETTINGS_SET_FONT_STYLE: {\n            const property = action.payload;\n            return state.set(property, !state[property]);\n        }\n        case FOOTER_SETTINGS_TOGGLE_CUSTOM_LINK:\n            return state.set('hasCustomLink', !state.hasCustomLink);\n        case FOOTER_SETTINGS_SET_FONT_SIZE: {\n            return state.set('fontSize', action.payload);\n        }\n        case INFOGRAPHIC_LOADED:\n        case TEMPLATE_PREVIEW_LOADED: {\n            const footerSettings = _.get(action, 'payload.data.attributes.elements.content.footerSettings', {});\n            const themeFooterOptions = _.get(action, 'payload.data.attributes.theme.attributes.footerOptions', {});\n            if (footerSettings.logoType === 'custom_logo-infogram' && footerSettings.logoImage === '') {\n                footerSettings.logoImage = _.get(action, 'payload.data.attributes.theme.attributes.logoImages[0]');\n            }\n            if (!footerSettings.backgroundColor) {\n                footerSettings.backgroundColor = _.get(themeFooterOptions, 'common.background', _.get(action, 'payload.data.attributes.theme.attributes.color.bg', '#ffffff'));\n            }\n            if (!footerSettings.buttonBackgroundColor) {\n                footerSettings.buttonBackgroundColor = _.get(themeFooterOptions, 'shareButton.background', '#d51a1a');\n            }\n            if (!footerSettings.buttonTextColor) {\n                footerSettings.buttonTextColor = _.get(themeFooterOptions, 'shareButton.color', '#ffffff');\n            }\n            if (!footerSettings.logoName) {\n                footerSettings.logoName = _.get(action, 'payload.data.attributes.properties.logoName');\n            }\n            if (footerSettings.logoImage && !footerSettings.logoWidth && !footerSettings.logoHeight) {\n                footerSettings.logoWidth = _.get(themeFooterOptions, 'logo.width', 0);\n                footerSettings.logoHeight = _.get(themeFooterOptions, 'logo.height', 0);\n            }\n\n            return state.merge(initialState, footerSettings);\n        }\n        case REVISIONS_DISPLAY_REVISION: {\n            return state.merge(action.payload.extraData.footerSettings);\n        }\n    }\n\n    return state;\n}\n","import PropTypes from 'prop-types';\nimport React, {PureComponent} from 'react';\n\nexport const strokeDasharray = (type, width) => {\n    return {\n        dashed: `${2 * width}, ${width}`,\n        dotted: `${width}, ${width}`,\n    }[type];\n};\n\nexport const MARKER_SIZE = 7;\nexport const DEFAULT_LINE_WIDTH = 2;\nconst TRIANGLE_TOP_ANGLE = Math.atan(0.5) * 2; // about 53 degrees\nconst TRIANGLE_BOTTOM_ANGLE = (Math.PI - TRIANGLE_TOP_ANGLE) / 2; // about 63.43 degrees\n\n// Generates an \"arrow\" triangle\nconst pointsForTriangle = (x, y, size, borderWidth) => {\n    const topY = borderWidth / Math.sin(TRIANGLE_TOP_ANGLE / 2) / 2;\n    const bottomY = borderWidth / 2;\n    const bottomX = bottomY / Math.tan(TRIANGLE_BOTTOM_ANGLE / 2);\n    return [\n        x - (size / 2) + bottomX,   // x1\n        y + size - bottomY,         // y1\n        x,                          // x2\n        y + topY,                   // y2\n        x + (size / 2) - bottomX,   // x3\n        y + size - bottomY,         // y3\n    ].join(',');\n};\n\n/*eslint-disable react/display-name, react/prop-types, no-unused-vars */\nexport const markers = {\n    arrow: ({x, y, size, start, end, ...markerProps}) =>\n        <path\n            {...markerProps}\n            fill=\"transparent\"\n            d={`M ${pointsForTriangle(x, y, size, markerProps.strokeWidth)}`}\n        />\n    ,\n    'solid-arrow': ({x, y, size, start, end, ...markerProps}) =>\n        <polygon\n            {...markerProps}\n            points={pointsForTriangle(x, y, size, markerProps.strokeWidth)}\n        />\n    ,\n    point: ({x, y, size, start, end, ...markerProps}) =>\n        <circle\n            {...markerProps}\n            cx={x}\n            cy={y + markerProps.strokeWidth * 1.5}\n            r={markerProps.strokeWidth}\n        />\n    ,\n    'solid-circle': ({x, y, size, start, end, ...markerProps}) =>\n        <circle\n            {...markerProps}\n            cx={x}\n            cy={y + markerProps.strokeWidth * 2.5}\n            r={markerProps.strokeWidth * 2}\n        />\n    ,\n    'solid-square': ({x, y, size, start, end, strokeWidth, ...markerProps}) =>\n        <rect\n            {...markerProps}\n            width={size}\n            height={size}\n            x={x - size / 2}\n            y={y}\n        />\n    ,\n};\n/*eslint-enable react/display-name, react/prop-types, no-unused-vars */\nexport default class Line extends PureComponent {\n    static propTypes = {\n        entity: PropTypes.shape({\n            getProperty: PropTypes.func.isRequired,\n            width: PropTypes.number.isRequired,\n        }).isRequired,\n        design: PropTypes.any.isRequired,\n    };\n\n    static defaultShapeProps = (({type}) => ({\n        props: {\n            opacity: 1,\n            x1: 0,\n            y1: 200,\n            x2: 200,\n            y2: 0,\n            stroke: '{{fillColor|#656565}}',\n            strokeWidth: DEFAULT_LINE_WIDTH,\n            strokeType: 'solid',\n            type: 'line',\n            markerStart: 'none',\n            markerEnd: type === 'arrow' ? 'arrow' : 'none',\n        },\n        height: DEFAULT_LINE_WIDTH * MARKER_SIZE,\n    }));\n\n    render() {\n        const {\n            entity,\n            design,\n        } = this.props;\n        const strokeWidth = entity.getProperty('strokeWidth', design);\n        const stroke = entity.getProperty('stroke', design);\n        const size = strokeWidth * MARKER_SIZE;\n\n        const StartMarker = markers[entity.getProperty('markerStart', design)];\n        const EndMarker = markers[entity.getProperty('markerEnd', design)];\n\n        const x1 = 0;\n        const x2 = entity.width;\n        const y1 = size / 2;\n\n        const lineProps = {\n            pointerEvents: 'auto',\n            strokeWidth,\n            fill: 'none',\n            x1: x1 + (StartMarker ? strokeWidth : 0),\n            y1,\n            x2: x2 - (EndMarker ? strokeWidth : 0),\n            y2: y1,\n            stroke,\n            strokeDasharray: strokeDasharray(entity.getProperty('strokeType', design), strokeWidth),\n        };\n        const markerProps = {\n            pointerEvents: 'auto',\n            strokeWidth,\n            stroke,\n            fill: stroke,\n            size,\n        };\n        const startMarkerProps = {\n            x: x1,\n            y: y1,\n            transform: `rotate(-90, ${x1}, ${y1})`,\n        };\n        const endMarkerProps = {\n            x: x2,\n            y: y1,\n            transform: `rotate(90, ${x2}, ${y1})`,\n        };\n\n        return (\n            <svg width=\"100%\" height=\"100%\" overflow=\"visible\">\n                {StartMarker && <StartMarker {...markerProps} {...startMarkerProps}/>}\n                {EndMarker && <EndMarker {...markerProps} {...endMarkerProps}/>}\n                <line {...lineProps}/>\n            </svg>\n        );\n    }\n}\n","import _typeof from '@babel/runtime/helpers/esm/typeof';\nimport _objectSpread from '@babel/runtime/helpers/esm/objectSpread';\nimport _classCallCheck from '@babel/runtime/helpers/esm/classCallCheck';\nimport _createClass from '@babel/runtime/helpers/esm/createClass';\nimport _possibleConstructorReturn from '@babel/runtime/helpers/esm/possibleConstructorReturn';\nimport _getPrototypeOf from '@babel/runtime/helpers/esm/getPrototypeOf';\nimport _assertThisInitialized from '@babel/runtime/helpers/esm/assertThisInitialized';\nimport _inherits from '@babel/runtime/helpers/esm/inherits';\nimport _toConsumableArray from '@babel/runtime/helpers/esm/toConsumableArray';\nimport _slicedToArray from '@babel/runtime/helpers/esm/slicedToArray';\n\nvar consoleLogger = {\n  type: 'logger',\n  log: function log(args) {\n    this.output('log', args);\n  },\n  warn: function warn(args) {\n    this.output('warn', args);\n  },\n  error: function error(args) {\n    this.output('error', args);\n  },\n  output: function output(type, args) {\n    var _console;\n\n    /* eslint no-console: 0 */\n    if (console && console[type]) (_console = console)[type].apply(_console, _toConsumableArray(args));\n  }\n};\n\nvar Logger =\n/*#__PURE__*/\nfunction () {\n  function Logger(concreteLogger) {\n    var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n    _classCallCheck(this, Logger);\n\n    this.init(concreteLogger, options);\n  }\n\n  _createClass(Logger, [{\n    key: \"init\",\n    value: function init(concreteLogger) {\n      var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n      this.prefix = options.prefix || 'i18next:';\n      this.logger = concreteLogger || consoleLogger;\n      this.options = options;\n      this.debug = options.debug;\n    }\n  }, {\n    key: \"setDebug\",\n    value: function setDebug(bool) {\n      this.debug = bool;\n    }\n  }, {\n    key: \"log\",\n    value: function log() {\n      for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n        args[_key] = arguments[_key];\n      }\n\n      return this.forward(args, 'log', '', true);\n    }\n  }, {\n    key: \"warn\",\n    value: function warn() {\n      for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n        args[_key2] = arguments[_key2];\n      }\n\n      return this.forward(args, 'warn', '', true);\n    }\n  }, {\n    key: \"error\",\n    value: function error() {\n      for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n        args[_key3] = arguments[_key3];\n      }\n\n      return this.forward(args, 'error', '');\n    }\n  }, {\n    key: \"deprecate\",\n    value: function deprecate() {\n      for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n        args[_key4] = arguments[_key4];\n      }\n\n      return this.forward(args, 'warn', 'WARNING DEPRECATED: ', true);\n    }\n  }, {\n    key: \"forward\",\n    value: function forward(args, lvl, prefix, debugOnly) {\n      if (debugOnly && !this.debug) return null;\n      if (typeof args[0] === 'string') args[0] = \"\".concat(prefix).concat(this.prefix, \" \").concat(args[0]);\n      return this.logger[lvl](args);\n    }\n  }, {\n    key: \"create\",\n    value: function create(moduleName) {\n      return new Logger(this.logger, _objectSpread({}, {\n        prefix: \"\".concat(this.prefix, \":\").concat(moduleName, \":\")\n      }, this.options));\n    }\n  }]);\n\n  return Logger;\n}();\n\nvar baseLogger = new Logger();\n\nvar EventEmitter =\n/*#__PURE__*/\nfunction () {\n  function EventEmitter() {\n    _classCallCheck(this, EventEmitter);\n\n    this.observers = {};\n  }\n\n  _createClass(EventEmitter, [{\n    key: \"on\",\n    value: function on(events, listener) {\n      var _this = this;\n\n      events.split(' ').forEach(function (event) {\n        _this.observers[event] = _this.observers[event] || [];\n\n        _this.observers[event].push(listener);\n      });\n      return this;\n    }\n  }, {\n    key: \"off\",\n    value: function off(event, listener) {\n      var _this2 = this;\n\n      if (!this.observers[event]) {\n        return;\n      }\n\n      this.observers[event].forEach(function () {\n        if (!listener) {\n          delete _this2.observers[event];\n        } else {\n          var index = _this2.observers[event].indexOf(listener);\n\n          if (index > -1) {\n            _this2.observers[event].splice(index, 1);\n          }\n        }\n      });\n    }\n  }, {\n    key: \"emit\",\n    value: function emit(event) {\n      for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n        args[_key - 1] = arguments[_key];\n      }\n\n      if (this.observers[event]) {\n        var cloned = [].concat(this.observers[event]);\n        cloned.forEach(function (observer) {\n          observer.apply(void 0, args);\n        });\n      }\n\n      if (this.observers['*']) {\n        var _cloned = [].concat(this.observers['*']);\n\n        _cloned.forEach(function (observer) {\n          observer.apply(observer, [event].concat(args));\n        });\n      }\n    }\n  }]);\n\n  return EventEmitter;\n}();\n\n// http://lea.verou.me/2016/12/resolve-promises-externally-with-this-one-weird-trick/\nfunction defer() {\n  var res;\n  var rej;\n  var promise = new Promise(function (resolve, reject) {\n    res = resolve;\n    rej = reject;\n  });\n  promise.resolve = res;\n  promise.reject = rej;\n  return promise;\n}\nfunction makeString(object) {\n  if (object == null) return '';\n  /* eslint prefer-template: 0 */\n\n  return '' + object;\n}\nfunction copy(a, s, t) {\n  a.forEach(function (m) {\n    if (s[m]) t[m] = s[m];\n  });\n}\n\nfunction getLastOfPath(object, path, Empty) {\n  function cleanKey(key) {\n    return key && key.indexOf('###') > -1 ? key.replace(/###/g, '.') : key;\n  }\n\n  function canNotTraverseDeeper() {\n    return !object || typeof object === 'string';\n  }\n\n  var stack = typeof path !== 'string' ? [].concat(path) : path.split('.');\n\n  while (stack.length > 1) {\n    if (canNotTraverseDeeper()) return {};\n    var key = cleanKey(stack.shift());\n    if (!object[key] && Empty) object[key] = new Empty();\n    object = object[key];\n  }\n\n  if (canNotTraverseDeeper()) return {};\n  return {\n    obj: object,\n    k: cleanKey(stack.shift())\n  };\n}\n\nfunction setPath(object, path, newValue) {\n  var _getLastOfPath = getLastOfPath(object, path, Object),\n      obj = _getLastOfPath.obj,\n      k = _getLastOfPath.k;\n\n  obj[k] = newValue;\n}\nfunction pushPath(object, path, newValue, concat) {\n  var _getLastOfPath2 = getLastOfPath(object, path, Object),\n      obj = _getLastOfPath2.obj,\n      k = _getLastOfPath2.k;\n\n  obj[k] = obj[k] || [];\n  if (concat) obj[k] = obj[k].concat(newValue);\n  if (!concat) obj[k].push(newValue);\n}\nfunction getPath(object, path) {\n  var _getLastOfPath3 = getLastOfPath(object, path),\n      obj = _getLastOfPath3.obj,\n      k = _getLastOfPath3.k;\n\n  if (!obj) return undefined;\n  return obj[k];\n}\nfunction deepExtend(target, source, overwrite) {\n  /* eslint no-restricted-syntax: 0 */\n  for (var prop in source) {\n    if (prop in target) {\n      // If we reached a leaf string in target or source then replace with source or skip depending on the 'overwrite' switch\n      if (typeof target[prop] === 'string' || target[prop] instanceof String || typeof source[prop] === 'string' || source[prop] instanceof String) {\n        if (overwrite) target[prop] = source[prop];\n      } else {\n        deepExtend(target[prop], source[prop], overwrite);\n      }\n    } else {\n      target[prop] = source[prop];\n    }\n  }\n\n  return target;\n}\nfunction regexEscape(str) {\n  /* eslint no-useless-escape: 0 */\n  return str.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g, '\\\\$&');\n}\n/* eslint-disable */\n\nvar _entityMap = {\n  '&': '&amp;',\n  '<': '&lt;',\n  '>': '&gt;',\n  '\"': '&quot;',\n  \"'\": '&#39;',\n  '/': '&#x2F;'\n};\n/* eslint-enable */\n\nfunction escape(data) {\n  if (typeof data === 'string') {\n    return data.replace(/[&<>\"'\\/]/g, function (s) {\n      return _entityMap[s];\n    });\n  }\n\n  return data;\n}\n\nvar ResourceStore =\n/*#__PURE__*/\nfunction (_EventEmitter) {\n  _inherits(ResourceStore, _EventEmitter);\n\n  function ResourceStore(data) {\n    var _this;\n\n    var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n      ns: ['translation'],\n      defaultNS: 'translation'\n    };\n\n    _classCallCheck(this, ResourceStore);\n\n    _this = _possibleConstructorReturn(this, _getPrototypeOf(ResourceStore).call(this));\n    EventEmitter.call(_assertThisInitialized(_this)); // <=IE10 fix (unable to call parent constructor)\n\n    _this.data = data || {};\n    _this.options = options;\n\n    if (_this.options.keySeparator === undefined) {\n      _this.options.keySeparator = '.';\n    }\n\n    return _this;\n  }\n\n  _createClass(ResourceStore, [{\n    key: \"addNamespaces\",\n    value: function addNamespaces(ns) {\n      if (this.options.ns.indexOf(ns) < 0) {\n        this.options.ns.push(ns);\n      }\n    }\n  }, {\n    key: \"removeNamespaces\",\n    value: function removeNamespaces(ns) {\n      var index = this.options.ns.indexOf(ns);\n\n      if (index > -1) {\n        this.options.ns.splice(index, 1);\n      }\n    }\n  }, {\n    key: \"getResource\",\n    value: function getResource(lng, ns, key) {\n      var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n      var keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n      var path = [lng, ns];\n      if (key && typeof key !== 'string') path = path.concat(key);\n      if (key && typeof key === 'string') path = path.concat(keySeparator ? key.split(keySeparator) : key);\n\n      if (lng.indexOf('.') > -1) {\n        path = lng.split('.');\n      }\n\n      return getPath(this.data, path);\n    }\n  }, {\n    key: \"addResource\",\n    value: function addResource(lng, ns, key, value) {\n      var options = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {\n        silent: false\n      };\n      var keySeparator = this.options.keySeparator;\n      if (keySeparator === undefined) keySeparator = '.';\n      var path = [lng, ns];\n      if (key) path = path.concat(keySeparator ? key.split(keySeparator) : key);\n\n      if (lng.indexOf('.') > -1) {\n        path = lng.split('.');\n        value = ns;\n        ns = path[1];\n      }\n\n      this.addNamespaces(ns);\n      setPath(this.data, path, value);\n      if (!options.silent) this.emit('added', lng, ns, key, value);\n    }\n  }, {\n    key: \"addResources\",\n    value: function addResources(lng, ns, resources) {\n      var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {\n        silent: false\n      };\n\n      /* eslint no-restricted-syntax: 0 */\n      for (var m in resources) {\n        if (typeof resources[m] === 'string' || Object.prototype.toString.apply(resources[m]) === '[object Array]') this.addResource(lng, ns, m, resources[m], {\n          silent: true\n        });\n      }\n\n      if (!options.silent) this.emit('added', lng, ns, resources);\n    }\n  }, {\n    key: \"addResourceBundle\",\n    value: function addResourceBundle(lng, ns, resources, deep, overwrite) {\n      var options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {\n        silent: false\n      };\n      var path = [lng, ns];\n\n      if (lng.indexOf('.') > -1) {\n        path = lng.split('.');\n        deep = resources;\n        resources = ns;\n        ns = path[1];\n      }\n\n      this.addNamespaces(ns);\n      var pack = getPath(this.data, path) || {};\n\n      if (deep) {\n        deepExtend(pack, resources, overwrite);\n      } else {\n        pack = _objectSpread({}, pack, resources);\n      }\n\n      setPath(this.data, path, pack);\n      if (!options.silent) this.emit('added', lng, ns, resources);\n    }\n  }, {\n    key: \"removeResourceBundle\",\n    value: function removeResourceBundle(lng, ns) {\n      if (this.hasResourceBundle(lng, ns)) {\n        delete this.data[lng][ns];\n      }\n\n      this.removeNamespaces(ns);\n      this.emit('removed', lng, ns);\n    }\n  }, {\n    key: \"hasResourceBundle\",\n    value: function hasResourceBundle(lng, ns) {\n      return this.getResource(lng, ns) !== undefined;\n    }\n  }, {\n    key: \"getResourceBundle\",\n    value: function getResourceBundle(lng, ns) {\n      if (!ns) ns = this.options.defaultNS; // COMPATIBILITY: remove extend in v2.1.0\n\n      if (this.options.compatibilityAPI === 'v1') return _objectSpread({}, {}, this.getResource(lng, ns));\n      return this.getResource(lng, ns);\n    }\n  }, {\n    key: \"getDataByLanguage\",\n    value: function getDataByLanguage(lng) {\n      return this.data[lng];\n    }\n  }, {\n    key: \"toJSON\",\n    value: function toJSON() {\n      return this.data;\n    }\n  }]);\n\n  return ResourceStore;\n}(EventEmitter);\n\nvar postProcessor = {\n  processors: {},\n  addPostProcessor: function addPostProcessor(module) {\n    this.processors[module.name] = module;\n  },\n  handle: function handle(processors, value, key, options, translator) {\n    var _this = this;\n\n    processors.forEach(function (processor) {\n      if (_this.processors[processor]) value = _this.processors[processor].process(value, key, options, translator);\n    });\n    return value;\n  }\n};\n\nvar Translator =\n/*#__PURE__*/\nfunction (_EventEmitter) {\n  _inherits(Translator, _EventEmitter);\n\n  function Translator(services) {\n    var _this;\n\n    var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n    _classCallCheck(this, Translator);\n\n    _this = _possibleConstructorReturn(this, _getPrototypeOf(Translator).call(this));\n    EventEmitter.call(_assertThisInitialized(_this)); // <=IE10 fix (unable to call parent constructor)\n\n    copy(['resourceStore', 'languageUtils', 'pluralResolver', 'interpolator', 'backendConnector', 'i18nFormat'], services, _assertThisInitialized(_this));\n    _this.options = options;\n\n    if (_this.options.keySeparator === undefined) {\n      _this.options.keySeparator = '.';\n    }\n\n    _this.logger = baseLogger.create('translator');\n    return _this;\n  }\n\n  _createClass(Translator, [{\n    key: \"changeLanguage\",\n    value: function changeLanguage(lng) {\n      if (lng) this.language = lng;\n    }\n  }, {\n    key: \"exists\",\n    value: function exists(key) {\n      var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n        interpolation: {}\n      };\n      var resolved = this.resolve(key, options);\n      return resolved && resolved.res !== undefined;\n    }\n  }, {\n    key: \"extractFromKey\",\n    value: function extractFromKey(key, options) {\n      var nsSeparator = options.nsSeparator || this.options.nsSeparator;\n      if (nsSeparator === undefined) nsSeparator = ':';\n      var keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n      var namespaces = options.ns || this.options.defaultNS;\n\n      if (nsSeparator && key.indexOf(nsSeparator) > -1) {\n        var parts = key.split(nsSeparator);\n        if (nsSeparator !== keySeparator || nsSeparator === keySeparator && this.options.ns.indexOf(parts[0]) > -1) namespaces = parts.shift();\n        key = parts.join(keySeparator);\n      }\n\n      if (typeof namespaces === 'string') namespaces = [namespaces];\n      return {\n        key: key,\n        namespaces: namespaces\n      };\n    }\n  }, {\n    key: \"translate\",\n    value: function translate(keys, options) {\n      var _this2 = this;\n\n      if (_typeof(options) !== 'object' && this.options.overloadTranslationOptionHandler) {\n        /* eslint prefer-rest-params: 0 */\n        options = this.options.overloadTranslationOptionHandler(arguments);\n      }\n\n      if (!options) options = {}; // non valid keys handling\n\n      if (keys === undefined || keys === null) return '';\n      if (!Array.isArray(keys)) keys = [String(keys)]; // separators\n\n      var keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator; // get namespace(s)\n\n      var _this$extractFromKey = this.extractFromKey(keys[keys.length - 1], options),\n          key = _this$extractFromKey.key,\n          namespaces = _this$extractFromKey.namespaces;\n\n      var namespace = namespaces[namespaces.length - 1]; // return key on CIMode\n\n      var lng = options.lng || this.language;\n      var appendNamespaceToCIMode = options.appendNamespaceToCIMode || this.options.appendNamespaceToCIMode;\n\n      if (lng && lng.toLowerCase() === 'cimode') {\n        if (appendNamespaceToCIMode) {\n          var nsSeparator = options.nsSeparator || this.options.nsSeparator;\n          return namespace + nsSeparator + key;\n        }\n\n        return key;\n      } // resolve from store\n\n\n      var resolved = this.resolve(keys, options);\n      var res = resolved && resolved.res;\n      var resUsedKey = resolved && resolved.usedKey || key;\n      var resExactUsedKey = resolved && resolved.exactUsedKey || key;\n      var resType = Object.prototype.toString.apply(res);\n      var noObject = ['[object Number]', '[object Function]', '[object RegExp]'];\n      var joinArrays = options.joinArrays !== undefined ? options.joinArrays : this.options.joinArrays; // object\n\n      var handleAsObjectInI18nFormat = !this.i18nFormat || this.i18nFormat.handleAsObject;\n      var handleAsObject = typeof res !== 'string' && typeof res !== 'boolean' && typeof res !== 'number';\n\n      if (handleAsObjectInI18nFormat && res && handleAsObject && noObject.indexOf(resType) < 0 && !(typeof joinArrays === 'string' && resType === '[object Array]')) {\n        if (!options.returnObjects && !this.options.returnObjects) {\n          this.logger.warn('accessing an object - but returnObjects options is not enabled!');\n          return this.options.returnedObjectHandler ? this.options.returnedObjectHandler(resUsedKey, res, options) : \"key '\".concat(key, \" (\").concat(this.language, \")' returned an object instead of string.\");\n        } // if we got a separator we loop over children - else we just return object as is\n        // as having it set to false means no hierarchy so no lookup for nested values\n\n\n        if (keySeparator) {\n          var resTypeIsArray = resType === '[object Array]';\n          var copy$$1 = resTypeIsArray ? [] : {}; // apply child translation on a copy\n\n          /* eslint no-restricted-syntax: 0 */\n\n          var newKeyToUse = resTypeIsArray ? resExactUsedKey : resUsedKey;\n\n          for (var m in res) {\n            if (Object.prototype.hasOwnProperty.call(res, m)) {\n              var deepKey = \"\".concat(newKeyToUse).concat(keySeparator).concat(m);\n              copy$$1[m] = this.translate(deepKey, _objectSpread({}, options, {\n                joinArrays: false,\n                ns: namespaces\n              }));\n              if (copy$$1[m] === deepKey) copy$$1[m] = res[m]; // if nothing found use orginal value as fallback\n            }\n          }\n\n          res = copy$$1;\n        }\n      } else if (handleAsObjectInI18nFormat && typeof joinArrays === 'string' && resType === '[object Array]') {\n        // array special treatment\n        res = res.join(joinArrays);\n        if (res) res = this.extendTranslation(res, keys, options);\n      } else {\n        // string, empty or null\n        var usedDefault = false;\n        var usedKey = false; // fallback value\n\n        if (!this.isValidLookup(res) && options.defaultValue !== undefined) {\n          usedDefault = true;\n\n          if (options.count !== undefined) {\n            var suffix = this.pluralResolver.getSuffix(lng, options.count);\n            res = options[\"defaultValue\".concat(suffix)];\n          }\n\n          if (!res) res = options.defaultValue;\n        }\n\n        if (!this.isValidLookup(res)) {\n          usedKey = true;\n          res = key;\n        } // save missing\n\n\n        var updateMissing = options.defaultValue && options.defaultValue !== res && this.options.updateMissing;\n\n        if (usedKey || usedDefault || updateMissing) {\n          this.logger.log(updateMissing ? 'updateKey' : 'missingKey', lng, namespace, key, updateMissing ? options.defaultValue : res);\n          var lngs = [];\n          var fallbackLngs = this.languageUtils.getFallbackCodes(this.options.fallbackLng, options.lng || this.language);\n\n          if (this.options.saveMissingTo === 'fallback' && fallbackLngs && fallbackLngs[0]) {\n            for (var i = 0; i < fallbackLngs.length; i++) {\n              lngs.push(fallbackLngs[i]);\n            }\n          } else if (this.options.saveMissingTo === 'all') {\n            lngs = this.languageUtils.toResolveHierarchy(options.lng || this.language);\n          } else {\n            lngs.push(options.lng || this.language);\n          }\n\n          var send = function send(l, k) {\n            if (_this2.options.missingKeyHandler) {\n              _this2.options.missingKeyHandler(l, namespace, k, updateMissing ? options.defaultValue : res, updateMissing, options);\n            } else if (_this2.backendConnector && _this2.backendConnector.saveMissing) {\n              _this2.backendConnector.saveMissing(l, namespace, k, updateMissing ? options.defaultValue : res, updateMissing, options);\n            }\n\n            _this2.emit('missingKey', l, namespace, k, res);\n          };\n\n          if (this.options.saveMissing) {\n            var needsPluralHandling = options.count !== undefined && typeof options.count !== 'string';\n\n            if (this.options.saveMissingPlurals && needsPluralHandling) {\n              lngs.forEach(function (l) {\n                var plurals = _this2.pluralResolver.getPluralFormsOfKey(l, key);\n\n                plurals.forEach(function (p) {\n                  return send([l], p);\n                });\n              });\n            } else {\n              send(lngs, key);\n            }\n          }\n        } // extend\n\n\n        res = this.extendTranslation(res, keys, options, resolved); // append namespace if still key\n\n        if (usedKey && res === key && this.options.appendNamespaceToMissingKey) res = \"\".concat(namespace, \":\").concat(key); // parseMissingKeyHandler\n\n        if (usedKey && this.options.parseMissingKeyHandler) res = this.options.parseMissingKeyHandler(res);\n      } // return\n\n\n      return res;\n    }\n  }, {\n    key: \"extendTranslation\",\n    value: function extendTranslation(res, key, options, resolved) {\n      var _this3 = this;\n\n      if (this.i18nFormat && this.i18nFormat.parse) {\n        res = this.i18nFormat.parse(res, options, resolved.usedLng, resolved.usedNS, resolved.usedKey, {\n          resolved: resolved\n        });\n      } else if (!options.skipInterpolation) {\n        // i18next.parsing\n        if (options.interpolation) this.interpolator.init(_objectSpread({}, options, {\n          interpolation: _objectSpread({}, this.options.interpolation, options.interpolation)\n        })); // interpolate\n\n        var data = options.replace && typeof options.replace !== 'string' ? options.replace : options;\n        if (this.options.interpolation.defaultVariables) data = _objectSpread({}, this.options.interpolation.defaultVariables, data);\n        res = this.interpolator.interpolate(res, data, options.lng || this.language, options); // nesting\n\n        if (options.nest !== false) res = this.interpolator.nest(res, function () {\n          return _this3.translate.apply(_this3, arguments);\n        }, options);\n        if (options.interpolation) this.interpolator.reset();\n      } // post process\n\n\n      var postProcess = options.postProcess || this.options.postProcess;\n      var postProcessorNames = typeof postProcess === 'string' ? [postProcess] : postProcess;\n\n      if (res !== undefined && res !== null && postProcessorNames && postProcessorNames.length && options.applyPostProcessor !== false) {\n        res = postProcessor.handle(postProcessorNames, res, key, options, this);\n      }\n\n      return res;\n    }\n  }, {\n    key: \"resolve\",\n    value: function resolve(keys) {\n      var _this4 = this;\n\n      var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n      var found;\n      var usedKey; // plain key\n\n      var exactUsedKey; // key with context / plural\n\n      var usedLng;\n      var usedNS;\n      if (typeof keys === 'string') keys = [keys]; // forEach possible key\n\n      keys.forEach(function (k) {\n        if (_this4.isValidLookup(found)) return;\n\n        var extracted = _this4.extractFromKey(k, options);\n\n        var key = extracted.key;\n        usedKey = key;\n        var namespaces = extracted.namespaces;\n        if (_this4.options.fallbackNS) namespaces = namespaces.concat(_this4.options.fallbackNS);\n        var needsPluralHandling = options.count !== undefined && typeof options.count !== 'string';\n        var needsContextHandling = options.context !== undefined && typeof options.context === 'string' && options.context !== '';\n        var codes = options.lngs ? options.lngs : _this4.languageUtils.toResolveHierarchy(options.lng || _this4.language, options.fallbackLng);\n        namespaces.forEach(function (ns) {\n          if (_this4.isValidLookup(found)) return;\n          usedNS = ns;\n          codes.forEach(function (code) {\n            if (_this4.isValidLookup(found)) return;\n            usedLng = code;\n            var finalKey = key;\n            var finalKeys = [finalKey];\n\n            if (_this4.i18nFormat && _this4.i18nFormat.addLookupKeys) {\n              _this4.i18nFormat.addLookupKeys(finalKeys, key, code, ns, options);\n            } else {\n              var pluralSuffix;\n              if (needsPluralHandling) pluralSuffix = _this4.pluralResolver.getSuffix(code, options.count); // fallback for plural if context not found\n\n              if (needsPluralHandling && needsContextHandling) finalKeys.push(finalKey + pluralSuffix); // get key for context if needed\n\n              if (needsContextHandling) finalKeys.push(finalKey += \"\".concat(_this4.options.contextSeparator).concat(options.context)); // get key for plural if needed\n\n              if (needsPluralHandling) finalKeys.push(finalKey += pluralSuffix);\n            } // iterate over finalKeys starting with most specific pluralkey (-> contextkey only) -> singularkey only\n\n\n            var possibleKey;\n            /* eslint no-cond-assign: 0 */\n\n            while (possibleKey = finalKeys.pop()) {\n              if (!_this4.isValidLookup(found)) {\n                exactUsedKey = possibleKey;\n                found = _this4.getResource(code, ns, possibleKey, options);\n              }\n            }\n          });\n        });\n      });\n      return {\n        res: found,\n        usedKey: usedKey,\n        exactUsedKey: exactUsedKey,\n        usedLng: usedLng,\n        usedNS: usedNS\n      };\n    }\n  }, {\n    key: \"isValidLookup\",\n    value: function isValidLookup(res) {\n      return res !== undefined && !(!this.options.returnNull && res === null) && !(!this.options.returnEmptyString && res === '');\n    }\n  }, {\n    key: \"getResource\",\n    value: function getResource(code, ns, key) {\n      var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n      if (this.i18nFormat && this.i18nFormat.getResource) return this.i18nFormat.getResource(code, ns, key, options);\n      return this.resourceStore.getResource(code, ns, key, options);\n    }\n  }]);\n\n  return Translator;\n}(EventEmitter);\n\nfunction capitalize(string) {\n  return string.charAt(0).toUpperCase() + string.slice(1);\n}\n\nvar LanguageUtil =\n/*#__PURE__*/\nfunction () {\n  function LanguageUtil(options) {\n    _classCallCheck(this, LanguageUtil);\n\n    this.options = options;\n    this.whitelist = this.options.whitelist || false;\n    this.logger = baseLogger.create('languageUtils');\n  }\n\n  _createClass(LanguageUtil, [{\n    key: \"getScriptPartFromCode\",\n    value: function getScriptPartFromCode(code) {\n      if (!code || code.indexOf('-') < 0) return null;\n      var p = code.split('-');\n      if (p.length === 2) return null;\n      p.pop();\n      return this.formatLanguageCode(p.join('-'));\n    }\n  }, {\n    key: \"getLanguagePartFromCode\",\n    value: function getLanguagePartFromCode(code) {\n      if (!code || code.indexOf('-') < 0) return code;\n      var p = code.split('-');\n      return this.formatLanguageCode(p[0]);\n    }\n  }, {\n    key: \"formatLanguageCode\",\n    value: function formatLanguageCode(code) {\n      // http://www.iana.org/assignments/language-tags/language-tags.xhtml\n      if (typeof code === 'string' && code.indexOf('-') > -1) {\n        var specialCases = ['hans', 'hant', 'latn', 'cyrl', 'cans', 'mong', 'arab'];\n        var p = code.split('-');\n\n        if (this.options.lowerCaseLng) {\n          p = p.map(function (part) {\n            return part.toLowerCase();\n          });\n        } else if (p.length === 2) {\n          p[0] = p[0].toLowerCase();\n          p[1] = p[1].toUpperCase();\n          if (specialCases.indexOf(p[1].toLowerCase()) > -1) p[1] = capitalize(p[1].toLowerCase());\n        } else if (p.length === 3) {\n          p[0] = p[0].toLowerCase(); // if lenght 2 guess it's a country\n\n          if (p[1].length === 2) p[1] = p[1].toUpperCase();\n          if (p[0] !== 'sgn' && p[2].length === 2) p[2] = p[2].toUpperCase();\n          if (specialCases.indexOf(p[1].toLowerCase()) > -1) p[1] = capitalize(p[1].toLowerCase());\n          if (specialCases.indexOf(p[2].toLowerCase()) > -1) p[2] = capitalize(p[2].toLowerCase());\n        }\n\n        return p.join('-');\n      }\n\n      return this.options.cleanCode || this.options.lowerCaseLng ? code.toLowerCase() : code;\n    }\n  }, {\n    key: \"isWhitelisted\",\n    value: function isWhitelisted(code) {\n      if (this.options.load === 'languageOnly' || this.options.nonExplicitWhitelist) {\n        code = this.getLanguagePartFromCode(code);\n      }\n\n      return !this.whitelist || !this.whitelist.length || this.whitelist.indexOf(code) > -1;\n    }\n  }, {\n    key: \"getFallbackCodes\",\n    value: function getFallbackCodes(fallbacks, code) {\n      if (!fallbacks) return [];\n      if (typeof fallbacks === 'string') fallbacks = [fallbacks];\n      if (Object.prototype.toString.apply(fallbacks) === '[object Array]') return fallbacks;\n      if (!code) return fallbacks[\"default\"] || []; // asume we have an object defining fallbacks\n\n      var found = fallbacks[code];\n      if (!found) found = fallbacks[this.getScriptPartFromCode(code)];\n      if (!found) found = fallbacks[this.formatLanguageCode(code)];\n      if (!found) found = fallbacks[\"default\"];\n      return found || [];\n    }\n  }, {\n    key: \"toResolveHierarchy\",\n    value: function toResolveHierarchy(code, fallbackCode) {\n      var _this = this;\n\n      var fallbackCodes = this.getFallbackCodes(fallbackCode || this.options.fallbackLng || [], code);\n      var codes = [];\n\n      var addCode = function addCode(c) {\n        if (!c) return;\n\n        if (_this.isWhitelisted(c)) {\n          codes.push(c);\n        } else {\n          _this.logger.warn(\"rejecting non-whitelisted language code: \".concat(c));\n        }\n      };\n\n      if (typeof code === 'string' && code.indexOf('-') > -1) {\n        if (this.options.load !== 'languageOnly') addCode(this.formatLanguageCode(code));\n        if (this.options.load !== 'languageOnly' && this.options.load !== 'currentOnly') addCode(this.getScriptPartFromCode(code));\n        if (this.options.load !== 'currentOnly') addCode(this.getLanguagePartFromCode(code));\n      } else if (typeof code === 'string') {\n        addCode(this.formatLanguageCode(code));\n      }\n\n      fallbackCodes.forEach(function (fc) {\n        if (codes.indexOf(fc) < 0) addCode(_this.formatLanguageCode(fc));\n      });\n      return codes;\n    }\n  }]);\n\n  return LanguageUtil;\n}();\n\n/* eslint-disable */\n\nvar sets = [{\n  lngs: ['ach', 'ak', 'am', 'arn', 'br', 'fil', 'gun', 'ln', 'mfe', 'mg', 'mi', 'oc', 'pt', 'pt-BR', 'tg', 'ti', 'tr', 'uz', 'wa'],\n  nr: [1, 2],\n  fc: 1\n}, {\n  lngs: ['af', 'an', 'ast', 'az', 'bg', 'bn', 'ca', 'da', 'de', 'dev', 'el', 'en', 'eo', 'es', 'et', 'eu', 'fi', 'fo', 'fur', 'fy', 'gl', 'gu', 'ha', 'hi', 'hu', 'hy', 'ia', 'it', 'kn', 'ku', 'lb', 'mai', 'ml', 'mn', 'mr', 'nah', 'nap', 'nb', 'ne', 'nl', 'nn', 'no', 'nso', 'pa', 'pap', 'pms', 'ps', 'pt-PT', 'rm', 'sco', 'se', 'si', 'so', 'son', 'sq', 'sv', 'sw', 'ta', 'te', 'tk', 'ur', 'yo'],\n  nr: [1, 2],\n  fc: 2\n}, {\n  lngs: ['ay', 'bo', 'cgg', 'fa', 'id', 'ja', 'jbo', 'ka', 'kk', 'km', 'ko', 'ky', 'lo', 'ms', 'sah', 'su', 'th', 'tt', 'ug', 'vi', 'wo', 'zh'],\n  nr: [1],\n  fc: 3\n}, {\n  lngs: ['be', 'bs', 'dz', 'hr', 'ru', 'sr', 'uk'],\n  nr: [1, 2, 5],\n  fc: 4\n}, {\n  lngs: ['ar'],\n  nr: [0, 1, 2, 3, 11, 100],\n  fc: 5\n}, {\n  lngs: ['cs', 'sk'],\n  nr: [1, 2, 5],\n  fc: 6\n}, {\n  lngs: ['csb', 'pl'],\n  nr: [1, 2, 5],\n  fc: 7\n}, {\n  lngs: ['cy'],\n  nr: [1, 2, 3, 8],\n  fc: 8\n}, {\n  lngs: ['fr'],\n  nr: [1, 2],\n  fc: 9\n}, {\n  lngs: ['ga'],\n  nr: [1, 2, 3, 7, 11],\n  fc: 10\n}, {\n  lngs: ['gd'],\n  nr: [1, 2, 3, 20],\n  fc: 11\n}, {\n  lngs: ['is'],\n  nr: [1, 2],\n  fc: 12\n}, {\n  lngs: ['jv'],\n  nr: [0, 1],\n  fc: 13\n}, {\n  lngs: ['kw'],\n  nr: [1, 2, 3, 4],\n  fc: 14\n}, {\n  lngs: ['lt'],\n  nr: [1, 2, 10],\n  fc: 15\n}, {\n  lngs: ['lv'],\n  nr: [1, 2, 0],\n  fc: 16\n}, {\n  lngs: ['mk'],\n  nr: [1, 2],\n  fc: 17\n}, {\n  lngs: ['mnk'],\n  nr: [0, 1, 2],\n  fc: 18\n}, {\n  lngs: ['mt'],\n  nr: [1, 2, 11, 20],\n  fc: 19\n}, {\n  lngs: ['or'],\n  nr: [2, 1],\n  fc: 2\n}, {\n  lngs: ['ro'],\n  nr: [1, 2, 20],\n  fc: 20\n}, {\n  lngs: ['sl'],\n  nr: [5, 1, 2, 3],\n  fc: 21\n}, {\n  lngs: ['he'],\n  nr: [1, 2, 20, 21],\n  fc: 22\n}];\nvar _rulesPluralsTypes = {\n  1: function _(n) {\n    return Number(n > 1);\n  },\n  2: function _(n) {\n    return Number(n != 1);\n  },\n  3: function _(n) {\n    return 0;\n  },\n  4: function _(n) {\n    return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n  },\n  5: function _(n) {\n    return Number(n === 0 ? 0 : n == 1 ? 1 : n == 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5);\n  },\n  6: function _(n) {\n    return Number(n == 1 ? 0 : n >= 2 && n <= 4 ? 1 : 2);\n  },\n  7: function _(n) {\n    return Number(n == 1 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n  },\n  8: function _(n) {\n    return Number(n == 1 ? 0 : n == 2 ? 1 : n != 8 && n != 11 ? 2 : 3);\n  },\n  9: function _(n) {\n    return Number(n >= 2);\n  },\n  10: function _(n) {\n    return Number(n == 1 ? 0 : n == 2 ? 1 : n < 7 ? 2 : n < 11 ? 3 : 4);\n  },\n  11: function _(n) {\n    return Number(n == 1 || n == 11 ? 0 : n == 2 || n == 12 ? 1 : n > 2 && n < 20 ? 2 : 3);\n  },\n  12: function _(n) {\n    return Number(n % 10 != 1 || n % 100 == 11);\n  },\n  13: function _(n) {\n    return Number(n !== 0);\n  },\n  14: function _(n) {\n    return Number(n == 1 ? 0 : n == 2 ? 1 : n == 3 ? 2 : 3);\n  },\n  15: function _(n) {\n    return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n % 10 >= 2 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n  },\n  16: function _(n) {\n    return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n !== 0 ? 1 : 2);\n  },\n  17: function _(n) {\n    return Number(n == 1 || n % 10 == 1 ? 0 : 1);\n  },\n  18: function _(n) {\n    return Number(n == 0 ? 0 : n == 1 ? 1 : 2);\n  },\n  19: function _(n) {\n    return Number(n == 1 ? 0 : n === 0 || n % 100 > 1 && n % 100 < 11 ? 1 : n % 100 > 10 && n % 100 < 20 ? 2 : 3);\n  },\n  20: function _(n) {\n    return Number(n == 1 ? 0 : n === 0 || n % 100 > 0 && n % 100 < 20 ? 1 : 2);\n  },\n  21: function _(n) {\n    return Number(n % 100 == 1 ? 1 : n % 100 == 2 ? 2 : n % 100 == 3 || n % 100 == 4 ? 3 : 0);\n  },\n  22: function _(n) {\n    return Number(n === 1 ? 0 : n === 2 ? 1 : (n < 0 || n > 10) && n % 10 == 0 ? 2 : 3);\n  }\n};\n/* eslint-enable */\n\nfunction createRules() {\n  var rules = {};\n  sets.forEach(function (set) {\n    set.lngs.forEach(function (l) {\n      rules[l] = {\n        numbers: set.nr,\n        plurals: _rulesPluralsTypes[set.fc]\n      };\n    });\n  });\n  return rules;\n}\n\nvar PluralResolver =\n/*#__PURE__*/\nfunction () {\n  function PluralResolver(languageUtils) {\n    var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n    _classCallCheck(this, PluralResolver);\n\n    this.languageUtils = languageUtils;\n    this.options = options;\n    this.logger = baseLogger.create('pluralResolver');\n    this.rules = createRules();\n  }\n\n  _createClass(PluralResolver, [{\n    key: \"addRule\",\n    value: function addRule(lng, obj) {\n      this.rules[lng] = obj;\n    }\n  }, {\n    key: \"getRule\",\n    value: function getRule(code) {\n      return this.rules[code] || this.rules[this.languageUtils.getLanguagePartFromCode(code)];\n    }\n  }, {\n    key: \"needsPlural\",\n    value: function needsPlural(code) {\n      var rule = this.getRule(code);\n      return rule && rule.numbers.length > 1;\n    }\n  }, {\n    key: \"getPluralFormsOfKey\",\n    value: function getPluralFormsOfKey(code, key) {\n      var _this = this;\n\n      var ret = [];\n      var rule = this.getRule(code);\n      if (!rule) return ret;\n      rule.numbers.forEach(function (n) {\n        var suffix = _this.getSuffix(code, n);\n\n        ret.push(\"\".concat(key).concat(suffix));\n      });\n      return ret;\n    }\n  }, {\n    key: \"getSuffix\",\n    value: function getSuffix(code, count) {\n      var _this2 = this;\n\n      var rule = this.getRule(code);\n\n      if (rule) {\n        // if (rule.numbers.length === 1) return ''; // only singular\n        var idx = rule.noAbs ? rule.plurals(count) : rule.plurals(Math.abs(count));\n        var suffix = rule.numbers[idx]; // special treatment for lngs only having singular and plural\n\n        if (this.options.simplifyPluralSuffix && rule.numbers.length === 2 && rule.numbers[0] === 1) {\n          if (suffix === 2) {\n            suffix = 'plural';\n          } else if (suffix === 1) {\n            suffix = '';\n          }\n        }\n\n        var returnSuffix = function returnSuffix() {\n          return _this2.options.prepend && suffix.toString() ? _this2.options.prepend + suffix.toString() : suffix.toString();\n        }; // COMPATIBILITY JSON\n        // v1\n\n\n        if (this.options.compatibilityJSON === 'v1') {\n          if (suffix === 1) return '';\n          if (typeof suffix === 'number') return \"_plural_\".concat(suffix.toString());\n          return returnSuffix();\n        } else if (\n        /* v2 */\n        this.options.compatibilityJSON === 'v2') {\n          return returnSuffix();\n        } else if (\n        /* v3 - gettext index */\n        this.options.simplifyPluralSuffix && rule.numbers.length === 2 && rule.numbers[0] === 1) {\n          return returnSuffix();\n        }\n\n        return this.options.prepend && idx.toString() ? this.options.prepend + idx.toString() : idx.toString();\n      }\n\n      this.logger.warn(\"no plural rule found for: \".concat(code));\n      return '';\n    }\n  }]);\n\n  return PluralResolver;\n}();\n\nvar Interpolator =\n/*#__PURE__*/\nfunction () {\n  function Interpolator() {\n    var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n    _classCallCheck(this, Interpolator);\n\n    this.logger = baseLogger.create('interpolator');\n    this.init(options, true);\n  }\n  /* eslint no-param-reassign: 0 */\n\n\n  _createClass(Interpolator, [{\n    key: \"init\",\n    value: function init() {\n      var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n      var reset = arguments.length > 1 ? arguments[1] : undefined;\n\n      if (reset) {\n        this.options = options;\n\n        this.format = options.interpolation && options.interpolation.format || function (value) {\n          return value;\n        };\n      }\n\n      if (!options.interpolation) options.interpolation = {\n        escapeValue: true\n      };\n      var iOpts = options.interpolation;\n      this.escape = iOpts.escape !== undefined ? iOpts.escape : escape;\n      this.escapeValue = iOpts.escapeValue !== undefined ? iOpts.escapeValue : true;\n      this.useRawValueToEscape = iOpts.useRawValueToEscape !== undefined ? iOpts.useRawValueToEscape : false;\n      this.prefix = iOpts.prefix ? regexEscape(iOpts.prefix) : iOpts.prefixEscaped || '{{';\n      this.suffix = iOpts.suffix ? regexEscape(iOpts.suffix) : iOpts.suffixEscaped || '}}';\n      this.formatSeparator = iOpts.formatSeparator ? iOpts.formatSeparator : iOpts.formatSeparator || ',';\n      this.unescapePrefix = iOpts.unescapeSuffix ? '' : iOpts.unescapePrefix || '-';\n      this.unescapeSuffix = this.unescapePrefix ? '' : iOpts.unescapeSuffix || '';\n      this.nestingPrefix = iOpts.nestingPrefix ? regexEscape(iOpts.nestingPrefix) : iOpts.nestingPrefixEscaped || regexEscape('$t(');\n      this.nestingSuffix = iOpts.nestingSuffix ? regexEscape(iOpts.nestingSuffix) : iOpts.nestingSuffixEscaped || regexEscape(')');\n      this.maxReplaces = iOpts.maxReplaces ? iOpts.maxReplaces : 1000; // the regexp\n\n      this.resetRegExp();\n    }\n  }, {\n    key: \"reset\",\n    value: function reset() {\n      if (this.options) this.init(this.options);\n    }\n  }, {\n    key: \"resetRegExp\",\n    value: function resetRegExp() {\n      // the regexp\n      var regexpStr = \"\".concat(this.prefix, \"(.+?)\").concat(this.suffix);\n      this.regexp = new RegExp(regexpStr, 'g');\n      var regexpUnescapeStr = \"\".concat(this.prefix).concat(this.unescapePrefix, \"(.+?)\").concat(this.unescapeSuffix).concat(this.suffix);\n      this.regexpUnescape = new RegExp(regexpUnescapeStr, 'g');\n      var nestingRegexpStr = \"\".concat(this.nestingPrefix, \"(.+?)\").concat(this.nestingSuffix);\n      this.nestingRegexp = new RegExp(nestingRegexpStr, 'g');\n    }\n  }, {\n    key: \"interpolate\",\n    value: function interpolate(str, data, lng, options) {\n      var _this = this;\n\n      var match;\n      var value;\n      var replaces;\n\n      function regexSafe(val) {\n        return val.replace(/\\$/g, '$$$$');\n      }\n\n      var handleFormat = function handleFormat(key) {\n        if (key.indexOf(_this.formatSeparator) < 0) return getPath(data, key);\n        var p = key.split(_this.formatSeparator);\n        var k = p.shift().trim();\n        var f = p.join(_this.formatSeparator).trim();\n        return _this.format(getPath(data, k), f, lng);\n      };\n\n      this.resetRegExp();\n      var missingInterpolationHandler = options && options.missingInterpolationHandler || this.options.missingInterpolationHandler;\n      replaces = 0; // unescape if has unescapePrefix/Suffix\n\n      /* eslint no-cond-assign: 0 */\n\n      while (match = this.regexpUnescape.exec(str)) {\n        value = handleFormat(match[1].trim());\n        str = str.replace(match[0], value);\n        this.regexpUnescape.lastIndex = 0;\n        replaces++;\n\n        if (replaces >= this.maxReplaces) {\n          break;\n        }\n      }\n\n      replaces = 0; // regular escape on demand\n\n      while (match = this.regexp.exec(str)) {\n        value = handleFormat(match[1].trim());\n\n        if (value === undefined) {\n          if (typeof missingInterpolationHandler === 'function') {\n            var temp = missingInterpolationHandler(str, match, options);\n            value = typeof temp === 'string' ? temp : '';\n          } else {\n            this.logger.warn(\"missed to pass in variable \".concat(match[1], \" for interpolating \").concat(str));\n            value = '';\n          }\n        } else if (typeof value !== 'string' && !this.useRawValueToEscape) {\n          value = makeString(value);\n        }\n\n        value = this.escapeValue ? regexSafe(this.escape(value)) : regexSafe(value);\n        str = str.replace(match[0], value);\n        this.regexp.lastIndex = 0;\n        replaces++;\n\n        if (replaces >= this.maxReplaces) {\n          break;\n        }\n      }\n\n      return str;\n    }\n  }, {\n    key: \"nest\",\n    value: function nest(str, fc) {\n      var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n      var match;\n      var value;\n\n      var clonedOptions = _objectSpread({}, options);\n\n      clonedOptions.applyPostProcessor = false; // avoid post processing on nested lookup\n      // if value is something like \"myKey\": \"lorem $(anotherKey, { \"count\": {{aValueInOptions}} })\"\n\n      function handleHasOptions(key, inheritedOptions) {\n        if (key.indexOf(',') < 0) return key;\n        var p = key.split(',');\n        key = p.shift();\n        var optionsString = p.join(',');\n        optionsString = this.interpolate(optionsString, clonedOptions);\n        optionsString = optionsString.replace(/'/g, '\"');\n\n        try {\n          clonedOptions = JSON.parse(optionsString);\n          if (inheritedOptions) clonedOptions = _objectSpread({}, inheritedOptions, clonedOptions);\n        } catch (e) {\n          this.logger.error(\"failed parsing options string in nesting for key \".concat(key), e);\n        }\n\n        return key;\n      } // regular escape on demand\n\n\n      while (match = this.nestingRegexp.exec(str)) {\n        value = fc(handleHasOptions.call(this, match[1].trim(), clonedOptions), clonedOptions); // is only the nesting key (key1 = '$(key2)') return the value without stringify\n\n        if (value && match[0] === str && typeof value !== 'string') return value; // no string to include or empty\n\n        if (typeof value !== 'string') value = makeString(value);\n\n        if (!value) {\n          this.logger.warn(\"missed to resolve \".concat(match[1], \" for nesting \").concat(str));\n          value = '';\n        } // Nested keys should not be escaped by default #854\n        // value = this.escapeValue ? regexSafe(utils.escape(value)) : regexSafe(value);\n\n\n        str = str.replace(match[0], value);\n        this.regexp.lastIndex = 0;\n      }\n\n      return str;\n    }\n  }]);\n\n  return Interpolator;\n}();\n\nfunction remove(arr, what) {\n  var found = arr.indexOf(what);\n\n  while (found !== -1) {\n    arr.splice(found, 1);\n    found = arr.indexOf(what);\n  }\n}\n\nvar Connector =\n/*#__PURE__*/\nfunction (_EventEmitter) {\n  _inherits(Connector, _EventEmitter);\n\n  function Connector(backend, store, services) {\n    var _this;\n\n    var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n\n    _classCallCheck(this, Connector);\n\n    _this = _possibleConstructorReturn(this, _getPrototypeOf(Connector).call(this));\n    EventEmitter.call(_assertThisInitialized(_this)); // <=IE10 fix (unable to call parent constructor)\n\n    _this.backend = backend;\n    _this.store = store;\n    _this.languageUtils = services.languageUtils;\n    _this.options = options;\n    _this.logger = baseLogger.create('backendConnector');\n    _this.state = {};\n    _this.queue = [];\n\n    if (_this.backend && _this.backend.init) {\n      _this.backend.init(services, options.backend, options);\n    }\n\n    return _this;\n  }\n\n  _createClass(Connector, [{\n    key: \"queueLoad\",\n    value: function queueLoad(languages, namespaces, options, callback) {\n      var _this2 = this;\n\n      // find what needs to be loaded\n      var toLoad = [];\n      var pending = [];\n      var toLoadLanguages = [];\n      var toLoadNamespaces = [];\n      languages.forEach(function (lng) {\n        var hasAllNamespaces = true;\n        namespaces.forEach(function (ns) {\n          var name = \"\".concat(lng, \"|\").concat(ns);\n\n          if (!options.reload && _this2.store.hasResourceBundle(lng, ns)) {\n            _this2.state[name] = 2; // loaded\n          } else if (_this2.state[name] < 0) ; else if (_this2.state[name] === 1) {\n            if (pending.indexOf(name) < 0) pending.push(name);\n          } else {\n            _this2.state[name] = 1; // pending\n\n            hasAllNamespaces = false;\n            if (pending.indexOf(name) < 0) pending.push(name);\n            if (toLoad.indexOf(name) < 0) toLoad.push(name);\n            if (toLoadNamespaces.indexOf(ns) < 0) toLoadNamespaces.push(ns);\n          }\n        });\n        if (!hasAllNamespaces) toLoadLanguages.push(lng);\n      });\n\n      if (toLoad.length || pending.length) {\n        this.queue.push({\n          pending: pending,\n          loaded: {},\n          errors: [],\n          callback: callback\n        });\n      }\n\n      return {\n        toLoad: toLoad,\n        pending: pending,\n        toLoadLanguages: toLoadLanguages,\n        toLoadNamespaces: toLoadNamespaces\n      };\n    }\n  }, {\n    key: \"loaded\",\n    value: function loaded(name, err, data) {\n      var _name$split = name.split('|'),\n          _name$split2 = _slicedToArray(_name$split, 2),\n          lng = _name$split2[0],\n          ns = _name$split2[1];\n\n      if (err) this.emit('failedLoading', lng, ns, err);\n\n      if (data) {\n        this.store.addResourceBundle(lng, ns, data);\n      } // set loaded\n\n\n      this.state[name] = err ? -1 : 2; // consolidated loading done in this run - only emit once for a loaded namespace\n\n      var loaded = {}; // callback if ready\n\n      this.queue.forEach(function (q) {\n        pushPath(q.loaded, [lng], ns);\n        remove(q.pending, name);\n        if (err) q.errors.push(err);\n\n        if (q.pending.length === 0 && !q.done) {\n          // only do once per loaded -> this.emit('loaded', q.loaded);\n          Object.keys(q.loaded).forEach(function (l) {\n            if (!loaded[l]) loaded[l] = [];\n\n            if (q.loaded[l].length) {\n              q.loaded[l].forEach(function (ns) {\n                if (loaded[l].indexOf(ns) < 0) loaded[l].push(ns);\n              });\n            }\n          });\n          /* eslint no-param-reassign: 0 */\n\n          q.done = true;\n\n          if (q.errors.length) {\n            q.callback(q.errors);\n          } else {\n            q.callback();\n          }\n        }\n      }); // emit consolidated loaded event\n\n      this.emit('loaded', loaded); // remove done load requests\n\n      this.queue = this.queue.filter(function (q) {\n        return !q.done;\n      });\n    }\n  }, {\n    key: \"read\",\n    value: function read(lng, ns, fcName) {\n      var _this3 = this;\n\n      var tried = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n      var wait = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 250;\n      var callback = arguments.length > 5 ? arguments[5] : undefined;\n      if (!lng.length) return callback(null, {}); // noting to load\n\n      return this.backend[fcName](lng, ns, function (err, data) {\n        if (err && data\n        /* = retryFlag */\n        && tried < 5) {\n          setTimeout(function () {\n            _this3.read.call(_this3, lng, ns, fcName, tried + 1, wait * 2, callback);\n          }, wait);\n          return;\n        }\n\n        callback(err, data);\n      });\n    }\n    /* eslint consistent-return: 0 */\n\n  }, {\n    key: \"prepareLoading\",\n    value: function prepareLoading(languages, namespaces) {\n      var _this4 = this;\n\n      var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n      var callback = arguments.length > 3 ? arguments[3] : undefined;\n\n      if (!this.backend) {\n        this.logger.warn('No backend was added via i18next.use. Will not load resources.');\n        return callback && callback();\n      }\n\n      if (typeof languages === 'string') languages = this.languageUtils.toResolveHierarchy(languages);\n      if (typeof namespaces === 'string') namespaces = [namespaces];\n      var toLoad = this.queueLoad(languages, namespaces, options, callback);\n\n      if (!toLoad.toLoad.length) {\n        if (!toLoad.pending.length) callback(); // nothing to load and no pendings...callback now\n\n        return null; // pendings will trigger callback\n      }\n\n      toLoad.toLoad.forEach(function (name) {\n        _this4.loadOne(name);\n      });\n    }\n  }, {\n    key: \"load\",\n    value: function load(languages, namespaces, callback) {\n      this.prepareLoading(languages, namespaces, {}, callback);\n    }\n  }, {\n    key: \"reload\",\n    value: function reload(languages, namespaces, callback) {\n      this.prepareLoading(languages, namespaces, {\n        reload: true\n      }, callback);\n    }\n  }, {\n    key: \"loadOne\",\n    value: function loadOne(name) {\n      var _this5 = this;\n\n      var prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n\n      var _name$split3 = name.split('|'),\n          _name$split4 = _slicedToArray(_name$split3, 2),\n          lng = _name$split4[0],\n          ns = _name$split4[1];\n\n      this.read(lng, ns, 'read', null, null, function (err, data) {\n        if (err) _this5.logger.warn(\"\".concat(prefix, \"loading namespace \").concat(ns, \" for language \").concat(lng, \" failed\"), err);\n        if (!err && data) _this5.logger.log(\"\".concat(prefix, \"loaded namespace \").concat(ns, \" for language \").concat(lng), data);\n\n        _this5.loaded(name, err, data);\n      });\n    }\n  }, {\n    key: \"saveMissing\",\n    value: function saveMissing(languages, namespace, key, fallbackValue, isUpdate) {\n      var options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {};\n\n      if (this.backend && this.backend.create) {\n        this.backend.create(languages, namespace, key, fallbackValue, null\n        /* unused callback */\n        , _objectSpread({}, options, {\n          isUpdate: isUpdate\n        }));\n      } // write to store to avoid resending\n\n\n      if (!languages || !languages[0]) return;\n      this.store.addResource(languages[0], namespace, key, fallbackValue);\n    }\n  }]);\n\n  return Connector;\n}(EventEmitter);\n\nfunction get() {\n  return {\n    debug: false,\n    initImmediate: true,\n    ns: ['translation'],\n    defaultNS: ['translation'],\n    fallbackLng: ['dev'],\n    fallbackNS: false,\n    // string or array of namespaces\n    whitelist: false,\n    // array with whitelisted languages\n    nonExplicitWhitelist: false,\n    load: 'all',\n    // | currentOnly | languageOnly\n    preload: false,\n    // array with preload languages\n    simplifyPluralSuffix: true,\n    keySeparator: '.',\n    nsSeparator: ':',\n    pluralSeparator: '_',\n    contextSeparator: '_',\n    partialBundledLanguages: false,\n    // allow bundling certain languages that are not remotely fetched\n    saveMissing: false,\n    // enable to send missing values\n    updateMissing: false,\n    // enable to update default values if different from translated value (only useful on initial development, or when keeping code as source of truth)\n    saveMissingTo: 'fallback',\n    // 'current' || 'all'\n    saveMissingPlurals: true,\n    // will save all forms not only singular key\n    missingKeyHandler: false,\n    // function(lng, ns, key, fallbackValue) -> override if prefer on handling\n    missingInterpolationHandler: false,\n    // function(str, match)\n    postProcess: false,\n    // string or array of postProcessor names\n    returnNull: true,\n    // allows null value as valid translation\n    returnEmptyString: true,\n    // allows empty string value as valid translation\n    returnObjects: false,\n    joinArrays: false,\n    // or string to join array\n    returnedObjectHandler: function returnedObjectHandler() {},\n    // function(key, value, options) triggered if key returns object but returnObjects is set to false\n    parseMissingKeyHandler: false,\n    // function(key) parsed a key that was not found in t() before returning\n    appendNamespaceToMissingKey: false,\n    appendNamespaceToCIMode: false,\n    overloadTranslationOptionHandler: function handle(args) {\n      var ret = {};\n      if (_typeof(args[1]) === 'object') ret = args[1];\n      if (typeof args[1] === 'string') ret.defaultValue = args[1];\n      if (typeof args[2] === 'string') ret.tDescription = args[2];\n\n      if (_typeof(args[2]) === 'object' || _typeof(args[3]) === 'object') {\n        var options = args[3] || args[2];\n        Object.keys(options).forEach(function (key) {\n          ret[key] = options[key];\n        });\n      }\n\n      return ret;\n    },\n    interpolation: {\n      escapeValue: true,\n      format: function format(value, _format, lng) {\n        return value;\n      },\n      prefix: '{{',\n      suffix: '}}',\n      formatSeparator: ',',\n      // prefixEscaped: '{{',\n      // suffixEscaped: '}}',\n      // unescapeSuffix: '',\n      unescapePrefix: '-',\n      nestingPrefix: '$t(',\n      nestingSuffix: ')',\n      // nestingPrefixEscaped: '$t(',\n      // nestingSuffixEscaped: ')',\n      // defaultVariables: undefined // object that can have values to interpolate on - extends passed in interpolation data\n      maxReplaces: 1000 // max replaces to prevent endless loop\n\n    }\n  };\n}\n/* eslint no-param-reassign: 0 */\n\nfunction transformOptions(options) {\n  // create namespace object if namespace is passed in as string\n  if (typeof options.ns === 'string') options.ns = [options.ns];\n  if (typeof options.fallbackLng === 'string') options.fallbackLng = [options.fallbackLng];\n  if (typeof options.fallbackNS === 'string') options.fallbackNS = [options.fallbackNS]; // extend whitelist with cimode\n\n  if (options.whitelist && options.whitelist.indexOf('cimode') < 0) {\n    options.whitelist = options.whitelist.concat(['cimode']);\n  }\n\n  return options;\n}\n\nfunction noop() {}\n\nvar I18n =\n/*#__PURE__*/\nfunction (_EventEmitter) {\n  _inherits(I18n, _EventEmitter);\n\n  function I18n() {\n    var _this;\n\n    var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n    var callback = arguments.length > 1 ? arguments[1] : undefined;\n\n    _classCallCheck(this, I18n);\n\n    _this = _possibleConstructorReturn(this, _getPrototypeOf(I18n).call(this));\n    EventEmitter.call(_assertThisInitialized(_this)); // <=IE10 fix (unable to call parent constructor)\n\n    _this.options = transformOptions(options);\n    _this.services = {};\n    _this.logger = baseLogger;\n    _this.modules = {\n      external: []\n    };\n\n    if (callback && !_this.isInitialized && !options.isClone) {\n      // https://github.com/i18next/i18next/issues/879\n      if (!_this.options.initImmediate) {\n        _this.init(options, callback);\n\n        return _possibleConstructorReturn(_this, _assertThisInitialized(_this));\n      }\n\n      setTimeout(function () {\n        _this.init(options, callback);\n      }, 0);\n    }\n\n    return _this;\n  }\n\n  _createClass(I18n, [{\n    key: \"init\",\n    value: function init() {\n      var _this2 = this;\n\n      var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n      var callback = arguments.length > 1 ? arguments[1] : undefined;\n\n      if (typeof options === 'function') {\n        callback = options;\n        options = {};\n      }\n\n      this.options = _objectSpread({}, get(), this.options, transformOptions(options));\n      this.format = this.options.interpolation.format;\n      if (!callback) callback = noop;\n\n      function createClassOnDemand(ClassOrObject) {\n        if (!ClassOrObject) return null;\n        if (typeof ClassOrObject === 'function') return new ClassOrObject();\n        return ClassOrObject;\n      } // init services\n\n\n      if (!this.options.isClone) {\n        if (this.modules.logger) {\n          baseLogger.init(createClassOnDemand(this.modules.logger), this.options);\n        } else {\n          baseLogger.init(null, this.options);\n        }\n\n        var lu = new LanguageUtil(this.options);\n        this.store = new ResourceStore(this.options.resources, this.options);\n        var s = this.services;\n        s.logger = baseLogger;\n        s.resourceStore = this.store;\n        s.languageUtils = lu;\n        s.pluralResolver = new PluralResolver(lu, {\n          prepend: this.options.pluralSeparator,\n          compatibilityJSON: this.options.compatibilityJSON,\n          simplifyPluralSuffix: this.options.simplifyPluralSuffix\n        });\n        s.interpolator = new Interpolator(this.options);\n        s.backendConnector = new Connector(createClassOnDemand(this.modules.backend), s.resourceStore, s, this.options); // pipe events from backendConnector\n\n        s.backendConnector.on('*', function (event) {\n          for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n            args[_key - 1] = arguments[_key];\n          }\n\n          _this2.emit.apply(_this2, [event].concat(args));\n        });\n\n        if (this.modules.languageDetector) {\n          s.languageDetector = createClassOnDemand(this.modules.languageDetector);\n          s.languageDetector.init(s, this.options.detection, this.options);\n        }\n\n        if (this.modules.i18nFormat) {\n          s.i18nFormat = createClassOnDemand(this.modules.i18nFormat);\n          if (s.i18nFormat.init) s.i18nFormat.init(this);\n        }\n\n        this.translator = new Translator(this.services, this.options); // pipe events from translator\n\n        this.translator.on('*', function (event) {\n          for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n            args[_key2 - 1] = arguments[_key2];\n          }\n\n          _this2.emit.apply(_this2, [event].concat(args));\n        });\n        this.modules.external.forEach(function (m) {\n          if (m.init) m.init(_this2);\n        });\n      } // append api\n\n\n      var storeApi = ['getResource', 'addResource', 'addResources', 'addResourceBundle', 'removeResourceBundle', 'hasResourceBundle', 'getResourceBundle', 'getDataByLanguage'];\n      storeApi.forEach(function (fcName) {\n        _this2[fcName] = function () {\n          var _this2$store;\n\n          return (_this2$store = _this2.store)[fcName].apply(_this2$store, arguments);\n        };\n      });\n      var deferred = defer();\n\n      var load = function load() {\n        _this2.changeLanguage(_this2.options.lng, function (err, t) {\n          _this2.isInitialized = true;\n\n          _this2.logger.log('initialized', _this2.options);\n\n          _this2.emit('initialized', _this2.options);\n\n          deferred.resolve(t); // not rejecting on err (as err is only a loading translation failed warning)\n\n          callback(err, t);\n        });\n      };\n\n      if (this.options.resources || !this.options.initImmediate) {\n        load();\n      } else {\n        setTimeout(load, 0);\n      }\n\n      return deferred;\n    }\n    /* eslint consistent-return: 0 */\n\n  }, {\n    key: \"loadResources\",\n    value: function loadResources() {\n      var _this3 = this;\n\n      var callback = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : noop;\n\n      if (!this.options.resources || this.options.partialBundledLanguages) {\n        if (this.language && this.language.toLowerCase() === 'cimode') return callback(); // avoid loading resources for cimode\n\n        var toLoad = [];\n\n        var append = function append(lng) {\n          if (!lng) return;\n\n          var lngs = _this3.services.languageUtils.toResolveHierarchy(lng);\n\n          lngs.forEach(function (l) {\n            if (toLoad.indexOf(l) < 0) toLoad.push(l);\n          });\n        };\n\n        if (!this.language) {\n          // at least load fallbacks in this case\n          var fallbacks = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);\n          fallbacks.forEach(function (l) {\n            return append(l);\n          });\n        } else {\n          append(this.language);\n        }\n\n        if (this.options.preload) {\n          this.options.preload.forEach(function (l) {\n            return append(l);\n          });\n        }\n\n        this.services.backendConnector.load(toLoad, this.options.ns, callback);\n      } else {\n        callback(null);\n      }\n    }\n  }, {\n    key: \"reloadResources\",\n    value: function reloadResources(lngs, ns, callback) {\n      var deferred = defer();\n      if (!lngs) lngs = this.languages;\n      if (!ns) ns = this.options.ns;\n      if (!callback) callback = noop;\n      this.services.backendConnector.reload(lngs, ns, function (err) {\n        deferred.resolve(); // not rejecting on err (as err is only a loading translation failed warning)\n\n        callback(err);\n      });\n      return deferred;\n    }\n  }, {\n    key: \"use\",\n    value: function use(module) {\n      if (module.type === 'backend') {\n        this.modules.backend = module;\n      }\n\n      if (module.type === 'logger' || module.log && module.warn && module.error) {\n        this.modules.logger = module;\n      }\n\n      if (module.type === 'languageDetector') {\n        this.modules.languageDetector = module;\n      }\n\n      if (module.type === 'i18nFormat') {\n        this.modules.i18nFormat = module;\n      }\n\n      if (module.type === 'postProcessor') {\n        postProcessor.addPostProcessor(module);\n      }\n\n      if (module.type === '3rdParty') {\n        this.modules.external.push(module);\n      }\n\n      return this;\n    }\n  }, {\n    key: \"changeLanguage\",\n    value: function changeLanguage(lng, callback) {\n      var _this4 = this;\n\n      var deferred = defer();\n      this.emit('languageChanging', lng);\n\n      var done = function done(err, l) {\n        _this4.translator.changeLanguage(l);\n\n        if (l) {\n          _this4.emit('languageChanged', l);\n\n          _this4.logger.log('languageChanged', l);\n        }\n\n        deferred.resolve(function () {\n          return _this4.t.apply(_this4, arguments);\n        });\n        if (callback) callback(err, function () {\n          return _this4.t.apply(_this4, arguments);\n        });\n      };\n\n      var setLng = function setLng(l) {\n        if (l) {\n          _this4.language = l;\n          _this4.languages = _this4.services.languageUtils.toResolveHierarchy(l);\n          if (!_this4.translator.language) _this4.translator.changeLanguage(l);\n          if (_this4.services.languageDetector) _this4.services.languageDetector.cacheUserLanguage(l);\n        }\n\n        _this4.loadResources(function (err) {\n          done(err, l);\n        });\n      };\n\n      if (!lng && this.services.languageDetector && !this.services.languageDetector.async) {\n        setLng(this.services.languageDetector.detect());\n      } else if (!lng && this.services.languageDetector && this.services.languageDetector.async) {\n        this.services.languageDetector.detect(setLng);\n      } else {\n        setLng(lng);\n      }\n\n      return deferred;\n    }\n  }, {\n    key: \"getFixedT\",\n    value: function getFixedT(lng, ns) {\n      var _this5 = this;\n\n      var fixedT = function fixedT(key, opts) {\n        var options = _objectSpread({}, opts);\n\n        if (_typeof(opts) !== 'object') {\n          for (var _len3 = arguments.length, rest = new Array(_len3 > 2 ? _len3 - 2 : 0), _key3 = 2; _key3 < _len3; _key3++) {\n            rest[_key3 - 2] = arguments[_key3];\n          }\n\n          options = _this5.options.overloadTranslationOptionHandler([key, opts].concat(rest));\n        }\n\n        options.lng = options.lng || fixedT.lng;\n        options.lngs = options.lngs || fixedT.lngs;\n        options.ns = options.ns || fixedT.ns;\n        return _this5.t(key, options);\n      };\n\n      if (typeof lng === 'string') {\n        fixedT.lng = lng;\n      } else {\n        fixedT.lngs = lng;\n      }\n\n      fixedT.ns = ns;\n      return fixedT;\n    }\n  }, {\n    key: \"t\",\n    value: function t() {\n      var _this$translator;\n\n      return this.translator && (_this$translator = this.translator).translate.apply(_this$translator, arguments);\n    }\n  }, {\n    key: \"exists\",\n    value: function exists() {\n      var _this$translator2;\n\n      return this.translator && (_this$translator2 = this.translator).exists.apply(_this$translator2, arguments);\n    }\n  }, {\n    key: \"setDefaultNamespace\",\n    value: function setDefaultNamespace(ns) {\n      this.options.defaultNS = ns;\n    }\n  }, {\n    key: \"loadNamespaces\",\n    value: function loadNamespaces(ns, callback) {\n      var _this6 = this;\n\n      var deferred = defer();\n\n      if (!this.options.ns) {\n        callback && callback();\n        return Promise.resolve();\n      }\n\n      if (typeof ns === 'string') ns = [ns];\n      ns.forEach(function (n) {\n        if (_this6.options.ns.indexOf(n) < 0) _this6.options.ns.push(n);\n      });\n      this.loadResources(function (err) {\n        deferred.resolve();\n        if (callback) callback(err);\n      });\n      return deferred;\n    }\n  }, {\n    key: \"loadLanguages\",\n    value: function loadLanguages(lngs, callback) {\n      var deferred = defer();\n      if (typeof lngs === 'string') lngs = [lngs];\n      var preloaded = this.options.preload || [];\n      var newLngs = lngs.filter(function (lng) {\n        return preloaded.indexOf(lng) < 0;\n      }); // Exit early if all given languages are already preloaded\n\n      if (!newLngs.length) {\n        if (callback) callback();\n        return Promise.resolve();\n      }\n\n      this.options.preload = preloaded.concat(newLngs);\n      this.loadResources(function (err) {\n        deferred.resolve();\n        if (callback) callback(err);\n      });\n      return deferred;\n    }\n  }, {\n    key: \"dir\",\n    value: function dir(lng) {\n      if (!lng) lng = this.languages && this.languages.length > 0 ? this.languages[0] : this.language;\n      if (!lng) return 'rtl';\n      var rtlLngs = ['ar', 'shu', 'sqr', 'ssh', 'xaa', 'yhd', 'yud', 'aao', 'abh', 'abv', 'acm', 'acq', 'acw', 'acx', 'acy', 'adf', 'ads', 'aeb', 'aec', 'afb', 'ajp', 'apc', 'apd', 'arb', 'arq', 'ars', 'ary', 'arz', 'auz', 'avl', 'ayh', 'ayl', 'ayn', 'ayp', 'bbz', 'pga', 'he', 'iw', 'ps', 'pbt', 'pbu', 'pst', 'prp', 'prd', 'ur', 'ydd', 'yds', 'yih', 'ji', 'yi', 'hbo', 'men', 'xmn', 'fa', 'jpr', 'peo', 'pes', 'prs', 'dv', 'sam'];\n      return rtlLngs.indexOf(this.services.languageUtils.getLanguagePartFromCode(lng)) >= 0 ? 'rtl' : 'ltr';\n    }\n    /* eslint class-methods-use-this: 0 */\n\n  }, {\n    key: \"createInstance\",\n    value: function createInstance() {\n      var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n      var callback = arguments.length > 1 ? arguments[1] : undefined;\n      return new I18n(options, callback);\n    }\n  }, {\n    key: \"cloneInstance\",\n    value: function cloneInstance() {\n      var _this7 = this;\n\n      var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n      var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n\n      var mergedOptions = _objectSpread({}, this.options, options, {\n        isClone: true\n      });\n\n      var clone = new I18n(mergedOptions);\n      var membersToCopy = ['store', 'services', 'language'];\n      membersToCopy.forEach(function (m) {\n        clone[m] = _this7[m];\n      });\n      clone.translator = new Translator(clone.services, clone.options);\n      clone.translator.on('*', function (event) {\n        for (var _len4 = arguments.length, args = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {\n          args[_key4 - 1] = arguments[_key4];\n        }\n\n        clone.emit.apply(clone, [event].concat(args));\n      });\n      clone.init(mergedOptions, callback);\n      clone.translator.options = clone.options; // sync options\n\n      return clone;\n    }\n  }]);\n\n  return I18n;\n}(EventEmitter);\n\nvar i18next = new I18n();\n\nexport default i18next;\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\nvar fbemitter = {\n  EventEmitter: require('./lib/BaseEventEmitter'),\n  EmitterSubscription : require('./lib/EmitterSubscription')\n};\n\nmodule.exports = fbemitter;\n","export default function(constructor, factory, prototype) {\n  constructor.prototype = factory.prototype = prototype;\n  prototype.constructor = constructor;\n}\n\nexport function extend(parent, definition) {\n  var prototype = Object.create(parent.prototype);\n  for (var key in definition) prototype[key] = definition[key];\n  return prototype;\n}\n","export default function _arrayWithoutHoles(arr) {\n  if (Array.isArray(arr)) {\n    for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) {\n      arr2[i] = arr[i];\n    }\n\n    return arr2;\n  }\n}","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Set` constructor\n// https://tc39.github.io/ecma262/#sec-set-objects\nmodule.exports = collection('Set', function (get) {\n  return function Set() { return get(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","'use strict';\nvar global = require('../internals/global');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar ArrayIterators = require('../modules/es.array.iterator');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar Uint8Array = global.Uint8Array;\nvar arrayValues = ArrayIterators.values;\nvar arrayKeys = ArrayIterators.keys;\nvar arrayEntries = ArrayIterators.entries;\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportProto = ArrayBufferViewCore.exportProto;\nvar nativeTypedArrayIterator = Uint8Array && Uint8Array.prototype[ITERATOR];\n\nvar CORRECT_ITER_NAME = !!nativeTypedArrayIterator\n  && (nativeTypedArrayIterator.name == 'values' || nativeTypedArrayIterator.name == undefined);\n\nvar typedArrayValues = function values() {\n  return arrayValues.call(aTypedArray(this));\n};\n\n// `%TypedArray%.prototype.entries` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.entries\nexportProto('entries', function entries() {\n  return arrayEntries.call(aTypedArray(this));\n});\n// `%TypedArray%.prototype.keys` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.keys\nexportProto('keys', function keys() {\n  return arrayKeys.call(aTypedArray(this));\n});\n// `%TypedArray%.prototype.values` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.values\nexportProto('values', typedArrayValues, !CORRECT_ITER_NAME);\n// `%TypedArray%.prototype[@@iterator]` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype-@@iterator\nexportProto(ITERATOR, typedArrayValues, !CORRECT_ITER_NAME);\n","/* global window */\nimport _ from 'lodash';\n\nimport webFontConfig from './web-fonts.json';\nimport publicConfig from '../config';\nimport createWebFontLoaderConfig from './createWebFontLoaderConfig';\n\nconst googleFonts = webFontConfig.google.families;\n\nconst browserIsFromMicrosoft = () => {\n    const {userAgent} = window.navigator;\n    return userAgent.indexOf('MSIE ') !== -1 //IE < 11\n        || userAgent.indexOf('Trident/') !== -1 // IE 11\n        || userAgent.indexOf('Edge/') !== -1; //Microsoft Edge\n};\n\n//This function is called after successful project render. It is a hacky\n//workaround to fix a bug in IE which caused web fonts not being displayed\n//disregarding the fact that the fonts have been loaded.\n//In this function, we go through every stylesheet in the document and\n//forcefully re-load it (most probably from cache) to correctly display\n//the loaded web font.\nconst fixupFontRenderingIfNeeded = function() {\n    if (browserIsFromMicrosoft()) {\n        const sheets = document.styleSheets;\n        const len = sheets.length;\n        for (let i = 0; i < len; i++) {\n            sheets[i].disabled = true;\n            sheets[i].disabled = false;\n        }\n    }\n};\n\nconst Fonts = {\n    loadFonts: function (fontArr, callback, retry, loadStart) {\n        retry = retry || 0;\n        loadStart = loadStart || new Date();\n        const WebFont = window.WebFont || require('webfontloader');\n\n        // Managed to load fonts before this script is called\n        if (WebFont.__loaded === true) {\n            return callback();\n        }\n\n        function fontsFailed(failedFonts) {\n            //TODO in some cases retry makes loading too long\n            //TODO thing is that webfontloader does not provide a reason for failure\n            //TODO so we do not know if url is 404 for font or network error\n            //TODO better strtegy is to complete here but doe background retry of only fonts that failed\n            //TODO if it succeeds then do some kind of signal to rerender infographic with new fonts\n            //TODO we also should clean config.failedFonts on retry as it is kinda singleton\n            /*if(retry<1) {\n                window.parent.postMessage('font failed, retry', '*');\n                if (failedFonts) {\n                    const names = failedFonts.map(font => font[0]);\n                    fonts.loadFonts(fontArr.filter(font => {\n                        return names.indexOf(font['font-family']) > -1;\n                    }), callback, retry + 1);\n                } else {\n                    fonts.loadFonts(fontArr, callback, retry + 1);\n                }\n            } else {*/\n\n            window.parent.postMessage('font failed, give up', '*');\n            complete();\n\n            /* }*/\n        }\n\n        WebFont._readyCallback = function () {\n            callback();\n        };\n\n        const complete = function () {\n            if (WebFont._readyCallback || WebFont.__loadedCb) {\n                WebFont._readyCallback();\n                WebFont._readyCallback = null;\n\n                WebFont.__loadedCb = null;\n                WebFont.__loading = null;\n            }\n        };\n\n        // Managed to start loading fonts before this script is called, so just hooking into callback\n        if (WebFont.__loading === true) {\n            return WebFont.__loadedCb = complete;\n        }\n\n        // Load fonts using this script\n        const config = createWebFontLoaderConfig(fontArr, publicConfig.cdn);\n\n        config.inactive = function () {\n            fontsFailed();\n        };\n\n        if (!this.hasFonts(config)) {\n            complete();\n        }\n\n        if(browserIsFromMicrosoft()) {\n            config.timeout = 5000;\n        } else {\n            config.timeout = 10000;\n        }\n\n        config.active = function () {\n            if (config.failedFonts && config.failedFonts.length > 0) {\n                fontsFailed(config.failedFonts);\n            } else {\n                complete();\n            }\n        };\n\n        config.classes = false;\n\n        WebFont.load(config);\n        fixupFontRenderingIfNeeded();\n    },\n\n    loadFontsForPreview(customFonts, callback) {\n        const customConfig = customFonts.reduce((ctx, {family, url}) => {\n            ctx.families.push(family);\n            ctx.urls.push(url);\n            return ctx;\n        }, {families: [], urls: []});\n\n        const fontConfig = {\n            google: googleFonts.map(font => ({\n                fontFamily: font,\n                fontWeights: [400],\n            })),\n        };\n\n        Fonts.loadFonts(fontConfig, () => {\n            callback(webFontConfig);\n        }, 0, new Date(), customConfig);\n    },\n\n    hasFonts: function (config) {\n        return _.intersection(_.keys(config), ['typekit', 'google', 'custom']).length > 0;\n    },\n};\n\nexport default Fonts;\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\n\nvar nativeAssign = Object.assign;\n\n// `Object.assign` method\n// https://tc39.github.io/ecma262/#sec-object.assign\n// should work with symbols and should have deterministic property order (V8 bug)\nmodule.exports = !nativeAssign || fails(function () {\n  var A = {};\n  var B = {};\n  // eslint-disable-next-line no-undef\n  var symbol = Symbol();\n  var alphabet = 'abcdefghijklmnopqrst';\n  A[symbol] = 7;\n  alphabet.split('').forEach(function (chr) { B[chr] = chr; });\n  return nativeAssign({}, A)[symbol] != 7 || objectKeys(nativeAssign({}, B)).join('') != alphabet;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\n  var T = toObject(target);\n  var argumentsLength = arguments.length;\n  var index = 1;\n  var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n  var propertyIsEnumerable = propertyIsEnumerableModule.f;\n  while (argumentsLength > index) {\n    var S = IndexedObject(arguments[index++]);\n    var keys = getOwnPropertySymbols ? objectKeys(S).concat(getOwnPropertySymbols(S)) : objectKeys(S);\n    var length = keys.length;\n    var j = 0;\n    var key;\n    while (length > j) {\n      key = keys[j++];\n      if (!DESCRIPTORS || propertyIsEnumerable.call(S, key)) T[key] = S[key];\n    }\n  } return T;\n} : nativeAssign;\n","import EditorState from '../immutable/EditorState';\n\nexport default function setBlockAnimationSequence(editorState, blockKey, sequence, options = {}) {\n    let content = editorState.getCurrentContent();\n    if (options.pushToUndoStack) {\n        editorState = EditorState.push(editorState, content);\n    }\n\n    let blocks = content.getBlocks();\n    blocks = blocks.map(block => {\n        if (block.getKey() === blockKey) {\n            return block.setAnimationSequence(sequence);\n        }\n        return block;\n    });\n    content = content.set('blocks', blocks);\n    return EditorState.set(editorState, {\n        currentContent: content,\n    });\n}\n\nexport function getAnimationEntityKey(block, idx) {\n    const animationSequence = block.getAnimationSequence();\n    if (!animationSequence) {\n        return null;\n    }\n    return animationSequence.get(idx);\n}\n\nexport function getAnimationIdx(block, entityKey) {\n    const animationSequence = block.getAnimationSequence();\n    if (!animationSequence) {\n        return -1;\n    }\n    return animationSequence.indexOf(entityKey);\n}\n\nexport function getAnimationSequenceLength(block) {\n    const animationSequence = block.getAnimationSequence();\n    if (!animationSequence) {\n        return 0;\n    }\n    return animationSequence.size;\n}\n","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"._2XFRVdobEguhH8GBjNowhP {\\n    display: inline-block;\\n    box-sizing: border-box;\\n    width: 220px;\\n    margin: 0 10px 30px;\\n    border-radius: 4px;\\n    background: #fff;\\n    padding: 4px;\\n}\\n._2XFRVdobEguhH8GBjNowhP:hover {\\n    background: #ebebee;\\n}\\n._2ZGVI97V23sqSjjPjjwbMa {\\n    position: relative;\\n    display: inline-block;\\n    width: 212px;\\n    padding-bottom: 100%;\\n    border-radius: 4px;\\n    background-size: cover;\\n}\\n._2ZGVI97V23sqSjjPjjwbMa:after {\\n    content: \\\"\\\";\\n    position: absolute;\\n    top: 0;\\n    right: 0;\\n    bottom: 0;\\n    left: 0;\\n    display: block;\\n    background: rgba(0, 0, 0, 0.04);\\n    border-radius: 4px;\\n}\\n._2rCCxJUVbY0RAk-oyw7-3h {\\n    display: inline-block;\\n    margin: 10px 0 6px 6px;\\n    font-size: 13px;\\n    line-height: 16px;\\n    color: #656565;\\n}\\n\\n@media screen and (max-width: 960px) {\\n    ._2XFRVdobEguhH8GBjNowhP {\\n        width: calc((100% - 40px) / 2);\\n        height: auto;\\n        padding: 0;\\n        margin: 0 10px 30px;\\n    }\\n    ._2XFRVdobEguhH8GBjNowhP:nth-child(2n+3) {\\n        float: left;\\n        clear: both;\\n    }\\n    ._2XFRVdobEguhH8GBjNowhP:nth-child(2n+4) {\\n        float: right;\\n    }\\n\\n    ._2ZGVI97V23sqSjjPjjwbMa {\\n        width: 100%;\\n    }\\n}\\n\", \"\"]);\n\n// exports\nexports.locals = {\n\t\"item\": \"_2XFRVdobEguhH8GBjNowhP\",\n\t\"itemImage\": \"_2ZGVI97V23sqSjjPjjwbMa\",\n\t\"itemTitle\": \"_2rCCxJUVbY0RAk-oyw7-3h\"\n};","'use strict';\nvar global = require('../internals/global');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar NATIVE_ARRAY_BUFFER = require('../internals/array-buffer-view-core').NATIVE_ARRAY_BUFFER;\nvar hide = require('../internals/hide');\nvar redefineAll = require('../internals/redefine-all');\nvar fails = require('../internals/fails');\nvar anInstance = require('../internals/an-instance');\nvar toInteger = require('../internals/to-integer');\nvar toLength = require('../internals/to-length');\nvar toIndex = require('../internals/to-index');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar defineProperty = require('../internals/object-define-property').f;\nvar arrayFill = require('../internals/array-fill');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar getInternalState = InternalStateModule.get;\nvar setInternalState = InternalStateModule.set;\nvar ARRAY_BUFFER = 'ArrayBuffer';\nvar DATA_VIEW = 'DataView';\nvar PROTOTYPE = 'prototype';\nvar WRONG_LENGTH = 'Wrong length';\nvar WRONG_INDEX = 'Wrong index';\nvar NativeArrayBuffer = global[ARRAY_BUFFER];\nvar $ArrayBuffer = NativeArrayBuffer;\nvar $DataView = global[DATA_VIEW];\nvar Math = global.Math;\nvar RangeError = global.RangeError;\n// eslint-disable-next-line no-shadow-restricted-names\nvar Infinity = 1 / 0;\nvar abs = Math.abs;\nvar pow = Math.pow;\nvar floor = Math.floor;\nvar log = Math.log;\nvar LN2 = Math.LN2;\n\n// IEEE754 conversions based on https://github.com/feross/ieee754\nvar packIEEE754 = function (number, mantissaLength, bytes) {\n  var buffer = new Array(bytes);\n  var exponentLength = bytes * 8 - mantissaLength - 1;\n  var eMax = (1 << exponentLength) - 1;\n  var eBias = eMax >> 1;\n  var rt = mantissaLength === 23 ? pow(2, -24) - pow(2, -77) : 0;\n  var sign = number < 0 || number === 0 && 1 / number < 0 ? 1 : 0;\n  var index = 0;\n  var exponent, mantissa, c;\n  number = abs(number);\n  // eslint-disable-next-line no-self-compare\n  if (number != number || number === Infinity) {\n    // eslint-disable-next-line no-self-compare\n    mantissa = number != number ? 1 : 0;\n    exponent = eMax;\n  } else {\n    exponent = floor(log(number) / LN2);\n    if (number * (c = pow(2, -exponent)) < 1) {\n      exponent--;\n      c *= 2;\n    }\n    if (exponent + eBias >= 1) {\n      number += rt / c;\n    } else {\n      number += rt * pow(2, 1 - eBias);\n    }\n    if (number * c >= 2) {\n      exponent++;\n      c /= 2;\n    }\n    if (exponent + eBias >= eMax) {\n      mantissa = 0;\n      exponent = eMax;\n    } else if (exponent + eBias >= 1) {\n      mantissa = (number * c - 1) * pow(2, mantissaLength);\n      exponent = exponent + eBias;\n    } else {\n      mantissa = number * pow(2, eBias - 1) * pow(2, mantissaLength);\n      exponent = 0;\n    }\n  }\n  for (; mantissaLength >= 8; buffer[index++] = mantissa & 255, mantissa /= 256, mantissaLength -= 8);\n  exponent = exponent << mantissaLength | mantissa;\n  exponentLength += mantissaLength;\n  for (; exponentLength > 0; buffer[index++] = exponent & 255, exponent /= 256, exponentLength -= 8);\n  buffer[--index] |= sign * 128;\n  return buffer;\n};\n\nvar unpackIEEE754 = function (buffer, mantissaLength) {\n  var bytes = buffer.length;\n  var exponentLength = bytes * 8 - mantissaLength - 1;\n  var eMax = (1 << exponentLength) - 1;\n  var eBias = eMax >> 1;\n  var nBits = exponentLength - 7;\n  var index = bytes - 1;\n  var sign = buffer[index--];\n  var exponent = sign & 127;\n  var mantissa;\n  sign >>= 7;\n  for (; nBits > 0; exponent = exponent * 256 + buffer[index], index--, nBits -= 8);\n  mantissa = exponent & (1 << -nBits) - 1;\n  exponent >>= -nBits;\n  nBits += mantissaLength;\n  for (; nBits > 0; mantissa = mantissa * 256 + buffer[index], index--, nBits -= 8);\n  if (exponent === 0) {\n    exponent = 1 - eBias;\n  } else if (exponent === eMax) {\n    return mantissa ? NaN : sign ? -Infinity : Infinity;\n  } else {\n    mantissa = mantissa + pow(2, mantissaLength);\n    exponent = exponent - eBias;\n  } return (sign ? -1 : 1) * mantissa * pow(2, exponent - mantissaLength);\n};\n\nvar unpackInt32 = function (buffer) {\n  return buffer[3] << 24 | buffer[2] << 16 | buffer[1] << 8 | buffer[0];\n};\n\nvar packInt8 = function (number) {\n  return [number & 0xFF];\n};\n\nvar packInt16 = function (number) {\n  return [number & 0xFF, number >> 8 & 0xFF];\n};\n\nvar packInt32 = function (number) {\n  return [number & 0xFF, number >> 8 & 0xFF, number >> 16 & 0xFF, number >> 24 & 0xFF];\n};\n\nvar packFloat32 = function (number) {\n  return packIEEE754(number, 23, 4);\n};\n\nvar packFloat64 = function (number) {\n  return packIEEE754(number, 52, 8);\n};\n\nvar addGetter = function (Constructor, key) {\n  defineProperty(Constructor[PROTOTYPE], key, { get: function () { return getInternalState(this)[key]; } });\n};\n\nvar get = function (view, count, index, isLittleEndian) {\n  var numIndex = +index;\n  var intIndex = toIndex(numIndex);\n  var store = getInternalState(view);\n  if (intIndex + count > store.byteLength) throw RangeError(WRONG_INDEX);\n  var bytes = getInternalState(store.buffer).bytes;\n  var start = intIndex + store.byteOffset;\n  var pack = bytes.slice(start, start + count);\n  return isLittleEndian ? pack : pack.reverse();\n};\n\nvar set = function (view, count, index, conversion, value, isLittleEndian) {\n  var numIndex = +index;\n  var intIndex = toIndex(numIndex);\n  var store = getInternalState(view);\n  if (intIndex + count > store.byteLength) throw RangeError(WRONG_INDEX);\n  var bytes = getInternalState(store.buffer).bytes;\n  var start = intIndex + store.byteOffset;\n  var pack = conversion(+value);\n  for (var i = 0; i < count; i++) bytes[start + i] = pack[isLittleEndian ? i : count - i - 1];\n};\n\nif (!NATIVE_ARRAY_BUFFER) {\n  $ArrayBuffer = function ArrayBuffer(length) {\n    anInstance(this, $ArrayBuffer, ARRAY_BUFFER);\n    var byteLength = toIndex(length);\n    setInternalState(this, {\n      bytes: arrayFill.call(new Array(byteLength), 0),\n      byteLength: byteLength\n    });\n    if (!DESCRIPTORS) this.byteLength = byteLength;\n  };\n\n  $DataView = function DataView(buffer, byteOffset, byteLength) {\n    anInstance(this, $DataView, DATA_VIEW);\n    anInstance(buffer, $ArrayBuffer, DATA_VIEW);\n    var bufferLength = getInternalState(buffer).byteLength;\n    var offset = toInteger(byteOffset);\n    if (offset < 0 || offset > bufferLength) throw RangeError('Wrong offset');\n    byteLength = byteLength === undefined ? bufferLength - offset : toLength(byteLength);\n    if (offset + byteLength > bufferLength) throw RangeError(WRONG_LENGTH);\n    setInternalState(this, {\n      buffer: buffer,\n      byteLength: byteLength,\n      byteOffset: offset\n    });\n    if (!DESCRIPTORS) {\n      this.buffer = buffer;\n      this.byteLength = byteLength;\n      this.byteOffset = offset;\n    }\n  };\n\n  if (DESCRIPTORS) {\n    addGetter($ArrayBuffer, 'byteLength');\n    addGetter($DataView, 'buffer');\n    addGetter($DataView, 'byteLength');\n    addGetter($DataView, 'byteOffset');\n  }\n\n  redefineAll($DataView[PROTOTYPE], {\n    getInt8: function getInt8(byteOffset) {\n      return get(this, 1, byteOffset)[0] << 24 >> 24;\n    },\n    getUint8: function getUint8(byteOffset) {\n      return get(this, 1, byteOffset)[0];\n    },\n    getInt16: function getInt16(byteOffset /* , littleEndian */) {\n      var bytes = get(this, 2, byteOffset, arguments.length > 1 ? arguments[1] : undefined);\n      return (bytes[1] << 8 | bytes[0]) << 16 >> 16;\n    },\n    getUint16: function getUint16(byteOffset /* , littleEndian */) {\n      var bytes = get(this, 2, byteOffset, arguments.length > 1 ? arguments[1] : undefined);\n      return bytes[1] << 8 | bytes[0];\n    },\n    getInt32: function getInt32(byteOffset /* , littleEndian */) {\n      return unpackInt32(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : undefined));\n    },\n    getUint32: function getUint32(byteOffset /* , littleEndian */) {\n      return unpackInt32(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : undefined)) >>> 0;\n    },\n    getFloat32: function getFloat32(byteOffset /* , littleEndian */) {\n      return unpackIEEE754(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : undefined), 23);\n    },\n    getFloat64: function getFloat64(byteOffset /* , littleEndian */) {\n      return unpackIEEE754(get(this, 8, byteOffset, arguments.length > 1 ? arguments[1] : undefined), 52);\n    },\n    setInt8: function setInt8(byteOffset, value) {\n      set(this, 1, byteOffset, packInt8, value);\n    },\n    setUint8: function setUint8(byteOffset, value) {\n      set(this, 1, byteOffset, packInt8, value);\n    },\n    setInt16: function setInt16(byteOffset, value /* , littleEndian */) {\n      set(this, 2, byteOffset, packInt16, value, arguments.length > 2 ? arguments[2] : undefined);\n    },\n    setUint16: function setUint16(byteOffset, value /* , littleEndian */) {\n      set(this, 2, byteOffset, packInt16, value, arguments.length > 2 ? arguments[2] : undefined);\n    },\n    setInt32: function setInt32(byteOffset, value /* , littleEndian */) {\n      set(this, 4, byteOffset, packInt32, value, arguments.length > 2 ? arguments[2] : undefined);\n    },\n    setUint32: function setUint32(byteOffset, value /* , littleEndian */) {\n      set(this, 4, byteOffset, packInt32, value, arguments.length > 2 ? arguments[2] : undefined);\n    },\n    setFloat32: function setFloat32(byteOffset, value /* , littleEndian */) {\n      set(this, 4, byteOffset, packFloat32, value, arguments.length > 2 ? arguments[2] : undefined);\n    },\n    setFloat64: function setFloat64(byteOffset, value /* , littleEndian */) {\n      set(this, 8, byteOffset, packFloat64, value, arguments.length > 2 ? arguments[2] : undefined);\n    }\n  });\n} else {\n  if (!fails(function () {\n    NativeArrayBuffer(1);\n  }) || !fails(function () {\n    new NativeArrayBuffer(-1); // eslint-disable-line no-new\n  }) || fails(function () {\n    new NativeArrayBuffer(); // eslint-disable-line no-new\n    new NativeArrayBuffer(1.5); // eslint-disable-line no-new\n    new NativeArrayBuffer(NaN); // eslint-disable-line no-new\n    return NativeArrayBuffer.name != ARRAY_BUFFER;\n  })) {\n    $ArrayBuffer = function ArrayBuffer(length) {\n      anInstance(this, $ArrayBuffer);\n      return new NativeArrayBuffer(toIndex(length));\n    };\n    var ArrayBufferPrototype = $ArrayBuffer[PROTOTYPE] = NativeArrayBuffer[PROTOTYPE];\n    for (var keys = getOwnPropertyNames(NativeArrayBuffer), j = 0, key; keys.length > j;) {\n      if (!((key = keys[j++]) in $ArrayBuffer)) hide($ArrayBuffer, key, NativeArrayBuffer[key]);\n    }\n    ArrayBufferPrototype.constructor = $ArrayBuffer;\n  }\n  // iOS Safari 7.x bug\n  var testView = new $DataView(new $ArrayBuffer(2));\n  var nativeSetInt8 = $DataView[PROTOTYPE].setInt8;\n  testView.setInt8(0, 2147483648);\n  testView.setInt8(1, 2147483649);\n  if (testView.getInt8(0) || !testView.getInt8(1)) redefineAll($DataView[PROTOTYPE], {\n    setInt8: function setInt8(byteOffset, value) {\n      nativeSetInt8.call(this, byteOffset, value << 24 >> 24);\n    },\n    setUint8: function setUint8(byteOffset, value) {\n      nativeSetInt8.call(this, byteOffset, value << 24 >> 24);\n    }\n  }, { unsafe: true });\n}\n\nsetToStringTag($ArrayBuffer, ARRAY_BUFFER);\nsetToStringTag($DataView, DATA_VIEW);\nexports[ARRAY_BUFFER] = $ArrayBuffer;\nexports[DATA_VIEW] = $DataView;\n","\"use strict\";\n\nvar _undefined = require(\"../function/noop\")(); // Support ES3 engines\n\nmodule.exports = function (val) { return val !== _undefined && val !== null; };\n","module.exports = __webpack_public_path__ + \"2J88ThDmZ4hrUQBbP-0bI9.svg\";","module.exports = function(module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function() {};\n\t\tmodule.paths = [];\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n","import define, {extend} from \"./define\";\nimport {Color, rgbConvert, Rgb} from \"./color\";\nimport {deg2rad, rad2deg} from \"./math\";\n\n// https://beta.observablehq.com/@mbostock/lab-and-rgb\nvar K = 18,\n    Xn = 0.96422,\n    Yn = 1,\n    Zn = 0.82521,\n    t0 = 4 / 29,\n    t1 = 6 / 29,\n    t2 = 3 * t1 * t1,\n    t3 = t1 * t1 * t1;\n\nfunction labConvert(o) {\n  if (o instanceof Lab) return new Lab(o.l, o.a, o.b, o.opacity);\n  if (o instanceof Hcl) {\n    if (isNaN(o.h)) return new Lab(o.l, 0, 0, o.opacity);\n    var h = o.h * deg2rad;\n    return new Lab(o.l, Math.cos(h) * o.c, Math.sin(h) * o.c, o.opacity);\n  }\n  if (!(o instanceof Rgb)) o = rgbConvert(o);\n  var r = rgb2lrgb(o.r),\n      g = rgb2lrgb(o.g),\n      b = rgb2lrgb(o.b),\n      y = xyz2lab((0.2225045 * r + 0.7168786 * g + 0.0606169 * b) / Yn), x, z;\n  if (r === g && g === b) x = z = y; else {\n    x = xyz2lab((0.4360747 * r + 0.3850649 * g + 0.1430804 * b) / Xn);\n    z = xyz2lab((0.0139322 * r + 0.0971045 * g + 0.7141733 * b) / Zn);\n  }\n  return new Lab(116 * y - 16, 500 * (x - y), 200 * (y - z), o.opacity);\n}\n\nexport function gray(l, opacity) {\n  return new Lab(l, 0, 0, opacity == null ? 1 : opacity);\n}\n\nexport default function lab(l, a, b, opacity) {\n  return arguments.length === 1 ? labConvert(l) : new Lab(l, a, b, opacity == null ? 1 : opacity);\n}\n\nexport function Lab(l, a, b, opacity) {\n  this.l = +l;\n  this.a = +a;\n  this.b = +b;\n  this.opacity = +opacity;\n}\n\ndefine(Lab, lab, extend(Color, {\n  brighter: function(k) {\n    return new Lab(this.l + K * (k == null ? 1 : k), this.a, this.b, this.opacity);\n  },\n  darker: function(k) {\n    return new Lab(this.l - K * (k == null ? 1 : k), this.a, this.b, this.opacity);\n  },\n  rgb: function() {\n    var y = (this.l + 16) / 116,\n        x = isNaN(this.a) ? y : y + this.a / 500,\n        z = isNaN(this.b) ? y : y - this.b / 200;\n    x = Xn * lab2xyz(x);\n    y = Yn * lab2xyz(y);\n    z = Zn * lab2xyz(z);\n    return new Rgb(\n      lrgb2rgb( 3.1338561 * x - 1.6168667 * y - 0.4906146 * z),\n      lrgb2rgb(-0.9787684 * x + 1.9161415 * y + 0.0334540 * z),\n      lrgb2rgb( 0.0719453 * x - 0.2289914 * y + 1.4052427 * z),\n      this.opacity\n    );\n  }\n}));\n\nfunction xyz2lab(t) {\n  return t > t3 ? Math.pow(t, 1 / 3) : t / t2 + t0;\n}\n\nfunction lab2xyz(t) {\n  return t > t1 ? t * t * t : t2 * (t - t0);\n}\n\nfunction lrgb2rgb(x) {\n  return 255 * (x <= 0.0031308 ? 12.92 * x : 1.055 * Math.pow(x, 1 / 2.4) - 0.055);\n}\n\nfunction rgb2lrgb(x) {\n  return (x /= 255) <= 0.04045 ? x / 12.92 : Math.pow((x + 0.055) / 1.055, 2.4);\n}\n\nfunction hclConvert(o) {\n  if (o instanceof Hcl) return new Hcl(o.h, o.c, o.l, o.opacity);\n  if (!(o instanceof Lab)) o = labConvert(o);\n  if (o.a === 0 && o.b === 0) return new Hcl(NaN, 0, o.l, o.opacity);\n  var h = Math.atan2(o.b, o.a) * rad2deg;\n  return new Hcl(h < 0 ? h + 360 : h, Math.sqrt(o.a * o.a + o.b * o.b), o.l, o.opacity);\n}\n\nexport function lch(l, c, h, opacity) {\n  return arguments.length === 1 ? hclConvert(l) : new Hcl(h, c, l, opacity == null ? 1 : opacity);\n}\n\nexport function hcl(h, c, l, opacity) {\n  return arguments.length === 1 ? hclConvert(h) : new Hcl(h, c, l, opacity == null ? 1 : opacity);\n}\n\nexport function Hcl(h, c, l, opacity) {\n  this.h = +h;\n  this.c = +c;\n  this.l = +l;\n  this.opacity = +opacity;\n}\n\ndefine(Hcl, hcl, extend(Color, {\n  brighter: function(k) {\n    return new Hcl(this.h, this.c, this.l + K * (k == null ? 1 : k), this.opacity);\n  },\n  darker: function(k) {\n    return new Hcl(this.h, this.c, this.l - K * (k == null ? 1 : k), this.opacity);\n  },\n  rgb: function() {\n    return labConvert(this).rgb();\n  }\n}));\n","\"use strict\";\n\nvar isPrototype = require(\"../prototype/is\");\n\nmodule.exports = function (value) {\n\tif (typeof value !== \"function\") return false;\n\n\tif (!hasOwnProperty.call(value, \"length\")) return false;\n\n\ttry {\n\t\tif (typeof value.length !== \"number\") return false;\n\t\tif (typeof value.call !== \"function\") return false;\n\t\tif (typeof value.apply !== \"function\") return false;\n\t} catch (error) {\n\t\treturn false;\n\t}\n\n\treturn !isPrototype(value);\n};\n","const placeholderPattern = /\\{\\{(.*)\\}\\}/; \nconst legacyPlaceholderPattern = /\\$\\{(.*)\\}/;\n\nfunction findPattern(input) {\n    let matchedPattern;\n    if (placeholderPattern.test(input)) {\n        matchedPattern = placeholderPattern;\n    } else if (legacyPlaceholderPattern.test(input)) {\n        matchedPattern = legacyPlaceholderPattern;\n    }\n    return matchedPattern;\n}\n\nfunction isPlaceholder(input) {\n    return !!findPattern(input);\n}\n\nfunction parseValueOrReference(input) {\n    const matchedPattern = findPattern(input);\n    if (!matchedPattern) {\n        return input;\n    }\n    const match = matchedPattern.exec(input);\n    //the placeholder may contain a default value after the pipe |,\n    //like {{colors.4|#EEAA99}}. We don't need it.\n    return match[1].split('|')[0];\n}\n\nmodule.exports = {\n    placeholderPattern,\n    legacyPlaceholderPattern,\n    parseValueOrReference,\n    isPlaceholder\n};\n","function ceilToStepSize(number, stepSize) {\n    return Math.ceil(number / stepSize) * stepSize;\n}\n\nexport function fromJSON(data) {\n    return new GridSettings(data.width, data.height, data.columnCount, data.whitespacePercent, data.rowSpacing);\n}\n\nexport class GridSettings {\n    constructor(width, height, columnCount, whitespacePercent, rowSpacing) {\n        this.width = width;\n        this.height = height;\n        this.columnCount = columnCount;\n        this.whitespacePercent = whitespacePercent;\n        this.rowSpacing = rowSpacing;\n\n        // Calculate whitespace percentage that will be divisable rowSpacing.\n        // Here we use (rowSpacing / 2) because upper padding/margin is acualy twice\n        // the space in between the columns.\n\n        this.spacing = ceilToStepSize(width * whitespacePercent / 100, rowSpacing / 2);\n        this.padding = this.spacing * 2;\n        this.totalWhitespace = this.spacing * (columnCount - 1) + this.padding * 2;\n        this.columnWidth = Math.floor((width - this.totalWhitespace) / columnCount);\n        this.multiplier = this.columnWidth + this.spacing;\n    }\n\n    getColumnLeft(column) {\n        return this.padding + this.multiplier * column;\n    }\n\n    getColumnsWidth(count) {\n        return count * this.columnWidth + (count - 1) * this.spacing;\n    }\n\n    getBaselineHeight(count) {\n        return count * this.rowSpacing;\n    }\n\n    getBaselineTop(baseline) {\n        return Math.min(this.padding + baseline * this.rowSpacing, this.height - this.padding);\n    }\n\n    getBaselineCount() {\n        return Math.ceil((this.height - this.padding * 2) / this.rowSpacing) + 1;\n    }\n\n    getGridLines() {\n        const guides = [0];\n\n        for (let i = 0; i < this.columnCount; i++) {\n            guides.push(this.getColumnLeft(i));\n            guides.push(this.getColumnLeft(i) + this.columnWidth);\n        }\n\n        const baselineCount = this.getBaselineCount();\n        const baselines = [\n            0,\n            ...([...Array(baselineCount)].map((u, i) => this.getBaselineTop(i))),\n            this.height,\n        ];\n\n        return {guides, baselines};\n    }\n\n    getRect(columns, baselines) {\n        return {\n            left: this.padding,\n            top: this.padding,\n            width: this.getColumnsWidth(columns),\n            height: this.getBaselineHeight(baselines),\n        };\n    }\n\n    toJSON() {\n        const {width, height, columnCount, whitespacePercent, rowSpacing} = this;\n        return {\n            width, height, columnCount, whitespacePercent, rowSpacing,\n        };\n    }\n}\n","const uuid = require('uuid');\n\nconst {\n    IMG_ASSET_ID,\n    IMG_CONTENT,\n} = require('./tableChartCellRegex');\n\nfunction generateAssetId() {\n    return uuid();\n}\n\nfunction addAsset(newAssets, existingAssets, url) {\n    for (const id of Object.keys(existingAssets)) {\n        if (existingAssets[id] === url) {\n            return id;\n        }\n    }\n    for (const id of Object.keys(newAssets)) {\n        if (newAssets[id] === url) {\n            return id;\n        }\n    }\n\n    const id = generateAssetId();\n    newAssets[id] = url;\n    return id;\n}\n\nfunction getTableCellStringValue(cell) {\n    if (!cell) {\n        return;\n    }\n    let cellValue = typeof cell === 'object' ? cell.value : cell;\n    if (!cellValue || typeof cellValue !== 'string') {\n        return;\n    }\n    return cellValue;\n}\n\nfunction extractTableCellAsset(cell) {\n    const cellValue = getTableCellStringValue(cell);\n    if (!cellValue) {\n        return;\n    }\n    const matches = cellValue.match(IMG_ASSET_ID);\n    if (matches && matches[1]) {\n        return matches[1];\n    }\n}\n\nfunction extractTableCellUrl(cell) {\n    const cellValue = getTableCellStringValue(cell);\n    if (!cellValue) {\n        return;\n    }\n    if (IMG_ASSET_ID.test(cellValue)) {\n        return; // cell uses asset already\n    }\n    const matches = cellValue.match(IMG_CONTENT);\n    if (matches && matches[1]) {\n        return matches[1];\n    }\n}\n\nfunction replaceTableCellValue(cell, from, to) {\n    if (!getTableCellStringValue(cell)) {\n        return cell;\n    }\n    if (typeof cell === 'object') {\n        cell.value = cell.value.replace(from, to);\n        return cell;\n    }\n    return cell.replace(from, to);\n}\n\nfunction resetTableCellValue(cell) {\n    if (!cell) {\n        return cell;\n    }\n    if (typeof cell === 'object') {\n        cell.value = '';\n        return cell;\n    }\n    return '';\n}\n\n/**\n * Checks table chart cell value if it contains inline image url. If it does then\n * converts it to assetId and inserts the new asset into passed `newAssets` object.\n *\n * @param {Object|string|number} cell\n * @param {Object.<string, string>} newAssets - object where to put new asset\n * @param {Object.<string, string>} assets - existing objects to check if asset already exists\n * @returns {Object|string|number} modified or original cell\n */\nfunction convertTableCellFromUrlToAsset(cell, newAssets, assets) {\n    const url = extractTableCellUrl(cell);\n    if (!url) {\n        return cell;\n    }\n    const id = addAsset(newAssets, assets, url);\n    return replaceTableCellValue(cell, url, id)\n}\n\n/**\n * Returns table chart data migrated to assets.\n *\n * @param {Array.<Array.<Array.<string|Object>>>} data - raw data of table chart\n * @param {Object.<string, string>} assets - existing assets\n * @returns {{assets: {}, data: Array}} new assets and migrated data\n */\nfunction migrateTableChartAssets(data, assets) {\n    const newAssets = {};\n    const updatedData = JSON.parse(JSON.stringify(data));\n    for (let sheetIndex = 0; sheetIndex < data.length; sheetIndex++) {\n        for (let rowIndex = 0; rowIndex < data[sheetIndex].length; rowIndex++) {\n            for (let cellIndex = 0; cellIndex < data[sheetIndex][rowIndex].length; cellIndex++) {\n                // [img=https://images.jifo.co/123.png] ==> [img=e5e6c0ed-edb0-4f74-9023-8872aba4cc00]\n                updatedData[sheetIndex][rowIndex][cellIndex] = convertTableCellFromUrlToAsset(\n                    data[sheetIndex][rowIndex][cellIndex],\n                    newAssets,\n                    assets,\n                );\n            }\n        }\n    }\n    return {assets: newAssets, data: updatedData};\n}\n\nmodule.exports = {\n    migrateTableChartAssets,\n    extractTableCellUrl,\n    extractTableCellAsset,\n    replaceTableCellValue,\n    resetTableCellValue,\n    convertTableCellFromUrlToAsset,\n    generateAssetId,\n};\n","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!./RelatedInfographics.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!./RelatedInfographics.css\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!./RelatedInfographics.css\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","import invariant from 'invariant';\nimport {Map} from 'immutable';\n\nimport AppDispatcher from '../../dispatcher';\n\nimport {\n    EDITOR_SET_CHART_EXTERNAL_DATA,\n} from '../constants/EditorConstants';\n\n// We need to send both - immutable data to be saved to server and a model\n// for chart setting panel, because it needs to work in both flex and responsive\nexport default function updateExternalChartData(id, immutableData, legacyModel) {\n    invariant(Map.isMap(immutableData), 'External chart data should be immutable');\n    AppDispatcher.dispatch({\n        type: EDITOR_SET_CHART_EXTERNAL_DATA,\n        id,\n        data: immutableData,\n        model: legacyModel,\n    });\n}\n","const constants = {\n    INFOGRAPHIC_PUBLISHED: 'INFOGRAPHIC_PUBLISHED',\n    INFOGRAPHIC_CREATED: 'INFOGRAPHIC_CREATED',\n    PROFILE_LOADED: 'PROFILE_LOADED',\n\n    INFOGRAPHIC_LOADING: 'INFOGRAPHIC_LOADING',\n    INFOGRAPHIC_LOADED: 'INFOGRAPHIC_LOADED',\n    INFOGRAPHIC_LOAD_ERROR: 'INFOGRAPHIC_LOAD_ERROR',\n    INFOGRAPHIC_INVALIDATE: 'INFOGRAPHIC_INVALIDATE',\n    INFOGRAPHIC_MODEL_LOADED: 'INFOGRAPHIC_MODEL_LOADED', // used in Library view before share dialog\n\n    INFOGRAPHIC_RENAMED: 'INFOGRAPHIC_RENAMED',\n    INFOGRAPHIC_DESCRIPTION_CHANGE: 'INFOGRAPHIC_DESCRIPTION_CHANGE',\n\n    INFOGRAPHIC_THEME_CHANGE: 'INFOGRAPHIC_THEME_CHANGE',\n    INFOGRAPHIC_THEME_LOADED: 'INFOGRAPHIC_THEME_LOADED',\n    INFOGRAPHIC_PALETTE_CHANGE: 'INFOGRAPHIC_PALETTE_CHANGE',\n\n    GLOBAL_LOADING_SHOW: 'GLOBAL_LOADING_SHOW',\n    GLOBAL_LOADING_HIDE: 'GLOBAL_LOADING_HIDE',\n\n    INFOGRAPHIC_TYPE_RESPONSIVE: 0,\n    INFOGRAPHIC_TYPE_FREE_LAYOUT: 1,\n    INFOGRAPHIC_TYPE_ZOOM_LAYOUT: 2,\n\n    MAX_IMPORT_SIZE: 50 * 1024 * 1024,\n\n    DEFAULT_INFOGRAPHIC_WIDTH: 550,\n\n    ELEMENT_SELECTED_NONE: 'ELEMENT_SELECTED_NONE',\n    ELEMENT_SELECTED_RESPONSIVE_INFOGRAPHIC_SETTINGS: 'ELEMENT_SELECTED_RESPONSIVE_INFOGRAPHIC_SETTINGS',\n    ELEMENT_SELECTED_RESPONSIVE_CHART: 'ELEMENT_SELECTED_RESPONSIVE_CHART',\n    ELEMENT_SELECTED_RESPONSIVE_GRAPHIC: 'ELEMENT_SELECTED_RESPONSIVE_GRAPHIC',\n    ELEMENT_SELECTED_RESPONSIVE_TEXT: 'ELEMENT_SELECTED_RESPONSIVE_TEXT',\n    ELEMENT_SELECTED_RESPONSIVE_MEDIA: 'ELEMENT_SELECTED_RESPONSIVE_MEDIA',\n\n    RESPONSIVE_PARTICLE_SETTINGS_UPDATED: 'RESPONSIVE_PARTICLE_SETTINGS_UPDATED',\n\n    INSPECTOR_PANEL_RESET: 'INSPECTOR_PANEL_RESET',\n    INSPECTOR_PANEL_CLOSE: 'INSPECTOR_PANEL_CLOSE',\n    INSPECTOR_PANEL_OPEN: 'INSPECTOR_PANEL_OPEN',\n\n    THEMES_LOADING: 'THEMES_LOADING',\n    THEMES_LOADED: 'THEMES_LOADED',\n\n    PALETTES_LOADED: 'PALETTES_LOADED',\n    PALETTES_LOADING: 'PALETTES_LOADING',\n    PALETTES_LOADING_FAILED: 'PALETTES_LOADING_FAILED',\n\n    EMBED_RESPONSIVE: 'responsive',\n    EMBED_IFRAME: 'iframe',\n    EMBED_ASYNC: 'async',\n    EMBED_IMAGE_RESPONSIVE: 'image_responsive',\n    EMBED_IMAGE_ASYNC: 'image_async',\n    EMBED_IMAGE_IFRAME: 'image_iframe',\n    EMBED_AMP: 'amp',\n    EMBED_AMP_IMAGE: 'amp_image',\n    EMBED_WORDPRESS: 'wordpress',\n    EMBED_WORDPRESS_IMAGE: 'wordpress_image',\n\n    RESPONSIVE_SET_INTERLINKED_CHARTS: 'RESPONSIVE_SET_INTERLINKED_CHARTS',\n    FREELAYOUT_SET_INTERLINKED_CHARTS: 'FREELAYOUT_SET_INTERLINKED_CHARTS',\n    FREELAYOUT_SET_INTERACTIVITY_HINT: 'FREELAYOUT_SET_INTERACTIVITY_HINT',\n    RECEIVE_EXTRA_DATA: 'RECEIVE_EXTRA_DATA',\n\n    INFOGRAPHIC_PERMISSIONS_DEFAULTS_CHANGE: 'INFOGRAPHIC_PERMISSIONS_DEFAULTS_CHANGE',\n    INFOGRAPHIC_PERMISSIONS_DEFAULTS_CHANGE_FAILED: 'INFOGRAPHIC_PERMISSIONS_DEFAULTS_CHANGE_FAILED',\n    INFOGRAPHIC_PERMISSIONS_ADD: 'INFOGRAPHIC_PERMISSIONS_ADD',\n    INFOGRAPHIC_PERMISSIONS_ADD_SUCCEEDED: 'INFOGRAPHIC_PERMISSIONS_ADD_SUCCEEDED',\n    INFOGRAPHIC_PERMISSIONS_ADD_FAILED: 'INFOGRAPHIC_PERMISSIONS_ADD_FAILED',\n    INFOGRAPHIC_PERMISSIONS_UPDATE: 'INFOGRAPHIC_PERMISSIONS_UPDATE',\n    INFOGRAPHIC_PERMISSIONS_UPDATE_SUCCEEDED: 'INFOGRAPHIC_PERMISSIONS_UPDATE_SUCCEEDED',\n    INFOGRAPHIC_PERMISSIONS_UPDATE_FAILED: 'INFOGRAPHIC_PERMISSIONS_UPDATE_FAILED',\n    INFOGRAPHIC_PERMISSIONS_DELETE: 'INFOGRAPHIC_PERMISSIONS_DELETE',\n    INFOGRAPHIC_PERMISSIONS_DELETE_FAILED: 'INFOGRAPHIC_PERMISSIONS_DELETE_FAILED',\n\n    INFOGRAPHIC_PERMISSIONS_REQUEST: 'INFOGRAPHIC_PERMISSIONS_REQUEST',\n    //INFOGRAPHIC_PERMISSIONS_REQUEST_FAILED: 'INFOGRAPHIC_PERMISSIONS_REQUEST_FAILED',\n    TITLE_EDITOR_UPDATE: 'TITLE_EDITOR_UPDATE',\n    TITLE_EDITOR_UPDATE_DONE: 'TITLE_EDITOR_UPDATE_DONE',\n};\n\nfunction isFlex(type) {\n    return type === constants.INFOGRAPHIC_TYPE_FREE_LAYOUT;\n}\n\nfunction isZoom(type) {\n    return type === constants.INFOGRAPHIC_TYPE_ZOOM_LAYOUT;\n}\n\nfunction isResponsive(type) {\n    return type === constants.INFOGRAPHIC_TYPE_RESPONSIVE;\n}\n\nfunction isFlexEngine(type) {\n    return [\n        constants.INFOGRAPHIC_TYPE_FREE_LAYOUT,\n        constants.INFOGRAPHIC_TYPE_ZOOM_LAYOUT,\n    ].includes(type);\n}\n\nmodule.exports = {\n    isFlex,\n    isZoom,\n    isResponsive,\n    isFlexEngine,\n    ...constants,\n};\n","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".NRClxyZCkwwwIzeumFUbJ {\\n    margin-bottom: 50px;\\n    height: 80px;\\n    padding: 0 20px 0 15px;\\n    border-bottom: 1px solid #ECECF0;\\n    background: #fff;\\n    overflow: hidden;\\n    transition: transform 200ms;\\n}\\n\\n._2MGNZBGB_792k-VfF0XC_a {\\n    transform: translateY(0);\\n}\\n\\n.QQUO-eDszghI7uwBaXede {\\n    transform: translateY(-100%);\\n}\\n\\n._1uTemZG9ExO8AqzayfBYLt {\\n    float: left;\\n    margin-top: 20px;\\n    height: 53px;\\n}\\n._1uTemZG9ExO8AqzayfBYLt._1RyoQRO1QXLU9gAVth6mY- {\\n    height: 40px;\\n}\\n._9Xb8Yn7C862oi_1D_-0L4 {\\n    float: right;\\n    display: flex;\\n    flex-flow: row;\\n    margin: 18px 0;\\n}\\n\\n._20w63WFewfUJv96hYaCBLu {\\n    display: inline-block;\\n    line-height: 40px;\\n    border-radius: 4px;\\n    background: #EBEBEE;\\n    padding: 0 15px 0 13px;\\n    color: #444;\\n    font-size: 13px;\\n    cursor: pointer;\\n    margin-left: 10px;\\n    min-width: auto;\\n    outline: none;\\n}\\n._20w63WFewfUJv96hYaCBLu::before {\\n    margin-right: 10px;\\n}\\n._20w63WFewfUJv96hYaCBLu:hover {\\n    background: rgba(235,235,238,.6);\\n}\\n\\n.QnD4SNX31K8AMmvGMGLyr {\\n    background: #C32F2F;\\n    display: inline-block;\\n    margin-left: 10px;\\n    line-height: 40px;\\n    border-radius: 4px;\\n    padding: 0 30px;\\n    color: #fff;\\n    font-size: 15px;\\n    cursor: pointer;\\n}\\n.QnD4SNX31K8AMmvGMGLyr:hover {\\n    background: #DC5356;\\n}\\n._288dpqiS0Q1ngwpi_keU9E {\\n    display: none;\\n    margin-top: 5px;\\n    line-height: 15px;\\n    padding: 7px 15px 8px;\\n}\\n\\n._39MOCC_blWn8tSuy0j85AW {\\n    float: right;\\n    display: block;\\n    margin-left: 20px;\\n    cursor: pointer;\\n    border-radius: 20px;\\n    width: 40px;\\n    height: 40px;\\n    background-size: cover;\\n}\\n\\n@media screen and (max-width: 960px) {\\n    ._1BaZ7hkvO0ggeK2a8k31Ge {\\n        display: inline-block;\\n    }\\n    .NRClxyZCkwwwIzeumFUbJ {\\n        height: 60px;\\n        margin-bottom: 10px;\\n        padding: 0 20px 0 12px;\\n    }\\n\\n    ._9Xb8Yn7C862oi_1D_-0L4 {\\n        margin: 10px 0;\\n    }\\n\\n    ._1uTemZG9ExO8AqzayfBYLt {\\n        height: 39px;\\n        margin: 15px 0 0 12px;\\n    }\\n\\n    .QnD4SNX31K8AMmvGMGLyr {\\n        display: none;\\n    }\\n    ._288dpqiS0Q1ngwpi_keU9E {\\n        display: block;\\n        height: 40px;\\n        line-height: 40px;\\n        float: right;\\n        padding: 0 15px;\\n        margin-top: 0;\\n    }\\n    ._20w63WFewfUJv96hYaCBLu {\\n        width: 40px;\\n        overflow: hidden;\\n    }\\n    ._20w63WFewfUJv96hYaCBLu::before {\\n        margin-right: 40px;\\n    }\\n}\\n\\ndiv._1lmUA736xVFVC2VwRdbdoK {\\n\\twidth: 40px;\\n\\theight: 40px;\\n\\tborder: none;\\n\\tfont-size: 16px;\\n    line-height: 40px;\\n}\\n\", \"\"]);\n\n// exports\nexports.locals = {\n\t\"container\": \"NRClxyZCkwwwIzeumFUbJ\",\n\t\"show\": \"_2MGNZBGB_792k-VfF0XC_a\",\n\t\"hide\": \"QQUO-eDszghI7uwBaXede\",\n\t\"logoImage\": \"_1uTemZG9ExO8AqzayfBYLt\",\n\t\"customLogo\": \"_1RyoQRO1QXLU9gAVth6mY-\",\n\t\"buttons\": \"_9Xb8Yn7C862oi_1D_-0L4\",\n\t\"shareButton\": \"_20w63WFewfUJv96hYaCBLu\",\n\t\"registerButton\": \"QnD4SNX31K8AMmvGMGLyr\",\n\t\"registerButtonMobile\": \"_288dpqiS0Q1ngwpi_keU9E\",\n\t\"avatarLink\": \"_39MOCC_blWn8tSuy0j85AW\",\n\t\"logoHolder\": \"_1BaZ7hkvO0ggeK2a8k31Ge\",\n\t\"webProfileHeaderAvatar\": \"_1lmUA736xVFVC2VwRdbdoK\"\n};","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $some = require('../internals/array-iteration').some;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\n\n// `%TypedArray%.prototype.some` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.some\nArrayBufferViewCore.exportProto('some', function some(callbackfn /* , thisArg */) {\n  return $some(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n});\n","import React, {PureComponent} from 'react';\n\nclass SharePlaceholder extends PureComponent {\n    render() {\n        return (\n            <div ref={el => this.el = el}/>\n        );\n    }\n\n    componentDidMount() {\n        const searchElement = document.getElementById('share');\n        this.el.appendChild(searchElement);\n    }\n}\n\nexport default SharePlaceholder;\n","'use strict';\nvar fails = require('../internals/fails');\nvar padStart = require('../internals/string-pad').start;\n\nvar abs = Math.abs;\nvar DatePrototype = Date.prototype;\nvar getTime = DatePrototype.getTime;\nvar nativeDateToISOString = DatePrototype.toISOString;\n\n// `Date.prototype.toISOString` method implementation\n// https://tc39.github.io/ecma262/#sec-date.prototype.toisostring\n// PhantomJS / old WebKit fails here:\nmodule.exports = (fails(function () {\n  return nativeDateToISOString.call(new Date(-5e13 - 1)) != '0385-07-25T07:06:39.999Z';\n}) || !fails(function () {\n  nativeDateToISOString.call(new Date(NaN));\n})) ? function toISOString() {\n  if (!isFinite(getTime.call(this))) throw RangeError('Invalid time value');\n  var date = this;\n  var year = date.getUTCFullYear();\n  var milliseconds = date.getUTCMilliseconds();\n  var sign = year < 0 ? '-' : year > 9999 ? '+' : '';\n  return sign + padStart(abs(year), sign ? 6 : 4, 0) +\n    '-' + padStart(date.getUTCMonth() + 1, 2, 0) +\n    '-' + padStart(date.getUTCDate(), 2, 0) +\n    'T' + padStart(date.getUTCHours(), 2, 0) +\n    ':' + padStart(date.getUTCMinutes(), 2, 0) +\n    ':' + padStart(date.getUTCSeconds(), 2, 0) +\n    '.' + padStart(milliseconds, 3, 0) +\n    'Z';\n} : nativeDateToISOString;\n","export default class PageIntersectionObserver {\n    constructor({tail = 3, head = 1} = {}) {\n        // Visible page is marked as not visible if it is more than 3 pages away from intersected pages.\n        // Not-visible page is marked as visible if it is less than 1 page away from intersected pages.\n        // Aim is to pre-render not too much (to not cause heavy initial load) and to keep already rendered\n        // pages for some time (so scrolling back would be smooth).\n        this.config = {tail, head};\n\n        this.elementMap = new Map();\n        this.observer = 'IntersectionObserver' in window && new IntersectionObserver(this.observed);\n    }\n\n    observed = (entries) => {\n        this.updateVisibleElements(entries);\n    };\n\n    updateVisibleElements = (entries) => {\n        entries.forEach(entry => {\n            if (entry) {\n                const data = this.elementMap.get(entry.target);\n                if (data) {\n                    data.isIntersecting = entry.isIntersecting;\n                }\n            }\n        });\n\n        const elements = Array.from(this.elementMap.values()).sort((a, b) => {\n            return a.rect.top - b.rect.top;\n        });\n\n        let intersectingMin;\n        let intersectingMax;\n        elements.forEach((element, index) => {\n            if (element.isIntersecting) {\n                if (intersectingMin === undefined) {\n                    intersectingMin = index;\n                }\n                intersectingMax = index;\n            }\n        });\n\n        elements.forEach((element, index) => {\n            if (element.callback) {\n                const outOfBufferRange = (index < (intersectingMin - this.config.tail) || index > (intersectingMax + this.config.tail));\n                if (element.visible && outOfBufferRange) {\n                    element.visible = false;\n                }\n                const inPrerenderRange = index >= (intersectingMin - this.config.head) && index <= (intersectingMax + this.config.head);\n                if (!element.visible && inPrerenderRange) {\n                    element.visible = true;\n                }\n                element.callback(element.visible);\n            }\n        });\n    };\n\n    observe = (element, callback) => {\n        if (this.observer) {\n            this.observer.observe(element);\n            this.elementMap.set(element, {\n                isIntersecting: false,\n                visible: false,\n                rect: element.getBoundingClientRect(),\n                callback,\n            });\n        } else {\n            //In case there is no observer we report everything as visible as a fallback to old behavior\n            if (callback) {\n                callback(true);\n            }\n        }\n    };\n\n    unobserve = (element) => {\n        if (this.observer) {\n            this.observer.unobserve(element);\n            this.elementMap.delete(element);\n        }\n    };\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\nif (process.env.NODE_ENV !== 'production') {\n  var ReactIs = require('react-is');\n\n  // By explicitly using `prop-types` you are opting into new development behavior.\n  // http://fb.me/prop-types-in-prod\n  var throwOnDirectAccess = true;\n  module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n  // By explicitly using `prop-types` you are opting into new production behavior.\n  // http://fb.me/prop-types-in-prod\n  module.exports = require('./factoryWithThrowingShims')();\n}\n","var toInteger = require('../internals/to-integer');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `String.prototype.{ codePointAt, at }` methods implementation\nvar createMethod = function (CONVERT_TO_STRING) {\n  return function ($this, pos) {\n    var S = String(requireObjectCoercible($this));\n    var position = toInteger(pos);\n    var size = S.length;\n    var first, second;\n    if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n    first = S.charCodeAt(position);\n    return first < 0xD800 || first > 0xDBFF || position + 1 === size\n      || (second = S.charCodeAt(position + 1)) < 0xDC00 || second > 0xDFFF\n        ? CONVERT_TO_STRING ? S.charAt(position) : first\n        : CONVERT_TO_STRING ? S.slice(position, position + 2) : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n  };\n};\n\nmodule.exports = {\n  // `String.prototype.codePointAt` method\n  // https://tc39.github.io/ecma262/#sec-string.prototype.codepointat\n  codeAt: createMethod(false),\n  // `String.prototype.at` method\n  // https://github.com/mathiasbynens/String.prototype.at\n  charAt: createMethod(true)\n};\n","'use strict';\nvar defineProperty = require('../internals/object-define-property').f;\nvar create = require('../internals/object-create');\nvar redefineAll = require('../internals/redefine-all');\nvar bind = require('../internals/bind-context');\nvar anInstance = require('../internals/an-instance');\nvar iterate = require('../internals/iterate');\nvar defineIterator = require('../internals/define-iterator');\nvar setSpecies = require('../internals/set-species');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fastKey = require('../internals/internal-metadata').fastKey;\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\n\nmodule.exports = {\n  getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n    var C = wrapper(function (that, iterable) {\n      anInstance(that, C, CONSTRUCTOR_NAME);\n      setInternalState(that, {\n        type: CONSTRUCTOR_NAME,\n        index: create(null),\n        first: undefined,\n        last: undefined,\n        size: 0\n      });\n      if (!DESCRIPTORS) that.size = 0;\n      if (iterable != undefined) iterate(iterable, that[ADDER], that, IS_MAP);\n    });\n\n    var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n    var define = function (that, key, value) {\n      var state = getInternalState(that);\n      var entry = getEntry(that, key);\n      var previous, index;\n      // change existing entry\n      if (entry) {\n        entry.value = value;\n      // create new entry\n      } else {\n        state.last = entry = {\n          index: index = fastKey(key, true),\n          key: key,\n          value: value,\n          previous: previous = state.last,\n          next: undefined,\n          removed: false\n        };\n        if (!state.first) state.first = entry;\n        if (previous) previous.next = entry;\n        if (DESCRIPTORS) state.size++;\n        else that.size++;\n        // add to index\n        if (index !== 'F') state.index[index] = entry;\n      } return that;\n    };\n\n    var getEntry = function (that, key) {\n      var state = getInternalState(that);\n      // fast case\n      var index = fastKey(key);\n      var entry;\n      if (index !== 'F') return state.index[index];\n      // frozen object case\n      for (entry = state.first; entry; entry = entry.next) {\n        if (entry.key == key) return entry;\n      }\n    };\n\n    redefineAll(C.prototype, {\n      // 23.1.3.1 Map.prototype.clear()\n      // 23.2.3.2 Set.prototype.clear()\n      clear: function clear() {\n        var that = this;\n        var state = getInternalState(that);\n        var data = state.index;\n        var entry = state.first;\n        while (entry) {\n          entry.removed = true;\n          if (entry.previous) entry.previous = entry.previous.next = undefined;\n          delete data[entry.index];\n          entry = entry.next;\n        }\n        state.first = state.last = undefined;\n        if (DESCRIPTORS) state.size = 0;\n        else that.size = 0;\n      },\n      // 23.1.3.3 Map.prototype.delete(key)\n      // 23.2.3.4 Set.prototype.delete(value)\n      'delete': function (key) {\n        var that = this;\n        var state = getInternalState(that);\n        var entry = getEntry(that, key);\n        if (entry) {\n          var next = entry.next;\n          var prev = entry.previous;\n          delete state.index[entry.index];\n          entry.removed = true;\n          if (prev) prev.next = next;\n          if (next) next.previous = prev;\n          if (state.first == entry) state.first = next;\n          if (state.last == entry) state.last = prev;\n          if (DESCRIPTORS) state.size--;\n          else that.size--;\n        } return !!entry;\n      },\n      // 23.2.3.6 Set.prototype.forEach(callbackfn, thisArg = undefined)\n      // 23.1.3.5 Map.prototype.forEach(callbackfn, thisArg = undefined)\n      forEach: function forEach(callbackfn /* , that = undefined */) {\n        var state = getInternalState(this);\n        var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);\n        var entry;\n        while (entry = entry ? entry.next : state.first) {\n          boundFunction(entry.value, entry.key, this);\n          // revert to the last existing entry\n          while (entry && entry.removed) entry = entry.previous;\n        }\n      },\n      // 23.1.3.7 Map.prototype.has(key)\n      // 23.2.3.7 Set.prototype.has(value)\n      has: function has(key) {\n        return !!getEntry(this, key);\n      }\n    });\n\n    redefineAll(C.prototype, IS_MAP ? {\n      // 23.1.3.6 Map.prototype.get(key)\n      get: function get(key) {\n        var entry = getEntry(this, key);\n        return entry && entry.value;\n      },\n      // 23.1.3.9 Map.prototype.set(key, value)\n      set: function set(key, value) {\n        return define(this, key === 0 ? 0 : key, value);\n      }\n    } : {\n      // 23.2.3.1 Set.prototype.add(value)\n      add: function add(value) {\n        return define(this, value = value === 0 ? 0 : value, value);\n      }\n    });\n    if (DESCRIPTORS) defineProperty(C.prototype, 'size', {\n      get: function () {\n        return getInternalState(this).size;\n      }\n    });\n    return C;\n  },\n  setStrong: function (C, CONSTRUCTOR_NAME, IS_MAP) {\n    var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator';\n    var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME);\n    var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME);\n    // add .keys, .values, .entries, [@@iterator]\n    // 23.1.3.4, 23.1.3.8, 23.1.3.11, 23.1.3.12, 23.2.3.5, 23.2.3.8, 23.2.3.10, 23.2.3.11\n    defineIterator(C, CONSTRUCTOR_NAME, function (iterated, kind) {\n      setInternalState(this, {\n        type: ITERATOR_NAME,\n        target: iterated,\n        state: getInternalCollectionState(iterated),\n        kind: kind,\n        last: undefined\n      });\n    }, function () {\n      var state = getInternalIteratorState(this);\n      var kind = state.kind;\n      var entry = state.last;\n      // revert to the last existing entry\n      while (entry && entry.removed) entry = entry.previous;\n      // get next entry\n      if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) {\n        // or finish the iteration\n        state.target = undefined;\n        return { value: undefined, done: true };\n      }\n      // return step by kind\n      if (kind == 'keys') return { value: entry.key, done: false };\n      if (kind == 'values') return { value: entry.value, done: false };\n      return { value: [entry.key, entry.value], done: false };\n    }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n    // add [@@species], 23.1.2.2, 23.2.2.2\n    setSpecies(CONSTRUCTOR_NAME);\n  }\n};\n","import _ from 'lodash';\nimport i18n from 'i18next';\nimport React from 'react';\nimport {Container} from 'flux/utils';\nimport PropTypes from 'prop-types';\nimport cx from 'classnames';\n\nimport CurrentInfographicStore from '../../app/main/stores/CurrentInfographicStore';\nimport BrandStore from '../../app/main/stores/BrandStore';\nimport Reveal from '../../widgets/Reveal';\nimport style from './ShareDialog.css';\n\nconst FIRST_POSITION_TOP_MARGIN = 50;\n\nclass ShareDialog extends React.Component {\n    static propTypes = {\n        className: PropTypes.string,\n        type: PropTypes.string,\n        onClose: PropTypes.func.isRequired,\n        position: PropTypes.number,\n    };\n\n    static getStores() {\n        return [\n            CurrentInfographicStore,\n        ];\n    }\n\n    static calculateState() {\n        const infographicModel = CurrentInfographicStore.model;\n        const embed = infographicModel.attributes.embed;\n        const elements = infographicModel.attributes.elements;\n        const properties = infographicModel.attributes.properties;\n\n        const brandsetShareLink = infographicModel.shareUrl(BrandStore.currentBrandset && BrandStore.currentBrandset.get('domain') || '');\n        const customLinkOptionResponsive = properties.customLinkOption === 'share_parent_url' && properties.title_link === 'custom' && 'share_parent_url' || '';\n        let customLink = _.get(elements, 'content.footerSettings.hasCustomLink') && _.get(elements, 'content.footerSettings.customLink') || brandsetShareLink;\n        const customLinkOption = _.get(elements, 'content.footerSettings.hasCustomLink') && _.get(elements, 'content.footerSettings.customLinkOption') || customLinkOptionResponsive;\n\n        if (customLinkOption === 'share_parent_url') {\n            window.location.search.substring(1).split('&').forEach(param => {\n                param = param.split('=');\n                if (param[0] === 'parent_url') {\n                    customLink = decodeURIComponent(param[1]);\n                }\n            });\n        }\n\n        const shareLink = encodeURIComponent(customLink);\n        const customShareText = encodeURIComponent(infographicModel.shareText());\n\n        return {\n            customLink,\n            customShareText,\n            panelOpen: false,\n            showEmbedCode: false,\n            embedType: 'async',\n            embed,\n            embedAsync: infographicModel.attributes.embedAsync,\n            embedIframe: infographicModel.attributes.embedIframe,\n            shareLink,\n        };\n    }\n\n    render() {\n        const {\n            customLink,\n            customShareText,\n            embed,\n            embedAsync,\n            embedIframe,\n            shareLink,\n            embedType,\n        } = this.state;\n\n        const embedData = {\n            responsive: {\n                key: 'responsive',\n                title: i18n.t('app.share.responsive') || 'Responsive',\n                tooltip: i18n.t('app.share.adjust_to_its_container') || 'Your embedded infographic will adjust to its container.',\n                embedCode: embed,\n            },\n            async: {\n                key: 'async',\n                title: i18n.t('app.share.async') || 'Async',\n                tooltip: i18n.t('app.share.adjust_to_its_container') || 'Your embedded infographic will adjust to its container.',\n                embedCode: embedAsync,\n            },\n            fixed: {\n                key: 'fixed',\n                title: i18n.t('app.share.fixed') || 'Fixed',\n                tooltip: i18n.t('app.share.embed_size_will_be_fixed') || 'Not recommended, as the infographic size may vary across different platforms, but your embed size will be fixed.',\n                embedCode: embedIframe,\n            },\n        };\n\n        const header = (\n            <div className={style.dropDownHeader}>\n                <span className={style.dropDownHeaderTitle}>{embedData[embedType].title}</span>\n                <span className={cx(style.icon, this.state.panelOpen ? 'icon-up' : 'icon-down')}/>\n            </div>\n        );\n\n        const blockStyle = {};\n        if (this.props.position) {\n            blockStyle.top = FIRST_POSITION_TOP_MARGIN * this.props.position;\n        }\n\n        return (\n            <div className={cx(style.shareDialogHolder, {[style.footerShareDialogHolder]: this.props.type === 'footer', [style.headerShareDialogHolder]: this.props.type === 'header', [style.firstPosition]: this.props.position === 1})} style={blockStyle}>\n                <div className={cx(style.shareDialog, this.props.className, {[style.hidden]: this.state.showEmbedCode})} style={blockStyle}>\n                    <div aria-label=\"Share dialog\" className={style.dialogHeader}>\n                        {i18n.t('app.share.share') || 'Share'}\n                        <button aria-label=\"close share dialog\" onClick={this._onClose} className={style.close}/>\n                    </div>\n\n                    <div className={style.dialogContainer}>\n                        <div className={style.socialButtons}>\n                            <a\n                                aria-label=\"Share on facebook\"\n                                onClick={this._openSocialShare}\n                                target=\"_blank\"\n                                className={cx(style.social, style.facebook)}\n                                href={`http://www.facebook.com/sharer/sharer.php?u=${shareLink}`}\n                            >\n                                <img src={require('./images/facebook.svg')}/>\n                            </a>\n                            <a\n                                aria-label=\"Share on twitter\"\n                                onClick={this._openSocialShare}\n                                target=\"_blank\"\n                                className={cx(style.social, style.twitter)}\n                                href={`http://twitter.com/share?text=${customShareText}%20-%20&url=${shareLink}`}\n                            >\n                                <img src={require('./images/twitter.svg')}/>\n                            </a>\n                            <a\n                                aria-label=\"Share on LinkedIn\"\n                                onClick={this._openSocialShare}\n                                target=\"_blank\"\n                                className={cx(style.social, style.linkedin)}\n                                href={`http://www.linkedin.com/shareArticle?mini=true&url=${shareLink}&title=${customShareText}`}\n                            >\n                                <img src={require('./images/linkedin.svg')}/>\n                            </a>\n                        </div>\n\n                        <div className={style.shareUrlHolder}>\n                            <label>{i18n.t('app.share.link') || 'Link:'}</label>\n                            <a aria-label=\"Copy link to this infographic\" role=\"button\" className={style.copy} onClick={this._copyLink} href=\"#\">{i18n.t('app.share.copy_link') || 'Copy link'}</a>\n                            <input readOnly className={style.shareUrl} value={customLink} id=\"custom-link\" onClick={this._copyLink}/>\n                        </div>\n\n                        <button aria-label=\"Get embed code\" className={style.embedButton} onClick={this._toggleEmbed}>{i18n.t('app.share.embed') || 'Embed'}</button>\n                    </div>\n                </div>\n\n                <div className={cx(style.shareDialog, this.props.className, {[style.hidden]: !this.state.showEmbedCode})}>\n                    <div className={style.dialogHeader}>\n                        <button aria-label=\"Back to share dialog\" onClick={this._toggleEmbed} className={cx('icon-goback', style.back)}/>\n                        {i18n.t('app.share.embed') || 'Embed'}\n                    </div>\n\n                    <div className={style.dialogContainer}>\n                        <div className={style.dropDownHolder}>\n                            <label className={style.dropDownLabel}>{i18n.t('app.share.type') || 'Type:'}</label>\n                            <Reveal header={header}\n                                    open={this.state.panelOpen}\n                                    onToggle={this._togglePanel}\n                                    align={'left'}\n                                    mode={'click'}\n                            >\n                                <ul className={style.dropDownPanel}>\n                                        <li key={embedData.responsive.key}\n                                            data-key={embedData.responsive.key}\n                                            onClick={this._chooseEmbedType}\n                                            className={cx('dropDownItem', style.dropDownItem)}\n                                        >{embedData.responsive.title}</li>\n                                        <li key={embedData.async.key}\n                                            data-key={embedData.async.key}\n                                            onClick={this._chooseEmbedType}\n                                            className={cx('dropDownItem', style.dropDownItem)}\n                                        >{embedData.async.title}</li>\n                                        <li key={embedData.fixed.key}\n                                            data-key={embedData.fixed.key}\n                                            onClick={this._chooseEmbedType}\n                                            className={cx('dropDownItem', style.dropDownItem)}\n                                        >{embedData.fixed.title}</li>\n                                </ul>\n                            </Reveal>\n                            <span className={cx('icon-info-stroke', style.info)}\n                                  data-tooltip-position=\"left\"\n                                  aria-label={embedData[embedType].tooltip}\n                                  data-tooltip={embedData[embedType].tooltip}\n                            />\n                        </div>\n                        <textarea className={style.embedCode}\n                                  readOnly\n                                  value={embedData[embedType].embedCode}\n                                  onClick={this._textareaSelect}\n                        />\n                    </div>\n                </div>\n            </div>\n        );\n    }\n\n    _chooseEmbedType = (e) => {\n        this.setState({\n            embedType: e.target.getAttribute('data-key'),\n            panelOpen: false,\n        });\n    }\n\n    _copyLink(e) {\n        e.preventDefault();\n        const copyText = document.getElementById('custom-link');\n        copyText.select();\n        document.execCommand('copy');\n    }\n\n    _toggleEmbed = () => {\n        this.setState({\n            showEmbedCode: !this.state.showEmbedCode,\n        });\n    }\n\n    _togglePanel = () => {\n        this.setState({\n            panelOpen: !this.state.panelOpen,\n        });\n    }\n\n    _textareaSelect(e) {\n        e.currentTarget.select();\n    }\n\n    _openSocialShare(e) {\n        e.preventDefault();\n        const w = 600;\n        const h = 400;\n        const left = screen.width / 2 - w / 2;\n        const top = screen.height / 2 - h / 2;\n        return window.open(e.currentTarget.getAttribute('href'), 'shareWindow', `toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=no, resizable=no, copyhistory=no, width=${w}, height=${h}, top=${top}, left=${left}`);\n    }\n\n    _onClose = (e) => {\n        e.preventDefault();\n        this.props.onClose();\n    }\n}\n\nexport default Container.create(ShareDialog);\n","\nimport Flux from 'flux';\nexport default new Flux.Dispatcher();\n","var isObject = require('../internals/is-object');\nvar isArray = require('../internals/is-array');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `ArraySpeciesCreate` abstract operation\n// https://tc39.github.io/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray, length) {\n  var C;\n  if (isArray(originalArray)) {\n    C = originalArray.constructor;\n    // cross-realm fallback\n    if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;\n    else if (isObject(C)) {\n      C = C[SPECIES];\n      if (C === null) C = undefined;\n    }\n  } return new (C === undefined ? Array : C)(length === 0 ? 0 : length);\n};\n","/* This class holds all the handles and their entities */\n\nconst handlerByElement = new WeakMap();\nconst handlerByKey = {};\n\nexport default {\n    addHandler(e, type, key) {\n        handlerByElement.set(e, {type, key});\n        if (!handlerByKey[type]) {\n            handlerByKey[type] = {};\n        }\n        if (!handlerByKey[type][key]) {\n            handlerByKey[type][key] = [];\n        }\n        handlerByKey[type][key].push(e);\n    },\n\n    removeHandler(e, type, key) {\n        handlerByElement.delete(e);\n        const handlers = handlerByKey[type][key];\n        if (!handlers) return;\n        const eId = handlers.indexOf(e);\n        if (eId !== -1) {\n            handlers.splice(eId, 1);\n        }\n        if (handlers.length === 0) {\n            delete handlerByKey[type][key];\n        }\n    },\n\n    handlerForElement(e) {\n        return handlerByElement.get(e);\n    },\n\n    handlerForKey(type, key, index = 0) {\n        return handlerByKey[type] && handlerByKey[type][key] && handlerByKey[type][key][index];\n    },\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/forced-string-html-method');\n\n// `String.prototype.sup` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.sup\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('sup') }, {\n  sup: function sup() {\n    return createHTML(this, 'sup', '', '');\n  }\n});\n","module.exports = __webpack_public_path__ + \"rWA7zGScsYYA0Ajju_VPi.svg\";","module.exports = __webpack_public_path__ + \"1dEm8WBg2S6p4__2EBRQo3.svg\";","const _ = require('lodash');\n\nconst {chartHeatmap, chartDefaultColors} = require('./chart_colors');\nconst resolveDesignProperty = require('../components/FreeLayoutEditor/immutable/resolveDesignProperty');\nconst {isPlaceholder} = require('./freeLayoutVariablePlaceholders');\nconst chartColorsSync = require('./chartColorsSync');\n\nclass ImmutablePropertyReconciler {\n    constructor(chartData, theme, design) {\n        const colorParams = {\n            chart: chartData,\n            template: theme.attributes || theme,\n        };\n        this._defaultColors = chartDefaultColors(colorParams);\n        this._defaultColorsHeatmap = chartHeatmap(colorParams);\n        this._chartData = chartData;\n        this._design = _.isEmpty(design) ? null : design;\n        this._replacements = {};\n    }\n\n    // If colors were not changed from the defaults - replace with the ones from theme.\n    // Also always update defaults that are required for side-panel's \"reset\" button.\n    reconcile() {\n        this._syncProps('custom');\n\n        const hasSingleColor = _.get(this._chartData, 'custom.singleColor.enabled', false);\n\n        if (this._design) {\n            this._chartData.colors = this._chartData.colors.map((c, index) => {\n                const {match, value} = resolveDesignProperty(this._design, ['CHART'], c);\n                const path = `colors[${index}]`;\n                _.set(this._replacements, path, c);\n                return match ? value : c;\n            });\n\n            if (hasSingleColor) {\n                const singleColor = this._chartData.custom.singleColor.value;\n                const {match, value} = resolveDesignProperty(this._design, ['CHART'], singleColor);\n                if (match) {\n                    this._chartData.custom.singleColor.value = value;\n                    _.set(this._replacements, 'custom.singleColor.value', singleColor);\n                }\n            }\n        }\n\n        // Global colors for chart\n        if (_.isEqual(this._chartData.defaultColors.slice(0, this._chartData.colors.length), this._chartData.colors)) {\n            this._chartData.colors = this._defaultColors.slice(0, this._chartData.colors.length);\n        }\n        // Single color\n        if (hasSingleColor && _.isEqual(this._chartData.defaultColors[0], this._chartData.colors[0])) {\n            this._chartData.custom.singleColor.value = this._defaultColors[0];\n            this._chartData.colors = this._chartData.colors.map(() => this._defaultColors[0]);\n        }\n\n        // Global colors for map\n        if (this._chartData.defaultColorsHeatmap\n                && this._chartData.custom.coldColor === this._chartData.defaultColorsHeatmap[0]\n                && this._chartData.custom.hotColor === this._chartData.defaultColorsHeatmap[1]) {\n            this._chartData.custom.coldColor = this._defaultColorsHeatmap[0];\n            this._chartData.custom.hotColor = this._defaultColorsHeatmap[1];\n        }\n\n\n        this._chartData.sheets_settings.forEach(this._syncSheet, this);\n    }\n\n    get replacements() {\n        return this._replacements;\n    }\n\n    get defaultColors() {\n        return this._defaultColors;\n    }\n\n    get defaultColorsHeatmap() {\n        return this._defaultColorsHeatmap;\n    }\n\n    _syncSheet(s, sheetIndex) {\n        if (!s) {\n            return;\n        }\n\n        this._syncProps(`sheets_settings[${sheetIndex}]`);\n\n        if (!s.colors) {\n            return;\n        }\n        if (this._design) {\n            s.colors = s.colors.map((c, colorIndex) => {\n                const {match, value} = resolveDesignProperty(this._design, ['CHART'], c);\n                _.set(this._replacements, `sheets_settings[${sheetIndex}].colors[${colorIndex}]`, c);\n                return match ? value : c;\n            });\n        }\n\n        if (_.isEqual(this._chartData.defaultColors.slice(0, s.colors.length), s.colors)) {\n            s.colors = this._defaultColors.slice(0, s.colors.length);\n        }\n        // Per sheet single color\n        if (_.get(s, 'singleColor.enabled', false) && _.isEqual(this._chartData.defaultColors[0], s.colors[0])) {\n            s.singleColor.value = this._defaultColors[0];\n            s.colors = s.colors.map(() => this._defaultColors[0]);\n        }\n\n        // Per sheet map settings if any\n        this._chartData.sheets_settings.forEach(s => {\n            if (!s || !s.hotColor || !s.coldColor) return;\n            if (this._chartData.defaultColorsHeatmap\n                    && s.coldColor === this._chartData.defaultColorsHeatmap[0]\n                    && s.hotColor === this._chartData.defaultColorsHeatmap[1]) {\n                s.coldColor = this._defaultColorsHeatmap[0];\n                s.hotColor = this._defaultColorsHeatmap[1];\n            }\n        });\n    }\n\n    _syncProps(path) {\n        if (!this._design) {\n            return;\n        }\n\n        //map-specific properties\n        if (this._chartData.chart_type_nr === 9) {\n            const {groupedColors} = _.get(this._chartData, path, null);\n            if (groupedColors) {\n                for (const key in groupedColors) {\n                    const c = groupedColors[key];\n                    const {match, value} = resolveDesignProperty(this._design, ['CHART'], c);\n                    groupedColors[key] = match ? value : c;\n                    // Here we are using array syntax for path setting because maps ca contain\n                    // replaceKeys with dots and square brackets which are not part of paths.\n                    // eslint-disable-next-line lodash/path-style\n                    _.setWith(this._replacements, [..._.toPath(path), 'groupedColors', key], c, Object);\n                }\n            }\n        }\n\n        const props = _.get(this._chartData, path, null);\n\n        if (!props) {\n            return;\n        }\n\n        const replace = (key) => {\n            const candidate = _.get(props, key);\n            if (candidate && isPlaceholder(candidate)) {\n                const {match, value} = resolveDesignProperty(this._design, ['CHART'], candidate);\n                _.set(props, key, match ? value : null);\n                _.set(this._replacements, `${path}.${key}`, candidate);\n            }\n        };\n\n        chartColorsSync(props, replace);\n    }\n}\n\nmodule.exports = ImmutablePropertyReconciler;\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.search` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.search\ndefineWellKnownSymbol('search');\n","var $ = require('../internals/export');\n\nvar log = Math.log;\nvar LOG10E = Math.LOG10E;\n\n// `Math.log10` method\n// https://tc39.github.io/ecma262/#sec-math.log10\n$({ target: 'Math', stat: true }, {\n  log10: function log10(x) {\n    return log(x) * LOG10E;\n  }\n});\n","import React, {PureComponent} from 'react';\nimport PropTypes from 'prop-types';\nimport ImmutablePropTypes from 'react-immutable-proptypes';\nimport Bowser from 'bowser';\nimport invariant from 'invariant';\nimport uuid from 'uuid';\n\nimport DynamicFiltersProvider from '../filters/DynamicFiltersProvider.react';\nimport {amountOf} from '../filters/utils';\nimport CompatibilityCoverImage from '../FreeLayoutEditor/util/CompatibilityCoverImage.react';\n\nimport cn from './CoverImage.css';\n\n// Detect browser\nconst parser = Bowser.getParser(window.navigator.userAgent);\nconst isInternetExplorerOrEdge = parser.isBrowser(Bowser.BROWSER_MAP.ie)\n    || parser.isBrowser(Bowser.BROWSER_MAP.edge);\n\nconst generateKeyFromFilters = (filters) =>\n    filters.reduce(\n        (processed, value, name) => `${processed}${name}=${value.toFixed(2)}`,\n        '',\n    )\n;\n\n/**\n * Background image that fully covers the available area\n * with optional filter support\n */\nexport default class CoverImage extends PureComponent {\n    static propTypes = {\n        url: PropTypes.string.isRequired,\n        opacity: PropTypes.number,\n        filters: ImmutablePropTypes.mapOf(\n            PropTypes.oneOfType([PropTypes.number, PropTypes.string]), PropTypes.string\n        ),\n    }\n\n    static defaultProps = {\n        opacity: 1.0,\n    }\n\n    /**\n     * Basic simple div with background image\n     */\n    renderSimpleDiv = () =>\n        <div\n            className={cn.backgroundImage}\n            style={{\n                opacity: this.props.opacity,\n                backgroundImage: `url(${this.props.url})`,\n            }}\n        />\n\n    /**\n     * Fake vignette effect for compatibility with Safari <12\n     *\n     * TODO: remove this and use proper SVG filters\n     * when support for old Safari's is dropped\n     */\n    renderVignette = (vignette) =>\n        <div className={cn.vignette} style={{opacity: vignette}}/>\n\n    /**\n     * Background image with compatible SVG filters\n     */\n    renderWithFilters = (filters) => {\n        const {url, opacity} = this.props;\n        const id = uuid();\n\n        const style = {opacity};\n        const filter = {\n            filter: `url(#${id})`,\n            WebkitFilter: `url(#${id})`,\n        };\n\n        return (\n            <>\n                <DynamicFiltersProvider filters={filters} id={id}/>\n                {isInternetExplorerOrEdge\n                    ? (\n                        <CompatibilityCoverImage\n                            url={url}\n                            style={style}\n                            downsample\n                            filter={filter.filter}\n                        />\n                    )\n                    : (\n                        <div\n                            className={cn.backgroundImage}\n                            // if filter has changed, we have to redraw the image\n                            key={generateKeyFromFilters(filters)}\n                            style={{\n                                ...style,\n                                ...filter,\n                                backgroundImage: `url(${url})`,\n                            }}\n                        />\n                    )\n                }\n            </>\n        );\n    }\n\n    render() {\n        const {url, filters} = this.props;\n\n        // Kind of stupid since we have PropTypes, but...\n        // https://github.com/facebook/prop-types/issues/95\n        // TODO: Remove when ^closed or we have migrated to TypeScript\n        invariant(url.length > 0, 'Non-empty string required for <CoverImage/> url prop');\n\n        // just a div\n        if (!filters || filters.isEmpty()) {\n            return this.renderSimpleDiv();\n        }\n\n        // just a div with radial gradient overlay\n        const vignette = amountOf(filters, 'vignette');\n        const svgFilters = filters.delete('vignette');\n        if (vignette && svgFilters.isEmpty()) {\n            return (\n                <>\n                    {this.renderSimpleDiv()}\n                    {this.renderVignette(vignette)}\n                </>\n            );\n        }\n\n        // fire up filter machinery\n        return (\n            <>\n                {this.renderWithFilters(svgFilters)}\n                {!!vignette && this.renderVignette(vignette)}\n            </>\n        );\n    }\n}\n","import PropTypes from 'prop-types';\n\nimport React, {PureComponent} from 'react';\n\nimport {StyledIframe} from '../../../app/freelayout_editor/components/contents/Media/StyledMedia.js';\n\nexport default class Iframe extends PureComponent {\n    static propTypes = {\n        url: PropTypes.string.isRequired,\n        height: PropTypes.string,\n    };\n\n    render() {\n        return (\n            <StyledIframe className=\"moveable\">\n                <iframe\n                    src={this.props.url}\n                    className=\"media-iframe\"\n                    width=\"100%\"\n                    height={this.props.height}\n                    frameBorder=\"0\"\n                    scrolling=\"auto\"\n                    referrerPolicy=\"origin\"\n                    sandbox=\"allow-forms allow-popups allow-scripts allow-same-origin allow-presentation\"\n                />\n            </StyledIframe>\n        );\n    }\n}\n","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n\nvar stylesInDom = {};\n\nvar\tmemoize = function (fn) {\n\tvar memo;\n\n\treturn function () {\n\t\tif (typeof memo === \"undefined\") memo = fn.apply(this, arguments);\n\t\treturn memo;\n\t};\n};\n\nvar isOldIE = memoize(function () {\n\t// Test for IE <= 9 as proposed by Browserhacks\n\t// @see http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805\n\t// Tests for existence of standard globals is to allow style-loader\n\t// to operate correctly into non-standard environments\n\t// @see https://github.com/webpack-contrib/style-loader/issues/177\n\treturn window && document && document.all && !window.atob;\n});\n\nvar getTarget = function (target, parent) {\n  if (parent){\n    return parent.querySelector(target);\n  }\n  return document.querySelector(target);\n};\n\nvar getElement = (function (fn) {\n\tvar memo = {};\n\n\treturn function(target, parent) {\n                // If passing function in options, then use it for resolve \"head\" element.\n                // Useful for Shadow Root style i.e\n                // {\n                //   insertInto: function () { return document.querySelector(\"#foo\").shadowRoot }\n                // }\n                if (typeof target === 'function') {\n                        return target();\n                }\n                if (typeof memo[target] === \"undefined\") {\n\t\t\tvar styleTarget = getTarget.call(this, target, parent);\n\t\t\t// Special case to return head of iframe instead of iframe itself\n\t\t\tif (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n\t\t\t\ttry {\n\t\t\t\t\t// This will throw an exception if access to iframe is blocked\n\t\t\t\t\t// due to cross-origin restrictions\n\t\t\t\t\tstyleTarget = styleTarget.contentDocument.head;\n\t\t\t\t} catch(e) {\n\t\t\t\t\tstyleTarget = null;\n\t\t\t\t}\n\t\t\t}\n\t\t\tmemo[target] = styleTarget;\n\t\t}\n\t\treturn memo[target]\n\t};\n})();\n\nvar singleton = null;\nvar\tsingletonCounter = 0;\nvar\tstylesInsertedAtTop = [];\n\nvar\tfixUrls = require(\"./urls\");\n\nmodule.exports = function(list, options) {\n\tif (typeof DEBUG !== \"undefined\" && DEBUG) {\n\t\tif (typeof document !== \"object\") throw new Error(\"The style-loader cannot be used in a non-browser environment\");\n\t}\n\n\toptions = options || {};\n\n\toptions.attrs = typeof options.attrs === \"object\" ? options.attrs : {};\n\n\t// Force single-tag solution on IE6-9, which has a hard limit on the # of <style>\n\t// tags it will allow on a page\n\tif (!options.singleton && typeof options.singleton !== \"boolean\") options.singleton = isOldIE();\n\n\t// By default, add <style> tags to the <head> element\n        if (!options.insertInto) options.insertInto = \"head\";\n\n\t// By default, add <style> tags to the bottom of the target\n\tif (!options.insertAt) options.insertAt = \"bottom\";\n\n\tvar styles = listToStyles(list, options);\n\n\taddStylesToDom(styles, options);\n\n\treturn function update (newList) {\n\t\tvar mayRemove = [];\n\n\t\tfor (var i = 0; i < styles.length; i++) {\n\t\t\tvar item = styles[i];\n\t\t\tvar domStyle = stylesInDom[item.id];\n\n\t\t\tdomStyle.refs--;\n\t\t\tmayRemove.push(domStyle);\n\t\t}\n\n\t\tif(newList) {\n\t\t\tvar newStyles = listToStyles(newList, options);\n\t\t\taddStylesToDom(newStyles, options);\n\t\t}\n\n\t\tfor (var i = 0; i < mayRemove.length; i++) {\n\t\t\tvar domStyle = mayRemove[i];\n\n\t\t\tif(domStyle.refs === 0) {\n\t\t\t\tfor (var j = 0; j < domStyle.parts.length; j++) domStyle.parts[j]();\n\n\t\t\t\tdelete stylesInDom[domStyle.id];\n\t\t\t}\n\t\t}\n\t};\n};\n\nfunction addStylesToDom (styles, options) {\n\tfor (var i = 0; i < styles.length; i++) {\n\t\tvar item = styles[i];\n\t\tvar domStyle = stylesInDom[item.id];\n\n\t\tif(domStyle) {\n\t\t\tdomStyle.refs++;\n\n\t\t\tfor(var j = 0; j < domStyle.parts.length; j++) {\n\t\t\t\tdomStyle.parts[j](item.parts[j]);\n\t\t\t}\n\n\t\t\tfor(; j < item.parts.length; j++) {\n\t\t\t\tdomStyle.parts.push(addStyle(item.parts[j], options));\n\t\t\t}\n\t\t} else {\n\t\t\tvar parts = [];\n\n\t\t\tfor(var j = 0; j < item.parts.length; j++) {\n\t\t\t\tparts.push(addStyle(item.parts[j], options));\n\t\t\t}\n\n\t\t\tstylesInDom[item.id] = {id: item.id, refs: 1, parts: parts};\n\t\t}\n\t}\n}\n\nfunction listToStyles (list, options) {\n\tvar styles = [];\n\tvar newStyles = {};\n\n\tfor (var i = 0; i < list.length; i++) {\n\t\tvar item = list[i];\n\t\tvar id = options.base ? item[0] + options.base : item[0];\n\t\tvar css = item[1];\n\t\tvar media = item[2];\n\t\tvar sourceMap = item[3];\n\t\tvar part = {css: css, media: media, sourceMap: sourceMap};\n\n\t\tif(!newStyles[id]) styles.push(newStyles[id] = {id: id, parts: [part]});\n\t\telse newStyles[id].parts.push(part);\n\t}\n\n\treturn styles;\n}\n\nfunction insertStyleElement (options, style) {\n\tvar target = getElement(options.insertInto)\n\n\tif (!target) {\n\t\tthrow new Error(\"Couldn't find a style target. This probably means that the value for the 'insertInto' parameter is invalid.\");\n\t}\n\n\tvar lastStyleElementInsertedAtTop = stylesInsertedAtTop[stylesInsertedAtTop.length - 1];\n\n\tif (options.insertAt === \"top\") {\n\t\tif (!lastStyleElementInsertedAtTop) {\n\t\t\ttarget.insertBefore(style, target.firstChild);\n\t\t} else if (lastStyleElementInsertedAtTop.nextSibling) {\n\t\t\ttarget.insertBefore(style, lastStyleElementInsertedAtTop.nextSibling);\n\t\t} else {\n\t\t\ttarget.appendChild(style);\n\t\t}\n\t\tstylesInsertedAtTop.push(style);\n\t} else if (options.insertAt === \"bottom\") {\n\t\ttarget.appendChild(style);\n\t} else if (typeof options.insertAt === \"object\" && options.insertAt.before) {\n\t\tvar nextSibling = getElement(options.insertAt.before, target);\n\t\ttarget.insertBefore(style, nextSibling);\n\t} else {\n\t\tthrow new Error(\"[Style Loader]\\n\\n Invalid value for parameter 'insertAt' ('options.insertAt') found.\\n Must be 'top', 'bottom', or Object.\\n (https://github.com/webpack-contrib/style-loader#insertat)\\n\");\n\t}\n}\n\nfunction removeStyleElement (style) {\n\tif (style.parentNode === null) return false;\n\tstyle.parentNode.removeChild(style);\n\n\tvar idx = stylesInsertedAtTop.indexOf(style);\n\tif(idx >= 0) {\n\t\tstylesInsertedAtTop.splice(idx, 1);\n\t}\n}\n\nfunction createStyleElement (options) {\n\tvar style = document.createElement(\"style\");\n\n\tif(options.attrs.type === undefined) {\n\t\toptions.attrs.type = \"text/css\";\n\t}\n\n\tif(options.attrs.nonce === undefined) {\n\t\tvar nonce = getNonce();\n\t\tif (nonce) {\n\t\t\toptions.attrs.nonce = nonce;\n\t\t}\n\t}\n\n\taddAttrs(style, options.attrs);\n\tinsertStyleElement(options, style);\n\n\treturn style;\n}\n\nfunction createLinkElement (options) {\n\tvar link = document.createElement(\"link\");\n\n\tif(options.attrs.type === undefined) {\n\t\toptions.attrs.type = \"text/css\";\n\t}\n\toptions.attrs.rel = \"stylesheet\";\n\n\taddAttrs(link, options.attrs);\n\tinsertStyleElement(options, link);\n\n\treturn link;\n}\n\nfunction addAttrs (el, attrs) {\n\tObject.keys(attrs).forEach(function (key) {\n\t\tel.setAttribute(key, attrs[key]);\n\t});\n}\n\nfunction getNonce() {\n\tif (typeof __webpack_nonce__ === 'undefined') {\n\t\treturn null;\n\t}\n\n\treturn __webpack_nonce__;\n}\n\nfunction addStyle (obj, options) {\n\tvar style, update, remove, result;\n\n\t// If a transform function was defined, run it on the css\n\tif (options.transform && obj.css) {\n\t    result = typeof options.transform === 'function'\n\t\t ? options.transform(obj.css) \n\t\t : options.transform.default(obj.css);\n\n\t    if (result) {\n\t    \t// If transform returns a value, use that instead of the original css.\n\t    \t// This allows running runtime transformations on the css.\n\t    \tobj.css = result;\n\t    } else {\n\t    \t// If the transform function returns a falsy value, don't add this css.\n\t    \t// This allows conditional loading of css\n\t    \treturn function() {\n\t    \t\t// noop\n\t    \t};\n\t    }\n\t}\n\n\tif (options.singleton) {\n\t\tvar styleIndex = singletonCounter++;\n\n\t\tstyle = singleton || (singleton = createStyleElement(options));\n\n\t\tupdate = applyToSingletonTag.bind(null, style, styleIndex, false);\n\t\tremove = applyToSingletonTag.bind(null, style, styleIndex, true);\n\n\t} else if (\n\t\tobj.sourceMap &&\n\t\ttypeof URL === \"function\" &&\n\t\ttypeof URL.createObjectURL === \"function\" &&\n\t\ttypeof URL.revokeObjectURL === \"function\" &&\n\t\ttypeof Blob === \"function\" &&\n\t\ttypeof btoa === \"function\"\n\t) {\n\t\tstyle = createLinkElement(options);\n\t\tupdate = updateLink.bind(null, style, options);\n\t\tremove = function () {\n\t\t\tremoveStyleElement(style);\n\n\t\t\tif(style.href) URL.revokeObjectURL(style.href);\n\t\t};\n\t} else {\n\t\tstyle = createStyleElement(options);\n\t\tupdate = applyToTag.bind(null, style);\n\t\tremove = function () {\n\t\t\tremoveStyleElement(style);\n\t\t};\n\t}\n\n\tupdate(obj);\n\n\treturn function updateStyle (newObj) {\n\t\tif (newObj) {\n\t\t\tif (\n\t\t\t\tnewObj.css === obj.css &&\n\t\t\t\tnewObj.media === obj.media &&\n\t\t\t\tnewObj.sourceMap === obj.sourceMap\n\t\t\t) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tupdate(obj = newObj);\n\t\t} else {\n\t\t\tremove();\n\t\t}\n\t};\n}\n\nvar replaceText = (function () {\n\tvar textStore = [];\n\n\treturn function (index, replacement) {\n\t\ttextStore[index] = replacement;\n\n\t\treturn textStore.filter(Boolean).join('\\n');\n\t};\n})();\n\nfunction applyToSingletonTag (style, index, remove, obj) {\n\tvar css = remove ? \"\" : obj.css;\n\n\tif (style.styleSheet) {\n\t\tstyle.styleSheet.cssText = replaceText(index, css);\n\t} else {\n\t\tvar cssNode = document.createTextNode(css);\n\t\tvar childNodes = style.childNodes;\n\n\t\tif (childNodes[index]) style.removeChild(childNodes[index]);\n\n\t\tif (childNodes.length) {\n\t\t\tstyle.insertBefore(cssNode, childNodes[index]);\n\t\t} else {\n\t\t\tstyle.appendChild(cssNode);\n\t\t}\n\t}\n}\n\nfunction applyToTag (style, obj) {\n\tvar css = obj.css;\n\tvar media = obj.media;\n\n\tif(media) {\n\t\tstyle.setAttribute(\"media\", media)\n\t}\n\n\tif(style.styleSheet) {\n\t\tstyle.styleSheet.cssText = css;\n\t} else {\n\t\twhile(style.firstChild) {\n\t\t\tstyle.removeChild(style.firstChild);\n\t\t}\n\n\t\tstyle.appendChild(document.createTextNode(css));\n\t}\n}\n\nfunction updateLink (link, options, obj) {\n\tvar css = obj.css;\n\tvar sourceMap = obj.sourceMap;\n\n\t/*\n\t\tIf convertToAbsoluteUrls isn't defined, but sourcemaps are enabled\n\t\tand there is no publicPath defined then lets turn convertToAbsoluteUrls\n\t\ton by default.  Otherwise default to the convertToAbsoluteUrls option\n\t\tdirectly\n\t*/\n\tvar autoFixUrls = options.convertToAbsoluteUrls === undefined && sourceMap;\n\n\tif (options.convertToAbsoluteUrls || autoFixUrls) {\n\t\tcss = fixUrls(css);\n\t}\n\n\tif (sourceMap) {\n\t\t// http://stackoverflow.com/a/26603875\n\t\tcss += \"\\n/*# sourceMappingURL=data:application/json;base64,\" + btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))) + \" */\";\n\t}\n\n\tvar blob = new Blob([css], { type: \"text/css\" });\n\n\tvar oldSrc = link.href;\n\n\tlink.href = URL.createObjectURL(blob);\n\n\tif(oldSrc) URL.revokeObjectURL(oldSrc);\n}\n","import React, {PureComponent} from 'react';\nimport PropTypes from 'prop-types';\n\nimport styled from 'styled-components';\n\nimport {MaskPropShape} from '../../../../../components/FreeLayoutEditor/immutable/Mask';\n\nconst AbsoluteSVG = styled.svg`\n    position: absolute;\n`;\n\n\nclass ImageMask extends PureComponent {\n    static propTypes = {\n        mask: MaskPropShape.isRequired,\n        id: PropTypes.string.isRequired,\n        pathSuffix: PropTypes.string,\n        applyTranslation: PropTypes.bool,\n    };\n\n    static defaultProps = {\n        pathSuffix: 'clip',\n        applyTranslation: true,\n    };\n\n    render() {\n        const {mask, id, pathSuffix, applyTranslation} = this.props;\n\n        const pathTransform = mask.get('pathTransform');\n        const clipPathScale = mask.get('clipPathScale');\n\n        const translate = applyTranslation ? pathTransform.get('translate') : '0 0';\n        const pathProps = {\n            d: mask.get('path'),\n            transform: `translate(${translate}) rotate(${mask.get('rotate')} ${pathTransform.get('origin')})`,\n        };\n\n        return (\n            <AbsoluteSVG\n                width=\"100%\"\n                height=\"100%\"\n                viewBox={`0 0 32 32`}\n                preserveAspectRatio=\"none\"\n            >\n                <defs>\n                    <clipPath\n                        id={`${id}-${pathSuffix}`}\n                        clipPathUnits=\"objectBoundingBox\"\n                        transform={`scale(${clipPathScale})`}\n                    >\n                        <path {...pathProps}/>\n                    </clipPath>\n                </defs>\n            </AbsoluteSVG>\n        );\n    }\n}\n\nexport default ImageMask;\n","\nvar content = require(\"!!../../../../../../node_modules/css-loader/index.js??ref--5-1!./ControlBox.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../../../node_modules/css-loader/index.js??ref--5-1!./ControlBox.css\", function() {\n\t\tvar newContent = require(\"!!../../../../../../node_modules/css-loader/index.js??ref--5-1!./ControlBox.css\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","export const TITLE_EDITOR_START_EDITING = 'title-editor-start-editing';\nexport const TITLE_EDITOR_STOP_EDITING = 'title-editor-stop-editing';\nexport const TITLE_EDITOR_SET_TITLE = 'title-editor-set-title';\nexport const TITLE_EDITOR_INIT = 'title-editor-init';\n\nexport const TITLE_EDITOR_SAVE_REQUEST = 'title-editor-save-request';\nexport const TITLE_EDITOR_SAVE_SUCCEEDED = 'title-editor-save-succeeded';\n\nexport const FLEX_EDITOR_GRID_SHOW_GUIDES = 'flex-editor-grid-show-guides';\nexport const FLEX_EDITOR_GRID_TOGGLE_GUIDES = 'flex-editor-grid-toggle-guides';\nexport const FLEX_EDITOR_GRID_SNAP_OBJECTS = 'flex-editor-grid-snap-objects';\nexport const FLEX_EDITOR_GRID_TOGGLE_SNAP_OBJECTS = 'flex-editor-grid-toggle-snap-objects';\nexport const FLEX_EDITOR_GRID_SET_WHITESPACE_PERCENT = 'flex-editor-grid-set-whitespace-percent';\nexport const FLEX_EDITOR_GRID_SET_COLUMN_COUNT = 'flex-editor-grid-set-column-count';\n\nexport const TRACKING_LINKS_SET_CREATE_MODE = 'tracking-links-set-create-mode';\n\nexport const TRACKING_LINKS_SUBMIT = 'tracking-links-submit';\nexport const TRACKING_LINKS_UPDATE = 'tracking-links-update';\nexport const TRACKING_LINKS_DELETE = 'tracking-links-delete';\n\nexport const TRACKING_LINKS_SAVE_REQUEST = 'tracking-links-save-request';\nexport const TRACKING_LINKS_SAVE_SUCCEEDED = 'tracking-links-save-succeeded';\nexport const TRACKING_LINKS_SUBMITTED = 'tracking-links-submitted';\nexport const TRACKING_LINKS_UPDATE_SUCCEEDED = 'tracking-links-update-succeeded';\nexport const TRACKING_LINKS_DELETE_SUCCEEDED = 'tracking-links-delete-succeeded';\nexport const SOCKET_DISCONNECTED = 'socket-disconnected';\nexport const SOCKET_CONNECTED = 'socket-connected';\nexport const SOCKET_SEND_EVENT = 'socket-send-event';\nexport const SOCKET_RECEIVE_EVENT = 'socket-receive-event';\n\nexport const FLEX_EDITOR_OPEN_PROJECT = 'flex-editor-open-project';\nexport const FLEX_EDITOR_PROJECT_OPENED = 'flex-editor-project-opened';\nexport const FLEX_EDITOR_CLOSE_PROJECT = 'flex-editor-close-project';\nexport const FLEX_EDITOR_SELECTION_CHANGED = 'flex-editor-selection-changed';\nexport const FLEX_EDITOR_USER_CONNECTED = 'flex-editor-user-connected';\nexport const FLEX_EDITOR_USER_DISCONNECTED = 'flex-editor-user-disconnected';\nexport const FLEX_EDITOR_USER_UPDATED = 'flex-editor-user-updated';\nexport const FLEX_EDITOR_CONTENT_SAVING = 'flex-editor-content-saving';\nexport const FLEX_EDITOR_CONTENT_SAVED = 'flex-editor-content-saved';\nexport const FLEX_EDITOR_CONTENT_SAVE_FAILED = 'flex-editor-content-save-failed';\n\nexport const TEAM_INVITE_EMAIL_TOKEN_DELETE = 'team_invite_email_token_delete';\nexport const TEAM_INVITE_EMAIL_TOKEN_DELETE_SELECTED = 'team_invite_email_token_delete_selected';\nexport const TEAM_INVITE_EMAIL_TOKEN_SELECT_ALL = 'team_invite_email_token_select_all';\nexport const TEAM_INVITE_EMAIL_TOKEN_DESELECT_ALL = 'team_invite_email_token_deselect_all';\nexport const TEAM_INVITE_EMAIL_TOKEN_CREATE = 'team_invite_email_token_create';\nexport const TEAM_INVITE_EMAIL_TOKEN_UNDO = 'team_invite_email_token_undo';\nexport const TEAM_INVITE_EMAIL_TOKEN_REDO = 'team_invite_email_token_redo';\nexport const TEAM_INVITE_EMAIL_TOKEN_EDIT = 'team_invite_email_token_edit';\nexport const TEAM_INVITE_EMAIL_TOKEN_SELECT = 'team_invite_email_token_select';\nexport const TEAM_INVITE_EMAIL_TOKEN_UPDATE_VALUE = 'team_invite_email_token_update_value';\nexport const TEAM_INVITE_EMAIL_TOKEN_UPDATE_INPUT = 'team_invite_email_token_update_input';\nexport const TEAM_INVITE_EMAIL_TOKEN_UPDATE_INPUT_WIDTH = 'team_invite_email_token_update_input_width';\nexport const TEAM_INVITE_EMAIL_TOKEN_RESET_STATE = 'team_invite_email_token_reset_state';\n\nexport const FOOTER_SETTINGS_SET_BACKGROUND_COLOR = 'footer-settings-set-background-color';\nexport const FOOTER_SETTINGS_SET_BACKGROUND_OPACITY = 'footer-settings-set-background-opacity';\nexport const FOOTER_SETTINGS_SET_FOOTER_LAYOUT = 'footer-settings-set-footer-layout';\nexport const FOOTER_SETTINGS_SET_FOOTNOTE_TYPE = 'footer-settings-set-footnote-type';\nexport const FOOTER_SETTINGS_SET_FOOTNOTE_TEXT = 'footer-settings-set-footnote-text';\nexport const FOOTER_SETTINGS_SET_LOGO_TYPE = 'footer-settings-set-logo-type';\nexport const FOOTER_SETTINGS_SET_LOGO_VALUE = 'footer-settings-set-logo-value';\nexport const FOOTER_SETTINGS_SET_FONT_STYLE = 'footer-settings-set-font-style';\nexport const FOOTER_SETTINGS_SET_FONT_SIZE = 'footer-settings-set-font-size';\nexport const FOOTER_SETTINGS_SET_TEXT_COLOR = 'footer-settings-set-text-color';\nexport const FOOTER_SETTINGS_TOGGLE_CUSTOM_LINK = 'footer-settings-toggle-custom-link';\nexport const FOOTER_SETTINGS_SET_CUSTOM_LINK = 'footer-settings-set-custom-link';\nexport const FOOTER_SETTINGS_SET_CUSTOM_LINK_OPTION = 'footer-settings-set-custom-link-option';\nexport const FOOTER_SETTINGS_SET_BUTTON_BACKGROUND_COLOR = 'footer-settings-set-button-background-color';\nexport const FOOTER_SETTINGS_SET_BUTTON_TEXT_COLOR = 'footer-settings-set-button-text-color';\nexport const FOOTER_SETTINGS_SET_BUTTON_TEXT = 'footer-settings-set-button-text';\nexport const FOOTER_SETTINGS_SET_PAGINATION_FORMAT = 'footer-settings-set-pagination-format';\nexport const FOOTER_SETTINGS_SET_PAGINATION_STARTING_NUMBER = 'footer-settings-set-pagination-starting-number';\nexport const FOOTER_SETTINGS_SET_LOGO_LINK = 'footer-settings-set-logo-link';\nexport const FOOTER_SETTINGS_SET_LOGO_NAME = 'footer-settings-set-logo-name';\nexport const FOOTER_SETTINGS_SET_FOOTER_VISIBILITY = 'footer-settings-set-footer-visibility';\n\nexport const MOUSE_MOVE = 'MOUSE_MOVE';\n\nexport const UPLOAD_FILES = 'upload-files';\n\nexport const ACCOUNT_UPGRADE_INITIALIZE = 'account-upgrade-initialize';\nexport const ACCOUNT_UPGRADE_DATA_LOADED = 'account-upgrade-data-loaded';\nexport const ACCOUNT_UPGRADE_SET_TAB = 'account-upgrade-set-tab';\n\nexport const ACCOUNT_UPGRADE_SET_DISCOUNT_CODE = 'account-upgrade-set-discount-code';\nexport const ACCOUNT_UPGRADE_SET_DISCOUNT_CODE_STATUS = 'account-upgrade-set-discount-code-status';\nexport const ACCOUNT_UPGRADE_SET_DISCOUNT_CODE_ENABLED = 'account-upgrade-set-discount-code-enabled';\n\nexport const ACCOUNT_UPGRADE_SET_CLIENT_TOKEN = 'account-upgrade-set-client-token';\nexport const ACCOUNT_UPGRADE_SET_DEVICE_DATA = 'account-upgrade-set-device-data';\nexport const ACCOUNT_UPGRADE_SET_PAYMENT_METHOD_DATA = 'account-upgrade-set-payment-method-data';\n\nexport const ACCOUNT_UPGRADE_SUBMIT = 'account-upgrade-submit';\nexport const ACCOUNT_UPGRADE_SUBMIT_UPGRADE = 'account-upgrade-submit-upgrade';\nexport const ACCOUNT_UPGRADE_SUBMIT_STATUS = 'account-upgrade-submit-status';\n\nexport const ACCOUNT_UPGRADE_SET_PLAN = 'account-upgrade-set-plan';\nexport const ACCOUNT_UPGRADE_SET_COUNTRY = 'account-upgrade-set-country';\nexport const ACCOUNT_UPGRADE_SET_VAT_NUMBER = 'account-upgrade-set-vat-number';\nexport const ACCOUNT_UPGRADE_SET_IS_COMPANY = 'account-upgrade-set-is-company';\nexport const ACCOUNT_UPGRADE_SET_TEAM_SIZE = 'account-upgrade-set-team-size';\nexport const ACCOUNT_UPGRADE_SET_TEAM_DATA = 'account-upgrade-set-team-data';\n\nexport const TEAM_EVENT_CONVERSATION = 'team-event-conversation';\n\nexport const SET_ANIMATION_PREVIEW = 'set-animation-preview';\nexport const UNSET_ANIMATION_PREVIEW = 'unset-animation-preview';\nexport const SET_ANIMATION_CLIPBOARD = 'set-animation-clipboard';\n\nexport const CREATE_NEW_PROJECT = 'create-new-project';\nexport const CREATE_NEW_PROJECT_SUCCEEDED = 'create-new-project-succeeded';\nexport const CREATE_NEW_PROJECT_FAILED = 'create-new-project-failed';\n\nexport const NAVIGATE_TO_PROJECT = 'navigate-to-project';\nexport const NAVIGATE_TO_DASHBOARD = 'navigate-to-dashbaord';\nexport const NAVIGATE_TO_DOWNLOAD = 'navigate-to-download';\nexport const CREATE_FROM_TEMPLATE = 'create-from-template';\nexport const GET_TEMPLATE_DATA = 'get-template-data';\nexport const GET_TEMPLATE_DATA_SUCCEEDED = 'get-template-data-succeeded';\nexport const GET_TEMPLATE_DATA_FAILED = 'get-template-data-failed';\nexport const SET_HIGHLIGHT = 'set-highlight';\nexport const REMOVE_HIGHLIGHTS = 'remove-highlight';\nexport const LOAD_PREZIGRAM_PREVIEW = 'load-prezigram-preview';\n","// https://github.com/zloirock/core-js/issues/280\nvar userAgent = require('../internals/user-agent');\n\n// eslint-disable-next-line unicorn/no-unsafe-regex\nmodule.exports = /Version\\/10\\.\\d+(\\.\\d+)?( Mobile\\/\\w+)? Safari\\//.test(userAgent);\n","var NATIVE_WEAK_MAP = require('../internals/native-weak-map');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar hide = require('../internals/hide');\nvar objectHas = require('../internals/has');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n  return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n  return function (it) {\n    var state;\n    if (!isObject(it) || (state = get(it)).type !== TYPE) {\n      throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n    } return state;\n  };\n};\n\nif (NATIVE_WEAK_MAP) {\n  var store = new WeakMap();\n  var wmget = store.get;\n  var wmhas = store.has;\n  var wmset = store.set;\n  set = function (it, metadata) {\n    wmset.call(store, it, metadata);\n    return metadata;\n  };\n  get = function (it) {\n    return wmget.call(store, it) || {};\n  };\n  has = function (it) {\n    return wmhas.call(store, it);\n  };\n} else {\n  var STATE = sharedKey('state');\n  hiddenKeys[STATE] = true;\n  set = function (it, metadata) {\n    hide(it, STATE, metadata);\n    return metadata;\n  };\n  get = function (it) {\n    return objectHas(it, STATE) ? it[STATE] : {};\n  };\n  has = function (it) {\n    return objectHas(it, STATE);\n  };\n}\n\nmodule.exports = {\n  set: set,\n  get: get,\n  has: has,\n  enforce: enforce,\n  getterFor: getterFor\n};\n","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"._2kQBfxZ6pQ1qXjx2KQAJLm {\\n    position: absolute;\\n    bottom: 0;\\n    left: 0;\\n    right: 0;\\n    background: #fff;\\n    padding: 30px 10px;\\n    text-align: center;\\n}\\n._2Od4vb9GloUow2AmKcoIaQ {\\n    margin: 30px 0 5px;\\n    font-size: 15px;\\n    color: #696969;\\n}\\n._2Od4vb9GloUow2AmKcoIaQ a {\\n    color: #2C78A0;\\n}\\n._2Od4vb9GloUow2AmKcoIaQ a:hover {\\n    color: #146088;\\n    text-decoration: underline;\\n}\\n._2R81q8N3X16YBaMV6fQaWy {\\n    color: #696969;\\n    font-size: 11px;\\n    line-height: 20px;\\n}\\n\\n@media screen and (max-width: 960px) {\\n    ._2kQBfxZ6pQ1qXjx2KQAJLm {\\n        position: static;\\n    }\\n}\\n\", \"\"]);\n\n// exports\nexports.locals = {\n\t\"container\": \"_2kQBfxZ6pQ1qXjx2KQAJLm\",\n\t\"copyright\": \"_2Od4vb9GloUow2AmKcoIaQ\",\n\t\"trademark\": \"_2R81q8N3X16YBaMV6fQaWy\"\n};","import React, {Suspense, useState, ReactNode, ComponentProps} from 'react';\nimport ReactDOM from 'react-dom';\n\nimport Spinner from '../widgets/spinner';\n\ninterface DialogState {\n    dialogComponent?: ReactNode;\n    openDialog?: (dialogComponent: ReactNode) => void;\n    closeDialog?: () => void;\n}\n\nconst initState: DialogState = {\n    dialogComponent: null,\n    openDialog: null,\n    closeDialog: null,\n};\n\nconst DialogContext = React.createContext(initState);\n\n/**\n * Wrapper for react root components that provides the dialog context\n * and appropriate functions that change the context values.\n */\nconst DialogProvider: React.FC = (props) => {\n    const [dialogComponent, openDialog] = useState<ReactNode | null>(null);\n    const closeDialog = () => openDialog(null);\n    const value: DialogState = {\n        dialogComponent,\n        openDialog,\n        closeDialog,\n    };\n\n    const dialogRootId = 'dialogRoot';\n    let container = document.getElementById(dialogRootId);\n\n    // if is not defined statically, make one\n    if (!container) {\n        container = document.createElement('div');\n        container.id = dialogRootId;\n        document.body.appendChild(container);\n    }\n\n    const portal = ReactDOM.createPortal(\n        <Suspense fallback={<Spinner/>}>\n            {dialogComponent}\n        </Suspense>,\n        container\n    );\n\n    return (\n        <DialogContext.Provider value={value}>\n            {portal}\n            {props.children}\n        </DialogContext.Provider>\n    );\n};\n\nexport default DialogProvider;\n\n/**\n * Decorator function that allows the use of the openDialog function.\n * Example:\n * @example\n * ```js\n @withDialogs()\n class Example extends Component {\n    componentDidMount() {\n        this.props.openDialog(<SomeDialogComponent/>);\n    }\n    ...\n }\n * ```\n */\nexport const withDialogs = () => (WrappableComponent) => {\n    const Wrapper: React.FC<ComponentProps<typeof WrappableComponent>> = (props) => {\n        return (\n            <DialogContext.Consumer>\n                {dialogState => (\n                    <WrappableComponent\n                        {...props}\n                        openDialog = {dialogState.openDialog}\n                        closeDialog = {dialogState.closeDialog}\n                    />\n                )}\n            </DialogContext.Consumer>\n        );\n    };\n    Wrapper.displayName = 'Dialog' + WrappableComponent.displayName;\n    return Wrapper;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n  /*eslint no-param-reassign:0*/\n  utils.forEach(fns, function transform(fn) {\n    data = fn(data, headers);\n  });\n\n  return data;\n};\n","import React, {Component} from 'react';\nimport PropTypes from 'prop-types';\nimport styled, {keyframes, css} from 'styled-components';\n\nimport PrezigramTheme from '../../contexts/theme/prezigram';\n\nimport keyCodes from '../../common/keys';\n\nconst fromTop = keyframes`\n    0% {\n        transform: translateY(-20%);\n        opacity: 0.5;\n    }\n\n    100% {\n        transform: translateY(0);\n        opacity: 1;\n    }\n`;\n\nconst CloseButton = styled.div`\n    position: absolute;\n    top: 8px;\n    right: 8px;\n    z-index: 100;\n    width: 12px;\n    height: 12px;\n    cursor: pointer;\n    background: url(${require('./icon-cancel-dark.svg')}) center no-repeat;\n    background-size: contain;\n\n    &:hover {\n        color: #656565;\n    }\n`;\n\nconst DialogContainer = styled.div`\n    position: fixed;\n    top: 0;\n    left: 0;\n    width: 100%;\n    height: 100%;\n    z-index: 100000;\n`;\n\nconst DialogOverlay = styled.div`\n    background-color: rgba(0, 0, 0, 0.7);\n    width: 100%;\n    height: 100%;\n    position: absolute;\n    top: 0;\n    left: 0;\n    display: flex;\n    justify-content: center;\n    align-items: center;\n`;\n\nconst DialogContent = styled.div`\n    letter-spacing: -0.3px;\n    box-sizing: border-box;\n    text-align: center;\n    border-radius: 4px;\n    position: relative;\n    ${props => props.animation && css`\n        animation-name: ${fromTop};\n        animation-duration: 350ms;\n        animation-timing-function: cubic-bezier(0.23, 1, 0.32, 1);\n    `};\n    color: #ffffff;\n    width: 940px;\n\n    ${({theme}) => theme.id === PrezigramTheme.id && `\n        width: 400px;\n        box-shadow: ${PrezigramTheme.shadow.default};\n    `}\n`;\n\nclass Dialog extends Component {\n    static propTypes = {\n        modal: PropTypes.bool,\n        open: PropTypes.bool,\n        children: PropTypes.node,\n        customCss: PropTypes.string,\n        closeButtonCss: PropTypes.string,\n        animation: PropTypes.bool,\n        onClose: PropTypes.func,\n        onKeyUp: PropTypes.func,\n        onApply: PropTypes.func,\n    };\n\n    static defaultProps = {\n        animation: true,\n    };\n\n    constructor(props) {\n        super(props);\n\n        this._dialog = React.createRef();\n    }\n\n    componentDidMount() {\n        document.addEventListener('keydown', this.onKeyDown, false);\n        // Focus needs to be set when mounting and already open\n        if (this.props.open) {\n            this.focus();\n        }\n    }\n\n    componentWillUnmount() {\n        document.removeEventListener('keydown', this.onKeyDown, false);\n    }\n\n    focus = () => {\n        if (this._dialog.current) {\n            this._dialog.current.focus();\n        }\n    };\n\n    stopPropagation = (e) => {\n        e.stopPropagation();\n    };\n\n    onKeyDown = (e) => {\n        if (e.keyCode === keyCodes.ESCAPE && !this.props.modal) {\n            this.props.onClose();\n        } else if (this.props.onApply && e.keyCode === keyCodes.ENTER) {\n            this.props.onApply();\n        }\n    };\n\n    render() {\n        if (!this.props.open) return null;\n        return (\n            <DialogContainer>\n                <DialogOverlay\n                    onKeyUp={this.props.onKeyUp}\n                    onClick={this.props.onClose}\n                >\n                    <DialogContent\n                        css={this.props.customCss}\n                        ref={this._dialog}\n                        onClick={this.stopPropagation}\n                        animation={this.props.animation}\n                    >\n                        {this.props.children}\n                        {!this.props.modal && (\n                            <CloseButton\n                                onClick={this.props.onClose}\n                                css={this.props.closeButtonCss}\n                            />\n                        )}\n                    </DialogContent>\n                </DialogOverlay>\n            </DialogContainer>\n        );\n    }\n}\n\nexport default Dialog;\n","var global = require('../internals/global');\nvar trim = require('../internals/string-trim').trim;\nvar whitespaces = require('../internals/whitespaces');\n\nvar nativeParseFloat = global.parseFloat;\nvar FORCED = 1 / nativeParseFloat(whitespaces + '-0') !== -Infinity;\n\n// `parseFloat` method\n// https://tc39.github.io/ecma262/#sec-parsefloat-string\nmodule.exports = FORCED ? function parseFloat(string) {\n  var trimmedString = trim(String(string));\n  var result = nativeParseFloat(trimmedString);\n  return result === 0 && trimmedString.charAt(0) == '-' ? -0 : result;\n} : nativeParseFloat;\n","var DESCRIPTORS = require('../internals/descriptors');\nvar objectKeys = require('../internals/object-keys');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar propertyIsEnumerable = require('../internals/object-property-is-enumerable').f;\n\n// `Object.{ entries, values }` methods implementation\nvar createMethod = function (TO_ENTRIES) {\n  return function (it) {\n    var O = toIndexedObject(it);\n    var keys = objectKeys(O);\n    var length = keys.length;\n    var i = 0;\n    var result = [];\n    var key;\n    while (length > i) {\n      key = keys[i++];\n      if (!DESCRIPTORS || propertyIsEnumerable.call(O, key)) {\n        result.push(TO_ENTRIES ? [key, O[key]] : O[key]);\n      }\n    }\n    return result;\n  };\n};\n\nmodule.exports = {\n  // `Object.entries` method\n  // https://tc39.github.io/ecma262/#sec-object.entries\n  entries: createMethod(true),\n  // `Object.values` method\n  // https://tc39.github.io/ecma262/#sec-object.values\n  values: createMethod(false)\n};\n","import PropTypes from 'prop-types';\nimport React, {PureComponent} from 'react';\nimport ImmutablePropTypes from 'react-immutable-proptypes';\nimport {Set} from 'immutable';\nimport cx from 'classnames';\n\nimport AccountLogic from '../../../views/account_logic';\nimport ContentBlock from './ContentBlock';\nimport PageIntersectionObserver from '../../IntersectionObserver/PageIntersectionObserver';\n\nexport default class InfographicContents extends PureComponent {\n    static propTypes = {\n        accessibleReadingOrder: PropTypes.bool.isRequired,\n        editorState: PropTypes.any.isRequired,\n        readOnly: PropTypes.bool,\n        scaleX: PropTypes.number,\n        scaleY: PropTypes.number,\n        renderItemContentsFn: PropTypes.func,\n        onEntityMouseDown: PropTypes.func,\n        onEntityMouseUp: PropTypes.func,\n        onSelectionChange: PropTypes.func,\n        multiSelectionOverlayComponent: PropTypes.any,\n        entityOverlayComponent: PropTypes.any,\n        connectorEntityOverlays: PropTypes.any,\n        entityBoundingBoxComponent: PropTypes.any,\n        blockWrapperComponent: PropTypes.any,\n        blockOverlayComponent: PropTypes.any,\n        transparentBackground: PropTypes.bool,\n        multiSelectionActive: PropTypes.bool,\n        interactivityHintEnabled: PropTypes.bool,\n        pageOverlay: PropTypes.node,\n        groupsInEditMode: PropTypes.object,\n        currentSelection: PropTypes.any.isRequired,\n        guideSettings: ImmutablePropTypes.contains({\n            showGuides: PropTypes.bool.isRequired,\n            snapObjects: PropTypes.bool.isRequired,\n            whitespacePercent: PropTypes.number.isRequired,\n            columnCount: PropTypes.number.isRequired,\n            rowSpacing: PropTypes.number.isRequired,\n        }),\n        commentComponent: PropTypes.any,\n        commentingTooltipComponent: PropTypes.any,\n        commentingIsAvailable: PropTypes.bool,\n        onAddComment: PropTypes.func,\n        thumbsView: PropTypes.bool,\n        registerDOMNode: PropTypes.bool,\n        pageUpgradeComponent: PropTypes.any,\n        calloutsComponent: PropTypes.any,\n    };\n\n    pageIntersectionObserver = new PageIntersectionObserver();\n\n    render() {\n        const {\n            editorState,\n            currentSelection: selection,\n            groupsInEditMode,\n        } = this.props;\n        const selectedEntities = editorState.getEntities(selection.getEntities());\n        const blocks = editorState.getCurrentContent().getBlocks();\n        const pageSize = editorState.getPageSize();\n        const PageUpgradeFooter = this.props.pageUpgradeComponent;\n\n        return (\n            <div className={cx('InfographicEditor-Contents', this.props.thumbsView && 'InfographicEditor-Thumbs')}>\n                {blocks.map((block, index) => {\n                    let customFooterButton = null;\n                    if (PageUpgradeFooter && !this.props.readOnly && index + 1 === AccountLogic.avalablePagesInFlex) { // After last page put an upgrade button\n                        customFooterButton = (\n                            <PageUpgradeFooter/>\n                        );\n                    }\n                    if (!this.props.readOnly && index >= AccountLogic.avalablePagesInFlex) return null; // For all other pages just hide them\n                    const selectedBlockEntities = Set(selectedEntities.filter(entity => {\n                        return entity.getBlockKey() === block.getKey();\n                    }).keys());\n                    let component = (\n                        <ContentBlock\n                            key={block.getKey()}\n                            accessibleReadingOrder={this.props.accessibleReadingOrder}\n                            readOnly={this.props.readOnly}\n                            editorState={editorState}\n                            assets={editorState.getAssets()}\n                            block={block}\n                            index={index}\n                            pageCount={blocks.size}\n                            scaleX={this.props.scaleX}\n                            scaleY={this.props.scaleY}\n                            groupsInEditMode={groupsInEditMode}\n                            onEntityMouseDown={this.props.onEntityMouseDown}\n                            onEntityMouseUp={this.props.onEntityMouseUp}\n                            multiSelectionOverlayComponent={this.props.multiSelectionOverlayComponent}\n                            entityOverlayComponent={this.props.entityOverlayComponent}\n                            connectorEntityOverlays={this.props.connectorEntityOverlays}\n                            entityBoundingBoxComponent={this.props.entityBoundingBoxComponent}\n                            multiSelectionActive={this.props.multiSelectionActive}\n                            renderItemContentsFn={this.props.renderItemContentsFn}\n                            blockOverlayComponent={this.props.blockOverlayComponent}\n                            transparentBackground={this.props.transparentBackground}\n                            pageOverlay={this.props.pageOverlay}\n                            selectedEntities={selectedBlockEntities}\n                            guideSettings={this.props.guideSettings}\n                            onSelectionChange={this.props.onSelectionChange}\n                            interactivityHintEnabled={this.props.interactivityHintEnabled}\n                            commentComponent={this.props.commentComponent}\n                            commentingTooltipComponent={this.props.commentingTooltipComponent}\n                            commentingIsAvailable={this.props.commentingIsAvailable}\n                            onAddComment={this.props.onAddComment}\n                            thumbsView={this.props.thumbsView}\n                            interactive={!this.props.thumbsView}\n                            registerDOMNode={this.props.registerDOMNode}\n                            calloutsComponent={this.props.calloutsComponent}\n                        />\n                    );\n                    const Wrapper = this.props.blockWrapperComponent;\n                    if (Wrapper) {\n                        component = (\n                            <Wrapper\n                                key={block.getKey()}\n                                width={pageSize.width * this.props.scaleX}\n                                height={pageSize.height * this.props.scaleY}\n                                scaleX={this.props.scaleX}\n                                scaleY={this.props.scaleY}\n                                block={block}\n                                assets={editorState.getAssets()}\n                                index={index}\n                                selected={selection.containsBlock(block.getKey())}\n                                commentingIsAvailable={this.props.commentingIsAvailable}\n                                onAddComment={this.props.onAddComment}\n                                customFooterButton={customFooterButton}\n                                editable={!this.props.thumbsView}\n                                observer={this.pageIntersectionObserver}\n                                onSelectionChange={this.props.onSelectionChange}\n                            >\n                                {component}\n                            </Wrapper>\n                        );\n                    }\n\n                    return component;\n                })}\n            </div>\n        );\n    }\n}\n","import {INTERSECTION_OBSERVER_SUPPORTED, IntersectionObserverListener} from './IntersectionObserverListener';\nimport {getWindowSize, checkIntersections} from './common';\n\nconst CUSTOM_SCROLL_EVENT = 'custom_scroll_event';\n\nconst isTopFrame = window.self === window.top;\nlet isFriendlyFrame = false;\nif (!isTopFrame) {\n    isFriendlyFrame = window.location.hash === '#async_embed';\n}\n\nclass Observer {\n    constructor(root) {\n        this.observedElements = new Map();\n        this.root = root;\n        this.fillers = [];\n        this.viewportOffset = {left: 0, top: 0};\n        this.parentRootBounds = {left: 0, top: 0, right: 0, bottom: 0, width: 0, height: 0};\n\n        if (INTERSECTION_OBSERVER_SUPPORTED) {\n            this.intersectionObserverListener = new IntersectionObserverListener((rootBounds) => {\n                this.parentRootBounds = rootBounds;\n                this.documentBounds = this.root && this.root.getBoundingClientRect();\n                this.notifyObserved(checkIntersections(this.observedElements, this.viewportOffset, this.parentRootBounds));\n            });\n            if (this.root) {\n                this.intersectionObserverListener.setRoot(this.root);\n            }\n            window.addEventListener(CUSTOM_SCROLL_EVENT, this.viewportChanged);\n        } else if (isTopFrame) {\n            this.listenViewportChanges();\n        } else if (isFriendlyFrame) {\n            window.addEventListener('IFRAME_POSITION_CHANGE', this.onIFramePositionChange);\n            window.addEventListener(CUSTOM_SCROLL_EVENT, this.viewportChanged);\n        } else {\n            window.addEventListener(CUSTOM_SCROLL_EVENT, this.viewportChanged);\n        }\n    }\n\n\n\n    notifyObserved(observerEntries) {\n        observerEntries.forEach(entry => {\n            for (const callback of this.observedElements.get(entry.target).keys()) {\n                callback(entry);\n            }\n        });\n    }\n\n    setRoot(root) {\n        if (INTERSECTION_OBSERVER_SUPPORTED) {\n            this.root = root;\n            this.intersectionObserverListener.setRoot(root);\n        }\n    }\n\n    destroy() {\n        this.observedElements.forEach((callbacks, element) => {\n            for (const callback in callbacks.keys()) {\n                callbacks.delete(callback);\n            }\n            this.observedElements.delete(element);\n        });\n\n        if (this.delayedViewportChange) {\n            cancelAnimationFrame(this.delayedViewportChange);\n            this.delayedViewportChange = null;\n        }\n\n        if (INTERSECTION_OBSERVER_SUPPORTED) {\n            this.intersectionObserverListener.destroy();\n            window.removeEventListener(CUSTOM_SCROLL_EVENT, this.viewportChanged);\n        } else if (isTopFrame) {\n            this.unlistenViewportChanges();\n        } else {\n            window.removeEventListener('IFRAME_POSITION_CHANGE', this.onIFramePositionChange);\n            window.removeEventListener(CUSTOM_SCROLL_EVENT, this.viewportChanged);\n        }\n    }\n\n    listenViewportChanges() {\n        window.addEventListener('scroll', this.viewportChanged);\n        window.addEventListener('resize', this.viewportChanged);\n        window.addEventListener(CUSTOM_SCROLL_EVENT, this.viewportChanged);\n    }\n\n    unlistenViewportChanges() {\n        window.removeEventListener('scroll', this.viewportChanged);\n        window.removeEventListener('resize', this.viewportChanged);\n        window.removeEventListener(CUSTOM_SCROLL_EVENT, this.viewportChanged);\n    }\n\n    getSmallerObjectVisibilityRatio(event) {\n        const root = this.getRootBounds();\n        const maxIntersectionWidth = Math.min(event.boundingClientRect.width, root.width);\n        const maxIntersectionHeight = Math.min(event.boundingClientRect.height, root.height);\n        const maxIntersectionSize = maxIntersectionWidth * maxIntersectionHeight;\n        const intersectionSize = event.intersectionRect.width * event.intersectionRect.height;\n        return intersectionSize / maxIntersectionSize;\n    }\n\n    getMaxObjectTopRatio(event) {\n        if (this.documentBounds) {\n            const objectTop = this.documentBounds.bottom - event.boundingClientRect.top;\n            const maxRatio = objectTop / this.documentBounds.bottom;\n            return Number.isNaN(maxRatio) ? 1 : Math.floor(maxRatio*100)/100;\n        }\n        return 1;\n    }\n\n    getObjectTopRatio(event) {\n        const root = this.getRootBounds();\n        const result = (root.top + root.height - event.boundingClientRect.top) / root.height;\n        return Number.isNaN(result) ? 1 : result;\n    }\n\n    getObjectCenterVerticalRatio(event) {\n        const root = this.getRootBounds();\n        const objectCenterY = event.boundingClientRect.top + event.boundingClientRect.height / 2;\n        const result = (root.top + root.height - objectCenterY) / root.height;\n        return Number.isNaN(result) ? 1 : result;\n    }\n\n    add(element, callback) {\n        let callbacks = this.observedElements.get(element);\n        if (!callbacks) {\n            callbacks = new Set();\n            this.observedElements.set(element, callbacks);\n        }\n\n        callbacks.add(callback);\n        this.viewportChanged();\n    }\n\n    remove(element, callback) {\n        const callbacks = this.observedElements.get(element);\n        if (callbacks) {\n            if (callback) {\n                callbacks.delete(callback);\n                if (callbacks.size == 0) {\n                    this.observedElements.delete(element);\n                }\n            } else {\n                this.observedElements.delete(element);\n            }\n        }\n    }\n\n    viewportChanged = () => {\n        if (!this.delayedViewportChange) {\n            this.delayedViewportChange = requestAnimationFrame(() => {\n                this.delayedViewportChange = null;\n                this.documentBounds = this.root && this.root.getBoundingClientRect();\n                this.notifyObserved(checkIntersections(this.observedElements, this.viewportOffset, this.getRootBounds()));\n            });\n        }\n    };\n\n    getRootBounds() {\n        if (isTopFrame) {\n            const {width, height} = getWindowSize();\n\n            const left = 0;\n            const top = 0;\n\n            return {\n                left,\n                right: left + width,\n                top,\n                bottom: top + height,\n                width,\n                height,\n            };\n        } else if (isFriendlyFrame || INTERSECTION_OBSERVER_SUPPORTED) {\n            return this.parentRootBounds;\n        }\n        return {\n            left: Number.NEGATIVE_INFINITY,\n            right: Number.POSITIVE_INFINITY,\n            top: Number.NEGATIVE_INFINITY,\n            bottom: Number.POSITIVE_INFINITY,\n            width: Number.POSITIVE_INFINITY,\n            height: Number.POSITIVE_INFINITY,\n        };\n    }\n\n    onIFramePositionChange = (e) => {\n        this.viewportOffset = e.detail.rect;\n        this.parentRootBounds = e.detail.root;\n        this.viewportChanged();\n    };\n}\n\nexport function notifiyAboutCustomScroll() {\n    let event;\n    if (typeof(Event) === 'function') {\n        event = new Event(CUSTOM_SCROLL_EVENT);\n    } else {\n        event = document.createEvent('Event');\n        event.initEvent(CUSTOM_SCROLL_EVENT, true, true);\n    }\n\n    window.dispatchEvent(event);\n}\n\nexport default Observer;\n","// Generated by CoffeeScript 1.12.2\n(function() {\n  var getNanoSeconds, hrtime, loadTime, moduleLoadTime, nodeLoadTime, upTime;\n\n  if ((typeof performance !== \"undefined\" && performance !== null) && performance.now) {\n    module.exports = function() {\n      return performance.now();\n    };\n  } else if ((typeof process !== \"undefined\" && process !== null) && process.hrtime) {\n    module.exports = function() {\n      return (getNanoSeconds() - nodeLoadTime) / 1e6;\n    };\n    hrtime = process.hrtime;\n    getNanoSeconds = function() {\n      var hr;\n      hr = hrtime();\n      return hr[0] * 1e9 + hr[1];\n    };\n    moduleLoadTime = getNanoSeconds();\n    upTime = process.uptime() * 1e9;\n    nodeLoadTime = moduleLoadTime - upTime;\n  } else if (Date.now) {\n    module.exports = function() {\n      return Date.now() - loadTime;\n    };\n    loadTime = Date.now();\n  } else {\n    module.exports = function() {\n      return new Date().getTime() - loadTime;\n    };\n    loadTime = new Date().getTime();\n  }\n\n}).call(this);\n\n//# sourceMappingURL=performance-now.js.map\n","import PropTypes from 'prop-types';\nimport React, {PureComponent} from 'react';\n\nimport {\n    TRAPEZIUM_DEFAULT_OFFSET,\n} from './constants';\n\nconst defaultSize = {\n    triangle: {width: 200, height: 200},\n    polygon: {width: 256, height: 244},\n    hexagon: {width: 260, height: 200},\n    rhombus: {width: 300, height: 200},\n    parallelogramLeft: {width: 267, height: 200},\n    parallelogramRight: {width: 267, height: 200},\n    trapeziumUp: {width: 200, height: 150},\n    trapeziumDown: {width: 200, height: 150},\n};\n\nconst pointsForTriangle = (width, height, borderWidth) => {\n    const topAngle = Math.atan((width / 2) / height) * 2;\n    const bottomAngle = (Math.PI - topAngle) / 2;\n    const topY = borderWidth / Math.sin(topAngle / 2) / 2;\n    const bottomY = borderWidth / 2;\n    const bottomX = bottomY / Math.tan(bottomAngle / 2);\n    return [\n        width / 2,       // x1\n        topY,            // y1\n        bottomX,         // x2\n        height - bottomY, // y2\n        width - bottomX, // x3\n        height - bottomY, // y3\n    ].join(',');\n};\n\nconst pointsForHexagon = (width, height) => {\n    return [\n        0,\n        height / 2,\n        width / 4,\n        0,\n        width * 3 / 4,\n        0,\n        width,\n        height / 2,\n        width * 3 / 4,\n        height,\n        width / 4,\n        height,\n    ].join(',');\n};\n\nconst pointsForTrapezium = (width, height, offset1, offset2) => {\n    return [\n        Math.max(0, offset1) * width,\n        0,\n        width * (1 + Math.min(0, offset2)),\n        0,\n        width * (1 - Math.max(0, offset2)),\n        height,\n        Math.max(0, -offset1) * width,\n        height,\n    ];\n};\n\nconst pointsForRhombus = (width, height) => {\n    return [\n        width / 2,\n        0,\n        width,\n        height / 2,\n        width / 2,\n        height,\n        0,\n        height / 2,\n    ];\n};\n\nconst pointsForPentagon = (width, height) => {\n    // These points are required to quickly construct a pentagon\n    // that will be regular when height === width but also\n    // could be scaled. Otherwise the proper way involves a lot\n    // of expensive Math.* geometry functions.\n    // Points are just calculated once for regular pentagon\n    // inscribed in rectangle 185x195. Note that regular pentagon\n    // cannot be inscribed in a square.\n    const middleY = 71 / 185 * height;\n    const bottomX = 37 / 195 * width;\n\n    return [\n        width / 2,      // x1\n        0,              // y1\n        width,          // x2\n        middleY,        // y2\n        width - bottomX, // x3\n        height,         // y3\n        bottomX,        // x4\n        height,         // y4\n        0,              // x5\n        middleY,        // y5\n    ].join(',');\n};\n\nconst getOffset = (type, key) => {\n    switch (type) {\n        case 'parallelogramLeft':\n            return -TRAPEZIUM_DEFAULT_OFFSET;\n        case 'parallelogramRight':\n            return TRAPEZIUM_DEFAULT_OFFSET;\n        case 'trapeziumUp':\n            return key === 'left' ? TRAPEZIUM_DEFAULT_OFFSET : -TRAPEZIUM_DEFAULT_OFFSET;\n        case 'trapeziumDown':\n            return key === 'left' ? -TRAPEZIUM_DEFAULT_OFFSET : TRAPEZIUM_DEFAULT_OFFSET;\n        default:\n            return 0;\n    }\n};\n\nconst strokeDasharray = (type, width) => {\n    return {\n        dashed: `${2 * width}, ${width}`,\n        dotted: `${width}, ${width}`,\n    }[type];\n};\n\nexport default class Polygon extends PureComponent {\n    static propTypes = {\n        design: PropTypes.any.isRequired,\n        entity: PropTypes.shape({\n            getProperty: PropTypes.func.isRequired,\n            width: PropTypes.number.isRequired,\n            height: PropTypes.number.isRequired,\n        }).isRequired,\n    };\n\n    static defaultShapeProps = ({type}, options) => {\n        const size = defaultSize[type];\n        const width = options.elementWidth || size.width;\n        const height = width * size.height / size.width;\n        return {\n            props: {\n                opacity: 1,\n                stroke: '{{strokeColor|#656565}}',\n                strokeWidth: 0,\n                strokeType: 'solid',\n                fill: '{{fillColor|#656565}}',\n                type,\n                offsetLeft: getOffset(type, 'left'),\n                offsetRight: getOffset(type, 'right'),\n            },\n            width,\n            height,\n        };\n    };\n\n    render() {\n        const {\n            entity,\n            design,\n        } = this.props;\n        let points = '';\n        const strokeWidth = entity.getProperty('strokeWidth', design);\n        const offsetLeft = entity.getProperty('offsetLeft', design);\n        const offsetRight = entity.getProperty('offsetRight', design);\n        const type = entity.getProperty('type');\n        switch (type) {\n            case 'triangle':\n                points = pointsForTriangle(entity.width, entity.height, strokeWidth);\n                break;\n            case 'hexagon':\n                points = pointsForHexagon(entity.width, entity.height);\n                break;\n            case 'parallelogramLeft':\n            case 'parallelogramRight':\n            case 'trapeziumUp':\n            case 'trapeziumDown':\n                points = pointsForTrapezium(entity.width, entity.height, offsetLeft, offsetRight);\n                break;\n            case 'rhombus':\n                points = pointsForRhombus(entity.width, entity.height);\n                break;\n            case 'polygon':\n                points = pointsForPentagon(entity.width, entity.height, strokeWidth);\n                break;\n        }\n        const props = {\n            pointerEvents: 'auto',\n            points,\n            strokeWidth,\n            fill: entity.getProperty('fill', design),\n            stroke: entity.getProperty('stroke', design),\n            strokeDasharray: strokeDasharray(entity.getProperty('strokeType', design), strokeWidth),\n        };\n        return (\n            <svg width=\"100%\" height=\"100%\" overflow=\"visible\" preserveAspectRatio=\"none\" strokeMiterlimit=\"60\">\n                <polygon {...props}/>\n            </svg>\n        );\n    }\n}\n","export default {\n    TYPE_IMAGE_PNG: 'png',\n    TYPE_IMAGE_JPG: 'jpg',\n    TYPE_PRINT: 'print',\n    TYPE_HTML: 'html',\n};\n\nexport const DEFAULT_TYPE = 'png';\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar isForced = require('../internals/is-forced');\nvar redefine = require('../internals/redefine');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar iterate = require('../internals/iterate');\nvar anInstance = require('../internals/an-instance');\nvar isObject = require('../internals/is-object');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nmodule.exports = function (CONSTRUCTOR_NAME, wrapper, common, IS_MAP, IS_WEAK) {\n  var NativeConstructor = global[CONSTRUCTOR_NAME];\n  var NativePrototype = NativeConstructor && NativeConstructor.prototype;\n  var Constructor = NativeConstructor;\n  var ADDER = IS_MAP ? 'set' : 'add';\n  var exported = {};\n\n  var fixMethod = function (KEY) {\n    var nativeMethod = NativePrototype[KEY];\n    redefine(NativePrototype, KEY,\n      KEY == 'add' ? function add(a) {\n        nativeMethod.call(this, a === 0 ? 0 : a);\n        return this;\n      } : KEY == 'delete' ? function (a) {\n        return IS_WEAK && !isObject(a) ? false : nativeMethod.call(this, a === 0 ? 0 : a);\n      } : KEY == 'get' ? function get(a) {\n        return IS_WEAK && !isObject(a) ? undefined : nativeMethod.call(this, a === 0 ? 0 : a);\n      } : KEY == 'has' ? function has(a) {\n        return IS_WEAK && !isObject(a) ? false : nativeMethod.call(this, a === 0 ? 0 : a);\n      } : function set(a, b) {\n        nativeMethod.call(this, a === 0 ? 0 : a, b);\n        return this;\n      }\n    );\n  };\n\n  // eslint-disable-next-line max-len\n  if (isForced(CONSTRUCTOR_NAME, typeof NativeConstructor != 'function' || !(IS_WEAK || NativePrototype.forEach && !fails(function () {\n    new NativeConstructor().entries().next();\n  })))) {\n    // create collection constructor\n    Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n    InternalMetadataModule.REQUIRED = true;\n  } else if (isForced(CONSTRUCTOR_NAME, true)) {\n    var instance = new Constructor();\n    // early implementations not supports chaining\n    var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n    // V8 ~  Chromium 40- weak-collections throws on primitives, but should return false\n    var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n    // most early implementations doesn't supports iterables, most modern - not close it correctly\n    // eslint-disable-next-line no-new\n    var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); });\n    // for early implementations -0 and +0 not the same\n    var BUGGY_ZERO = !IS_WEAK && fails(function () {\n      // V8 ~ Chromium 42- fails only with 5+ elements\n      var $instance = new NativeConstructor();\n      var index = 5;\n      while (index--) $instance[ADDER](index, index);\n      return !$instance.has(-0);\n    });\n\n    if (!ACCEPT_ITERABLES) {\n      Constructor = wrapper(function (dummy, iterable) {\n        anInstance(dummy, Constructor, CONSTRUCTOR_NAME);\n        var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);\n        if (iterable != undefined) iterate(iterable, that[ADDER], that, IS_MAP);\n        return that;\n      });\n      Constructor.prototype = NativePrototype;\n      NativePrototype.constructor = Constructor;\n    }\n\n    if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n      fixMethod('delete');\n      fixMethod('has');\n      IS_MAP && fixMethod('get');\n    }\n\n    if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n\n    // weak collections should not contains .clear method\n    if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear;\n  }\n\n  exported[CONSTRUCTOR_NAME] = Constructor;\n  $({ global: true, forced: Constructor != NativeConstructor }, exported);\n\n  setToStringTag(Constructor, CONSTRUCTOR_NAME);\n\n  if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);\n\n  return Constructor;\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\n/**\n * Wrap component in rotated container;\n * return passed content without change if no rotation\n */\nexport const MaybeRotate = ({rotation, children}) => {\n    if (!rotation) {\n        return children;\n    }\n\n    return (\n        <div\n            style={{\n                WebkitTransform: `rotate(${rotation}deg)`,\n                transform: `rotate(${rotation}deg)`,\n                width: '100%',\n                height: '100%',\n            }}\n        >\n            {children}\n        </div>\n    );\n};\nMaybeRotate.propTypes = {\n    rotation: PropTypes.number,\n    children: PropTypes.node,\n};\n","module.exports = __webpack_public_path__ + \"3Z4SFbc9bh_tuyRO2XsJaV.svg\";","(function(self) {\n  'use strict';\n\n  if (self.fetch) {\n    return\n  }\n\n  var support = {\n    searchParams: 'URLSearchParams' in self,\n    iterable: 'Symbol' in self && 'iterator' in Symbol,\n    blob: 'FileReader' in self && 'Blob' in self && (function() {\n      try {\n        new Blob()\n        return true\n      } catch(e) {\n        return false\n      }\n    })(),\n    formData: 'FormData' in self,\n    arrayBuffer: 'ArrayBuffer' in self\n  }\n\n  if (support.arrayBuffer) {\n    var viewClasses = [\n      '[object Int8Array]',\n      '[object Uint8Array]',\n      '[object Uint8ClampedArray]',\n      '[object Int16Array]',\n      '[object Uint16Array]',\n      '[object Int32Array]',\n      '[object Uint32Array]',\n      '[object Float32Array]',\n      '[object Float64Array]'\n    ]\n\n    var isDataView = function(obj) {\n      return obj && DataView.prototype.isPrototypeOf(obj)\n    }\n\n    var isArrayBufferView = ArrayBuffer.isView || function(obj) {\n      return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1\n    }\n  }\n\n  function normalizeName(name) {\n    if (typeof name !== 'string') {\n      name = String(name)\n    }\n    if (/[^a-z0-9\\-#$%&'*+.\\^_`|~]/i.test(name)) {\n      throw new TypeError('Invalid character in header field name')\n    }\n    return name.toLowerCase()\n  }\n\n  function normalizeValue(value) {\n    if (typeof value !== 'string') {\n      value = String(value)\n    }\n    return value\n  }\n\n  // Build a destructive iterator for the value list\n  function iteratorFor(items) {\n    var iterator = {\n      next: function() {\n        var value = items.shift()\n        return {done: value === undefined, value: value}\n      }\n    }\n\n    if (support.iterable) {\n      iterator[Symbol.iterator] = function() {\n        return iterator\n      }\n    }\n\n    return iterator\n  }\n\n  function Headers(headers) {\n    this.map = {}\n\n    if (headers instanceof Headers) {\n      headers.forEach(function(value, name) {\n        this.append(name, value)\n      }, this)\n    } else if (Array.isArray(headers)) {\n      headers.forEach(function(header) {\n        this.append(header[0], header[1])\n      }, this)\n    } else if (headers) {\n      Object.getOwnPropertyNames(headers).forEach(function(name) {\n        this.append(name, headers[name])\n      }, this)\n    }\n  }\n\n  Headers.prototype.append = function(name, value) {\n    name = normalizeName(name)\n    value = normalizeValue(value)\n    var oldValue = this.map[name]\n    this.map[name] = oldValue ? oldValue+','+value : value\n  }\n\n  Headers.prototype['delete'] = function(name) {\n    delete this.map[normalizeName(name)]\n  }\n\n  Headers.prototype.get = function(name) {\n    name = normalizeName(name)\n    return this.has(name) ? this.map[name] : null\n  }\n\n  Headers.prototype.has = function(name) {\n    return this.map.hasOwnProperty(normalizeName(name))\n  }\n\n  Headers.prototype.set = function(name, value) {\n    this.map[normalizeName(name)] = normalizeValue(value)\n  }\n\n  Headers.prototype.forEach = function(callback, thisArg) {\n    for (var name in this.map) {\n      if (this.map.hasOwnProperty(name)) {\n        callback.call(thisArg, this.map[name], name, this)\n      }\n    }\n  }\n\n  Headers.prototype.keys = function() {\n    var items = []\n    this.forEach(function(value, name) { items.push(name) })\n    return iteratorFor(items)\n  }\n\n  Headers.prototype.values = function() {\n    var items = []\n    this.forEach(function(value) { items.push(value) })\n    return iteratorFor(items)\n  }\n\n  Headers.prototype.entries = function() {\n    var items = []\n    this.forEach(function(value, name) { items.push([name, value]) })\n    return iteratorFor(items)\n  }\n\n  if (support.iterable) {\n    Headers.prototype[Symbol.iterator] = Headers.prototype.entries\n  }\n\n  function consumed(body) {\n    if (body.bodyUsed) {\n      return Promise.reject(new TypeError('Already read'))\n    }\n    body.bodyUsed = true\n  }\n\n  function fileReaderReady(reader) {\n    return new Promise(function(resolve, reject) {\n      reader.onload = function() {\n        resolve(reader.result)\n      }\n      reader.onerror = function() {\n        reject(reader.error)\n      }\n    })\n  }\n\n  function readBlobAsArrayBuffer(blob) {\n    var reader = new FileReader()\n    var promise = fileReaderReady(reader)\n    reader.readAsArrayBuffer(blob)\n    return promise\n  }\n\n  function readBlobAsText(blob) {\n    var reader = new FileReader()\n    var promise = fileReaderReady(reader)\n    reader.readAsText(blob)\n    return promise\n  }\n\n  function readArrayBufferAsText(buf) {\n    var view = new Uint8Array(buf)\n    var chars = new Array(view.length)\n\n    for (var i = 0; i < view.length; i++) {\n      chars[i] = String.fromCharCode(view[i])\n    }\n    return chars.join('')\n  }\n\n  function bufferClone(buf) {\n    if (buf.slice) {\n      return buf.slice(0)\n    } else {\n      var view = new Uint8Array(buf.byteLength)\n      view.set(new Uint8Array(buf))\n      return view.buffer\n    }\n  }\n\n  function Body() {\n    this.bodyUsed = false\n\n    this._initBody = function(body) {\n      this._bodyInit = body\n      if (!body) {\n        this._bodyText = ''\n      } else if (typeof body === 'string') {\n        this._bodyText = body\n      } else if (support.blob && Blob.prototype.isPrototypeOf(body)) {\n        this._bodyBlob = body\n      } else if (support.formData && FormData.prototype.isPrototypeOf(body)) {\n        this._bodyFormData = body\n      } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n        this._bodyText = body.toString()\n      } else if (support.arrayBuffer && support.blob && isDataView(body)) {\n        this._bodyArrayBuffer = bufferClone(body.buffer)\n        // IE 10-11 can't handle a DataView body.\n        this._bodyInit = new Blob([this._bodyArrayBuffer])\n      } else if (support.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body))) {\n        this._bodyArrayBuffer = bufferClone(body)\n      } else {\n        throw new Error('unsupported BodyInit type')\n      }\n\n      if (!this.headers.get('content-type')) {\n        if (typeof body === 'string') {\n          this.headers.set('content-type', 'text/plain;charset=UTF-8')\n        } else if (this._bodyBlob && this._bodyBlob.type) {\n          this.headers.set('content-type', this._bodyBlob.type)\n        } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n          this.headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8')\n        }\n      }\n    }\n\n    if (support.blob) {\n      this.blob = function() {\n        var rejected = consumed(this)\n        if (rejected) {\n          return rejected\n        }\n\n        if (this._bodyBlob) {\n          return Promise.resolve(this._bodyBlob)\n        } else if (this._bodyArrayBuffer) {\n          return Promise.resolve(new Blob([this._bodyArrayBuffer]))\n        } else if (this._bodyFormData) {\n          throw new Error('could not read FormData body as blob')\n        } else {\n          return Promise.resolve(new Blob([this._bodyText]))\n        }\n      }\n\n      this.arrayBuffer = function() {\n        if (this._bodyArrayBuffer) {\n          return consumed(this) || Promise.resolve(this._bodyArrayBuffer)\n        } else {\n          return this.blob().then(readBlobAsArrayBuffer)\n        }\n      }\n    }\n\n    this.text = function() {\n      var rejected = consumed(this)\n      if (rejected) {\n        return rejected\n      }\n\n      if (this._bodyBlob) {\n        return readBlobAsText(this._bodyBlob)\n      } else if (this._bodyArrayBuffer) {\n        return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer))\n      } else if (this._bodyFormData) {\n        throw new Error('could not read FormData body as text')\n      } else {\n        return Promise.resolve(this._bodyText)\n      }\n    }\n\n    if (support.formData) {\n      this.formData = function() {\n        return this.text().then(decode)\n      }\n    }\n\n    this.json = function() {\n      return this.text().then(JSON.parse)\n    }\n\n    return this\n  }\n\n  // HTTP methods whose capitalization should be normalized\n  var methods = ['DELETE', 'GET', 'HEAD', 'OPTIONS', 'POST', 'PUT']\n\n  function normalizeMethod(method) {\n    var upcased = method.toUpperCase()\n    return (methods.indexOf(upcased) > -1) ? upcased : method\n  }\n\n  function Request(input, options) {\n    options = options || {}\n    var body = options.body\n\n    if (input instanceof Request) {\n      if (input.bodyUsed) {\n        throw new TypeError('Already read')\n      }\n      this.url = input.url\n      this.credentials = input.credentials\n      if (!options.headers) {\n        this.headers = new Headers(input.headers)\n      }\n      this.method = input.method\n      this.mode = input.mode\n      if (!body && input._bodyInit != null) {\n        body = input._bodyInit\n        input.bodyUsed = true\n      }\n    } else {\n      this.url = String(input)\n    }\n\n    this.credentials = options.credentials || this.credentials || 'omit'\n    if (options.headers || !this.headers) {\n      this.headers = new Headers(options.headers)\n    }\n    this.method = normalizeMethod(options.method || this.method || 'GET')\n    this.mode = options.mode || this.mode || null\n    this.referrer = null\n\n    if ((this.method === 'GET' || this.method === 'HEAD') && body) {\n      throw new TypeError('Body not allowed for GET or HEAD requests')\n    }\n    this._initBody(body)\n  }\n\n  Request.prototype.clone = function() {\n    return new Request(this, { body: this._bodyInit })\n  }\n\n  function decode(body) {\n    var form = new FormData()\n    body.trim().split('&').forEach(function(bytes) {\n      if (bytes) {\n        var split = bytes.split('=')\n        var name = split.shift().replace(/\\+/g, ' ')\n        var value = split.join('=').replace(/\\+/g, ' ')\n        form.append(decodeURIComponent(name), decodeURIComponent(value))\n      }\n    })\n    return form\n  }\n\n  function parseHeaders(rawHeaders) {\n    var headers = new Headers()\n    // Replace instances of \\r\\n and \\n followed by at least one space or horizontal tab with a space\n    // https://tools.ietf.org/html/rfc7230#section-3.2\n    var preProcessedHeaders = rawHeaders.replace(/\\r?\\n[\\t ]+/g, ' ')\n    preProcessedHeaders.split(/\\r?\\n/).forEach(function(line) {\n      var parts = line.split(':')\n      var key = parts.shift().trim()\n      if (key) {\n        var value = parts.join(':').trim()\n        headers.append(key, value)\n      }\n    })\n    return headers\n  }\n\n  Body.call(Request.prototype)\n\n  function Response(bodyInit, options) {\n    if (!options) {\n      options = {}\n    }\n\n    this.type = 'default'\n    this.status = options.status === undefined ? 200 : options.status\n    this.ok = this.status >= 200 && this.status < 300\n    this.statusText = 'statusText' in options ? options.statusText : 'OK'\n    this.headers = new Headers(options.headers)\n    this.url = options.url || ''\n    this._initBody(bodyInit)\n  }\n\n  Body.call(Response.prototype)\n\n  Response.prototype.clone = function() {\n    return new Response(this._bodyInit, {\n      status: this.status,\n      statusText: this.statusText,\n      headers: new Headers(this.headers),\n      url: this.url\n    })\n  }\n\n  Response.error = function() {\n    var response = new Response(null, {status: 0, statusText: ''})\n    response.type = 'error'\n    return response\n  }\n\n  var redirectStatuses = [301, 302, 303, 307, 308]\n\n  Response.redirect = function(url, status) {\n    if (redirectStatuses.indexOf(status) === -1) {\n      throw new RangeError('Invalid status code')\n    }\n\n    return new Response(null, {status: status, headers: {location: url}})\n  }\n\n  self.Headers = Headers\n  self.Request = Request\n  self.Response = Response\n\n  self.fetch = function(input, init) {\n    return new Promise(function(resolve, reject) {\n      var request = new Request(input, init)\n      var xhr = new XMLHttpRequest()\n\n      xhr.onload = function() {\n        var options = {\n          status: xhr.status,\n          statusText: xhr.statusText,\n          headers: parseHeaders(xhr.getAllResponseHeaders() || '')\n        }\n        options.url = 'responseURL' in xhr ? xhr.responseURL : options.headers.get('X-Request-URL')\n        var body = 'response' in xhr ? xhr.response : xhr.responseText\n        resolve(new Response(body, options))\n      }\n\n      xhr.onerror = function() {\n        reject(new TypeError('Network request failed'))\n      }\n\n      xhr.ontimeout = function() {\n        reject(new TypeError('Network request failed'))\n      }\n\n      xhr.open(request.method, request.url, true)\n\n      if (request.credentials === 'include') {\n        xhr.withCredentials = true\n      } else if (request.credentials === 'omit') {\n        xhr.withCredentials = false\n      }\n\n      if ('responseType' in xhr && support.blob) {\n        xhr.responseType = 'blob'\n      }\n\n      request.headers.forEach(function(value, name) {\n        xhr.setRequestHeader(name, value)\n      })\n\n      xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit)\n    })\n  }\n  self.fetch.polyfill = true\n})(typeof self !== 'undefined' ? self : this);\n","import i18n from 'i18next';\nimport _ from 'lodash';\n\nconst FREE_USER_PAGE_LIMIT = 5;\nconst PRO_USER_PAGE_LIMIT = 10;\n\nconst AccountLogic = {\n    profileData: undefined,\n    get profile() {\n        if (AccountLogic.profileData) {\n            return AccountLogic.profileData;\n        }\n\n        if (window.app && window.app.profile) {\n            return window.app.profile;\n        }\n\n        return undefined;\n    },\n\n    setData(data) {\n        AccountLogic.profileData = data;\n    },\n\n    getProfileUserFromTeam: function(teamId) {\n        return AccountLogic.getTeamUser(teamId, AccountLogic.profile.id);\n    },\n    getTeamUser: function(teamId, userId) { // returns user from team\n        userId = userId.toString();\n\n        var team = AccountLogic.getTeam(teamId);\n\n        if (team && team.users && (userId in team.users)) {\n            return team.users[userId];\n        }\n    },\n    getCurrentTeam: function() {\n        return AccountLogic.getTeam(AccountLogic.profile.teamId);\n    },\n    getTeam: function(teamId) { // returns team from teams\n        teamId = parseInt(teamId, 10);\n        var teams = AccountLogic.profile.teams;\n        var teamlen = teams ? teams.length : 0;\n        for (var i = 0; i < teamlen; i++) {\n            var team = teams[i];\n            if (team.id === teamId) {\n                return team;\n            }\n        }\n    },\n    updateAvatar: function(url) { // update user avatar in teams\n        var userProfileId = AccountLogic.profile.id.toString();\n        var teams = AccountLogic.profile.teams;\n        var teamlen = teams ? teams.length : 0;\n        for (var i = 0; i < teamlen; i++) {\n            var team = teams[i];\n            if (userProfileId in team.users) {\n                team.users[userProfileId].avatar = url;\n            }\n        }\n    },\n    getCurrentProfile: function() {\n        if (!AccountLogic.profile) {\n            return null;\n        }\n        var userProfile = AccountLogic.profile;\n        var teamProfile = AccountLogic.getCurrentTeam();\n        var profile = _.cloneDeep(teamProfile || userProfile); // copy object because of further modifications\n\n        profile.isTeam = !!teamProfile;\n\n        profile.canPublish = true;\n        profile.canEdit = true;\n\n        if (profile.isTeam) {\n            profile.pro = true;\n            var teamUser = AccountLogic.getProfileUserFromTeam(profile.id);\n            profile.role = teamUser.role;\n            profile.canPublish = teamUser.canPublish;\n            profile.canEdit = teamUser.canEdit;\n        }\n\n        return profile;\n    },\n\n    get canViewEngagementAnalytics() {\n        return AccountLogic.profile.teams.length && AccountLogic.profile.groups.includes('whitelabel');\n    },\n\n    get canAccessRevisions() {\n        return AccountLogic.profile.isWhiteLabel || AccountLogic.profile.isEnterprise || AccountLogic.profile.logged_in_provider === 'support';\n    },\n\n    get avalablePagesInFlex() {\n        const profile = AccountLogic.getCurrentProfile();\n        if (!profile.pro) return FREE_USER_PAGE_LIMIT;\n        if (!profile.isWhiteLabel) return PRO_USER_PAGE_LIMIT;\n        return Infinity;\n    },\n\n    getLabel: function(currentProfile) {\n        var profile = currentProfile || AccountLogic.getCurrentProfile();\n\n        if (profile.isTeam) {\n            if (profile.pro && profile.isEnterprise) {\n                return i18n.t('app.account.team_enterprise_account');\n            } else if (profile.pro && profile.isWhiteLabel) {\n                return i18n.t('app.account.team_business_account');\n            } else if (profile.pro) {\n                return i18n.t('app.account.team_pro_account');\n            }\n            return i18n.t('app.account.team_free_account');\n        }\n        if (profile.pro && profile.isEnterprise) {\n            return i18n.t('app.account.enterprise_account');\n        } else if (profile.pro && profile.isWhiteLabel) {\n            return i18n.t('app.account.business_account');\n        } else if (profile.pro) {\n            return i18n.t('app.account.pro_account');\n        }\n        return i18n.t('app.account.free_account');\n    },\n\n    getShortLabel: function(currentProfile) {\n        var profile = currentProfile || AccountLogic.getCurrentProfile();\n        var output = [];\n\n        if (profile.isTeam) {\n            output.push(i18n.t('app.account.team'));\n        } else {\n            output.push(i18n.t('app.account.individual'));\n        }\n\n        if (profile.isEnterprise) {\n            output.push(i18n.t('app.account.enterprise'));\n        } else if (profile.isWhiteLabel) {\n            output.push(i18n.t('app.account.business'));\n        } else if (profile.pro) {\n            output.push(i18n.t('app.account.pro'));\n        } else {\n            output.push(i18n.t('app.account.free'));\n        }\n\n        return output.join(' ');\n    },\n\n    getLabelFromSubscription: function(subscription) {\n        var output = [i18n.t('app.account.name')];\n\n        switch (subscription.plan_group) {\n            case 'pro':\n                output.unshift(i18n.t('app.account.pro'));\n                break;\n            case 'whitepro':\n                output.unshift(i18n.t('app.account.business'));\n                break;\n            case 'enterprise':\n                output.unshift(i18n.t('app.account.enterprise'));\n                break;\n        }\n\n        if (subscription.userId && subscription.userId.match(/^ig_team/)) {\n            output.unshift(i18n.t('app.account.team'));\n        }\n\n        return output.join(' ');\n    },\n\n    getShortLabelFromSubscription: function(subscription) {\n        var output = [];\n\n        if (subscription.userId && subscription.userId.match(/^ig_team/)) {\n            output.push(i18n.t('app.account.team'));\n        } else {\n            output.push(i18n.t('app.account.individual'));\n        }\n\n        switch (subscription.plan_group) {\n            case 'pro':\n                output.push(i18n.t('app.account.pro'));\n                break;\n            case 'whitepro':\n                output.push(i18n.t('app.account.business'));\n                break;\n            case 'enterprise':\n                output.push(i18n.t('app.account.enterprise'));\n                break;\n        }\n\n        if (!subscription.subscription_ends) {\n            output.push('Trial');\n        }\n\n        return output.join(' ');\n    },\n\n    getProfileFromSubscriptionUserId: function(userId) {\n        var match = userId.match(/ig_(team_)?(\\d+)/);\n        var isTeam = !!match[1];\n        var id = parseInt(match[2]);\n\n        if (isTeam) {\n            return _.find(AccountLogic.profile.teams, function(team) {\n                if (team.organization_id === id) {\n                    var profile = _.cloneDeep(team);\n                    profile.pro = true;\n                    profile.isTeam = true;\n                    return profile;\n                }\n            });\n        }\n\n        return AccountLogic.profile;\n    },\n\n    getTeamMembersList: function() {\n        const currentProfile = AccountLogic.getCurrentProfile();\n\n        if (currentProfile && currentProfile.isTeam) {\n            const users = Object.keys(currentProfile.users).reduce((acc, value) => {\n                if (!currentProfile.users[value].pending) {\n                    const user = {\n                        avatar: currentProfile.users[value].avatar,\n                        full_name: currentProfile.users[value].full_name,\n                    };\n                    acc.push(user);\n                }\n                return acc;\n            }, []);\n\n            const teamMembers = {\n                showAddButton: currentProfile.role === 'admin',\n                total: users.length,\n                users: users,\n                teamId: currentProfile.id,\n                teamName: currentProfile.name,\n            };\n\n            return teamMembers;\n        }\n\n        return false;\n    },\n};\n\nexport default AccountLogic;\n","import React, {PureComponent} from 'react';\n\nexport default class Separator extends PureComponent {\n    render() {\n        return (\n            <div className=\"moveable particle ig-separator\">\n                <div className=\"ig-separator-line\"/>\n            </div>\n        );\n    }\n}\n","var $ = require('../internals/export');\n\n// `Date.now` method\n// https://tc39.github.io/ecma262/#sec-date.now\n$({ target: 'Date', stat: true }, {\n  now: function now() {\n    return new Date().getTime();\n  }\n});\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar hide = require('../internals/hide');\nvar has = require('../internals/has');\nvar setGlobal = require('../internals/set-global');\nvar nativeFunctionToString = require('../internals/function-to-string');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar getInternalState = InternalStateModule.get;\nvar enforceInternalState = InternalStateModule.enforce;\nvar TEMPLATE = String(nativeFunctionToString).split('toString');\n\nshared('inspectSource', function (it) {\n  return nativeFunctionToString.call(it);\n});\n\n(module.exports = function (O, key, value, options) {\n  var unsafe = options ? !!options.unsafe : false;\n  var simple = options ? !!options.enumerable : false;\n  var noTargetGet = options ? !!options.noTargetGet : false;\n  if (typeof value == 'function') {\n    if (typeof key == 'string' && !has(value, 'name')) hide(value, 'name', key);\n    enforceInternalState(value).source = TEMPLATE.join(typeof key == 'string' ? key : '');\n  }\n  if (O === global) {\n    if (simple) O[key] = value;\n    else setGlobal(key, value);\n    return;\n  } else if (!unsafe) {\n    delete O[key];\n  } else if (!noTargetGet && O[key]) {\n    simple = true;\n  }\n  if (simple) O[key] = value;\n  else hide(O, key, value);\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, 'toString', function toString() {\n  return typeof this == 'function' && getInternalState(this).source || nativeFunctionToString.call(this);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $fill = require('../internals/array-fill');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\n\n// `%TypedArray%.prototype.fill` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.fill\n// eslint-disable-next-line no-unused-vars\nArrayBufferViewCore.exportProto('fill', function fill(value /* , start, end */) {\n  return $fill.apply(aTypedArray(this), arguments);\n});\n","module.exports = __webpack_public_path__ + \"35UGJTil_dvmY_DueXdVTC.svg\";","\"use strict\";\n\nvar isValue = require(\"../is-value\");\n\nvar keys = Object.keys;\n\nmodule.exports = function (object) { return keys(isValue(object) ? Object(object) : object); };\n","// this method was added to unscopables after implementation\n// in popular engines, so it's moved to a separate module\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\naddToUnscopables('flatMap');\n","import i18n from 'i18next';\nimport React from 'react';\n\nimport {FilterElementPropTypes} from '../types';\nimport IntensityOf from './IntensityOf.react';\nimport {Brightness} from './Brightness.react';\nimport {Sepia} from './Sepia.react';\nimport {Contrast} from './Contrast.react';\nimport {Saturation} from './Saturation.react';\n\nconst tint = 'rgba(3, 230, 26)';\n\n/**\n * Budapest, sunny, warm and mellow city\n *\n * Darkens image, increases shadows, and adds a slightly yellow tint overall\n *\n * @param {string} in1 pointer to filter's input (same as SVG *in*)\n * @param {string} result pointer to output (same as SVG *result*)\n * @param {number} amount filter intensity (0-1)\n */\nconst Budapest = ({in1, amount, result}) =>\n    <>\n        <Sepia result=\"sepia\"/>\n        <IntensityOf in1=\"sepia\" source={in1} amount={0.3}/>\n        <Brightness amount={.95}/>\n        <Contrast amount={.95}/>\n        <Saturation amount={1.5} result=\"adjustments\"/>\n        <feFlood floodColor={tint} floodOpacity=\".2\" result=\"fill\"/>\n        <feBlend in=\"fill\" in2=\"adjustments\" mode=\"hue\" result=\"Budapest\"/>\n        <IntensityOf in1=\"Budapest\" source={in1} amount={amount} result={result}/>\n    </>\n;\n\nBudapest.propTypes = FilterElementPropTypes;\n\nexport default {\n    Component: Budapest,\n    get caption() {\n        return i18n.t('inspector.free.filters.budapest');\n    },\n    default: 0.5,\n    min: 0,\n    max: 1,\n};\n","var $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar nativeGetOwnPropertyNames = require('../internals/object-get-own-property-names-external').f;\n\nvar FAILS_ON_PRIMITIVES = fails(function () { return !Object.getOwnPropertyNames(1); });\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.github.io/ecma262/#sec-object.getownpropertynames\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, {\n  getOwnPropertyNames: nativeGetOwnPropertyNames\n});\n","/* global PREZIGRAM */\n\nimport React, {PureComponent} from 'react';\nimport PropTypes from 'prop-types';\nimport styled, {keyframes} from 'styled-components';\n\nimport PrezigramSpinner from './PrezigramSpinner';\n\nconst AbsolutelyCenteredElement = styled.div`\n    position: absolute;\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    z-index: 10;\n    pointer-events: none;\n`;\n\nconst rotateKeyframes = keyframes`\n    100% {\n        transform: rotate(360deg)\n    }\n`;\n\nconst SpinnerElement = styled.div`\n    display: inline-block;\n    box-sizing: border-box;\n    border-radius: 50%;\n    animation: ${rotateKeyframes} 1s linear infinite;\n\n    width: 44px;\n    height: 44px;\n    border: 3px solid  ${(props) => props.color};\n    vertical-align: middle;\n    border-bottom-color: transparent;\n    border-left-color: transparent;\n\n    ${props => props.size === 'small' && `\n        width: 20px;\n        height: 20px;\n        border-width: 2px;\n    `}\n`;\n\nexport default class Spinner extends PureComponent {\n    static propTypes = {\n        className: PropTypes.string,\n        size: PropTypes.oneOf(['normal', 'small']),\n        color: PropTypes.string,\n        delay: PropTypes.number,\n        customCss: PropTypes.string,\n    }\n\n    static defaultProps = {\n        size: 'normal',\n        color: '#3195cb',\n        delay: 0,\n    };\n\n    render() {\n        return (\n            <AbsolutelyCenteredElement>\n                <InlineSpinner\n                    size={this.props.size}\n                    color={this.props.color}\n                    delay={this.props.delay}\n                    customCss={this.props.customCss}\n                />\n            </AbsolutelyCenteredElement>\n        );\n    }\n}\n\nexport class InlineSpinner extends PureComponent {\n    static propTypes = {\n        size: PropTypes.oneOf(['normal', 'small']),\n        color: PropTypes.string,\n        delay: PropTypes.number,\n        customCss: PropTypes.string,\n    };\n\n    static defaultProps = {\n        size: 'normal',\n        color: '#3195cb',\n        delay: 0,\n    };\n\n    constructor(props) {\n        super(props);\n        this.state = {\n            deferred: props.delay > 0,\n        };\n    }\n\n    render() {\n        if (this.state.deferred) {\n            return null;\n        }\n        const {size, color, customCss} = this.props;\n\n        if (PREZIGRAM) {\n            return (\n                <PrezigramSpinner\n                    size={size}\n                    customCss={customCss}\n                />\n            );\n        }\n\n        return (\n            <SpinnerElement\n                size={size}\n                color={color}\n                css={customCss}\n            />\n        );\n    }\n\n    componentDidMount() {\n        if (this.props.delay > 0) {\n            this._renderTimeout = setTimeout(() => {\n                this._renderTimeout = null;\n                this.setState({\n                    deferred: false,\n                });\n            }, this.props.delay);\n        }\n    }\n\n    componentWillUnmount() {\n        this._renderTimeout && clearTimeout(this._renderTimeout);\n    }\n}\n","import React, {Component, Fragment} from 'react';\nimport PropTypes from 'prop-types';\n\nimport Copyright from './Copyright.react';\nimport Logo from './Logo.react';\nimport ShareButton from './ShareButton.react';\n\nexport default class InfographicFooter extends Component {\n    static propTypes = {\n        logo: PropTypes.object,\n        button: PropTypes.object,\n        copyrightNotice: PropTypes.object,\n    };\n\n    render() {\n        return (\n            <Fragment>\n                {this.props.copyrightNotice &&\n                    <Copyright {...this.props.copyrightNotice}/>\n                }\n                {this.props.logo &&\n                    <Logo responsive {...this.props.logo}/>\n                }\n                {this.props.button &&\n                    <ShareButton {...this.props.button}/>\n                }\n            </Fragment>\n        );\n    }\n}\n","var isObject = require('../internals/is-object');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\n// makes subclassing work correct for wrapped built-ins\nmodule.exports = function ($this, dummy, Wrapper) {\n  var NewTarget, NewTargetPrototype;\n  if (\n    // it can work only with native `setPrototypeOf`\n    setPrototypeOf &&\n    // we haven't completely correct pre-ES6 way for getting `new.target`, so use this\n    typeof (NewTarget = dummy.constructor) == 'function' &&\n    NewTarget !== Wrapper &&\n    isObject(NewTargetPrototype = NewTarget.prototype) &&\n    NewTargetPrototype !== Wrapper.prototype\n  ) setPrototypeOf($this, NewTargetPrototype);\n  return $this;\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 ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","import invariant from 'invariant';\n\nimport {calculateClippedRectangle} from '../../util/clippedEntity';\nimport getEntityChangesBasedOnRect from '../../../../app/callouts/utils/getEntityChangesBasedOnRect';\nimport getCalloutScale from '../../../../app/callouts/utils/getCalloutScale';\nimport {SELECTOR_HORIZONTAL_PADDING} from '../../../TextEditor/constants/TextEditorConstants';\nimport checkCalloutDeltaLimits from './checkCalloutDeltaLimits';\nimport arrangeCalloutAfterTransformations from './arrangeCalloutAfterTransformations';\nimport {MIN_CALLOUT_ENTITY_HEIGHT, MIN_CALLOUT_ENTITY_WIDTH} from '../../../../app/callouts/constants/config';\n\n\nconst RESIZE_ORIGIN_MULTIPLIERS = {\n    s: {x: 0, y: 1},\n    n: {x: 0, y: -1},\n    w: {x: -1, y: 0},\n    e: {x: 1, y: 0},\n    ne: {x: 1, y: -1},\n    nw: {x: -1, y: -1},\n    sw: {x: -1, y: 1},\n    se: {x: 1, y: 1},\n};\n\nconst RESIZE_POSITION_MULTIPLIERS = {\n    left: {x: 1, y: 2},\n    right: {x: 1, y: 2},\n    top: {x: 2, y: 1},\n    bottom: {x: 2, y: 1},\n};\n\nfunction updateCalloutSize(editorState, entityWithCallout, changes) {\n    return editorState.setEntity(entityWithCallout.getKey(), {props: {callout: {\n        width: Math.round(entityWithCallout.getCallout().get('width') + changes.x),\n        height: Math.round(entityWithCallout.getCallout().get('height') + changes.y),\n    }}});\n}\n\nfunction updateEntitiesPosition(editorState, entities, changes) {\n    entities.forEach(e => {\n        editorState = editorState.setEntity(e.getKey(), {\n            left: Math.round(e.getLeft() + changes.x),\n            top: Math.round(e.getTop() + changes.y),\n        });\n    });\n    return editorState;\n}\n\nfunction resizePaddingsOfSingleItemCallout(editorState, entityWithCallout, entity, changes) {\n    let rect = calculateClippedRectangle(entity);\n    let put = {};\n    const callout = entityWithCallout.getCallout();\n\n    const limitedChanges = {\n        x: Math.max(changes.x, rect.width - callout.get('width')),\n        y: Math.max(changes.y, rect.height - callout.get('height')),\n    };\n    const calloutSize = {\n        width: Math.round(callout.get('width') + limitedChanges.x),\n        height: Math.round(callout.get('height') + limitedChanges.y),\n    };\n\n    if (changes.x !== 0) {\n        put.left = Math.max(0, Math.round((calloutSize.width - rect.width) / 2));\n    }\n    if (changes.y !== 0) {\n        put.top = Math.max(0, Math.round((calloutSize.height - rect.height) / 2));\n    }\n\n    if (entity.getType() === 'IMAGE') {\n        rect = {...rect, ...put};\n        put = getEntityChangesBasedOnRect(entity, rect);\n    }\n\n    editorState = editorState.setEntity(entity.getKey(), put);\n    editorState = updateCalloutSize(editorState, entityWithCallout, limitedChanges);\n    return editorState;\n}\n\nfunction resizePaddingsOfMultipleItemCallout(editorState, entityWithCallout, entities, origin, changes) {\n    const callout = entityWithCallout.getCallout();\n    switch (origin) {\n        case 'w': {\n            const minItemLeft = entities.reduce((acc, entity) => Math.min(acc, entity.bounds().left), Infinity);\n            const deltaX = Math.max(-minItemLeft, changes.x);\n            editorState = updateEntitiesPosition(editorState, entities, {x: deltaX, y: 0});\n            return updateCalloutSize(editorState, entityWithCallout, {x: deltaX, y: 0});\n        }\n        case 'e': {\n            const maxItemRight = entities.reduce((acc, entity) => {\n                const entityBounds = entity.bounds();\n                return Math.max(acc, entityBounds.left + entityBounds.width);\n            }, 0);\n            const minDeltaX = maxItemRight - callout.get('width');\n            const deltaX = Math.max(minDeltaX, changes.x);\n            return updateCalloutSize(editorState, entityWithCallout, {x: deltaX, y: 0});\n        }\n        case 'n': {\n            const minItemTop = entities.reduce((acc, entity) => Math.min(acc, entity.bounds().top), Infinity);\n            const deltaY = Math.max(-minItemTop, changes.y);\n            editorState = updateEntitiesPosition(editorState, entities, {x: 0, y: deltaY});\n            return updateCalloutSize(editorState, entityWithCallout, {x: 0, y: deltaY});\n        }\n        case 's': {\n            const maxItemBottom = entities.reduce((acc, entity) => {\n                const entityBounds = entity.bounds();\n                return Math.max(acc, entityBounds.top + entityBounds.height);\n            }, 0);\n            const minDeltaY = maxItemBottom - callout.get('height');\n            const deltaY = Math.max(minDeltaY, changes.y);\n            return updateCalloutSize(editorState, entityWithCallout, {x: 0, y: deltaY});\n        }\n    }\n}\n\nfunction adjustCropForTargetDimension(size, targetSize, cropStart, cropEnd) {\n    const targetCropSize = size - targetSize;\n    const targetCrop = targetCropSize / size * 100;\n    const cropTotalDelta = targetCrop - cropStart - cropEnd;\n    let startDelta = cropTotalDelta / 2;\n    let endDelta = cropTotalDelta / 2;\n    if (cropStart + startDelta < 0) {\n        startDelta = -cropStart;\n        endDelta = cropTotalDelta - startDelta;\n    } else if (cropEnd + endDelta < 0) {\n        endDelta = -cropEnd;\n        startDelta = cropTotalDelta - endDelta;\n    }\n    return {\n        start: cropStart + startDelta,\n        end: cropEnd + endDelta,\n    };\n}\n\nfunction adjustCropForTargetHeight(height, targetHeight, crop) {\n    const adjustments = adjustCropForTargetDimension(height, targetHeight, crop.top, crop.bottom);\n    crop.top = adjustments.start;\n    crop.bottom = adjustments.end;\n    return crop;\n}\n\nfunction adjustCropForTargetWidth(width, targetWidth, crop) {\n    const adjustments = adjustCropForTargetDimension(width, targetWidth, crop.left, crop.right);\n    crop.left = adjustments.start;\n    crop.right = adjustments.end;\n    return crop;\n}\n\nfunction canEntityBeCropped(editorState, entity) {\n    if (entity.type !== 'IMAGE' || entity.getProperty('subType') === 'icon') {\n        return false;\n    }\n    const url = editorState.getAssetURL(entity.getProperty('assetId'));\n    return url && !url.toLowerCase().endsWith('.svg');\n}\n\nfunction resizeItem(editorState, entity, rect, delta) {\n    let put = {};\n    if (entity.getType() === 'TEXT') {\n        if (delta.x) { // only delta.x is handled as text's does not have side resize in y-axis\n            put.width = rect.width + delta.x;\n            put.props = {\n                scaleWidth: put.width / entity.getProperty('scaleX') - SELECTOR_HORIZONTAL_PADDING * 2,\n            };\n        }\n    } else if (entity.getType() === 'IMAGE') {\n        const ratio = rect.width / rect.height;\n        if (delta.x) {\n            rect.width += delta.x;\n            rect.height = rect.width / ratio;\n        } else {\n            rect.height += delta.y;\n            rect.width = rect.height * ratio;\n        }\n        put = getEntityChangesBasedOnRect(entity, rect);\n\n        if (canEntityBeCropped(editorState, entity) && !entity.getProperty('mask')) {\n            let crop = entity.getProperty('crop') ? entity.getProperty('crop').toObject() : {top: 0, right: 0, bottom: 0, left: 0};\n            const originalBounds = calculateClippedRectangle(entity);\n            const imageRatio = entity.getWidth() / entity.getHeight();\n            if (delta.x) {\n                const targetCropHeight = put.height - originalBounds.height;\n                const targetCrop = targetCropHeight / put.height * 100;\n                if (targetCrop < 0) {\n                    // cannot crop anymore in y-dimension => sets full height and crops in x-dimension\n                    crop.top = 0;\n                    crop.bottom = 0;\n                    put.height = originalBounds.height;\n                    put.width = put.height * imageRatio;\n                    const targetWidth = originalBounds.width + delta.x;\n                    crop = adjustCropForTargetWidth(put.width, targetWidth, crop);\n                } else {\n                    crop = adjustCropForTargetHeight(put.height, originalBounds.height, crop);\n                }\n            } else {\n                const targetCropWidth = put.width - originalBounds.width;\n                const targetCrop = targetCropWidth / put.width * 100;\n                if (targetCrop < 0) {\n                    // cannot crop anymore in x-dimension => sets full height and crops in y-dimension\n                    crop.left = 0;\n                    crop.right = 0;\n                    put.width = originalBounds.width;\n                    put.height = put.width / imageRatio;\n                    const targetHeight = originalBounds.height + delta.y;\n                    crop = adjustCropForTargetHeight(put.height, targetHeight, crop);\n                } else {\n                    crop = adjustCropForTargetWidth(put.width, originalBounds.width, crop);\n                }\n            }\n            put.props = {crop};\n        }\n    }\n    return editorState.setEntity(entity.getKey(), put);\n}\n\nfunction resizeCalloutItems(editorState, entities, alignment, delta) {\n    const resizeInAlignmentAxis = delta.x && alignment === 'horizontal' || delta.y && alignment === 'vertical';\n\n    const contentSize = {width: 0, height: 0};\n    if (resizeInAlignmentAxis) {\n        entities.forEach(e => {\n            const rect = calculateClippedRectangle(e);\n            contentSize.width += rect.width;\n            contentSize.height += rect.height;\n        });\n    }\n\n    let updatedState = editorState;\n    for (let i = 0; i < entities.size; i++) {\n        const entity = entities.get(i);\n        const rect = calculateClippedRectangle(entity);\n        const itemDelta = {\n            x: resizeInAlignmentAxis ? rect.width / contentSize.width * delta.x : delta.x,\n            y: resizeInAlignmentAxis ? rect.height / contentSize.height * delta.y : delta.y,\n        };\n\n        if (\n            (rect.width + itemDelta.x) < MIN_CALLOUT_ENTITY_WIDTH\n            || entity.getType() !== 'TEXT' && (rect.height + itemDelta.y) < MIN_CALLOUT_ENTITY_HEIGHT\n        ) {\n            return editorState;\n        }\n\n        updatedState = resizeItem(updatedState, entity, rect, itemDelta);\n    }\n    return updatedState;\n}\n\nfunction resizeMultipleItemCallout(editorState, entityWithCallout, entities, paddings, delta) {\n    const alignment = entityWithCallout.getCallout().get('alignment');\n    editorState = resizeCalloutItems(editorState, entities, alignment, delta);\n    return arrangeCalloutAfterTransformations(editorState, entityWithCallout, entities, paddings);\n}\n\nexport default function resizeCallout(editorState, entityWithCallout, entities, {\n    activeHandle,\n    origin,\n    startPoint,\n    endPoint,\n    scaleX,\n    scaleY,\n}) {\n    invariant(entities.size > 0 && entities.size <= 2, `Callout has ${entities.size} entities`);\n\n    const callout = entityWithCallout.getCallout();\n    const position = callout.get('position');\n    const isOverlay = callout.get('type') === 'overlay';\n\n    const positionMultiplier = {\n        x: isOverlay ? 2 : RESIZE_POSITION_MULTIPLIERS[position].x,\n        y: isOverlay ? 2 : RESIZE_POSITION_MULTIPLIERS[position].y,\n    };\n\n    let delta = {\n        x: (endPoint.x - startPoint.x) * positionMultiplier.x * RESIZE_ORIGIN_MULTIPLIERS[origin].x,\n        y: (endPoint.y - startPoint.y) * positionMultiplier.y * RESIZE_ORIGIN_MULTIPLIERS[origin].y,\n    };\n\n    const pageSize = editorState.getPageSize();\n    const calloutScale = getCalloutScale(callout, pageSize, {scaleX, scaleY});\n    delta.x = delta.x / calloutScale.scaleX;\n    delta.y = delta.y / calloutScale.scaleY;\n\n    if (delta.x === 0 && delta.y === 0) {\n        return;\n    }\n\n    delta = checkCalloutDeltaLimits(callout, delta);\n\n    if (entities.size > 1) {\n        if (callout.get('fixedPaddings')) {\n            const paddings = activeHandle.get('calloutPaddings');\n            editorState = resizeMultipleItemCallout(editorState, entityWithCallout, entities, paddings, delta);\n        } else {\n            editorState = resizePaddingsOfMultipleItemCallout(editorState, entityWithCallout, entities, origin, delta);\n        }\n    } else if (entities.size === 1) {\n        // resize for callouts with fixed-paddings and single item is handled through default transformations\n        invariant(!callout.get('fixedPaddings'), 'Callout single item transformation used for fixed-paddings callout');\n        editorState = resizePaddingsOfSingleItemCallout(editorState, entityWithCallout, entities.first(), delta);\n    }\n    return editorState;\n}\n","var escape = require(\"../../../../node_modules/css-loader/lib/url/escape.js\");\nexports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".qdjD8bqhYKC197qTYSRHA {\\n    position: absolute;\\n    top: 10px;\\n    right: 10px;\\n    pointer-events: none;\\n    height: calc(100% - 90px);\\n    z-index: 9;\\n    width: 40px;\\n}\\n\\n._17s-boUUmYVxmP_cLpfIt3 ._2a2i2cORSkucn5Dbm_stU8 {\\n    cursor: default;\\n}\\n\\n.NX8VKPRkl3MaDJkhp4l5O {\\n    top: 10px;\\n    width: 20px;\\n    height: 20px;\\n    background: url(\" + escape(require(\"./icon-cancel.svg\")) + \") #656565 center no-repeat;\\n    background-size: 14px;\\n    opacity: .8;\\n}\\n\\n.NX8VKPRkl3MaDJkhp4l5O:hover {\\n    opacity: 1;\\n    transition: none;\\n}\\n\\n._3j24H3iZv9b0gSZDY_UerY {\\n    opacity: 0;\\n}\\n\\n.ig-container:hover ._3j24H3iZv9b0gSZDY_UerY {\\n    display: block;\\n    opacity: .8;\\n}\\n\\n.ig-container:hover ._2a2i2cORSkucn5Dbm_stU8:hover {\\n    opacity: 1;\\n    transition: none;\\n}\\n\\n._17s-boUUmYVxmP_cLpfIt3 ._3j24H3iZv9b0gSZDY_UerY {\\n    display: block;\\n    opacity: .8;\\n}\\n\\n._2a2i2cORSkucn5Dbm_stU8:focus {\\n    opacity: 1;\\n    transition: none;\\n}\\n\\n@media (hover: none) {\\n    ._2a2i2cORSkucn5Dbm_stU8 {\\n        opacity: .8;\\n    }\\n}\\n\", \"\"]);\n\n// exports\nexports.locals = {\n\t\"sideButtonsContainer\": \"qdjD8bqhYKC197qTYSRHA\",\n\t\"notClickableContainer\": \"_17s-boUUmYVxmP_cLpfIt3\",\n\t\"sideButton\": \"_2a2i2cORSkucn5Dbm_stU8\",\n\t\"closeButton\": \"NX8VKPRkl3MaDJkhp4l5O\",\n\t\"singleButton\": \"_3j24H3iZv9b0gSZDY_UerY\"\n};","'use strict';\nvar global = require('../internals/global');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar fails = require('../internals/fails');\n\nvar Uint8Array = global.Uint8Array;\nvar Uint8ArrayPrototype = Uint8Array && Uint8Array.prototype;\nvar arrayToString = [].toString;\nvar arrayJoin = [].join;\n\nif (fails(function () { arrayToString.call({}); })) {\n  arrayToString = function toString() {\n    return arrayJoin.call(this);\n  };\n}\n\n// `%TypedArray%.prototype.toString` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.tostring\nArrayBufferViewCore.exportProto('toString', arrayToString, (Uint8ArrayPrototype || {}).toString != arrayToString);\n","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!./ResponsiveInfographic.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!./ResponsiveInfographic.css\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!./ResponsiveInfographic.css\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports.f = Object.getOwnPropertySymbols;\n","var path = require('../internals/path');\nvar has = require('../internals/has');\nvar wrappedWellKnownSymbolModule = require('../internals/wrapped-well-known-symbol');\nvar defineProperty = require('../internals/object-define-property').f;\n\nmodule.exports = function (NAME) {\n  var Symbol = path.Symbol || (path.Symbol = {});\n  if (!has(Symbol, NAME)) defineProperty(Symbol, NAME, {\n    value: wrappedWellKnownSymbolModule.f(NAME)\n  });\n};\n","export default function _inheritsLoose(subClass, superClass) {\n  subClass.prototype = Object.create(superClass.prototype);\n  subClass.prototype.constructor = subClass;\n  subClass.__proto__ = superClass;\n}","\"use strict\";\n/* tslint:disable:max-line-length */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar glassbox_client_logger_1 = require(\"../glassbox.client.logger\");\nfunction _log(schemaId, eventType, eventName, params) {\n    return glassbox_client_logger_1.logGlassboxHelper('PreziAirAnalytics', schemaId, 'PreziAirWeb', eventType, eventName, params);\n}\n/* User clicked on Back to list in a Reusable story preview. */\nfunction logBackToVideoList() {\n    return _log(15903, 'BackToVideoList', 'BackToVideoListWebPreziAirWeb');\n}\nexports.logBackToVideoList = logBackToVideoList;\n/* When we change the resolution of Prezi Video based on performance. */\nfunction logChangedResolution(params) {\n    return _log(16357, 'ChangedResolution', 'ChangedResolutionWebPreziAirWeb', params);\n}\nexports.logChangedResolution = logChangedResolution;\n/* User enters video description. */\nfunction logChangedVideoDescription(params) {\n    return _log(15910, 'ChangedVideoDescription', 'ChangedVideoDescriptionWebPreziAirWeb', params);\n}\nexports.logChangedVideoDescription = logChangedVideoDescription;\n/* User enters video tags. */\nfunction logChangedVideoTag(params) {\n    return _log(15915, 'ChangedVideoTag', 'ChangedVideoTagWebPreziAirWeb', params);\n}\nexports.logChangedVideoTag = logChangedVideoTag;\n/* User enters video title. */\nfunction logChangedVideoTitle(params) {\n    return _log(15920, 'ChangedVideoTitle', 'ChangedVideoTitleWebPreziAirWeb', params);\n}\nexports.logChangedVideoTitle = logChangedVideoTitle;\n/* User clicked on Clear Story to remove the previously selected reusable content. */\nfunction logClearContent() {\n    return _log(15931, 'ClearContent', 'ClearContentWebPreziAirWeb');\n}\nexports.logClearContent = logClearContent;\n/* ClickGetVideoAppButton. */\nfunction logClickGetVideoAppButton() {\n    return _log(15938, 'ClickGetVideoAppButton', 'ClickGetVideoAppButtonWebPreziAirWeb');\n}\nexports.logClickGetVideoAppButton = logClickGetVideoAppButton;\n/* On the dashboard, user clicks on the video card and opens its menu. */\nfunction logClickVideoCardMenu(params) {\n    return _log(15949, 'ClickVideoCardMenu', 'ClickVideoCardMenuWebPreziAirWeb', params);\n}\nexports.logClickVideoCardMenu = logClickVideoCardMenu;\n/* User clicks on one of the 3 buttons when a video card is hovered over on dashboard (3 dots, play, edit). */\nfunction logClickVideoCardOverlay(params) {\n    return _log(15951, 'ClickVideoCardOverlay', 'ClickVideoCardOverlayWebPreziAirWeb', params);\n}\nexports.logClickVideoCardOverlay = logClickVideoCardOverlay;\n/* User clicks on a company card on the works with page. */\nfunction logClickVideoWorksWithCompanyCard(params) {\n    return _log(15953, 'ClickVideoWorksWithCompanyCard', 'ClickVideoWorksWithCompanyCardWebPreziAirWeb', params);\n}\nexports.logClickVideoWorksWithCompanyCard = logClickVideoWorksWithCompanyCard;\n/* User clicks on the empty .card on the dashboard to start creating a new video. */\nfunction logClickedVideoDashboardEmptyCard() {\n    return _log(15936, 'ClickedVideoDashboardEmptyCard', 'ClickedVideoDashboardEmptyCardWebPreziAirWeb');\n}\nexports.logClickedVideoDashboardEmptyCard = logClickedVideoDashboardEmptyCard;\n/* User closes tutorial video by clicking 'X' or '?'. */\nfunction logCloseTutorialVideo(params) {\n    return _log(15964, 'CloseTutorialVideo', 'CloseTutorialVideoWebPreziAirWeb', params);\n}\nexports.logCloseTutorialVideo = logCloseTutorialVideo;\n/* User completes step 1 of Prezi Video onboarding by navigating the preview. */\nfunction logCompletedNavigationOnboarding() {\n    return _log(13820, 'CompletedNavigationOnboarding', 'CompletedNavigationOnboardingWebPreziAirWeb');\n}\nexports.logCompletedNavigationOnboarding = logCompletedNavigationOnboarding;\n/* User completes step 2 of Prezi Video onboarding by switching camera modes. */\nfunction logCompletedPresentationModeOnboarding() {\n    return _log(13822, 'CompletedPresentationModeOnboarding', 'CompletedPresentationModeOnboardingWebPreziAirWeb');\n}\nexports.logCompletedPresentationModeOnboarding = logCompletedPresentationModeOnboarding;\n/* User clicks on the button to copy the embed code to the clipboard on the video page. */\nfunction logCopyEmbedCodeToClipboard(params) {\n    return _log(15976, 'CopyEmbedCodeToClipboard', 'CopyEmbedCodeToClipboardWebPreziAirWeb', params);\n}\nexports.logCopyEmbedCodeToClipboard = logCopyEmbedCodeToClipboard;\n/* User clicks on 'Copy link'. */\nfunction logCopyVideoLink(params) {\n    return _log(15981, 'CopyVideoLink', 'CopyVideoLinkWebPreziAirWeb', params);\n}\nexports.logCopyVideoLink = logCopyVideoLink;\n/* User clicked on Make A Copy button on the video view page. */\nfunction logCopyVideo(params) {\n    return _log(15979, 'CopyVideo', 'CopyVideoWebPreziAirWeb', params);\n}\nexports.logCopyVideo = logCopyVideo;\n/* User starts with creating a new video by interaction. This can happen in various places. */\nfunction logCreateNewVideo(params) {\n    return _log(16359, 'CreateNewVideo', 'CreateNewVideoWebPreziAirWeb', params);\n}\nexports.logCreateNewVideo = logCreateNewVideo;\n/* Video creation process finishes and the video_oid is available. */\nfunction logCreatedVideo(params) {\n    return _log(15983, 'CreatedVideo', 'CreatedVideoWebPreziAirWeb', params);\n}\nexports.logCreatedVideo = logCreatedVideo;\n/* User removes frame by clicking 'X' on frame tab. */\nfunction logDeleteFrame() {\n    return _log(15992, 'DeleteFrame', 'DeleteFrameWebPreziAirWeb');\n}\nexports.logDeleteFrame = logDeleteFrame;\n/* User deselects a selected image in order to remove it. */\nfunction logDeleteImage() {\n    return _log(15994, 'DeleteImage', 'DeleteImageWebPreziAirWeb');\n}\nexports.logDeleteImage = logDeleteImage;\n/* User clicks 'Delete' button. */\nfunction logDeleteVideo(params) {\n    return _log(15996, 'DeleteVideo', 'DeleteVideoWebPreziAirWeb', params);\n}\nexports.logDeleteVideo = logDeleteVideo;\n/* The download of the desktop app has begun. */\nfunction logDownloadAppStarted() {\n    return _log(16006, 'DownloadAppStarted', 'DownloadAppStartedWebPreziAirWeb');\n}\nexports.logDownloadAppStarted = logDownloadAppStarted;\n/* User clicked the download app button. */\nfunction logDownloadApp() {\n    return _log(16004, 'DownloadApp', 'DownloadAppWebPreziAirWeb');\n}\nexports.logDownloadApp = logDownloadApp;\n/* DownloadVideoApp on Dashboard. */\nfunction logDownloadVideoApp() {\n    return _log(16010, 'DownloadVideoApp', 'DownloadVideoAppWebPreziAirWeb');\n}\nexports.logDownloadVideoApp = logDownloadVideoApp;\n/* User clicks on 'Download video'. */\nfunction logDownloadVideo(params) {\n    return _log(16008, 'DownloadVideo', 'DownloadVideoWebPreziAirWeb', params);\n}\nexports.logDownloadVideo = logDownloadVideo;\n/* User clicked on 'Enable camera'. */\nfunction logEnableCamera() {\n    return _log(16012, 'EnableCamera', 'EnableCameraWebPreziAirWeb');\n}\nexports.logEnableCamera = logEnableCamera;\n/* The user intends to use the search bar to discover video content, but they haven't submitted their search query.. */\nfunction logEnterSearchBar() {\n    return _log(16015, 'EnterSearchBar', 'EnterSearchBarWebPreziAirWeb');\n}\nexports.logEnterSearchBar = logEnterSearchBar;\n/* ExploreVideos. */\nfunction logExploreVideos() {\n    return _log(16017, 'ExploreVideos', 'ExploreVideosWebPreziAirWeb');\n}\nexports.logExploreVideos = logExploreVideos;\n/* The user wants to only see results for prezis that are reusable. */\nfunction logFilterReusableVideos() {\n    return _log(16025, 'FilterReusableVideos', 'FilterReusableVideosWebPreziAirWeb');\n}\nexports.logFilterReusableVideos = logFilterReusableVideos;\n/* User clicks 'Done', 'cancel' in trimming menu. */\nfunction logFinishTrim(params) {\n    return _log(16030, 'FinishTrim', 'FinishTrimWebPreziAirWeb', params);\n}\nexports.logFinishTrim = logFinishTrim;\n/* User reaches a point of 5 or less seconds remaining in video. */\nfunction logFinishedTutorialVideo() {\n    return _log(16027, 'FinishedTutorialVideo', 'FinishedTutorialVideoWebPreziAirWeb');\n}\nexports.logFinishedTutorialVideo = logFinishedTutorialVideo;\n/* User clicked on 'Next step' in Prezi Video web flow. */\nfunction logGoToNextStep(params) {\n    return _log(16363, 'GoToNextStep', 'GoToNextStepWebPreziAirWeb', params);\n}\nexports.logGoToNextStep = logGoToNextStep;\n/* Performance warning message disappears when fps rate returns to normal. */\nfunction logHideFpsWarning(params) {\n    return _log(16365, 'HideFpsWarning', 'HideFpsWarningWebPreziAirWeb', params);\n}\nexports.logHideFpsWarning = logHideFpsWarning;\n/* User clicked the button to import a PowerPoint. */\nfunction logImportPowerPoint(params) {\n    return _log(16367, 'ImportPowerPoint', 'ImportPowerPointWebPreziAirWeb', params);\n}\nexports.logImportPowerPoint = logImportPowerPoint;\n/* User clicks 'Add frame'. */\nfunction logInsertFrame() {\n    return _log(16056, 'InsertFrame', 'InsertFrameWebPreziAirWeb');\n}\nexports.logInsertFrame = logInsertFrame;\n/* User selects an image or icon that we provide. */\nfunction logInsertImage(params) {\n    return _log(16060, 'InsertImage', 'InsertImageWebPreziAirWeb', params);\n}\nexports.logInsertImage = logInsertImage;\n/* User enters text in the text field. */\nfunction logInsertText() {\n    return _log(16066, 'InsertText', 'InsertTextWebPreziAirWeb');\n}\nexports.logInsertText = logInsertText;\n/* User clicks Learn more in the fps performance warning message. */\nfunction logLearnMoreFpsWarning() {\n    return _log(16068, 'LearnMoreFpsWarning', 'LearnMoreFpsWarningWebPreziAirWeb');\n}\nexports.logLearnMoreFpsWarning = logLearnMoreFpsWarning;\n/* Describes whether a user has clicked on the like button in a video view page. */\nfunction logLikeVideoPage(params) {\n    return _log(16072, 'LikeVideoPage', 'LikeVideoPageWebPreziAirWeb', params);\n}\nexports.logLikeVideoPage = logLikeVideoPage;\n/* OBSOLETE: Describes whether a user has liked a video presentation. */\nfunction logLikeVideo(params) {\n    return _log(16070, 'LikeVideo', 'LikeVideoWebPreziAirWeb', params);\n}\nexports.logLikeVideo = logLikeVideo;\n/* The 'Enable camera screen' loads automatically if Chrome doesn't have persmission to use camera on prezi.com and user enters web edit/record. */\nfunction logLoadedCameraEnableScreen() {\n    return _log(16077, 'LoadedCameraEnableScreen', 'LoadedCameraEnableScreenWebPreziAirWeb');\n}\nexports.logLoadedCameraEnableScreen = logLoadedCameraEnableScreen;\n/* Prezi Video recognizes a camera feed, shows a success message. */\nfunction logLoadedCameraSuccessScreen() {\n    return _log(16079, 'LoadedCameraSuccessScreen', 'LoadedCameraSuccessScreenWebPreziAirWeb');\n}\nexports.logLoadedCameraSuccessScreen = logLoadedCameraSuccessScreen;\n/* The 'Lite editor' loads automatically after user successfully selects a template in the style chooser screen. */\nfunction logLoadedContentEditor(params) {\n    return _log(16081, 'LoadedContentEditor', 'LoadedContentEditorWebPreziAirWeb', params);\n}\nexports.logLoadedContentEditor = logLoadedContentEditor;\n/* LoadedDashboard. */\nfunction logLoadedDashboard() {\n    return _log(16083, 'LoadedDashboard', 'LoadedDashboardWebPreziAirWeb');\n}\nexports.logLoadedDashboard = logLoadedDashboard;\n/* Unsupported browser' screen loads if user isn't on Chrome.. */\nfunction logLoadedErrorScreen(params) {\n    return _log(16088, 'LoadedErrorScreen', 'LoadedErrorScreenWebPreziAirWeb', params);\n}\nexports.logLoadedErrorScreen = logLoadedErrorScreen;\n/* Technical event triggered when a user visits and loads the Prezi Video Homepage.. */\nfunction logLoadedPreziVideoHomePage() {\n    return _log(16090, 'LoadedPreziVideoHomePage', 'LoadedPreziVideoHomePageWebPreziAirWeb');\n}\nexports.logLoadedPreziVideoHomePage = logLoadedPreziVideoHomePage;\n/* Public video view page loads. */\nfunction logLoadedPublicVideoPage(params) {\n    return _log(16092, 'LoadedPublicVideoPage', 'LoadedPublicVideoPageWebPreziAirWeb', params);\n}\nexports.logLoadedPublicVideoPage = logLoadedPublicVideoPage;\n/* The 'Practise & record' screen loads automatically after user progresses from 'Add content'. */\nfunction logLoadedRecordScreen() {\n    return _log(16094, 'LoadedRecordScreen', 'LoadedRecordScreenWebPreziAirWeb');\n}\nexports.logLoadedRecordScreen = logLoadedRecordScreen;\n/* The 'Template chooser' loads automatically after user progresses from enable camera screen. */\nfunction logLoadedTemplateChooser() {\n    return _log(16096, 'LoadedTemplateChooser', 'LoadedTemplateChooserWebPreziAirWeb');\n}\nexports.logLoadedTemplateChooser = logLoadedTemplateChooser;\n/* Video dashboard loads. */\nfunction logLoadedVideoDashboard() {\n    return _log(16098, 'LoadedVideoDashboard', 'LoadedVideoDashboardWebPreziAirWeb');\n}\nexports.logLoadedVideoDashboard = logLoadedVideoDashboard;\n/* The user has landed on the video explore page. */\nfunction logLoadedVideoExplorePage() {\n    return _log(16100, 'LoadedVideoExplorePage', 'LoadedVideoExplorePageWebPreziAirWeb');\n}\nexports.logLoadedVideoExplorePage = logLoadedVideoExplorePage;\n/* The user has landed on the video search results page and will consume the content they have searched for.. */\nfunction logLoadedVideoExploreResultsPage() {\n    return _log(16102, 'LoadedVideoExploreResultsPage', 'LoadedVideoExploreResultsPageWebPreziAirWeb');\n}\nexports.logLoadedVideoExploreResultsPage = logLoadedVideoExploreResultsPage;\n/* The 'Share' screen (personal view page) loads automatically after user progresses from 'Practise & record'. */\nfunction logLoadedVideoPage(params) {\n    return _log(16104, 'LoadedVideoPage', 'LoadedVideoPageWebPreziAirWeb', params);\n}\nexports.logLoadedVideoPage = logLoadedVideoPage;\n/* Loaded Prezi video works with page in CMS. */\nfunction logLoadedVideoWorksWithPage() {\n    return _log(16106, 'LoadedVideoWorksWithPage', 'LoadedVideoWorksWithPageWebPreziAirWeb');\n}\nexports.logLoadedVideoWorksWithPage = logLoadedVideoWorksWithPage;\n/* User logouts from Prezi Video experience. */\nfunction logLogout() {\n    return _log(16116, 'Logout', 'LogoutWebPreziAirWeb');\n}\nexports.logLogout = logLogout;\n/* User clicks Left or right arrows to navigate in video. */\nfunction logNavigatePresentationStructure(params) {\n    return _log(16371, 'NavigatePresentationStructure', 'NavigatePresentationStructureWebPreziAirWeb', params);\n}\nexports.logNavigatePresentationStructure = logNavigatePresentationStructure;\n/* User clicks 'Chat with support' in header. A Zendesk support chat opens up in the same window.. */\nfunction logOpenChat(params) {\n    return _log(16375, 'OpenChat', 'OpenChatWebPreziAirWeb', params);\n}\nexports.logOpenChat = logOpenChat;\n/* The finalize video helper opens up, either automatically (onboarding) or by manually clicking the '?'. */\nfunction logOpenFinalizeHelper(params) {\n    return _log(16139, 'OpenFinalizeHelper', 'OpenFinalizeHelperWebPreziAirWeb', params);\n}\nexports.logOpenFinalizeHelper = logOpenFinalizeHelper;\n/* User clicks the 'Help' icon in header\tA help article opens up in a new tab. */\nfunction logOpenHelpMenu() {\n    return _log(16141, 'OpenHelpMenu', 'OpenHelpMenuWebPreziAirWeb');\n}\nexports.logOpenHelpMenu = logOpenHelpMenu;\n/* User clicked on \"Open Prezi Next\" button in the Presenetation import window. */\nfunction logOpenPreziNextEditor() {\n    return _log(16143, 'OpenPreziNextEditor', 'OpenPreziNextEditorWebPreziAirWeb');\n}\nexports.logOpenPreziNextEditor = logOpenPreziNextEditor;\n/* User clicks on privacy dropdown menu. */\nfunction logOpenPrivacyDialog(params) {\n    return _log(16146, 'OpenPrivacyDialog', 'OpenPrivacyDialogWebPreziAirWeb', params);\n}\nexports.logOpenPrivacyDialog = logOpenPrivacyDialog;\n/* User clicks on the main social share button. */\nfunction logOpenSocialShare(params) {\n    return _log(16148, 'OpenSocialShare', 'OpenSocialShareWebPreziAirWeb', params);\n}\nexports.logOpenSocialShare = logOpenSocialShare;\n/* The tips & tricks video opens up, either automatically (onboarding) or by manually clicking the '?'. */\nfunction logOpenTutorialVideo(params) {\n    return _log(16150, 'OpenTutorialVideo', 'OpenTutorialVideoWebPreziAirWeb', params);\n}\nexports.logOpenTutorialVideo = logOpenTutorialVideo;\n/* User opens the context menu of a Video card on dashboard, by clicking on the chevron. */\nfunction logOpenVideoCardMenu(params) {\n    return _log(16154, 'OpenVideoCardMenu', 'OpenVideoCardMenuWebPreziAirWeb', params);\n}\nexports.logOpenVideoCardMenu = logOpenVideoCardMenu;\n/* User clicks on video card. */\nfunction logOpenVideoCard(params) {\n    return _log(16152, 'OpenVideoCard', 'OpenVideoCardWebPreziAirWeb', params);\n}\nexports.logOpenVideoCard = logOpenVideoCard;\n/* User clicks 'Play' on the tutorial video. */\nfunction logPlayTutorialVideo() {\n    return _log(16156, 'PlayTutorialVideo', 'PlayTutorialVideoWebPreziAirWeb');\n}\nexports.logPlayTutorialVideo = logPlayTutorialVideo;\n/* technical event capturing connection type. */\nfunction logPlaybackBandwidth(params) {\n    return _log(13768, 'PlaybackBandwidth', 'PlaybackBandwidthWebPreziAirWeb', params);\n}\nexports.logPlaybackBandwidth = logPlaybackBandwidth;\n/* Video playback stopped until enough media is buffered. */\nfunction logPlaybackBuffering(params) {\n    return _log(13770, 'PlaybackBuffering', 'PlaybackBufferingWebPreziAirWeb', params);\n}\nexports.logPlaybackBuffering = logPlaybackBuffering;\n/* Playback has reached the end of the media. */\nfunction logPlaybackEnded(params) {\n    return _log(13772, 'PlaybackEnded', 'PlaybackEndedWebPreziAirWeb', params);\n}\nexports.logPlaybackEnded = logPlaybackEnded;\n/* regular event sent while playing prezi video. */\nfunction logPlaybackHeartbeat(params) {\n    return _log(13774, 'PlaybackHeartbeat', 'PlaybackHeartbeatWebPreziAirWeb', params);\n}\nexports.logPlaybackHeartbeat = logPlaybackHeartbeat;\n/* video is loaded and there's enough data is received to render the first frame. */\nfunction logPlaybackStarted(params) {\n    return _log(13776, 'PlaybackStarted', 'PlaybackStartedWebPreziAirWeb', params);\n}\nexports.logPlaybackStarted = logPlaybackStarted;\n/* interactions with the PV player. */\nfunction logPlaybackUserAction(params) {\n    return _log(13778, 'PlaybackUserAction', 'PlaybackUserActionWebPreziAirWeb', params);\n}\nexports.logPlaybackUserAction = logPlaybackUserAction;\n/* User plays and interacts with the video player. */\nfunction logPlaybackVideo(params) {\n    return _log(13782, 'PlaybackVideo', 'PlaybackVideoWebPreziAirWeb', params);\n}\nexports.logPlaybackVideo = logPlaybackVideo;\n/* User reorders a frame by drag and dropping it into another place. */\nfunction logReorderFrame() {\n    return _log(16161, 'ReorderFrame', 'ReorderFrameWebPreziAirWeb');\n}\nexports.logReorderFrame = logReorderFrame;\n/* User clicks 'Report an issue' in header. */\nfunction logReportIssue() {\n    return _log(16163, 'ReportIssue', 'ReportIssueWebPreziAirWeb');\n}\nexports.logReportIssue = logReportIssue;\n/* User clicks 'Re-record' button. */\nfunction logRestartRecording() {\n    return _log(16165, 'RestartRecording', 'RestartRecordingWebPreziAirWeb');\n}\nexports.logRestartRecording = logRestartRecording;\n/* User clicks 'Re-use' button. */\nfunction logReuseVideo(params) {\n    return _log(16377, 'ReuseVideo', 'ReuseVideoWebPreziAirWeb', params);\n}\nexports.logReuseVideo = logReuseVideo;\n/* User searches for images and icons. */\nfunction logSearchImage(params) {\n    return _log(16183, 'SearchImage', 'SearchImageWebPreziAirWeb', params);\n}\nexports.logSearchImage = logSearchImage;\n/* The user submitted a video search request.. */\nfunction logSearchVideo(params) {\n    return _log(16185, 'SearchVideo', 'SearchVideoWebPreziAirWeb', params);\n}\nexports.logSearchVideo = logSearchVideo;\n/* Create a new video using advanced create from the dashboard top section,. */\nfunction logSelectAdvancedCreate() {\n    return _log(16187, 'SelectAdvancedCreate', 'SelectAdvancedCreateWebPreziAirWeb');\n}\nexports.logSelectAdvancedCreate = logSelectAdvancedCreate;\n/* User selects a frame by clicking on it. */\nfunction logSelectFrame() {\n    return _log(16195, 'SelectFrame', 'SelectFrameWebPreziAirWeb');\n}\nexports.logSelectFrame = logSelectFrame;\n/* User chooses to go live in Prezi Video. */\nfunction logSelectGoLive() {\n    return _log(16199, 'SelectGoLive', 'SelectGoLiveWebPreziAirWeb');\n}\nexports.logSelectGoLive = logSelectGoLive;\n/* User clicked on a template and can see it previewed on camera feed. */\nfunction logSelectTemplate(params) {\n    return _log(16223, 'SelectTemplate', 'SelectTemplateWebPreziAirWeb', params);\n}\nexports.logSelectTemplate = logSelectTemplate;\n/* User selects a video to preview by clicking on a Reusable story thumbnail or the Preview button.. */\nfunction logSelectVideo(params) {\n    return _log(16225, 'SelectVideo', 'SelectVideoWebPreziAirWeb', params);\n}\nexports.logSelectVideo = logSelectVideo;\n/* User selects a privacy setting (Public or Unlisted). */\nfunction logSetPrivacy(params) {\n    return _log(16227, 'SetPrivacy', 'SetPrivacyWebPreziAirWeb', params);\n}\nexports.logSetPrivacy = logSetPrivacy;\n/* User clicks one of the individual social sharing buttons, live or copies embed link. */\nfunction logShareVideo(params) {\n    return _log(13810, 'ShareVideo', 'ShareVideoWebPreziAirWeb', params);\n}\nexports.logShareVideo = logShareVideo;\n/* Performance warning message gets displayed to user if frame rates dip dangerously low. */\nfunction logShowFpsWarning(params) {\n    return _log(16379, 'ShowFpsWarning', 'ShowFpsWarningWebPreziAirWeb', params);\n}\nexports.logShowFpsWarning = logShowFpsWarning;\n/* Onboarding helper appears for first time users of Prezi Video. */\nfunction logShowOnboardingHelper(params) {\n    return _log(16234, 'ShowOnboardingHelper', 'ShowOnboardingHelperWebPreziAirWeb', params);\n}\nexports.logShowOnboardingHelper = logShowOnboardingHelper;\n/* User clicks on 'Styles' tab in the lite video template chooser. */\nfunction logShowTemplateList() {\n    return _log(16236, 'ShowTemplateList', 'ShowTemplateListWebPreziAirWeb');\n}\nexports.logShowTemplateList = logShowTemplateList;\n/* A permanent helper, e.g. tooltip, appears when the user hovers on a button. */\nfunction logShowTooltip(params) {\n    return _log(16238, 'ShowTooltip', 'ShowTooltipWebPreziAirWeb', params);\n}\nexports.logShowTooltip = logShowTooltip;\n/* User clicks on 'Reusable stories' tab in the lite video template chooser. */\nfunction logShowVideoList() {\n    return _log(16240, 'ShowVideoList', 'ShowVideoListWebPreziAirWeb');\n}\nexports.logShowVideoList = logShowVideoList;\n/* The user left the prezi video creation flow even though we showed them a warning prompt about losing data if they leave the page. NOTE: this event is supposed to be triggered in the unload event handler, and therefore has to be sent using sendBeacon, not the client-logger-module.. */\nfunction logShowedLeavePageWarning(params) {\n    return _log(16494, 'ShowedLeavePageWarning', 'ShowedLeavePageWarningWebPreziAirWeb', params);\n}\nexports.logShowedLeavePageWarning = logShowedLeavePageWarning;\n/* User clicked 'Skip' onboarding on the camera success screen. */\nfunction logSkipOnboarding() {\n    return _log(16242, 'SkipOnboarding', 'SkipOnboardingWebPreziAirWeb');\n}\nexports.logSkipOnboarding = logSkipOnboarding;\n/* User starts the recording.. */\nfunction logStartRecording(params) {\n    return _log(16245, 'StartRecording', 'StartRecordingWebPreziAirWeb', params);\n}\nexports.logStartRecording = logStartRecording;\n/* User clicks 'Trim' button (to start trimming). */\nfunction logStartVideoTrimmer() {\n    return _log(16249, 'StartVideoTrimmer', 'StartVideoTrimmerWebPreziAirWeb');\n}\nexports.logStartVideoTrimmer = logStartVideoTrimmer;\n/* User stops the recording.. */\nfunction logStopRecording(params) {\n    return _log(16254, 'StopRecording', 'StopRecordingWebPreziAirWeb', params);\n}\nexports.logStopRecording = logStopRecording;\n/* User changes presentation mode (Web only. */\nfunction logSwitchPresentationMode(params) {\n    return _log(16382, 'SwitchPresentationMode', 'SwitchPresentationModeWebPreziAirWeb', params);\n}\nexports.logSwitchPresentationMode = logSwitchPresentationMode;\n/* User modifies left/right trimmer. */\nfunction logTrimVideo(params) {\n    return _log(16262, 'TrimVideo', 'TrimVideoWebPreziAirWeb', params);\n}\nexports.logTrimVideo = logTrimVideo;\n/* Describes whether a user has clicked to withdraw their like from a video view page. */\nfunction logUnlikeVideoPage(params) {\n    return _log(16269, 'UnlikeVideoPage', 'UnlikeVideoPageWebPreziAirWeb', params);\n}\nexports.logUnlikeVideoPage = logUnlikeVideoPage;\n/* OBSOLETE: Describes when a user has unliked a video presentation. */\nfunction logUnlikeVideo(params) {\n    return _log(16267, 'UnlikeVideo', 'UnlikeVideoWebPreziAirWeb', params);\n}\nexports.logUnlikeVideo = logUnlikeVideo;\n/* User clicks 'Upload image'. Works only for own files. */\nfunction logUploadImage(params) {\n    return _log(16276, 'UploadImage', 'UploadImageWebPreziAirWeb', params);\n}\nexports.logUploadImage = logUploadImage;\n/* Image is uploaded successfully. Only in case of OWN_FILE. */\nfunction logUploadedImage(params) {\n    return _log(16271, 'UploadedImage', 'UploadedImageWebPreziAirWeb', params);\n}\nexports.logUploadedImage = logUploadedImage;\n/* User clicked on ‘Use this content’ in a Reusable story list or preview. */\nfunction logUseContent(params) {\n    return _log(16281, 'UseContent', 'UseContentWebPreziAirWeb', params);\n}\nexports.logUseContent = logUseContent;\n/* The user wants to see all video related with a specific tag.. */\nfunction logViewVideoTag(params) {\n    return _log(16283, 'ViewVideoTag', 'ViewVideoTagWebPreziAirWeb', params);\n}\nexports.logViewVideoTag = logViewVideoTag;\n/* The user wants to visit the dashboard for the prezi video product.. */\nfunction logVisitVideoDashboard() {\n    return _log(16285, 'VisitVideoDashboard', 'VisitVideoDashboardWebPreziAirWeb');\n}\nexports.logVisitVideoDashboard = logVisitVideoDashboard;\n/* The user wants to visit the homepage for the prezi video product.. */\nfunction logVisitVideoHomepage() {\n    return _log(16287, 'VisitVideoHomepage', 'VisitVideoHomepageWebPreziAirWeb');\n}\nexports.logVisitVideoHomepage = logVisitVideoHomepage;\n/* The user wants to consume the video content presented to them in the form.. */\nfunction logVisitVideoViewPage(params) {\n    return _log(16289, 'VisitVideoViewPage', 'VisitVideoViewPageWebPreziAirWeb', params);\n}\nexports.logVisitVideoViewPage = logVisitVideoViewPage;\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS = require('../internals/typed-arrays-constructors-requires-wrappers');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar ArrayBufferModule = require('../internals/array-buffer');\nvar anInstance = require('../internals/an-instance');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar hide = require('../internals/hide');\nvar toLength = require('../internals/to-length');\nvar toIndex = require('../internals/to-index');\nvar toOffset = require('../internals/to-offset');\nvar toPrimitive = require('../internals/to-primitive');\nvar has = require('../internals/has');\nvar classof = require('../internals/classof');\nvar isObject = require('../internals/is-object');\nvar create = require('../internals/object-create');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar typedArrayFrom = require('../internals/typed-array-from');\nvar forEach = require('../internals/array-iteration').forEach;\nvar setSpecies = require('../internals/set-species');\nvar definePropertyModule = require('../internals/object-define-property');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar getInternalState = InternalStateModule.get;\nvar setInternalState = InternalStateModule.set;\nvar nativeDefineProperty = definePropertyModule.f;\nvar nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\nvar round = Math.round;\nvar RangeError = global.RangeError;\nvar ArrayBuffer = ArrayBufferModule.ArrayBuffer;\nvar DataView = ArrayBufferModule.DataView;\nvar NATIVE_ARRAY_BUFFER_VIEWS = ArrayBufferViewCore.NATIVE_ARRAY_BUFFER_VIEWS;\nvar TYPED_ARRAY_TAG = ArrayBufferViewCore.TYPED_ARRAY_TAG;\nvar TypedArray = ArrayBufferViewCore.TypedArray;\nvar TypedArrayPrototype = ArrayBufferViewCore.TypedArrayPrototype;\nvar aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;\nvar isTypedArray = ArrayBufferViewCore.isTypedArray;\nvar BYTES_PER_ELEMENT = 'BYTES_PER_ELEMENT';\nvar WRONG_LENGTH = 'Wrong length';\n\nvar fromList = function (C, list) {\n  var index = 0;\n  var length = list.length;\n  var result = new (aTypedArrayConstructor(C))(length);\n  while (length > index) result[index] = list[index++];\n  return result;\n};\n\nvar addGetter = function (it, key) {\n  nativeDefineProperty(it, key, { get: function () {\n    return getInternalState(this)[key];\n  } });\n};\n\nvar isArrayBuffer = function (it) {\n  var klass;\n  return it instanceof ArrayBuffer || (klass = classof(it)) == 'ArrayBuffer' || klass == 'SharedArrayBuffer';\n};\n\nvar isTypedArrayIndex = function (target, key) {\n  return isTypedArray(target)\n    && typeof key != 'symbol'\n    && key in target\n    && String(+key) == String(key);\n};\n\nvar wrappedGetOwnPropertyDescriptor = function getOwnPropertyDescriptor(target, key) {\n  return isTypedArrayIndex(target, key = toPrimitive(key, true))\n    ? createPropertyDescriptor(2, target[key])\n    : nativeGetOwnPropertyDescriptor(target, key);\n};\n\nvar wrappedDefineProperty = function defineProperty(target, key, descriptor) {\n  if (isTypedArrayIndex(target, key = toPrimitive(key, true))\n    && isObject(descriptor)\n    && has(descriptor, 'value')\n    && !has(descriptor, 'get')\n    && !has(descriptor, 'set')\n    // TODO: add validation descriptor w/o calling accessors\n    && !descriptor.configurable\n    && (!has(descriptor, 'writable') || descriptor.writable)\n    && (!has(descriptor, 'enumerable') || descriptor.enumerable)\n  ) {\n    target[key] = descriptor.value;\n    return target;\n  } return nativeDefineProperty(target, key, descriptor);\n};\n\nif (DESCRIPTORS) {\n  if (!NATIVE_ARRAY_BUFFER_VIEWS) {\n    getOwnPropertyDescriptorModule.f = wrappedGetOwnPropertyDescriptor;\n    definePropertyModule.f = wrappedDefineProperty;\n    addGetter(TypedArrayPrototype, 'buffer');\n    addGetter(TypedArrayPrototype, 'byteOffset');\n    addGetter(TypedArrayPrototype, 'byteLength');\n    addGetter(TypedArrayPrototype, 'length');\n  }\n\n  $({ target: 'Object', stat: true, forced: !NATIVE_ARRAY_BUFFER_VIEWS }, {\n    getOwnPropertyDescriptor: wrappedGetOwnPropertyDescriptor,\n    defineProperty: wrappedDefineProperty\n  });\n\n  // eslint-disable-next-line max-statements\n  module.exports = function (TYPE, BYTES, wrapper, CLAMPED) {\n    var CONSTRUCTOR_NAME = TYPE + (CLAMPED ? 'Clamped' : '') + 'Array';\n    var GETTER = 'get' + TYPE;\n    var SETTER = 'set' + TYPE;\n    var NativeTypedArrayConstructor = global[CONSTRUCTOR_NAME];\n    var TypedArrayConstructor = NativeTypedArrayConstructor;\n    var TypedArrayConstructorPrototype = TypedArrayConstructor && TypedArrayConstructor.prototype;\n    var exported = {};\n\n    var getter = function (that, index) {\n      var data = getInternalState(that);\n      return data.view[GETTER](index * BYTES + data.byteOffset, true);\n    };\n\n    var setter = function (that, index, value) {\n      var data = getInternalState(that);\n      if (CLAMPED) value = (value = round(value)) < 0 ? 0 : value > 0xFF ? 0xFF : value & 0xFF;\n      data.view[SETTER](index * BYTES + data.byteOffset, value, true);\n    };\n\n    var addElement = function (that, index) {\n      nativeDefineProperty(that, index, {\n        get: function () {\n          return getter(this, index);\n        },\n        set: function (value) {\n          return setter(this, index, value);\n        },\n        enumerable: true\n      });\n    };\n\n    if (!NATIVE_ARRAY_BUFFER_VIEWS) {\n      TypedArrayConstructor = wrapper(function (that, data, offset, $length) {\n        anInstance(that, TypedArrayConstructor, CONSTRUCTOR_NAME);\n        var index = 0;\n        var byteOffset = 0;\n        var buffer, byteLength, length;\n        if (!isObject(data)) {\n          length = toIndex(data);\n          byteLength = length * BYTES;\n          buffer = new ArrayBuffer(byteLength);\n        } else if (isArrayBuffer(data)) {\n          buffer = data;\n          byteOffset = toOffset(offset, BYTES);\n          var $len = data.byteLength;\n          if ($length === undefined) {\n            if ($len % BYTES) throw RangeError(WRONG_LENGTH);\n            byteLength = $len - byteOffset;\n            if (byteLength < 0) throw RangeError(WRONG_LENGTH);\n          } else {\n            byteLength = toLength($length) * BYTES;\n            if (byteLength + byteOffset > $len) throw RangeError(WRONG_LENGTH);\n          }\n          length = byteLength / BYTES;\n        } else if (isTypedArray(data)) {\n          return fromList(TypedArrayConstructor, data);\n        } else {\n          return typedArrayFrom.call(TypedArrayConstructor, data);\n        }\n        setInternalState(that, {\n          buffer: buffer,\n          byteOffset: byteOffset,\n          byteLength: byteLength,\n          length: length,\n          view: new DataView(buffer)\n        });\n        while (index < length) addElement(that, index++);\n      });\n\n      if (setPrototypeOf) setPrototypeOf(TypedArrayConstructor, TypedArray);\n      TypedArrayConstructorPrototype = TypedArrayConstructor.prototype = create(TypedArrayPrototype);\n    } else if (TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS) {\n      TypedArrayConstructor = wrapper(function (dummy, data, typedArrayOffset, $length) {\n        anInstance(dummy, TypedArrayConstructor, CONSTRUCTOR_NAME);\n        if (!isObject(data)) return new NativeTypedArrayConstructor(toIndex(data));\n        if (isArrayBuffer(data)) return $length !== undefined\n          ? new NativeTypedArrayConstructor(data, toOffset(typedArrayOffset, BYTES), $length)\n          : typedArrayOffset !== undefined\n            ? new NativeTypedArrayConstructor(data, toOffset(typedArrayOffset, BYTES))\n            : new NativeTypedArrayConstructor(data);\n        if (isTypedArray(data)) return fromList(TypedArrayConstructor, data);\n        return typedArrayFrom.call(TypedArrayConstructor, data);\n      });\n\n      if (setPrototypeOf) setPrototypeOf(TypedArrayConstructor, TypedArray);\n      forEach(getOwnPropertyNames(NativeTypedArrayConstructor), function (key) {\n        if (!(key in TypedArrayConstructor)) hide(TypedArrayConstructor, key, NativeTypedArrayConstructor[key]);\n      });\n      TypedArrayConstructor.prototype = TypedArrayConstructorPrototype;\n    }\n\n    if (TypedArrayConstructorPrototype.constructor !== TypedArrayConstructor) {\n      hide(TypedArrayConstructorPrototype, 'constructor', TypedArrayConstructor);\n    }\n\n    if (TYPED_ARRAY_TAG) hide(TypedArrayConstructorPrototype, TYPED_ARRAY_TAG, CONSTRUCTOR_NAME);\n\n    exported[CONSTRUCTOR_NAME] = TypedArrayConstructor;\n\n    $({\n      global: true, forced: TypedArrayConstructor != NativeTypedArrayConstructor, sham: !NATIVE_ARRAY_BUFFER_VIEWS\n    }, exported);\n\n    if (!(BYTES_PER_ELEMENT in TypedArrayConstructor)) {\n      hide(TypedArrayConstructor, BYTES_PER_ELEMENT, BYTES);\n    }\n\n    if (!(BYTES_PER_ELEMENT in TypedArrayConstructorPrototype)) {\n      hide(TypedArrayConstructorPrototype, BYTES_PER_ELEMENT, BYTES);\n    }\n\n    setSpecies(CONSTRUCTOR_NAME);\n  };\n} else module.exports = function () { /* empty */ };\n","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport config from './config';\nimport { timeoutsShape } from './utils/PropTypes';\nimport TransitionGroupContext from './TransitionGroupContext';\nexport var UNMOUNTED = 'unmounted';\nexport var EXITED = 'exited';\nexport var ENTERING = 'entering';\nexport var ENTERED = 'entered';\nexport var EXITING = 'exiting';\n/**\n * The Transition component lets you describe a transition from one component\n * state to another _over time_ with a simple declarative API. Most commonly\n * it's used to animate the mounting and unmounting of a component, but can also\n * be used to describe in-place transition states as well.\n *\n * ---\n *\n * **Note**: `Transition` is a platform-agnostic base component. If you're using\n * transitions in CSS, you'll probably want to use\n * [`CSSTransition`](https://reactcommunity.org/react-transition-group/css-transition)\n * instead. It inherits all the features of `Transition`, but contains\n * additional features necessary to play nice with CSS transitions (hence the\n * name of the component).\n *\n * ---\n *\n * By default the `Transition` component does not alter the behavior of the\n * component it renders, it only tracks \"enter\" and \"exit\" states for the\n * components. It's up to you to give meaning and effect to those states. For\n * example we can add styles to a component when it enters or exits:\n *\n * ```jsx\n * import { Transition } from 'react-transition-group';\n *\n * const duration = 300;\n *\n * const defaultStyle = {\n *   transition: `opacity ${duration}ms ease-in-out`,\n *   opacity: 0,\n * }\n *\n * const transitionStyles = {\n *   entering: { opacity: 1 },\n *   entered:  { opacity: 1 },\n *   exiting:  { opacity: 0 },\n *   exited:  { opacity: 0 },\n * };\n *\n * const Fade = ({ in: inProp }) => (\n *   <Transition in={inProp} timeout={duration}>\n *     {state => (\n *       <div style={{\n *         ...defaultStyle,\n *         ...transitionStyles[state]\n *       }}>\n *         I'm a fade Transition!\n *       </div>\n *     )}\n *   </Transition>\n * );\n * ```\n *\n * There are 4 main states a Transition can be in:\n *  - `'entering'`\n *  - `'entered'`\n *  - `'exiting'`\n *  - `'exited'`\n *\n * Transition state is toggled via the `in` prop. When `true` the component\n * begins the \"Enter\" stage. During this stage, the component will shift from\n * its current transition state, to `'entering'` for the duration of the\n * transition and then to the `'entered'` stage once it's complete. Let's take\n * the following example (we'll use the\n * [useState](https://reactjs.org/docs/hooks-reference.html#usestate) hook):\n *\n * ```jsx\n * function App() {\n *   const [inProp, setInProp] = useState(false);\n *   return (\n *     <div>\n *       <Transition in={inProp} timeout={500}>\n *         {state => (\n *           // ...\n *         )}\n *       </Transition>\n *       <button onClick={() => setInProp(true)}>\n *         Click to Enter\n *       </button>\n *     </div>\n *   );\n * }\n * ```\n *\n * When the button is clicked the component will shift to the `'entering'` state\n * and stay there for 500ms (the value of `timeout`) before it finally switches\n * to `'entered'`.\n *\n * When `in` is `false` the same thing happens except the state moves from\n * `'exiting'` to `'exited'`.\n */\n\nvar Transition =\n/*#__PURE__*/\nfunction (_React$Component) {\n  _inheritsLoose(Transition, _React$Component);\n\n  function Transition(props, context) {\n    var _this;\n\n    _this = _React$Component.call(this, props, context) || this;\n    var parentGroup = context; // In the context of a TransitionGroup all enters are really appears\n\n    var appear = parentGroup && !parentGroup.isMounting ? props.enter : props.appear;\n    var initialStatus;\n    _this.appearStatus = null;\n\n    if (props.in) {\n      if (appear) {\n        initialStatus = EXITED;\n        _this.appearStatus = ENTERING;\n      } else {\n        initialStatus = ENTERED;\n      }\n    } else {\n      if (props.unmountOnExit || props.mountOnEnter) {\n        initialStatus = UNMOUNTED;\n      } else {\n        initialStatus = EXITED;\n      }\n    }\n\n    _this.state = {\n      status: initialStatus\n    };\n    _this.nextCallback = null;\n    return _this;\n  }\n\n  Transition.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) {\n    var nextIn = _ref.in;\n\n    if (nextIn && prevState.status === UNMOUNTED) {\n      return {\n        status: EXITED\n      };\n    }\n\n    return null;\n  }; // getSnapshotBeforeUpdate(prevProps) {\n  //   let nextStatus = null\n  //   if (prevProps !== this.props) {\n  //     const { status } = this.state\n  //     if (this.props.in) {\n  //       if (status !== ENTERING && status !== ENTERED) {\n  //         nextStatus = ENTERING\n  //       }\n  //     } else {\n  //       if (status === ENTERING || status === ENTERED) {\n  //         nextStatus = EXITING\n  //       }\n  //     }\n  //   }\n  //   return { nextStatus }\n  // }\n\n\n  var _proto = Transition.prototype;\n\n  _proto.componentDidMount = function componentDidMount() {\n    this.updateStatus(true, this.appearStatus);\n  };\n\n  _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n    var nextStatus = null;\n\n    if (prevProps !== this.props) {\n      var status = this.state.status;\n\n      if (this.props.in) {\n        if (status !== ENTERING && status !== ENTERED) {\n          nextStatus = ENTERING;\n        }\n      } else {\n        if (status === ENTERING || status === ENTERED) {\n          nextStatus = EXITING;\n        }\n      }\n    }\n\n    this.updateStatus(false, nextStatus);\n  };\n\n  _proto.componentWillUnmount = function componentWillUnmount() {\n    this.cancelNextCallback();\n  };\n\n  _proto.getTimeouts = function getTimeouts() {\n    var timeout = this.props.timeout;\n    var exit, enter, appear;\n    exit = enter = appear = timeout;\n\n    if (timeout != null && typeof timeout !== 'number') {\n      exit = timeout.exit;\n      enter = timeout.enter; // TODO: remove fallback for next major\n\n      appear = timeout.appear !== undefined ? timeout.appear : enter;\n    }\n\n    return {\n      exit: exit,\n      enter: enter,\n      appear: appear\n    };\n  };\n\n  _proto.updateStatus = function updateStatus(mounting, nextStatus) {\n    if (mounting === void 0) {\n      mounting = false;\n    }\n\n    if (nextStatus !== null) {\n      // nextStatus will always be ENTERING or EXITING.\n      this.cancelNextCallback();\n      var node = ReactDOM.findDOMNode(this);\n\n      if (nextStatus === ENTERING) {\n        this.performEnter(node, mounting);\n      } else {\n        this.performExit(node);\n      }\n    } else if (this.props.unmountOnExit && this.state.status === EXITED) {\n      this.setState({\n        status: UNMOUNTED\n      });\n    }\n  };\n\n  _proto.performEnter = function performEnter(node, mounting) {\n    var _this2 = this;\n\n    var enter = this.props.enter;\n    var appearing = this.context ? this.context.isMounting : mounting;\n    var timeouts = this.getTimeouts();\n    var enterTimeout = appearing ? timeouts.appear : timeouts.enter; // no enter animation skip right to ENTERED\n    // if we are mounting and running this it means appear _must_ be set\n\n    if (!mounting && !enter || config.disabled) {\n      this.safeSetState({\n        status: ENTERED\n      }, function () {\n        _this2.props.onEntered(node);\n      });\n      return;\n    }\n\n    this.props.onEnter(node, appearing);\n    this.safeSetState({\n      status: ENTERING\n    }, function () {\n      _this2.props.onEntering(node, appearing);\n\n      _this2.onTransitionEnd(node, enterTimeout, function () {\n        _this2.safeSetState({\n          status: ENTERED\n        }, function () {\n          _this2.props.onEntered(node, appearing);\n        });\n      });\n    });\n  };\n\n  _proto.performExit = function performExit(node) {\n    var _this3 = this;\n\n    var exit = this.props.exit;\n    var timeouts = this.getTimeouts(); // no exit animation skip right to EXITED\n\n    if (!exit || config.disabled) {\n      this.safeSetState({\n        status: EXITED\n      }, function () {\n        _this3.props.onExited(node);\n      });\n      return;\n    }\n\n    this.props.onExit(node);\n    this.safeSetState({\n      status: EXITING\n    }, function () {\n      _this3.props.onExiting(node);\n\n      _this3.onTransitionEnd(node, timeouts.exit, function () {\n        _this3.safeSetState({\n          status: EXITED\n        }, function () {\n          _this3.props.onExited(node);\n        });\n      });\n    });\n  };\n\n  _proto.cancelNextCallback = function cancelNextCallback() {\n    if (this.nextCallback !== null) {\n      this.nextCallback.cancel();\n      this.nextCallback = null;\n    }\n  };\n\n  _proto.safeSetState = function safeSetState(nextState, callback) {\n    // This shouldn't be necessary, but there are weird race conditions with\n    // setState callbacks and unmounting in testing, so always make sure that\n    // we can cancel any pending setState callbacks after we unmount.\n    callback = this.setNextCallback(callback);\n    this.setState(nextState, callback);\n  };\n\n  _proto.setNextCallback = function setNextCallback(callback) {\n    var _this4 = this;\n\n    var active = true;\n\n    this.nextCallback = function (event) {\n      if (active) {\n        active = false;\n        _this4.nextCallback = null;\n        callback(event);\n      }\n    };\n\n    this.nextCallback.cancel = function () {\n      active = false;\n    };\n\n    return this.nextCallback;\n  };\n\n  _proto.onTransitionEnd = function onTransitionEnd(node, timeout, handler) {\n    this.setNextCallback(handler);\n    var doesNotHaveTimeoutOrListener = timeout == null && !this.props.addEndListener;\n\n    if (!node || doesNotHaveTimeoutOrListener) {\n      setTimeout(this.nextCallback, 0);\n      return;\n    }\n\n    if (this.props.addEndListener) {\n      this.props.addEndListener(node, this.nextCallback);\n    }\n\n    if (timeout != null) {\n      setTimeout(this.nextCallback, timeout);\n    }\n  };\n\n  _proto.render = function render() {\n    var status = this.state.status;\n\n    if (status === UNMOUNTED) {\n      return null;\n    }\n\n    var _this$props = this.props,\n        children = _this$props.children,\n        childProps = _objectWithoutPropertiesLoose(_this$props, [\"children\"]); // filter props for Transtition\n\n\n    delete childProps.in;\n    delete childProps.mountOnEnter;\n    delete childProps.unmountOnExit;\n    delete childProps.appear;\n    delete childProps.enter;\n    delete childProps.exit;\n    delete childProps.timeout;\n    delete childProps.addEndListener;\n    delete childProps.onEnter;\n    delete childProps.onEntering;\n    delete childProps.onEntered;\n    delete childProps.onExit;\n    delete childProps.onExiting;\n    delete childProps.onExited;\n\n    if (typeof children === 'function') {\n      // allows for nested Transitions\n      return React.createElement(TransitionGroupContext.Provider, {\n        value: null\n      }, children(status, childProps));\n    }\n\n    var child = React.Children.only(children);\n    return (// allows for nested Transitions\n      React.createElement(TransitionGroupContext.Provider, {\n        value: null\n      }, React.cloneElement(child, childProps))\n    );\n  };\n\n  return Transition;\n}(React.Component);\n\nTransition.contextType = TransitionGroupContext;\nTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  /**\n   * A `function` child can be used instead of a React element. This function is\n   * called with the current transition status (`'entering'`, `'entered'`,\n   * `'exiting'`, `'exited'`), which can be used to apply context\n   * specific props to a component.\n   *\n   * ```jsx\n   * <Transition in={this.state.in} timeout={150}>\n   *   {state => (\n   *     <MyComponent className={`fade fade-${state}`} />\n   *   )}\n   * </Transition>\n   * ```\n   */\n  children: PropTypes.oneOfType([PropTypes.func.isRequired, PropTypes.element.isRequired]).isRequired,\n\n  /**\n   * Show the component; triggers the enter or exit states\n   */\n  in: PropTypes.bool,\n\n  /**\n   * By default the child component is mounted immediately along with\n   * the parent `Transition` component. If you want to \"lazy mount\" the component on the\n   * first `in={true}` you can set `mountOnEnter`. After the first enter transition the component will stay\n   * mounted, even on \"exited\", unless you also specify `unmountOnExit`.\n   */\n  mountOnEnter: PropTypes.bool,\n\n  /**\n   * By default the child component stays mounted after it reaches the `'exited'` state.\n   * Set `unmountOnExit` if you'd prefer to unmount the component after it finishes exiting.\n   */\n  unmountOnExit: PropTypes.bool,\n\n  /**\n   * Normally a component is not transitioned if it is shown when the\n   * `<Transition>` component mounts. If you want to transition on the first\n   * mount set `appear` to `true`, and the component will transition in as soon\n   * as the `<Transition>` mounts.\n   *\n   * > **Note**: there are no special appear states like `appearing`/`appeared`, this prop\n   * > only adds an additional enter transition. However, in the\n   * > `<CSSTransition>` component that first enter transition does result in\n   * > additional `.appear-*` classes, that way you can choose to style it\n   * > differently.\n   */\n  appear: PropTypes.bool,\n\n  /**\n   * Enable or disable enter transitions.\n   */\n  enter: PropTypes.bool,\n\n  /**\n   * Enable or disable exit transitions.\n   */\n  exit: PropTypes.bool,\n\n  /**\n   * The duration of the transition, in milliseconds.\n   * Required unless `addEndListener` is provided.\n   *\n   * You may specify a single timeout for all transitions:\n   *\n   * ```jsx\n   * timeout={500}\n   * ```\n   *\n   * or individually:\n   *\n   * ```jsx\n   * timeout={{\n   *  appear: 500,\n   *  enter: 300,\n   *  exit: 500,\n   * }}\n   * ```\n   *\n   * - `appear` defaults to the value of `enter`\n   * - `enter` defaults to `0`\n   * - `exit` defaults to `0`\n   *\n   * @type {number | { enter?: number, exit?: number, appear?: number }}\n   */\n  timeout: function timeout(props) {\n    var pt = timeoutsShape;\n    if (!props.addEndListener) pt = pt.isRequired;\n\n    for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n      args[_key - 1] = arguments[_key];\n    }\n\n    return pt.apply(void 0, [props].concat(args));\n  },\n\n  /**\n   * Add a custom transition end trigger. Called with the transitioning\n   * DOM node and a `done` callback. Allows for more fine grained transition end\n   * logic. **Note:** Timeouts are still used as a fallback if provided.\n   *\n   * ```jsx\n   * addEndListener={(node, done) => {\n   *   // use the css transitionend event to mark the finish of a transition\n   *   node.addEventListener('transitionend', done, false);\n   * }}\n   * ```\n   */\n  addEndListener: PropTypes.func,\n\n  /**\n   * Callback fired before the \"entering\" status is applied. An extra parameter\n   * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n   *\n   * @type Function(node: HtmlElement, isAppearing: bool) -> void\n   */\n  onEnter: PropTypes.func,\n\n  /**\n   * Callback fired after the \"entering\" status is applied. An extra parameter\n   * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n   *\n   * @type Function(node: HtmlElement, isAppearing: bool)\n   */\n  onEntering: PropTypes.func,\n\n  /**\n   * Callback fired after the \"entered\" status is applied. An extra parameter\n   * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n   *\n   * @type Function(node: HtmlElement, isAppearing: bool) -> void\n   */\n  onEntered: PropTypes.func,\n\n  /**\n   * Callback fired before the \"exiting\" status is applied.\n   *\n   * @type Function(node: HtmlElement) -> void\n   */\n  onExit: PropTypes.func,\n\n  /**\n   * Callback fired after the \"exiting\" status is applied.\n   *\n   * @type Function(node: HtmlElement) -> void\n   */\n  onExiting: PropTypes.func,\n\n  /**\n   * Callback fired after the \"exited\" status is applied.\n   *\n   * @type Function(node: HtmlElement) -> void\n   */\n  onExited: PropTypes.func // Name the function so it is clearer in the documentation\n\n} : {};\n\nfunction noop() {}\n\nTransition.defaultProps = {\n  in: false,\n  mountOnEnter: false,\n  unmountOnExit: false,\n  appear: false,\n  enter: true,\n  exit: true,\n  onEnter: noop,\n  onEntering: noop,\n  onEntered: noop,\n  onExit: noop,\n  onExiting: noop,\n  onExited: noop\n};\nTransition.UNMOUNTED = 0;\nTransition.EXITED = 1;\nTransition.ENTERING = 2;\nTransition.ENTERED = 3;\nTransition.EXITING = 4;\nexport default Transition;","'use strict';\n\nvar bind = require('./helpers/bind');\n\n/*global toString:true*/\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n  return toString.call(val) === '[object Array]';\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n  return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n  return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n    && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n  return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n  return (typeof FormData !== 'undefined') && (val instanceof FormData);\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n  var result;\n  if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n    result = ArrayBuffer.isView(val);\n  } else {\n    result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\n  }\n  return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n  return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n  return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n  return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n  return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n  return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n  return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n  return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n  return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n  return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n  return str.replace(/^\\s*/, '').replace(/\\s*$/, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n *  typeof window -> undefined\n *  typeof document -> undefined\n *\n * react-native:\n *  navigator.product -> 'ReactNative'\n * nativescript\n *  navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n  if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n                                           navigator.product === 'NativeScript' ||\n                                           navigator.product === 'NS')) {\n    return false;\n  }\n  return (\n    typeof window !== 'undefined' &&\n    typeof document !== 'undefined'\n  );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n  // Don't bother if no value provided\n  if (obj === null || typeof obj === 'undefined') {\n    return;\n  }\n\n  // Force an array if not already something iterable\n  if (typeof obj !== 'object') {\n    /*eslint no-param-reassign:0*/\n    obj = [obj];\n  }\n\n  if (isArray(obj)) {\n    // Iterate over array values\n    for (var i = 0, l = obj.length; i < l; i++) {\n      fn.call(null, obj[i], i, obj);\n    }\n  } else {\n    // Iterate over object keys\n    for (var key in obj) {\n      if (Object.prototype.hasOwnProperty.call(obj, key)) {\n        fn.call(null, obj[key], key, obj);\n      }\n    }\n  }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n  var result = {};\n  function assignValue(val, key) {\n    if (typeof result[key] === 'object' && typeof val === 'object') {\n      result[key] = merge(result[key], val);\n    } else {\n      result[key] = val;\n    }\n  }\n\n  for (var i = 0, l = arguments.length; i < l; i++) {\n    forEach(arguments[i], assignValue);\n  }\n  return result;\n}\n\n/**\n * Function equal to merge with the difference being that no reference\n * to original objects is kept.\n *\n * @see merge\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction deepMerge(/* obj1, obj2, obj3, ... */) {\n  var result = {};\n  function assignValue(val, key) {\n    if (typeof result[key] === 'object' && typeof val === 'object') {\n      result[key] = deepMerge(result[key], val);\n    } else if (typeof val === 'object') {\n      result[key] = deepMerge({}, val);\n    } else {\n      result[key] = val;\n    }\n  }\n\n  for (var i = 0, l = arguments.length; i < l; i++) {\n    forEach(arguments[i], assignValue);\n  }\n  return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n  forEach(b, function assignValue(val, key) {\n    if (thisArg && typeof val === 'function') {\n      a[key] = bind(val, thisArg);\n    } else {\n      a[key] = val;\n    }\n  });\n  return a;\n}\n\nmodule.exports = {\n  isArray: isArray,\n  isArrayBuffer: isArrayBuffer,\n  isBuffer: isBuffer,\n  isFormData: isFormData,\n  isArrayBufferView: isArrayBufferView,\n  isString: isString,\n  isNumber: isNumber,\n  isObject: isObject,\n  isUndefined: isUndefined,\n  isDate: isDate,\n  isFile: isFile,\n  isBlob: isBlob,\n  isFunction: isFunction,\n  isStream: isStream,\n  isURLSearchParams: isURLSearchParams,\n  isStandardBrowserEnv: isStandardBrowserEnv,\n  forEach: forEach,\n  merge: merge,\n  deepMerge: deepMerge,\n  extend: extend,\n  trim: trim\n};\n","import i18n from 'i18next';\nimport React, {Component} from 'react';\nimport PropTypes from 'prop-types';\nimport {connect} from 'react-redux';\nimport cx from 'classnames';\nimport {color as d3color} from 'd3-color';\n\nimport resolveDesignProperty from '../FreeLayoutEditor/immutable/resolveDesignProperty';\nimport EditorStateStore from '../../app/freelayout_editor/stores/EditorStateStore';\nimport CurrentInfographicStore from '../../app/main/stores/CurrentInfographicStore';\nimport InfographicFooterStore from './store';\nimport Logo from '../../components/InfographicFooter/Logo.react.js';\nimport style from './FlexFooter.css';\nimport fluxContainer from '../../fluxContainer';\nimport {engagementEvent} from '../EngagementAnalytics/EngagementAnalytics.actions';\nimport {showShareDialog} from './actions';\nimport ShareDialog from '../../components/Dialogs/ShareDialog.react.js';\nimport {getFooterSettings, getFooterLayout} from './flexFooterFunctions';\nimport ShareButton from './ShareButton.react';\n\nconst FOOTER_PADDING = 60;\nconst BUTTON_MARGIN = 19;\nconst FONT_WEIGHT_BOLD = 700;\nconst FOOTER_HEIGHT = 60;\nconst FULL_WIDTH_BUTTON_LIMIT = 280;\n\nconst props = state => getFooterSettings(state.get('footerSettings'));\n\nfunction paginationString(page, totalPages, starting, format) {\n    const number = page + starting - 1;\n    switch (format) {\n        case 'x':\n            return number;\n        case 'x / y':\n            return `${number} / ${totalPages}`;\n        case 'x ... y':\n            return `${number} ... ${totalPages}`;\n    }\n}\n\n@connect(props)\n@fluxContainer({withProps: true})\nexport default class InfographicFooter extends Component {\n    static propTypes = {\n        backgroundColor: PropTypes.string,\n        backgroundOpacity: PropTypes.number,\n        bold: PropTypes.bool,\n        buttonBackgroundColor: PropTypes.string,\n        buttonText: PropTypes.string,\n        buttonTextColor: PropTypes.string,\n        customLink: PropTypes.string,\n        flex: PropTypes.bool,\n        fontSize: PropTypes.number,\n        footerLayout: PropTypes.string,\n        footnoteText: PropTypes.string,\n        footnoteType: PropTypes.string,\n        italic: PropTypes.bool,\n        logoColor: PropTypes.string,\n        logoType: PropTypes.string,\n        logoImage: PropTypes.string,\n        logoLink: PropTypes.string,\n        logoName: PropTypes.string,\n        pageNumber: PropTypes.number,\n        pageCount: PropTypes.number,\n        paginationFormat: PropTypes.string,\n        paginationStartWith: PropTypes.number,\n        textColor: PropTypes.string,\n        logoWidth: PropTypes.number,\n        logoHeight: PropTypes.number,\n    };\n\n    constructor(props) {\n        super(props);\n        this._hideShareDialog = this._hideShareDialog.bind(this);\n    }\n\n    static getStores() {\n        return [\n            EditorStateStore,\n            InfographicFooterStore,\n        ];\n    }\n\n    static calculateState(prevState, props) {\n        const {editorState} = EditorStateStore;\n        const logoLink = CurrentInfographicStore.getLogoLink();\n        if (!props.showFooter && !logoLink) {\n            return {\n                disabled: true,\n            };\n        }\n\n        const design = (editorState && editorState.getDesign()) || {};\n        const backgroundColor = resolveDesignProperty(design, null, props.backgroundColor);\n        const textColor = resolveDesignProperty(design, null, props.textColor).value;\n        const textStyle = {};\n        const zoom = props.scaleY;\n        if (props.bold) {\n            textStyle.fontWeight = FONT_WEIGHT_BOLD;\n        }\n        if (props.italic) {\n            textStyle.fontStyle = 'italic';\n        }\n        if (props.fontSize) {\n            textStyle.fontSize = props.fontSize;\n        }\n        if (textColor) {\n            textStyle.color = textColor;\n        }\n\n        const buttonStyle = {\n            background: resolveDesignProperty(design, null, props.buttonBackgroundColor).value,\n            color: resolveDesignProperty(design, null, props.buttonTextColor).value,\n            marginTop: BUTTON_MARGIN,\n        };\n\n        const padding = FOOTER_PADDING * zoom / 2;\n\n        const containerStyle = {\n            width: props.width - (padding * 2),\n            height: FOOTER_HEIGHT * zoom,\n            marginTop: -FOOTER_HEIGHT * zoom,\n            padding: `0 ${padding}px`,\n        };\n        if (padding - Math.floor(padding) && padding - Math.floor(padding) < 0.5) {\n            containerStyle.width = containerStyle.width + 1;\n        }\n\n        if (backgroundColor && backgroundColor.value) {\n            const color = d3color(backgroundColor.value);\n            color.opacity = props.backgroundOpacity;\n            containerStyle.background = color;\n        }\n\n        let text = props.footnoteText;\n        if (props.footnoteType === 'autoPagination') {\n            text = paginationString(props.pageNumber, props.pageCount, props.paginationStartWith, props.paginationFormat);\n        }\n\n        const layout = getFooterLayout(props.footerLayout, props.logoType, props.footnoteType);\n\n        return {\n            buttonStyle,\n            containerStyle,\n            disabled: false,\n            layout,\n            text,\n            textStyle,\n            logoLink: props.logoLink || logoLink,\n            visibleShareDialog: InfographicFooterStore.visibleShareDialog,\n            shareDialogPage: InfographicFooterStore.shareDialogPage,\n            blockStyle: {\n                transform: `scale(${zoom})`,\n            },\n            centerBlockStyle: {\n                transform: `translateX(-50%) scale(${zoom})`,\n            },\n            fullWidthButton: props.width > FULL_WIDTH_BUTTON_LIMIT,\n        };\n    }\n\n    renderLogo() {\n        const {logoType} = this.props;\n        if (logoType === 'custom_logo-infogram' || logoType === 'custom_logo-custom') {\n            return (\n                <div className={style.logo}>\n                    <Logo\n                        background={this.props.logoColor}\n                        text={(!this.props.logoImage && (i18n.t('app.infographic.made_with') || 'made with')) || ''}\n                        url={this.props.logoImage}\n                        link={this.state.logoLink}\n                        logoName={this.props.logoName}\n                        width={logoType === 'custom_logo-infogram' && this.props.logoWidth}\n                        height={logoType === 'custom_logo-infogram' && this.props.logoHeight}\n                    />\n                </div>\n            );\n        }\n        return null;\n    }\n\n    renderText() {\n        const {textStyle, buttonStyle, text} = this.state;\n        switch (this.props.footnoteType) {\n            case 'shareButton': {\n                return (\n                    <ShareButton\n                        style={buttonStyle}\n                        fullWidth={this.state.fullWidthButton}\n                        onButtonClick={this._clickShareButton}\n                        text={this.props.buttonText}\n                    />\n                );\n            }\n            case 'text': {\n                if (this.props.customLink) {\n                    return (\n                        <a style={textStyle} href={this.props.customLink} target=\"_blank\" rel=\"nofollow noopener noreferrer\">\n                            {text}\n                        </a>\n                    );\n                }\n                return <div style={textStyle}>{text}</div>;\n            }\n            case 'autoPagination': {\n                return (<div style={textStyle}>{text}</div>);\n            }\n        }\n    }\n\n    renderBlock = (type) => {\n        switch (this.state.layout[type]) {\n            case 'logo':\n                return this.renderLogo();\n            case 'text':\n                return this.renderText();\n        }\n        return null;\n    }\n\n    _clickShareButton = () => {\n        engagementEvent('', 'shareButton', 'click');\n        showShareDialog({visibleShareDialog: true, shareDialogPage: this.props.pageNumber});\n    }\n\n    _closeShareDialog = () => {\n        showShareDialog({visibleShareDialog: false});\n    }\n\n    _hideShareDialog(e) {\n        const container = document.getElementsByClassName(style.wrapper)[this.state.shareDialogPage - 1];\n        if (container && !container.contains(e.target) && e.target.className.indexOf('dropDownItem') === -1) {\n            showShareDialog({visibleShareDialog: false});\n        }\n    }\n\n    componentDidMount() {\n        window.addEventListener('click', this._hideShareDialog, false);\n    }\n\n    componentWillUnmount() {\n        window.removeEventListener('click', this._hideShareDialog, false);\n    }\n\n    render() {\n        if (this.state.disabled) {\n            return null;\n        }\n        let shareDialog;\n        if (this.state.visibleShareDialog && this.state.shareDialogPage === this.props.pageNumber) {\n            shareDialog = <ShareDialog onClose={this._closeShareDialog} type=\"footer\"/>;\n        }\n        return (\n            <div className={style.wrapper}>\n                <div className={cx(style.container)} style={this.state.containerStyle}>\n                    <div className={style.innerContainer}>\n                        <div style={this.state.blockStyle} className={style.left}>{this.renderBlock('left')}</div>\n                        <div style={this.state.centerBlockStyle} className={style.center}>{this.renderBlock('center')}</div>\n                        <div style={this.state.blockStyle} className={style.right}>{this.renderBlock('right')}</div>\n                    </div>\n                </div>\n                {shareDialog}\n            </div>\n        );\n    }\n}\n","import hasClass from './hasClass';\nexport default function addClass(element, className) {\n  if (element.classList) element.classList.add(className);else if (!hasClass(element, className)) if (typeof element.className === 'string') element.className = element.className + \" \" + className;else element.setAttribute('class', (element.className && element.className.baseVal || '') + \" \" + className);\n}","import React from 'react';\nimport styled, {keyframes} from 'styled-components';\n\nimport PrezigramTheme from '../../contexts/theme/prezigram';\n\nconst rotate = keyframes`\n    0% {\n        transform: rotate(0deg);\n    }\n    100% {\n        transform: rotate(360deg);\n    }\n`;\n\nconst SIZES = {\n    normal: {\n        width: 44,\n        height: 44,\n        borderWidth: 3,\n    },\n    small: {\n        width: 20,\n        height: 20,\n        borderWidth: 2,\n    },\n};\n\nconst CircleStyles = `\n    border-style: solid;\n    border-image: initial;\n    border-radius: 50%;\n`;\n\nconst Inner = styled.div`\n    position: absolute;\n    ${CircleStyles};\n`;\n\nconst CircleInner = styled.div`\n    ${CircleStyles};\n`;\n\nconst Circle = styled.div`\n    -webkit-mask-image: -webkit-linear-gradient(top, black 50%, rgba(0, 0, 0, 0) 83%);\n    mask-image: linear-gradient(top, black 50%, rgba(0, 0, 0, 0) 83%);\n    animation: 1.25s linear 0s infinite normal none running ${rotate};\n    overflow: hidden;\n`;\n\nconst Spinner = styled.div`\n    width: ${props => props.width}px;\n    height: ${props => props.height}px;\n    display: inline-block;\n    overflow: hidden;\n    vertical-align: middle;\n\n    && {\n        box-sizing: border-box;\n    }\n\n    ${Inner},\n    ${Circle},\n    ${CircleInner} {\n        box-sizing: inherit;\n        width: inherit;\n        height: inherit;\n    }\n\n    ${props => `\n        ${Inner} {\n            border-color: ${props.color || PrezigramTheme.neutral100};\n        }\n\n        ${Circle} {\n            transform-origin: ${props.width / 2}px ${props.height / 2}px;\n        }\n\n        ${CircleInner} {\n            border-color: transparent transparent transparent ${props.colorSecondary || PrezigramTheme.blue500};\n        }\n\n        ${CircleInner},\n        ${Inner} {\n            border-width: ${props.borderWidth}px;\n        }\n    `}\n`;\n\ninterface SpinnerProps {\n    size: 'normal' | 'small';\n    customCss?: object;\n    color?: string;\n    colorSecondary?: string;\n}\n\nexport default function PrezigramSpinner(props: SpinnerProps) {\n    return (\n        <Spinner\n            css={props.customCss}\n            color={props.color}\n            colorSecondary={props.colorSecondary}\n            width={SIZES[props.size].width}\n            height={SIZES[props.size].height}\n            borderWidth={SIZES[props.size].borderWidth}\n        >\n            <Inner/>\n            <Circle>\n                <CircleInner/>\n            </Circle>\n        </Spinner>\n    );\n}\n// https://github.com/microsoft/TypeScript/issues/31247#issuecomment-489962705\nPrezigramSpinner.defaultProps = {\n    size: 'normal',\n} as Partial<SpinnerProps>;\n","var escape = require(\"../../../../node_modules/css-loader/lib/url/escape.js\");\nexports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"._3rE93JaWPax05QYq5zmmGF {\\n    position: absolute;\\n    width: 1px;\\n    height: 100%;\\n    top: 10px;\\n    right: 0;\\n    pointer-events: none;\\n}\\n._2LiVVoVgrrL6bahFJd2O-n  {\\n    top: 100%;\\n    margin-top: -300px;\\n    right: auto;\\n    left: 30px;\\n}\\n._14QgeERMei2qWMeGLGN7um {\\n    top: 0;\\n    right: 11px;\\n}\\n\\n/* Safari 9+ */\\n@supports (-webkit-marquee-repetition:infinite) and (object-fit:fill) {\\n    ._14QgeERMei2qWMeGLGN7um {\\n        right: 13px;\\n    }\\n}\\n\\n@media screen and (max-width: 960px) {\\n    ._14QgeERMei2qWMeGLGN7um {\\n        right: auto;\\n        left: 50%;\\n        margin-left: -150px;\\n    }\\n}\\n\\n._1ghwi8Nr7dAXPxsqkXsdk6 {\\n    position: -webkit-sticky;\\n    position: sticky;\\n    top: 10px;\\n    width: 230px;\\n    box-sizing: border-box;\\n    background-color: #ffffff;\\n    box-shadow: 0 0 20px 0 rgba(0,0,0,0.3);\\n    border-radius: 4px;\\n    z-index: 5000;\\n    margin-left: -298px;\\n    pointer-events: auto;\\n    text-align: left;\\n    line-height: 15px;\\n}\\n@media screen and (max-width: 960px) {\\n\\n    ._14QgeERMei2qWMeGLGN7um ._1ghwi8Nr7dAXPxsqkXsdk6,\\n    ._2LiVVoVgrrL6bahFJd2O-n ._1ghwi8Nr7dAXPxsqkXsdk6 {\\n        width: 300px;\\n        margin-left: 0;\\n    }\\n}\\n._2LiVVoVgrrL6bahFJd2O-n ._1ghwi8Nr7dAXPxsqkXsdk6 {\\n    margin-left: 0;\\n}\\n._14QgeERMei2qWMeGLGN7um ._1ghwi8Nr7dAXPxsqkXsdk6 {\\n    top: 75px;\\n}\\n._27Aol1HroErVDNMeevCWlT {\\n    display: none !important;\\n}\\n\\n._5zzSk5LtDwVt7v4BFY7xz {\\n    position: relative;\\n    width: 100%;\\n    height: 40px;\\n    background-color: #EBEBEE;\\n    color: #656565;\\n    font-size: 14.99px;\\n    font-weight: 500;\\n    line-height: 40px;\\n    text-align: center;\\n    border-top-left-radius: 2px;\\n    border-top-right-radius: 2px;\\n}\\n\\n._5zzSk5LtDwVt7v4BFY7xz::after {\\n    content: ' ';\\n    position: absolute;\\n    width: 0;\\n    height: 0;\\n    margin-right: -3px;\\n    top: 22px;\\n    right: 0;\\n    border-style:solid;\\n    border-width: 6px;\\n    border-color: #EBEBEE #EBEBEE #EBEBEE #EBEBEE;\\n    transform-origin: 0 0;\\n    -ms-transform-origin: 0 0;\\n    -webkit-transform-origin: 0 0;\\n    transform: rotate(-45deg);\\n    -ms-transform: rotate(-45deg); /* IE 9 */\\n    -webkit-transform: rotate(-45deg); /* Safari */\\n}\\n._3sxzyJk6XrQiLEkGDEe_O1 ._5zzSk5LtDwVt7v4BFY7xz::after {\\n    top: 25px;\\n}\\n._2LiVVoVgrrL6bahFJd2O-n ._5zzSk5LtDwVt7v4BFY7xz::after,\\n._14QgeERMei2qWMeGLGN7um ._5zzSk5LtDwVt7v4BFY7xz::after {\\n    display: none;\\n}\\n\\n@media screen and (max-width: 960px) {\\n    ._2LiVVoVgrrL6bahFJd2O-n {\\n        left: 50%;\\n        margin-left: -150px;\\n    }\\n}\\n\\n._3p091Az4G2dkw4y3jrcBSk {\\n    padding: 20px;\\n}\\n\\n._2A5oBSiE8-vqGOXC3ZvDRw {\\n    display: block;\\n}\\n\\n._3p091Az4G2dkw4y3jrcBSk label {\\n    width: auto;\\n    float:left;\\n    font-size: 11px;\\n    color: #2D2D2D;\\n    font-weight: 500;\\n    line-height: 15px;\\n}\\n\\nlabel._1Q-HkzlAVpQ9gLUwWpoMRa {\\n    display: inline-block;\\n    margin-right: 5px;\\n    width: auto;\\n}\\n\\n._3v3I6QKj1hBNcxjqc04IZU {\\n    font-size: 11px;\\n    font-weight: 500 !important;\\n    line-height: 13px;\\n    float: right;\\n    cursor: pointer;\\n    color: #3195cb;\\n}\\n\\n._3v3I6QKj1hBNcxjqc04IZU:hover {\\n    text-decoration: underline;\\n}\\n\\n._3rcOV_2TAJxFJDrl2qQ03n {\\n    height: 40px;\\n    width: 100%;\\n    border: 1px solid #CCCCCC;\\n    border-radius: 4px;\\n    color: #656565;\\n    font-size: 13px;\\n    font-weight: 500;\\n    line-height: 40px;\\n    box-sizing: border-box;\\n    padding: 0 10px;\\n    margin-bottom: 10px;\\n}\\n\\n.jPT2tD5QXddj0w3a8AZwR {\\n    display: block;\\n    height: 40px;\\n    width: 100%;\\n    border-radius: 4px;\\n    background-color: #EBEBEE;\\n    color: #656565;\\n    font-size: 13px;\\n    font-weight: 500;\\n    line-height: 40px;\\n    text-align: center;\\n    box-sizing: border-box;\\n    cursor: pointer;\\n    background-image: url(/i/embed.svg);\\n    background-repeat: no-repeat;\\n    background-position: left 10px center;\\n    min-width: auto;\\n}\\n\\n.jPT2tD5QXddj0w3a8AZwR:hover {\\n    background-color: rgba(235,235,238,.6);\\n}\\n\\n.gagAV2YJmQBv-7mG_tDzY {\\n    margin-bottom: 5px;\\n}\\n\\n._27yrxSQFc21GIztPse_6kI {\\n    background: none;\\n    height: 13px;\\n    color: #3195CB;\\n    font-size: 11px;\\n    font-weight: 500;\\n    line-height: 13px;\\n}\\n\\n._1AI1uR-ln0zGhrBB8FNjwy {\\n    margin-right: 5px;\\n}\\n\\n._1R0jmP5P9tpIgGWj9kk0b2 {\\n    list-style: none;\\n    background-color: #2c2c2c;\\n    border: 2px solid #656565;\\n    overflow: hidden;\\n    border-radius: 4px;\\n    padding-left: 0px;\\n    margin-top: 5px;\\n}\\n\\n._2LMCQCMd_H1slkHUXCB7D4 {\\n    color: #FFF;\\n    padding: 10px;\\n    cursor: pointer;\\n    font-size: 13px;\\n    font-weight: 500;\\n}\\n\\n._2LMCQCMd_H1slkHUXCB7D4:hover {\\n    background-color: #656565;\\n}\\n\\n._1LEsxAr8drVk17UFCIsSl3 {\\n    height: 129px;\\n    width: 100%;\\n    border: 1px solid #CCCCCC;\\n    border-radius: 4px;\\n    background-color: #FFFFFF;\\n    color: #656565;\\n    padding: 7px;\\n    outline: none;\\n    font-size: 11px;\\n    line-height: 14px;\\n    font-weight: 500;\\n    resize: none;\\n    box-sizing: border-box;\\n    white-space: normal;\\n}\\n\\n._1hn-9NLK_IkUnkvgKyWNJd {\\n    width: 16px;\\n    height: 16px;\\n    position: absolute;\\n    right: 20px;\\n    color: #656565;\\n    cursor:pointer;\\n}\\n\\n._1hn-9NLK_IkUnkvgKyWNJd:before {\\n    font-size: 16px;\\n}\\n\\n.xyxGllLv3KQGSaE5be7g1 {\\n    position: absolute;\\n    left: 0;\\n    top: 0;\\n    cursor: pointer;\\n    padding: 0 18px;\\n    font-size: 16px;\\n    display: block;\\n    height: 100%;\\n    color: #656565;\\n    min-width: auto;\\n}\\n\\n._1LmWcnvORR2EYWnSjzIKS8 {\\n    position: absolute;\\n    cursor: pointer;\\n    right: -21px;\\n    top: 15px;\\n    width: 10px;\\n    height: 10px;\\n    padding: 0;\\n    background: url(\" + escape(require(\"./images/icon-cancel-dark.svg\")) + \") center no-repeat;\\n    background-size: contain;\\n}\\n\\n._36zt27OpkgNnTCBN1gnA2t {\\n    display: flex;\\n    margin-bottom: 10px;\\n}\\n\\n._2WgvxJ2p_ug95XTdRhnlmB {\\n    width: 40px;\\n    height: 40px;\\n    border-radius: 4px;\\n    margin-right: 10px;\\n    display: flex;\\n    justify-content: center;\\n    align-items: center;\\n}\\n\\n._2WgvxJ2p_ug95XTdRhnlmB:last-child {\\n    margin-right: 0;\\n}\\n\\n._3VV_nJpChpvIWJg-xoGO4x {\\n    background-color: #4763AA;\\n}\\n\\n._3VV_nJpChpvIWJg-xoGO4x:hover {\\n    background-color: #6280CC;\\n}\\n\\n._2E2M4HWa8klzCDA_z9SZj9 {\\n    background-color: #369FC2;\\n}\\n\\n._2E2M4HWa8klzCDA_z9SZj9:hover {\\n    background-color: #4EB6D8;\\n}\\n\\n._2uJoefou0I60bJSwZpdVVp {\\n    background-color: #1D87BD;\\n}\\n\\n._2uJoefou0I60bJSwZpdVVp:hover {\\n    background-color: #319DD5;\\n}\\n\", \"\"]);\n\n// exports\nexports.locals = {\n\t\"shareDialogHolder\": \"_3rE93JaWPax05QYq5zmmGF\",\n\t\"footerShareDialogHolder\": \"_2LiVVoVgrrL6bahFJd2O-n\",\n\t\"headerShareDialogHolder\": \"_14QgeERMei2qWMeGLGN7um\",\n\t\"shareDialog\": \"_1ghwi8Nr7dAXPxsqkXsdk6\",\n\t\"hidden\": \"_27Aol1HroErVDNMeevCWlT\",\n\t\"dialogHeader\": \"_5zzSk5LtDwVt7v4BFY7xz\",\n\t\"firstPosition\": \"_3sxzyJk6XrQiLEkGDEe_O1\",\n\t\"dialogContainer\": \"_3p091Az4G2dkw4y3jrcBSk\",\n\t\"shareUrlHolder\": \"_2A5oBSiE8-vqGOXC3ZvDRw\",\n\t\"dropDownLabel\": \"_1Q-HkzlAVpQ9gLUwWpoMRa\",\n\t\"copy\": \"_3v3I6QKj1hBNcxjqc04IZU\",\n\t\"shareUrl\": \"_3rcOV_2TAJxFJDrl2qQ03n\",\n\t\"embedButton\": \"jPT2tD5QXddj0w3a8AZwR\",\n\t\"dropDownHolder\": \"gagAV2YJmQBv-7mG_tDzY\",\n\t\"dropDownHeader\": \"_27yrxSQFc21GIztPse_6kI\",\n\t\"dropDownHeaderTitle\": \"_1AI1uR-ln0zGhrBB8FNjwy\",\n\t\"dropDownPanel\": \"_1R0jmP5P9tpIgGWj9kk0b2\",\n\t\"dropDownItem\": \"_2LMCQCMd_H1slkHUXCB7D4\",\n\t\"embedCode\": \"_1LEsxAr8drVk17UFCIsSl3\",\n\t\"info\": \"_1hn-9NLK_IkUnkvgKyWNJd\",\n\t\"back\": \"xyxGllLv3KQGSaE5be7g1\",\n\t\"close\": \"_1LmWcnvORR2EYWnSjzIKS8\",\n\t\"socialButtons\": \"_36zt27OpkgNnTCBN1gnA2t\",\n\t\"social\": \"_2WgvxJ2p_ug95XTdRhnlmB\",\n\t\"facebook\": \"_3VV_nJpChpvIWJg-xoGO4x\",\n\t\"twitter\": \"_2E2M4HWa8klzCDA_z9SZj9\",\n\t\"linkedin\": \"_2uJoefou0I60bJSwZpdVVp\"\n};","import {ReduceStore} from 'flux/utils';\nimport {Record, fromJS} from 'immutable';\nimport clip from 'liang-barsky';\n\nimport Dispatcher from '../../../app/dispatcher';\nimport {\n    FREELAYOUT_MOUSE_SELECTION_MOVE,\n    FREELAYOUT_MOUSE_SELECTION_DOWN,\n    FREELAYOUT_MOUSE_SELECTION_UP,\n} from './constants';\nimport {Point, convertPointToBlock} from '../handlers/handle/utils';\nimport {getElementForBlock} from '../../FreeLayoutEditor/dom';\n\nconst MIN_SELECTION_PX = 5;\n\nconst SelectionRectangleClass = Record({\n    x1: 0,\n    y1: 0,\n    x2: 0,\n    y2: 0,\n    delta: {left: 0, top: 0},\n});\n\nclass SelectionRectangle extends SelectionRectangleClass {\n    get top() {\n        return this.y1;\n    }\n\n    get left() {\n        return this.x1;\n    }\n\n    get width() {\n        return this.x2 - this.x1;\n    }\n\n    get height() {\n        return this.y2 - this.y1;\n    }\n\n    intersectsRectangle(rect) {\n        return (this.y1 + this.delta.top) < (rect.top + rect.height) &&\n            (this.y2 + this.delta.top) > rect.top &&\n            (this.x1 + this.delta.left) < (rect.left + rect.width) &&\n            (this.x2 + this.delta.left) > rect.left;\n    }\n\n    intersectsConnector(element, entity, {scaleX = 1, scaleY = 1} = {}) {\n        const paths = element.getElementsByTagName('path');\n        const linePath = paths[paths.length - 1];\n        const pts = linePath.getAttribute('d').split(' ').map(d => d.substr(1, d.length).split(',').map(d => +d));\n        const connectorStart = {x: pts[0][0], y: pts[0][1]};\n        const connectorEnd = {x: pts[1][0], y: pts[1][1]};\n\n        const blockRect = getElementForBlock(entity.getBlockKey()).getBoundingClientRect();\n        const rectTopLeft = convertPointToBlock(Point(this.x1 + this.delta.left, this.y1 + this.delta.top), blockRect, scaleX, scaleY);\n        const rectBottomRight = convertPointToBlock(Point(this.x2 + this.delta.left, this.y2 + this.delta.top), blockRect, scaleX, scaleY);\n\n        // use liang-barsky algorithm to detect if line is clipped (means is intersected by rectangle)\n        return clip(\n            [connectorStart.x, connectorStart.y],\n            [connectorEnd.x, connectorEnd.y],\n            [rectTopLeft.x, rectTopLeft.y, rectBottomRight.x, rectBottomRight.y]\n        );\n    }\n}\n\nclass MouseSelectionStore extends ReduceStore {\n    getInitialState() {\n        return fromJS({\n            rect: new SelectionRectangle(),\n            originX: 0,\n            originY: 0,\n        });\n    }\n\n    get rectangle() {\n        const rect = this.getState().get('rect');\n        if (rect.width < MIN_SELECTION_PX && rect.height < MIN_SELECTION_PX) {\n            return null;\n        }\n        return rect;\n    }\n\n    reduce(state, action) {\n        switch (action.type) {\n            case FREELAYOUT_MOUSE_SELECTION_DOWN:\n                return state.merge({\n                    originX: action.x,\n                    originY: action.y,\n                    rect: new SelectionRectangle(),\n                });\n            case FREELAYOUT_MOUSE_SELECTION_MOVE: {\n                const {delta} = action.options;\n                return state.merge({\n                    rect: new SelectionRectangle({\n                        x1: Math.min(state.get('originX'), action.x),\n                        y1: Math.min(state.get('originY'), action.y),\n                        x2: Math.max(state.get('originX'), action.x),\n                        y2: Math.max(state.get('originY'), action.y),\n                        delta: delta || {left: 0, top: 0},\n                    }),\n                });\n            }\n            case FREELAYOUT_MOUSE_SELECTION_UP:\n                return state.merge({\n                    rect: new SelectionRectangle(),\n                });\n            default:\n                return state;\n        }\n    }\n}\n\nexport default new MouseSelectionStore(Dispatcher);\n","export function backLink(id, medium, campaign) {\n    return `https://infogram.com?utm_source=infogram&utm_campaign=${campaign}&utm_medium=${medium}&utm_content=infogram_${id}`;\n}\n","export const FREELAYOUT_MOUSE_SELECTION_MOVE = 'FREELAYOUT_MOUSE_SELECTION_MOVE';\nexport const FREELAYOUT_MOUSE_SELECTION_UP = 'FREELAYOUT_MOUSE_SELECTION_UP';\nexport const FREELAYOUT_MOUSE_SELECTION_DOWN = 'FREELAYOUT_MOUSE_SELECTION_DOWN';\n","\"use strict\";\n\nmodule.exports = require(\"./is-implemented\")() ? Object.keys : require(\"./shim\");\n","// IE8- don't enum bug keys\nmodule.exports = [\n  'constructor',\n  'hasOwnProperty',\n  'isPrototypeOf',\n  'propertyIsEnumerable',\n  'toLocaleString',\n  'toString',\n  'valueOf'\n];\n","var $ = require('../internals/export');\nvar expm1 = require('../internals/math-expm1');\n\nvar exp = Math.exp;\n\n// `Math.tanh` method\n// https://tc39.github.io/ecma262/#sec-math.tanh\n$({ target: 'Math', stat: true }, {\n  tanh: function tanh(x) {\n    var a = expm1(x = +x);\n    var b = expm1(-x);\n    return a == Infinity ? 1 : b == Infinity ? -1 : (a - b) / (exp(x) + exp(-x));\n  }\n});\n","import PropTypes from 'prop-types';\n\nimport React, {PureComponent} from 'react';\nimport {rgb} from 'd3-color';\n\nimport hiddenOffScreen from '../AccessibilityDescriptionStyle';\n\nimport {StyledImage} from '../../../app/freelayout_editor/components/contents/Media/StyledMedia.js';\n\nexport default class Icon extends PureComponent {\n    static propTypes = {\n        url: PropTypes.string,\n        svgObj: PropTypes.object,\n        width: PropTypes.number,\n        accessibility: PropTypes.object,\n        id: PropTypes.number,\n    };\n\n    constructor(props) {\n        super(props);\n        this.state = {};\n    }\n\n    static getDerivedStateFromProps(props) {\n        const size = 32;\n        const {svgObj} = props;\n        const transformW = Math.max((size - svgObj.dimensions.width) / 2, 0);\n        const transformH = Math.max((size - svgObj.dimensions.height) / 2, 0);\n        const transform = `translate(${transformW} ${transformH})`;\n        const fill = rgb(svgObj.fill || '#656565').toString();\n        return {\n            d: svgObj.path,\n            fill,\n            transform,\n            width: props.width || '100%',\n        };\n    }\n\n    render() {\n        const {description, label, enabled: accessible} = this.props.accessibility;\n        const props = {\n            'aria-label': accessible && label,\n        };\n        if (accessible && description) {\n            props['aria-describedby'] = `${this.props.id}_description`;\n            props.tabIndex = -1;\n        }\n\n        return (\n            <StyledImage className=\"moveable\">\n                <svg {...props} width={this.state.width} height=\"100%\" viewBox=\"0 0 32 32\" preserveAspectRatio=\"none\">\n                    <path fill={this.state.fill} d={this.state.d} transform={this.state.transform}/>\n                </svg>\n                {accessible && description &&\n                    <p id={`${this.props.id}_description`} style={hiddenOffScreen}>{description}</p>\n                }\n            </StyledImage>\n        );\n    }\n}\n","exports = module.exports = require(\"../../../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"._1nk7FlBEihPr428Qdv0H25 {\\n    position: absolute;\\n    text-align: center;\\n    width: 100%;\\n    top: -20px;\\n    overflow: hidden;\\n    opacity: 0;\\n    transition: opacity 0.25s;\\n    transition-delay: 0.25s;\\n}\\n\\n._21zwPfifDKyQYh-MiDMXj {\\n    position: absolute;\\n    display: inline;\\n    margin-left: -20px;\\n    overflow: hidden;\\n    transition: opacity 0.25s;\\n    transition-delay: 0.25s;\\n    opacity: 0;\\n}\\na:hover + ._21zwPfifDKyQYh-MiDMXj,\\n._21zwPfifDKyQYh-MiDMXj:hover {\\n    opacity: 1;\\n}\\n._1IR-yxguOaAP2ycnRoT86n {\\n    cursor: pointer;\\n    font-size: 11px;\\n    font-weight: 500;\\n    max-width: calc(100% - 8px);\\n    padding: 3px 6px;\\n    background: #2d2d2d;\\n    border-radius: 3px;\\n    white-space: nowrap;\\n    overflow: hidden;\\n    text-overflow: ellipsis;\\n    flex: 1;\\n    display: inline-block;\\n}\\n\\n._1IR-yxguOaAP2ycnRoT86n:before {\\n    margin-right: 6px;\\n    color: #fff;\\n}\\n\\n._1IR-yxguOaAP2ycnRoT86n:empty:before {\\n    margin-right: 0;\\n}\\n\\n._1IR-yxguOaAP2ycnRoT86n:hover {\\n    text-decoration: none;\\n}\\n\\n._2ubo0b1fYzeok6bVx9_KWU {\\n    vertical-align: top;\\n}\\n\\n._2ubo0b1fYzeok6bVx9_KWU:hover {\\n    text-decoration: underline;\\n}\\n\\n.W79Thvb2M3eB5dL10yjKJ {\\n    height: 100%;\\n}\\n.W79Thvb2M3eB5dL10yjKJ:hover ._1nk7FlBEihPr428Qdv0H25 {\\n    opacity: 1;\\n}\\n\", \"\"]);\n\n// exports\nexports.locals = {\n\t\"block\": \"_1nk7FlBEihPr428Qdv0H25\",\n\t\"inline\": \"_21zwPfifDKyQYh-MiDMXj\",\n\t\"link\": \"_1IR-yxguOaAP2ycnRoT86n\",\n\t\"linkContent\": \"_2ubo0b1fYzeok6bVx9_KWU\",\n\t\"container\": \"W79Thvb2M3eB5dL10yjKJ\"\n};","export const DATA_TABLE_OPEN = 'DATA_TABLE_OPEN';\nexport const DATA_TABLE_CLOSE = 'DATA_TABLE_CLOSE';\nexport const DATA_TABLE_TOGGLE = 'DATA_TABLE_TOGGLE';\nexport const DATA_TABLE_SET_WIDTH = 'DATA_TABLE_SET_WIDTH';\nexport const DATA_TABLE_RESIZE_START = 'DATA_TABLE_RESIZE_START';\nexport const DATA_TABLE_RESIZE_END = 'DATA_TABLE_RESIZE_END';\n\nexport const SHEET_SELECTOR_SCROLL_RIGHT = 'SHEET_SELECTOR_SCROLL_RIGHT';\nexport const SHEET_SELECTOR_SCROLL_LEFT = 'SHEET_SELECTOR_SCROLL_LEFT';\nexport const SHEET_SELECTOR_SELECT_SHEET = 'SHEET_SELECTOR_SELECT_SHEET';\nexport const SHEET_SELECTOR_CONTEXT_MENU_OPEN = 'SHEET_SELECTOR_CONTEXT_MENU_OPEN';\nexport const SHEET_SELECTOR_CONTEXT_MENU_CLOSE = 'SHEET_SELECTOR_CONTEXT_MENU_CLOSE';\nexport const SHEET_SELECTOR_START_EDIT = 'SHEET_SELECTOR_START_EDIT';\nexport const SHEET_SELECTOR_STOP_EDIT = 'SHEET_SELECTOR_STOP_EDIT';\n\nexport const DATA_UPLOAD_LOADING_START = 'DATA_UPLOAD_LOADING_START';\nexport const DATA_UPLOAD_LOADING_END = 'DATA_UPLOAD_LOADING_END';\n","export const GRID_SNAPPING_THRESHOLD = 5;\nexport const GRID_SNAPPING_VISIBLE_THRESHOLD = 15;\nexport const GRID_SNAPPING_GUIDES_EXTENSION = 15;\n","var escape = require(\"../../../../node_modules/css-loader/lib/url/escape.js\");\nexports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"._3yTnsLehhTL_-GUWfXidQ_ {\\n    position: absolute;\\n    width: 1px;\\n    height: 100%;\\n    top: 10px;\\n    right: 0;\\n    pointer-events: none;\\n}\\n._1Gw8uOSc8eFm1Tp3dvWjVb {\\n    top: 0;\\n    right: 10px;\\n}\\n\\n@media screen and (max-width: 960px) {\\n    ._1Gw8uOSc8eFm1Tp3dvWjVb {\\n        right: auto;\\n        left: 50%;\\n        margin-left: -150px;\\n    }\\n} \\n._1Gw8uOSc8eFm1Tp3dvWjVb ._3QvmUiI8RSZBiy6ofkPlBw {\\n    top: 75px;\\n}\\n._3QvmUiI8RSZBiy6ofkPlBw {\\n    position: -webkit-sticky;\\n    position: sticky;\\n    top: 10px;\\n    width: 230px;\\n    box-sizing: border-box;\\n    background-color: #ffffff;\\t\\n    box-shadow: 0 0 20px 0 rgba(0,0,0,0.3);\\n    border-radius: 4px;\\n    z-index: 5000;\\n    margin-left: -298px;\\n    pointer-events: auto;\\n}\\n@media screen and (max-width: 960px) {\\n    ._1Gw8uOSc8eFm1Tp3dvWjVb ._3QvmUiI8RSZBiy6ofkPlBw {\\n        width: 300px;\\n        margin-left: 0;\\n    }\\n} \\n.Kb8zMbrqyDhQB-2vwlP8S {\\n    position: relative;\\n    width: 100%;\\n    height: 40px;\\n    background-color: #EBEBEE;\\n    color: #656565;\\t\\n    font-size: 14.99px;\\t\\n    font-weight: 500;\\t\\n    line-height: 40px;\\n    text-align: center;\\n    border-top-left-radius: 2px;\\n    border-top-right-radius: 2px;\\n}\\n\\n.Kb8zMbrqyDhQB-2vwlP8S::after {\\n    content: ' ';\\n    position: absolute;\\n    width: 0;\\n    height: 0;\\n    margin-right: -3px;\\n    top: 25px;\\n    right: 0;\\n    border-style:solid;\\n    border-width: 6px;\\n    border-color: #EBEBEE #EBEBEE #EBEBEE #EBEBEE;\\n    transform-origin: 0 0;\\n    -ms-transform-origin: 0 0;\\n    -webkit-transform-origin: 0 0;\\n    transform: rotate(-45deg);\\n    -ms-transform: rotate(-45deg); /* IE 9 */\\n    -webkit-transform: rotate(-45deg); /* Safari */\\n}\\n\\n._1Gw8uOSc8eFm1Tp3dvWjVb .Kb8zMbrqyDhQB-2vwlP8S::after {\\n    display: none;\\n}\\n\\n.wfMdax7Q8nDXr0L5w_5zx {\\n    padding: 20px;\\n}\\n\\n._2I4GciV1RWN6mstZNl_e2 {\\n    position: relative;\\n    height: 40px;\\t\\n    width: 100%;\\t\\n    border-radius: 4px;\\t\\n    background-color: #EBEBEE;\\n    color: #656565;\\t\\n    font-size: 13px;\\t\\n    font-weight: 500;\\t\\n    line-height: 40px;\\t\\n    text-align: center;\\n    cursor: pointer;\\n    margin-bottom: 10px;\\n}\\n\\n._2I4GciV1RWN6mstZNl_e2:last-child {\\n    margin-bottom: 0;\\n}\\n\\n._2I4GciV1RWN6mstZNl_e2:hover {\\n    background: rgba(235,235,238,.6);\\n}\\n\\n.sBhQN5UxB7Po7b5T9iuDY::before, ._10knW1QlJ9Kvvp3074PcMV::before, ._1r4JZ2_siQHcC29X3NuPmL::before {\\n    content: '';\\n    position: absolute;\\n    top: 12px;\\n    left: 12px;\\n    width: 16px;\\n    height: 16px;\\n    background-size: 100% 100%;\\n}\\n\\n.sBhQN5UxB7Po7b5T9iuDY::before {\\n    background-image: url('/i/jpg_file.svg');\\n}\\n\\n._10knW1QlJ9Kvvp3074PcMV::before {\\n    background-image: url('/i/png_file.svg');\\n}\\n\\n._1r4JZ2_siQHcC29X3NuPmL::before {\\n    background-image: url('/i/pdf_file.svg');\\n}\\n\\n._2I4GciV1RWN6mstZNl_e2::before {\\n    position: absolute;\\n    top: 12px;\\n    left: 12px;\\n    font-size: 16px;\\n}\\n\\n.ig-container:hover ._3QvmUiI8RSZBiy6ofkPlBw {\\n    display: block;\\n\\topacity: 1;\\n}\\n\\n.XV5Qva0PRNj17UUv4AV8L {\\n    position: absolute;\\n    top: 14px;\\n    right: 10px;\\n    width: 10px;\\n    height: 10px;\\n    cursor: pointer;\\n    background: url(\" + escape(require(\"./images/icon-cancel.svg\")) + \") center no-repeat;\\n    background-size: contain;\\n}\\n\", \"\"]);\n\n// exports\nexports.locals = {\n\t\"publicDownloadDialogHolder\": \"_3yTnsLehhTL_-GUWfXidQ_\",\n\t\"headerPublicDownloadDialogHolder\": \"_1Gw8uOSc8eFm1Tp3dvWjVb\",\n\t\"publicDownloadDialog\": \"_3QvmUiI8RSZBiy6ofkPlBw\",\n\t\"dialogHeader\": \"Kb8zMbrqyDhQB-2vwlP8S\",\n\t\"dialogContainer\": \"wfMdax7Q8nDXr0L5w_5zx\",\n\t\"dialogButton\": \"_2I4GciV1RWN6mstZNl_e2\",\n\t\"jpgFile\": \"sBhQN5UxB7Po7b5T9iuDY\",\n\t\"pngFile\": \"_10knW1QlJ9Kvvp3074PcMV\",\n\t\"pdfFile\": \"_1r4JZ2_siQHcC29X3NuPmL\",\n\t\"close\": \"XV5Qva0PRNj17UUv4AV8L\"\n};","var $ = require('../internals/export');\n\nvar nativeAsinh = Math.asinh;\nvar log = Math.log;\nvar sqrt = Math.sqrt;\n\nfunction asinh(x) {\n  return !isFinite(x = +x) || x == 0 ? x : x < 0 ? -asinh(-x) : log(x + sqrt(x * x + 1));\n}\n\n// `Math.asinh` method\n// https://tc39.github.io/ecma262/#sec-math.asinh\n// Tor Browser bug: Math.asinh(0) -> -0\n$({ target: 'Math', stat: true, forced: !(nativeAsinh && 1 / nativeAsinh(0) > 0) }, {\n  asinh: asinh\n});\n","\nvar content = require(\"!!../../../../../../node_modules/css-loader/index.js??ref--5-1!./animations.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../../../node_modules/css-loader/index.js??ref--5-1!./animations.css\", function() {\n\t\tvar newContent = require(\"!!../../../../../../node_modules/css-loader/index.js??ref--5-1!./animations.css\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\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 ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n  function shim(props, propName, componentName, location, propFullName, secret) {\n    if (secret === ReactPropTypesSecret) {\n      // It is still safe when called from React.\n      return;\n    }\n    var err = new Error(\n      'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n      'Use PropTypes.checkPropTypes() to call them. ' +\n      'Read more at http://fb.me/use-check-prop-types'\n    );\n    err.name = 'Invariant Violation';\n    throw err;\n  };\n  shim.isRequired = shim;\n  function getShim() {\n    return shim;\n  };\n  // Important!\n  // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n  var ReactPropTypes = {\n    array: shim,\n    bool: shim,\n    func: shim,\n    number: shim,\n    object: shim,\n    string: shim,\n    symbol: shim,\n\n    any: shim,\n    arrayOf: getShim,\n    element: shim,\n    elementType: shim,\n    instanceOf: getShim,\n    node: shim,\n    objectOf: getShim,\n    oneOf: getShim,\n    oneOfType: getShim,\n    shape: getShim,\n    exact: getShim,\n\n    checkPropTypes: emptyFunctionWithReset,\n    resetWarningCache: emptyFunction\n  };\n\n  ReactPropTypes.PropTypes = ReactPropTypes;\n\n  return ReactPropTypes;\n};\n","var $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar objectDefinePropertyModile = require('../internals/object-define-property');\n\n// `Object.defineProperty` method\n// https://tc39.github.io/ecma262/#sec-object.defineproperty\n$({ target: 'Object', stat: true, forced: !DESCRIPTORS, sham: !DESCRIPTORS }, {\n  defineProperty: objectDefinePropertyModile.f\n});\n","import {ReduceStore} from 'flux/utils';\nimport {fromJS} from 'immutable';\n\nimport invariant from 'invariant';\n\nimport EditorStateStore from '../../stores/EditorStateStore';\nimport CurrentInfographicStore from '../../../main/stores/CurrentInfographicStore';\nimport Dispatcher from '../../../dispatcher';\nimport {\n    PRESENTATION_FULLSCREEN_ENTER,\n    PRESENTATION_FULLSCREEN_EXIT,\n    PRESENTATION_SWITCH_PAGE,\n    PRESENTATION_NAVIGATE,\n    PRESENTATION_NAVIGATION_TREE_POP,\n    PRESENTATION_RESIZE,\n    PRESENTATION_DISPLAY_CONTROLS,\n    PRESENTATION_DISPLAY_SCROLL_PROGRESS,\n} from './constants';\nimport {\n    FREELAYOUT_ACTIVE_PAGE_CHANGED,\n} from '../../Scroll/constants';\n\nclass PresentationStore extends ReduceStore {\n    getInitialState() {\n        return fromJS({\n            fullscreen: false,\n            activePage: 0,\n            navigationTree: [],\n            width: window.screen.width,\n            height: window.screen.height,\n            displayControls: true,\n            displayScrollProgress: false,\n            editorState: null,\n            infographicId: false,\n        });\n    }\n\n    get isFullscreen() {\n        return this.getState().get('fullscreen');\n    }\n\n    get activePage() {\n        return this.getState().get('activePage');\n    }\n\n    get infographicId() {\n        return this.getState().get('infographicId');\n    }\n\n    get navigationTree() {\n        return this.getState().get('navigationTree');\n    }\n\n    get screenWidth() {\n        return this.isFullscreen ? window.screen.width : this.getState().get('width');\n    }\n\n    get screenHeight() {\n        return this.isFullscreen ? window.screen.height : this.getState().get('height');\n    }\n\n    get displayControls() {\n        return this.getState().get('displayControls');\n    }\n\n    get displayScrollProgress() {\n        return this.getState().get('displayScrollProgress');\n    }\n\n    reduce(state, action) {\n        switch (action.type) {\n            case PRESENTATION_SWITCH_PAGE:\n                Dispatcher.waitFor([EditorStateStore.getDispatchToken()]);\n                if (action.page < 0 || action.page >= EditorStateStore.editorState.getCurrentContent().getBlocks().size) {\n                    return state;\n                }\n                return state.merge({\n                    activePage: action.page || 0,\n                    navigationTree: [],\n                });\n            case PRESENTATION_NAVIGATE: {\n                const activePage = action.page || 0;\n                Dispatcher.waitFor([EditorStateStore.getDispatchToken()]);\n                const pageNumberIsInvalid = activePage < 0 || activePage >= EditorStateStore.editorState.getCurrentContent().getBlocks().size;\n                invariant(!pageNumberIsInvalid, 'Page called does not exist');\n                return state.merge({\n                    activePage,\n                    navigationTree: state.get('navigationTree').push(state.get('activePage')),\n                });\n            }\n            case PRESENTATION_NAVIGATION_TREE_POP: {\n                const activePage = action.navigationTree.toJS().pop();\n                return state.merge({\n                    navigationTree: action.navigationTree.pop(),\n                    activePage,\n                });\n            }\n            case FREELAYOUT_ACTIVE_PAGE_CHANGED:\n                return state.merge({\n                    activePage: action.activePageIndex || 0,\n                });\n            case PRESENTATION_FULLSCREEN_ENTER: {\n                const infographicId = CurrentInfographicStore.infographicId;\n                if (state.get('infographicId') !== infographicId) {\n                    return state.merge({\n                        fullscreen: true,\n                        activePage: 0,\n                        infographicId,\n                    });\n                }\n                return state.merge({\n                    fullscreen: true,\n                });\n            }\n            case PRESENTATION_FULLSCREEN_EXIT:\n                return state.merge({\n                    fullscreen: false,\n                });\n            case PRESENTATION_RESIZE:\n                return state.merge({\n                    width: action.width,\n                    height: action.height,\n                });\n            case PRESENTATION_DISPLAY_CONTROLS:\n                return state.merge({\n                    displayControls: action.displayControls,\n                });\n            case PRESENTATION_DISPLAY_SCROLL_PROGRESS:\n                return state.merge({\n                    displayScrollProgress: action.displayScrollProgress,\n                });\n            default:\n                return state;\n        }\n    }\n}\n\nexport default new PresentationStore(Dispatcher);\n","import {ReduceStore} from 'flux/utils';\nimport {OrderedMap, Map} from 'immutable';\n\nimport Dispatcher from '../../../../app/dispatcher';\nimport {\n    PROJECT_SETTINGS_SHOW_CUSTOM_PAGE_SIZE,\n    PROJECT_SETTINGS_HIDE_CUSTOM_PAGE_SIZE,\n    PROJECT_SETTINGS_SET_ACTIVE_SECTION,\n} from './constants';\nimport {\n    INFOGRAPHIC_LOADED,\n} from '../../../../app/constants';\nimport {\n    EDITOR_STATE_CHANGE,\n    EDITOR_STATE_REDO,\n    EDITOR_STATE_UNDO,\n    EXTERNAL_EDITOR_STATE_CHANGE,\n    SET_LAYOUT,\n} from '../../../../app/freelayout_editor/constants/EditorConstants';\nimport EditorStateStore from '../../../../app/freelayout_editor/stores/EditorStateStore';\nimport {amountOf} from '../../../filters/utils';\n\nexport const availablePresets = OrderedMap({\n    a4: Map({width: 595, height: 842}),\n    a4_landscape: Map({width: 842, height: 595}),\n    us_letter: Map({width: 612, height: 792}),\n    us_letter_landscape: Map({width: 792, height: 612}),\n    infographic: Map({width: 700, height: 2200}),\n    dashboard_16_9: Map({width: 1500, height: 844}),\n    dashboard_4_3: Map({width: 960, height: 720}),\n    facebook: Map({width: 940, height: 788}),\n    twitter: Map({width: 1024, height: 512}),\n    instagram: Map({width: 1080, height: 1080}),\n    pinterest: Map({width: 735, height: 1102}),\n    email: Map({width: 600, height: 300}),\n    youtube: Map({width: 1280, height: 720}),\n    linkedin: Map({width: 1200, height: 627}),\n});\n\nclass ProjectSettingsStore extends ReduceStore {\n    getInitialState() {\n        return Map({\n            showCustomSize: false,\n            preset: null,\n            pageSize: null,\n            backgroundColor: null,\n            backgroundImage: null,\n            backgroundOpacity: 1,\n            backgroundFilters: Map(),\n            activeSection: null,\n        });\n    }\n\n    get availablePresets() {\n        return availablePresets;\n    }\n\n    get presetName() {\n        return this.isCustomSize ? 'custom' : this.getState().get('preset');\n    }\n\n    get isCustomSize() {\n        return this.getState().get('showCustomSize') || !this.getState().get('preset');\n    }\n\n    get pageSize() {\n        return this.getState().get('pageSize');\n    }\n\n    get backgroundColor() {\n        return this.getState().get('backgroundColor');\n    }\n\n    get backgroundImage() {\n        return this.getState().get('backgroundImage');\n    }\n\n    get backgroundOpacity() {\n        return this.getState().get('backgroundOpacity');\n    }\n\n    get backgroundFilters() {\n        return this.getState().get('backgroundFilters');\n    }\n\n    get backgroundBlur() {\n        return amountOf(this.getState().get('backgroundFilters'), 'blur');\n    }\n\n    get activeSection() {\n        return this.getState().get('activeSection');\n    }\n\n    reduce(state, action) {\n        switch (action.type) {\n            case PROJECT_SETTINGS_SHOW_CUSTOM_PAGE_SIZE:\n                return state.set('showCustomSize', true);\n            case PROJECT_SETTINGS_HIDE_CUSTOM_PAGE_SIZE:\n                return state.set('showCustomSize', false);\n            case PROJECT_SETTINGS_SET_ACTIVE_SECTION:\n                return state.set('activeSection', action.section);\n            case INFOGRAPHIC_LOADED:\n            case EDITOR_STATE_CHANGE:\n            case EDITOR_STATE_UNDO:\n            case EDITOR_STATE_REDO:\n            case SET_LAYOUT:\n            case EXTERNAL_EDITOR_STATE_CHANGE: {\n                Dispatcher.waitFor([EditorStateStore.getDispatchToken()]);\n                const {editorState} = EditorStateStore;\n                if (!editorState) {\n                    return state;\n                }\n\n                const pageSize = EditorStateStore.editorState.getPageSize();\n                const preset = availablePresets.findKey(v =>\n                    v.get('width') === pageSize.width && v.get('height') === pageSize.height\n                );\n\n                const background = editorState.getBlockDesignProperty(null, 'background', false);\n\n                const backgroundColor = background.get('color');\n                const backgroundImage = editorState.getAssetURL(background.get('assetId'));\n                const backgroundOpacity = background.get('opacity');\n                const backgroundFilters = background.get('filters');\n\n                return state.merge({\n                    pageSize,\n                    preset,\n                    backgroundColor,\n                    backgroundImage,\n                    backgroundOpacity,\n                    backgroundFilters,\n                });\n            }\n            default:\n                return state;\n        }\n    }\n}\n\nexport default new ProjectSettingsStore(Dispatcher);\n","var requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `ToObject` abstract operation\n// https://tc39.github.io/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n  return Object(requireObjectCoercible(argument));\n};\n","var $ = require('../internals/export');\nvar anObject = require('../internals/an-object');\nvar objectGetPrototypeOf = require('../internals/object-get-prototype-of');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\n// `Reflect.getPrototypeOf` method\n// https://tc39.github.io/ecma262/#sec-reflect.getprototypeof\n$({ target: 'Reflect', stat: true, sham: !CORRECT_PROTOTYPE_GETTER }, {\n  getPrototypeOf: function getPrototypeOf(target) {\n    return objectGetPrototypeOf(anObject(target));\n  }\n});\n","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n    __assign = Object.assign || function(t) {\n        for (var s, i = 1, n = arguments.length; i < n; i++) {\n            s = arguments[i];\n            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n                t[p] = s[p];\n        }\n        return t;\n    };\n    return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar axios_1 = require(\"axios\");\nvar utils_1 = require(\"./utils\");\nfunction logGlassbox(logMessage) {\n    var requestFromPreprod = window.location.hostname.indexOf('preprod') > -1;\n    var requestFromLocal = window.location.hostname.indexOf('localhost') > -1;\n    var requestFromPde = window.location.hostname.indexOf('.prezi.dev') > -1;\n    if (requestFromPreprod || requestFromLocal || requestFromPde) {\n        // disable linting since we are not in production\n        // tslint:disable-next-line:ban\n        console.log('glassbox', logMessage.core.event_type, \n        // To be able to programatically parse the glassbox events from console output (selenium tests)\n        JSON.stringify(logMessage));\n        return Promise.resolve(true);\n    }\n    else {\n        return Promise.resolve()\n            .then(function () {\n            return axios_1.default.post('https://bandar-logger.prezi.com/log/json', [logMessage], {\n                headers: {\n                    'Content-Type': 'application/json',\n                },\n                responseType: 'json',\n                timeout: 2000,\n                withCredentials: true,\n            });\n        })\n            .then(function () { return true; })\n            .catch(function () { return false; });\n    }\n}\nexports.logGlassbox = logGlassbox;\nfunction logGlassboxHelper(type, schemaId, eventSource, eventType, eventName, params) {\n    return logGlassbox({\n        'core': {\n            'type': type,\n            'schema_id': schemaId,\n            'client_time': new Date().getTime(),\n            'event_source': eventSource,\n            'event_type': eventType,\n        },\n        'event_source': {\n            'single_page_session_id': utils_1.getSinglePageSessionId(),\n        },\n        'platform': {\n            'type': 'Web',\n            'referer': utils_1.getReferrerUrl(),\n        },\n        'user': {\n            'session_id': utils_1.getSessionId(),\n        },\n        'body': __assign({ 'event_name': eventName }, params),\n    });\n}\nexports.logGlassboxHelper = logGlassboxHelper;\n","import invariant from 'invariant';\n\nimport {\n    CALLOUT_MARGIN,\n    CALLOUT_CLOSE_BUTTON_SIZE,\n} from '../constants/config';\n\nconst PRESENTATION_OPTIONS_BUTTON_HEIGHT_WITH_MARGIN = 55;\n\nexport default function getCalloutBounds(\n    position,\n    width,\n    height,\n    {\n        entityBounds,\n        pageSize,\n        isOverlay = false,\n        scaleX = 1,\n        scaleY = 1,\n        calloutScale = {scaleX: 1, scaleY: 1},\n    }\n) {\n    invariant(!!entityBounds, 'Entity bounds are not passed');\n    const bounds = {\n        width: Math.round(width * calloutScale.scaleX),\n        height: Math.round(height * calloutScale.scaleY),\n    };\n\n    if (isOverlay) {\n        invariant(!!pageSize, 'Page size is not passed');\n        const entityMiddle = (entityBounds.top + entityBounds.height / 2) * scaleY;\n        let top = entityMiddle - bounds.height / 2;\n        // leave place for options and overlay close buttons\n        const minTop = PRESENTATION_OPTIONS_BUTTON_HEIGHT_WITH_MARGIN + CALLOUT_CLOSE_BUTTON_SIZE / 2;\n        const maxTop = pageSize.height * scaleY - bounds.height;\n        top = Math.round(Math.min(maxTop, Math.max(minTop, top)));\n        bounds.left = `calc(50% - ${bounds.width / 2}px)`;\n        bounds.top = `${top}px`;\n    } else {\n        let left;\n        let top;\n        switch (position) {\n            case 'left':\n                left = entityBounds.left - width - CALLOUT_MARGIN;\n                top = entityBounds.top + entityBounds.height / 2 - height / 2;\n                break;\n            case 'right':\n                left = entityBounds.left + entityBounds.width + CALLOUT_MARGIN;\n                top = entityBounds.top + entityBounds.height / 2 - height / 2;\n                break;\n            case 'top':\n                left = entityBounds.left + entityBounds.width / 2 - width / 2;\n                top = entityBounds.top - height - CALLOUT_MARGIN;\n                break;\n            case 'bottom':\n                left = entityBounds.left + entityBounds.width / 2 - width / 2;\n                top = entityBounds.top + entityBounds.height + CALLOUT_MARGIN;\n                break;\n        }\n        bounds.left = `${Math.round(left * scaleX)}px`;\n        bounds.top = `${Math.round(top * scaleY)}px`;\n    }\n\n    return bounds;\n}\n","var global = require('../internals/global');\nvar nativeFunctionToString = require('../internals/function-to-string');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = typeof WeakMap === 'function' && /native code/.test(nativeFunctionToString.call(WeakMap));\n","exports = module.exports = require(\"../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"._1PfE885cRx-mzzyknGvrX4 {\\n    width: 100%;\\n    height: 100%;\\n}\\n\\n.sRH0mGaHJVPjxJVCT_pXG {\\n    display: flex;\\n    justify-content: center;\\n    align-items: center;\\n}\\n\\n._3oGHqtupxn1qIitYDqlLDi {\\n    pointer-events: none;\\n}\\n\", \"\"]);\n\n// exports\nexports.locals = {\n\t\"fillContainer\": \"_1PfE885cRx-mzzyknGvrX4\",\n\t\"centerContent\": \"sRH0mGaHJVPjxJVCT_pXG\",\n\t\"cannotTouchThis\": \"_3oGHqtupxn1qIitYDqlLDi\"\n};","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n  this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected) {\n  this.handlers.push({\n    fulfilled: fulfilled,\n    rejected: rejected\n  });\n  return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n  if (this.handlers[id]) {\n    this.handlers[id] = null;\n  }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n  utils.forEach(this.handlers, function forEachHandler(h) {\n    if (h !== null) {\n      fn(h);\n    }\n  });\n};\n\nmodule.exports = InterceptorManager;\n","var anObject = require('../internals/an-object');\nvar defineProperties = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar PROTOTYPE = 'prototype';\nvar Empty = function () { /* empty */ };\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n  // Thrash, waste and sodomy: IE GC bug\n  var iframe = documentCreateElement('iframe');\n  var length = enumBugKeys.length;\n  var lt = '<';\n  var script = 'script';\n  var gt = '>';\n  var js = 'java' + script + ':';\n  var iframeDocument;\n  iframe.style.display = 'none';\n  html.appendChild(iframe);\n  iframe.src = String(js);\n  iframeDocument = iframe.contentWindow.document;\n  iframeDocument.open();\n  iframeDocument.write(lt + script + gt + 'document.F=Object' + lt + '/' + script + gt);\n  iframeDocument.close();\n  createDict = iframeDocument.F;\n  while (length--) delete createDict[PROTOTYPE][enumBugKeys[length]];\n  return createDict();\n};\n\n// `Object.create` method\n// https://tc39.github.io/ecma262/#sec-object.create\nmodule.exports = Object.create || function create(O, Properties) {\n  var result;\n  if (O !== null) {\n    Empty[PROTOTYPE] = anObject(O);\n    result = new Empty();\n    Empty[PROTOTYPE] = null;\n    // add \"__proto__\" for Object.getPrototypeOf polyfill\n    result[IE_PROTO] = O;\n  } else result = createDict();\n  return Properties === undefined ? result : defineProperties(result, Properties);\n};\n\nhiddenKeys[IE_PROTO] = true;\n","import React, {PureComponent} from 'react';\nimport PropTypes from 'prop-types';\nimport cx from 'classnames';\n\nimport style from './style.css';\n\nexport default class ProgressBar extends PureComponent {\n    static propTypes = {\n        value: PropTypes.number,\n        error: PropTypes.bool,\n    }\n\n    render() {\n        const hasValue = !isNaN(this.props.value) && this.props.value !== null;\n        let barWidth = this.props.value + '%';\n        if (this.props.error || !hasValue) {\n            barWidth = '100%';\n        }\n        return (\n            <div className={style.container}>\n                <div\n                    className={cx(this.props.error ? style.error : style.progress, !hasValue && style.indeterminate)}\n                    style={{width: barWidth}}\n                />\n            </div>\n        );\n    }\n}\n","/* global PREZIGRAM */\nimport screenfull from 'screenfull';\n\nimport Dispatcher from '../../../dispatcher';\nimport CurrentInfographicStore from '../../../../app/main/stores/CurrentInfographicStore.js';\nimport {logCloseProjectInFullScreenWebJs} from '../../../../../../glassbox/client_logger';\n\nimport {\n    PRESENTATION_FULLSCREEN_ENTER,\n    PRESENTATION_FULLSCREEN_EXIT,\n    PRESENTATION_SWITCH_PAGE,\n    PRESENTATION_NAVIGATE,\n    PRESENTATION_RESIZE,\n    PRESENTATION_DISPLAY_CONTROLS,\n    PRESENTATION_DISPLAY_SCROLL_PROGRESS,\n    PRESENTATION_NAVIGATION_TREE_POP,\n} from './constants';\n\nexport function enterFullscreen() {\n    if (screenfull.enabled) {\n        screenfull.request(PREZIGRAM && document.getElementById('presentation'));\n    }\n    Dispatcher.dispatch({\n        type: PRESENTATION_FULLSCREEN_ENTER,\n    });\n}\n\nexport function exitFullscreen() {\n    Dispatcher.dispatch({\n        type: PRESENTATION_FULLSCREEN_EXIT,\n    });\n    if (screenfull.isFullscreen) {\n        screenfull.exit();\n    }\n    logCloseProjectInFullScreenWebJs({\n        project_id: CurrentInfographicStore.infographicId,\n    });\n}\n\nexport function switchPage(pageIndex) {\n    Dispatcher.dispatch({\n        type: PRESENTATION_SWITCH_PAGE,\n        page: pageIndex,\n    });\n}\n\nexport function navigate(pageIndex, targetId) {\n    Dispatcher.dispatch({\n        type: PRESENTATION_NAVIGATE,\n        page: pageIndex,\n        targetId,\n    });\n}\n\nexport function navigationTreePop(navigationTree) {\n    Dispatcher.dispatch({\n        type: PRESENTATION_NAVIGATION_TREE_POP,\n        navigationTree,\n    });\n}\n\n\nexport function setPresentationSize(width, height) {\n    Dispatcher.dispatch({\n        type: PRESENTATION_RESIZE,\n        width, height,\n    });\n}\n\nexport function showControls() {\n    Dispatcher.dispatch({\n        type: PRESENTATION_DISPLAY_CONTROLS,\n        displayControls: true,\n    });\n}\n\nexport function hideControls() {\n    Dispatcher.dispatch({\n        type: PRESENTATION_DISPLAY_CONTROLS,\n        displayControls: false,\n    });\n}\n\nexport function showScrollProgress() {\n    Dispatcher.dispatch({\n        type: PRESENTATION_DISPLAY_SCROLL_PROGRESS,\n        displayScrollProgress: true,\n    });\n}\n\nexport function hideScrollProgress() {\n    Dispatcher.dispatch({\n        type: PRESENTATION_DISPLAY_SCROLL_PROGRESS,\n        displayScrollProgress: false,\n    });\n}\n","import i18n from 'i18next';\n\nimport React, {Component, Fragment} from 'react';\nimport {Container} from 'flux/utils';\nimport cx from 'classnames';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport PresentationStore from './store';\nimport EditorStateStore from '../../stores/EditorStateStore';\nimport {switchPage, navigationTreePop} from './actions';\n\nimport style from './ControlBox.css';\n\nconst Arrow = styled.span`\n    display: block;\n    cursor: pointer;\n    width: 11px;\n    height: 11px;\n    min-width: unset;\n    outline: none;\n    \n    ${props => props.disabled && `\n        opacity: 0.5;\n        \n        &:hover {\n            cursor: default;\n        }\n    `}\n`;\n\nconst Left = styled(Arrow)`\n    background: url(${require('./icon-left.svg')}) center no-repeat;\n    background-size: contain;\n`;\n\nconst Right = styled(Arrow)`\n    background: url(${require('./icon-right.svg')}) center no-repeat;\n    background-size: contain;\n`;\n\nclass ControlBox extends Component {\n    static propTypes = {\n        switchToNextPage: PropTypes.func,\n        switchToPrevPage: PropTypes.func,\n    }\n\n    static getStores() {\n        return [\n            PresentationStore,\n            EditorStateStore,\n        ];\n    }\n\n    static calculateState() {\n        return {\n            activePage: PresentationStore.activePage,\n            pageCount: EditorStateStore.editorState.getCurrentContent().getBlocks().size,\n            navigationTree: PresentationStore.navigationTree,\n        };\n    }\n\n    constructor(props) {\n        super(props);\n        this._switchToNextPage = this._switchToNextPage.bind(this);\n        this._switchToPreviousPage = this._switchToPreviousPage.bind(this);\n    }\n\n    _switchToNextPage() {\n        if (this.props.switchToNextPage) {\n            this.props.switchToNextPage();\n        } else {\n            switchPage(this.state.activePage + 1);\n        }\n    }\n\n    _switchToPreviousPage() {\n        if (this.props.switchToPrevPage) {\n            this.props.switchToPrevPage();\n        } else {\n            switchPage(this.state.activePage - 1);\n        }\n    }\n\n    _back = () => {\n        navigationTreePop(this.state.navigationTree);\n    }\n\n    render() {\n        const {activePage, pageCount, navigationTree} = this.state;\n        return (\n            <Fragment>\n                {navigationTree.size > 0 &&\n                    <button className={style.back} onClick={this._back}>\n                        <span className=\"icon-undo\"/>\n                    </button>\n                }\n                <div className={style.container}>\n                    <button\n                        onClick={this._switchToPreviousPage}\n                        className={cx(style.arrow, style.left, activePage === 0 && style.arrowDisabled)}\n                        disabled={activePage === 0}\n                        aria-label={i18n.t('previousSlide')}\n                        data-do-not-hide\n                    >\n                        <Left disabled={activePage === 0}/>\n                    </button>\n                    <span\n                        className={style.pageIndicator}\n                        data-do-not-hide\n                    >\n                        {`${activePage + 1} / ${pageCount}`}\n                    </span>\n                    <button\n                        onClick={this._switchToNextPage}\n                        className={cx(style.arrow, style.right, activePage === pageCount - 1 && style.arrowDisabled)}\n                        disabled={activePage === pageCount - 1}\n                        aria-label={i18n.t('nextSlide')}\n                        data-do-not-hide\n                    >\n                        <Right disabled={activePage === pageCount - 1}/>\n                    </button>\n                </div>\n            </Fragment>\n        );\n    }\n}\n\nexport default Container.create(ControlBox);\n","const _ = require('lodash');\n\nmodule.exports = function createWebFontLoaderConfig(fontObject, cdnUrl) {\n    const config = {};\n\n    if (_.get(fontObject, 'google.length')) {\n        const subsets = ['latin', 'latin-ext', 'cyrillic'];\n        config.google = {\n            families: [],\n        };\n        fontObject.google.forEach(entry => {\n            const {subset} = entry;\n            if (subset && subsets.indexOf(subset) === -1) {\n                subsets.push(subset);\n            }\n            config.google.families.push(`${entry.fontFamily}:${entry.fontWeights.join(',')},${entry.fontWeights.join('i,')}i`);\n        });\n        config.google.families[config.google.families.length - 1] += `&subset=${subsets.join(',')}`;\n    }\n    if (_.get(fontObject, 'local.length')) {\n        config.custom = {\n            families: fontObject.local.map(entry => `${entry.fontFamily}:${customFontStyles(entry.styles)}`),\n            urls: [generateDataUrl(fontObject.local, cdnUrl)],\n        };\n    }\n    if (_.get(fontObject, 'branding')) {\n        if (!config.custom) {\n            config.custom = fontObject.branding;\n        } else {\n            config.custom.families = config.custom.families.concat(fontObject.branding.families);\n            config.custom.urls = config.custom.urls.concat(fontObject.branding.urls);\n        }\n    }\n    if (_.get(fontObject, 'typekit.length')) {\n        config.typekit = {\n            id: fontObject.typekit[0],\n        };\n    }\n    config.failedFonts = [];\n    config.fontinactive = function (familyName, fvd) {\n        this.failedFonts.push([familyName,fvd]);\n    }.bind(config);\n\n    return config;\n};\n\nfunction generateDataUrl(localFont, cdnUrl) {\n    const fonts = [];\n\n    localFont.forEach(family => {\n        family.styles.forEach(variation => {\n            fonts.push({\n                fontFamily: family.fontFamily,\n                src: variation.src,\n                fontWeight: variation.fontWeight,\n                fontStyle: variation.fontStyle,\n            });\n        });\n    });\n\n    const cssString = webFontTemplate(fonts).replace(/\\/i\\/templates\\/[0-9]+/g, `${cdnUrl}$&`);\n\n    return `data:text/css,${encodeURIComponent(cssString)}`;\n}\n\nfunction fontSrc(font) {\n    const out = {src1: '', src2: ''};\n    if (font.src && Array.isArray(font.src)) {\n        out.src1 = `src:${font.src[0]};`;\n        if (font.src.length > 1) {\n            out.src2 = `src:${font.src.slice(1).join(', ')};`;\n        }\n    }\n    return out;\n}\n\nfunction webFontTemplate(fonts) {\n    return fonts.reduce(function(acc, font) {\n        const {src1, src2} = fontSrc(font);\n        return `${acc}@font-face{font-family:${font.fontFamily.indexOf(' ') !== -1 ? '\\'' + font.fontFamily + '\\'' : font.fontFamily};font-style:${font.fontStyle};font-weight:${font.fontWeight};${src1}${src2}}`\n    }, '');\n}\n\nfunction customFontStyles(stylesArray) {\n    return stylesArray.map(entry => `${entry.fontStyle[0]}${entry.fontWeight}`).join(',');\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar $find = require('../internals/array-iteration').find;\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\nvar FIND = 'find';\nvar SKIPS_HOLES = true;\n\n// Shouldn't skip holes\nif (FIND in []) Array(1)[FIND](function () { SKIPS_HOLES = false; });\n\n// `Array.prototype.find` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.find\n$({ target: 'Array', proto: true, forced: SKIPS_HOLES }, {\n  find: function find(callbackfn /* , that = undefined */) {\n    return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n  }\n});\n\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables(FIND);\n","'use strict';\nvar $ = require('../internals/export');\nvar createIteratorConstructor = require('../internals/create-iterator-constructor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar hide = require('../internals/hide');\nvar redefine = require('../internals/redefine');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\nvar Iterators = require('../internals/iterators');\nvar IteratorsCore = require('../internals/iterators-core');\n\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n  createIteratorConstructor(IteratorConstructor, NAME, next);\n\n  var getIterationMethod = function (KIND) {\n    if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n    if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND];\n    switch (KIND) {\n      case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n      case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n      case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n    } return function () { return new IteratorConstructor(this); };\n  };\n\n  var TO_STRING_TAG = NAME + ' Iterator';\n  var INCORRECT_VALUES_NAME = false;\n  var IterablePrototype = Iterable.prototype;\n  var nativeIterator = IterablePrototype[ITERATOR]\n    || IterablePrototype['@@iterator']\n    || DEFAULT && IterablePrototype[DEFAULT];\n  var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n  var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n  var CurrentIteratorPrototype, methods, KEY;\n\n  // fix native\n  if (anyNativeIterator) {\n    CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n    if (IteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n      if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n        if (setPrototypeOf) {\n          setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n        } else if (typeof CurrentIteratorPrototype[ITERATOR] != 'function') {\n          hide(CurrentIteratorPrototype, ITERATOR, returnThis);\n        }\n      }\n      // Set @@toStringTag to native iterators\n      setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n      if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n    }\n  }\n\n  // fix Array#{values, @@iterator}.name in V8 / FF\n  if (DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n    INCORRECT_VALUES_NAME = true;\n    defaultIterator = function values() { return nativeIterator.call(this); };\n  }\n\n  // define iterator\n  if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n    hide(IterablePrototype, ITERATOR, defaultIterator);\n  }\n  Iterators[NAME] = defaultIterator;\n\n  // export additional methods\n  if (DEFAULT) {\n    methods = {\n      values: getIterationMethod(VALUES),\n      keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n      entries: getIterationMethod(ENTRIES)\n    };\n    if (FORCED) for (KEY in methods) {\n      if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n        redefine(IterablePrototype, KEY, methods[KEY]);\n      }\n    } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n  }\n\n  return methods;\n};\n","export const optionsSupported = (function() {\n    let optionsCalled = false;\n\n    try {\n        const options = {\n            get passive() {\n                optionsCalled = true;\n                return true;\n            },\n        };\n        window.addEventListener('test', options, options);\n        window.removeEventListener('test', options, options);\n    } catch (err) {\n        optionsCalled = false;\n    }\n\n    return optionsCalled;\n})();\n","export default {\n    BACKSPACE: 8,\n    TAB: 9,\n    ENTER: 13,\n    SHIFT: 16,\n    CTRL: 17,\n    ALT: 18,\n    PAUSE: 19,\n    CAPS_LOCK: 20,\n    ESCAPE: 27,\n    SPACE: 32,\n    PAGE_UP: 33,\n    PAGE_DOWN: 34,\n    END: 35,\n    HOME: 36,\n    LEFT_ARROW: 37,\n    UP_ARROW: 38,\n    RIGHT_ARROW: 39,\n    DOWN_ARROW: 40,\n    INSERT: 45,\n    DELETE: 46,\n    KEY_0: 48,\n    KEY_1: 49,\n    KEY_2: 50,\n    KEY_3: 51,\n    KEY_4: 52,\n    KEY_5: 53,\n    KEY_6: 54,\n    KEY_7: 55,\n    KEY_8: 56,\n    KEY_9: 57,\n    KEY_A: 65,\n    KEY_B: 66,\n    KEY_C: 67,\n    KEY_D: 68,\n    KEY_E: 69,\n    KEY_F: 70,\n    KEY_G: 71,\n    KEY_H: 72,\n    KEY_I: 73,\n    KEY_J: 74,\n    KEY_K: 75,\n    KEY_L: 76,\n    KEY_M: 77,\n    KEY_N: 78,\n    KEY_O: 79,\n    KEY_P: 80,\n    KEY_Q: 81,\n    KEY_R: 82,\n    KEY_S: 83,\n    KEY_T: 84,\n    KEY_U: 85,\n    KEY_V: 86,\n    KEY_W: 87,\n    KEY_X: 88,\n    KEY_Y: 89,\n    KEY_Z: 90,\n    LEFT_META: 91,\n    RIGHT_META: 92,\n    SELECT: 93,\n    NUMPAD_0: 96,\n    NUMPAD_1: 97,\n    NUMPAD_2: 98,\n    NUMPAD_3: 99,\n    NUMPAD_4: 100,\n    NUMPAD_5: 101,\n    NUMPAD_6: 102,\n    NUMPAD_7: 103,\n    NUMPAD_8: 104,\n    NUMPAD_9: 105,\n    MULTIPLY: 106,\n    ADD: 107,\n    SUBTRACT: 109,\n    DECIMAL: 110,\n    DIVIDE: 111,\n    F1: 112,\n    F2: 113,\n    F3: 114,\n    F4: 115,\n    F5: 116,\n    F6: 117,\n    F7: 118,\n    F8: 119,\n    F9: 120,\n    F10: 121,\n    F11: 122,\n    F12: 123,\n    NUM_LOCK: 144,\n    SCROLL_LOCK: 145,\n    SEMICOLON: 186,\n    EQUALS: 187,\n    COMMA: 188,\n    DASH: 189,\n    PERIOD: 190,\n    FORWARD_SLASH: 191,\n    GRAVE_ACCENT: 192,\n    OPEN_BRACKET: 219,\n    BACK_SLASH: 220,\n    CLOSE_BRACKET: 221,\n    SINGLE_QUOTE: 222,\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar R = typeof Reflect === 'object' ? Reflect : null\nvar ReflectApply = R && typeof R.apply === 'function'\n  ? R.apply\n  : function ReflectApply(target, receiver, args) {\n    return Function.prototype.apply.call(target, receiver, args);\n  }\n\nvar ReflectOwnKeys\nif (R && typeof R.ownKeys === 'function') {\n  ReflectOwnKeys = R.ownKeys\n} else if (Object.getOwnPropertySymbols) {\n  ReflectOwnKeys = function ReflectOwnKeys(target) {\n    return Object.getOwnPropertyNames(target)\n      .concat(Object.getOwnPropertySymbols(target));\n  };\n} else {\n  ReflectOwnKeys = function ReflectOwnKeys(target) {\n    return Object.getOwnPropertyNames(target);\n  };\n}\n\nfunction ProcessEmitWarning(warning) {\n  if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n  return value !== value;\n}\n\nfunction EventEmitter() {\n  EventEmitter.init.call(this);\n}\nmodule.exports = EventEmitter;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners = 10;\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n  enumerable: true,\n  get: function() {\n    return defaultMaxListeners;\n  },\n  set: function(arg) {\n    if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n      throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n    }\n    defaultMaxListeners = arg;\n  }\n});\n\nEventEmitter.init = function() {\n\n  if (this._events === undefined ||\n      this._events === Object.getPrototypeOf(this)._events) {\n    this._events = Object.create(null);\n    this._eventsCount = 0;\n  }\n\n  this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n  if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n    throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n  }\n  this._maxListeners = n;\n  return this;\n};\n\nfunction $getMaxListeners(that) {\n  if (that._maxListeners === undefined)\n    return EventEmitter.defaultMaxListeners;\n  return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n  return $getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n  var args = [];\n  for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n  var doError = (type === 'error');\n\n  var events = this._events;\n  if (events !== undefined)\n    doError = (doError && events.error === undefined);\n  else if (!doError)\n    return false;\n\n  // If there is no 'error' event listener then throw.\n  if (doError) {\n    var er;\n    if (args.length > 0)\n      er = args[0];\n    if (er instanceof Error) {\n      // Note: The comments on the `throw` lines are intentional, they show\n      // up in Node's output if this results in an unhandled exception.\n      throw er; // Unhandled 'error' event\n    }\n    // At least give some kind of context to the user\n    var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n    err.context = er;\n    throw err; // Unhandled 'error' event\n  }\n\n  var handler = events[type];\n\n  if (handler === undefined)\n    return false;\n\n  if (typeof handler === 'function') {\n    ReflectApply(handler, this, args);\n  } else {\n    var len = handler.length;\n    var listeners = arrayClone(handler, len);\n    for (var i = 0; i < len; ++i)\n      ReflectApply(listeners[i], this, args);\n  }\n\n  return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n  var m;\n  var events;\n  var existing;\n\n  if (typeof listener !== 'function') {\n    throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n  }\n\n  events = target._events;\n  if (events === undefined) {\n    events = target._events = Object.create(null);\n    target._eventsCount = 0;\n  } else {\n    // To avoid recursion in the case that type === \"newListener\"! Before\n    // adding it to the listeners, first emit \"newListener\".\n    if (events.newListener !== undefined) {\n      target.emit('newListener', type,\n                  listener.listener ? listener.listener : listener);\n\n      // Re-assign `events` because a newListener handler could have caused the\n      // this._events to be assigned to a new object\n      events = target._events;\n    }\n    existing = events[type];\n  }\n\n  if (existing === undefined) {\n    // Optimize the case of one listener. Don't need the extra array object.\n    existing = events[type] = listener;\n    ++target._eventsCount;\n  } else {\n    if (typeof existing === 'function') {\n      // Adding the second element, need to change to array.\n      existing = events[type] =\n        prepend ? [listener, existing] : [existing, listener];\n      // If we've already got an array, just append.\n    } else if (prepend) {\n      existing.unshift(listener);\n    } else {\n      existing.push(listener);\n    }\n\n    // Check for listener leak\n    m = $getMaxListeners(target);\n    if (m > 0 && existing.length > m && !existing.warned) {\n      existing.warned = true;\n      // No error code for this since it is a Warning\n      // eslint-disable-next-line no-restricted-syntax\n      var w = new Error('Possible EventEmitter memory leak detected. ' +\n                          existing.length + ' ' + String(type) + ' listeners ' +\n                          'added. Use emitter.setMaxListeners() to ' +\n                          'increase limit');\n      w.name = 'MaxListenersExceededWarning';\n      w.emitter = target;\n      w.type = type;\n      w.count = existing.length;\n      ProcessEmitWarning(w);\n    }\n  }\n\n  return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n  return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n    function prependListener(type, listener) {\n      return _addListener(this, type, listener, true);\n    };\n\nfunction onceWrapper() {\n  var args = [];\n  for (var i = 0; i < arguments.length; i++) args.push(arguments[i]);\n  if (!this.fired) {\n    this.target.removeListener(this.type, this.wrapFn);\n    this.fired = true;\n    ReflectApply(this.listener, this.target, args);\n  }\n}\n\nfunction _onceWrap(target, type, listener) {\n  var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n  var wrapped = onceWrapper.bind(state);\n  wrapped.listener = listener;\n  state.wrapFn = wrapped;\n  return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n  if (typeof listener !== 'function') {\n    throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n  }\n  this.on(type, _onceWrap(this, type, listener));\n  return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n    function prependOnceListener(type, listener) {\n      if (typeof listener !== 'function') {\n        throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n      }\n      this.prependListener(type, _onceWrap(this, type, listener));\n      return this;\n    };\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n    function removeListener(type, listener) {\n      var list, events, position, i, originalListener;\n\n      if (typeof listener !== 'function') {\n        throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n      }\n\n      events = this._events;\n      if (events === undefined)\n        return this;\n\n      list = events[type];\n      if (list === undefined)\n        return this;\n\n      if (list === listener || list.listener === listener) {\n        if (--this._eventsCount === 0)\n          this._events = Object.create(null);\n        else {\n          delete events[type];\n          if (events.removeListener)\n            this.emit('removeListener', type, list.listener || listener);\n        }\n      } else if (typeof list !== 'function') {\n        position = -1;\n\n        for (i = list.length - 1; i >= 0; i--) {\n          if (list[i] === listener || list[i].listener === listener) {\n            originalListener = list[i].listener;\n            position = i;\n            break;\n          }\n        }\n\n        if (position < 0)\n          return this;\n\n        if (position === 0)\n          list.shift();\n        else {\n          spliceOne(list, position);\n        }\n\n        if (list.length === 1)\n          events[type] = list[0];\n\n        if (events.removeListener !== undefined)\n          this.emit('removeListener', type, originalListener || listener);\n      }\n\n      return this;\n    };\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners =\n    function removeAllListeners(type) {\n      var listeners, events, i;\n\n      events = this._events;\n      if (events === undefined)\n        return this;\n\n      // not listening for removeListener, no need to emit\n      if (events.removeListener === undefined) {\n        if (arguments.length === 0) {\n          this._events = Object.create(null);\n          this._eventsCount = 0;\n        } else if (events[type] !== undefined) {\n          if (--this._eventsCount === 0)\n            this._events = Object.create(null);\n          else\n            delete events[type];\n        }\n        return this;\n      }\n\n      // emit removeListener for all listeners on all events\n      if (arguments.length === 0) {\n        var keys = Object.keys(events);\n        var key;\n        for (i = 0; i < keys.length; ++i) {\n          key = keys[i];\n          if (key === 'removeListener') continue;\n          this.removeAllListeners(key);\n        }\n        this.removeAllListeners('removeListener');\n        this._events = Object.create(null);\n        this._eventsCount = 0;\n        return this;\n      }\n\n      listeners = events[type];\n\n      if (typeof listeners === 'function') {\n        this.removeListener(type, listeners);\n      } else if (listeners !== undefined) {\n        // LIFO order\n        for (i = listeners.length - 1; i >= 0; i--) {\n          this.removeListener(type, listeners[i]);\n        }\n      }\n\n      return this;\n    };\n\nfunction _listeners(target, type, unwrap) {\n  var events = target._events;\n\n  if (events === undefined)\n    return [];\n\n  var evlistener = events[type];\n  if (evlistener === undefined)\n    return [];\n\n  if (typeof evlistener === 'function')\n    return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n  return unwrap ?\n    unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n  return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n  return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n  if (typeof emitter.listenerCount === 'function') {\n    return emitter.listenerCount(type);\n  } else {\n    return listenerCount.call(emitter, type);\n  }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n  var events = this._events;\n\n  if (events !== undefined) {\n    var evlistener = events[type];\n\n    if (typeof evlistener === 'function') {\n      return 1;\n    } else if (evlistener !== undefined) {\n      return evlistener.length;\n    }\n  }\n\n  return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n  return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n  var copy = new Array(n);\n  for (var i = 0; i < n; ++i)\n    copy[i] = arr[i];\n  return copy;\n}\n\nfunction spliceOne(list, index) {\n  for (; index + 1 < list.length; index++)\n    list[index] = list[index + 1];\n  list.pop();\n}\n\nfunction unwrapListeners(arr) {\n  var ret = new Array(arr.length);\n  for (var i = 0; i < ret.length; ++i) {\n    ret[i] = arr[i].listener || arr[i];\n  }\n  return ret;\n}\n","export default function _getPrototypeOf(o) {\n  _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n    return o.__proto__ || Object.getPrototypeOf(o);\n  };\n  return _getPrototypeOf(o);\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _reactDom = require(\"react-dom\");\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\nrequire(\"stickyfill\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /*global Stickyfill */\n\n\nvar Sticker = function (_Component) {\n\t_inherits(Sticker, _Component);\n\n\tfunction Sticker(props) {\n\t\t_classCallCheck(this, Sticker);\n\n\t\tvar _this = _possibleConstructorReturn(this, (Sticker.__proto__ || Object.getPrototypeOf(Sticker)).call(this, props));\n\n\t\t_this.mediaMatch = function (media) {\n\t\t\treturn window && window.matchMedia(media).matches;\n\t\t};\n\n\t\t_this.sticky = function (stick) {\n\t\t\tStickyfill.add(stick);\n\t\t\t_this.setState({\n\t\t\t\tisSticky: true\n\t\t\t});\n\t\t};\n\n\t\t_this.unsticky = function (stick) {\n\t\t\tStickyfill.remove(stick);\n\t\t\t_this.setState({\n\t\t\t\tisSticky: false\n\t\t\t});\n\t\t};\n\n\t\t_this.update = function () {\n\t\t\tStickyfill.rebuild();\n\t\t};\n\n\t\t_this.handleResize = function () {\n\t\t\tif (_this.mediaMatch(_this.props.media)) {\n\t\t\t\tif (!_this.state.isSticky) {\n\t\t\t\t\t_this.sticky(_this.stick);\n\t\t\t\t}\n\t\t\t} else if (_this.state.isSticky) {\n\t\t\t\t_this.unsticky(_this.stick);\n\t\t\t}\n\t\t};\n\n\t\t_this.state = {\n\t\t\tisSticky: false\n\t\t};\n\t\treturn _this;\n\t}\n\n\t_createClass(Sticker, [{\n\t\tkey: \"componentDidMount\",\n\t\tvalue: function componentDidMount() {\n\t\t\tthis.stick = _reactDom2.default.findDOMNode(this);\n\t\t\tif (this.props.media) {\n\t\t\t\twindow && window.addEventListener('resize', this.handleResize);\n\t\t\t\tthis.handleResize();\n\t\t\t} else {\n\t\t\t\tthis.sticky(this.stick);\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"componentWillUnmount\",\n\t\tvalue: function componentWillUnmount() {\n\t\t\tif (this.props.media) {\n\t\t\t\twindow && window.removeEventListener('resize', this.handleResize);\n\t\t\t}\n\t\t\tthis.unsticky(this.stick);\n\t\t}\n\t}, {\n\t\tkey: \"componentWillReceiveProps\",\n\t\tvalue: function componentWillReceiveProps(nextProps) {\n\t\t\tif (nextProps.forceUpdate !== this.props.forceUpdate) {\n\t\t\t\tthis.update();\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"componentDidUpdate\",\n\t\tvalue: function componentDidUpdate() {\n\t\t\tthis.update();\n\t\t}\n\t}, {\n\t\tkey: \"render\",\n\t\tvalue: function render() {\n\t\t\tvar _props = this.props,\n\t\t\t    children = _props.children,\n\t\t\t    otherProps = _objectWithoutProperties(_props, [\"children\"]);\n\n\t\t\treturn typeof children.type === \"function\" ? _react2.default.cloneElement(this.props.children, _extends({}, otherProps)) : children;\n\t\t}\n\t}]);\n\n\treturn Sticker;\n}(_react.Component);\n\nSticker.propTypes = {\n\tmedia: _propTypes2.default.string,\n\tchildren: _propTypes2.default.oneOfType([_propTypes2.default.element, _propTypes2.default.func])\n};\nexports.default = Sticker;","var $ = require('../internals/export');\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar has = require('../internals/has');\nvar definePropertyModule = require('../internals/object-define-property');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\n// `Reflect.set` method\n// https://tc39.github.io/ecma262/#sec-reflect.set\nfunction set(target, propertyKey, V /* , receiver */) {\n  var receiver = arguments.length < 4 ? target : arguments[3];\n  var ownDescriptor = getOwnPropertyDescriptorModule.f(anObject(target), propertyKey);\n  var existingDescriptor, prototype;\n  if (!ownDescriptor) {\n    if (isObject(prototype = getPrototypeOf(target))) {\n      return set(prototype, propertyKey, V, receiver);\n    }\n    ownDescriptor = createPropertyDescriptor(0);\n  }\n  if (has(ownDescriptor, 'value')) {\n    if (ownDescriptor.writable === false || !isObject(receiver)) return false;\n    if (existingDescriptor = getOwnPropertyDescriptorModule.f(receiver, propertyKey)) {\n      if (existingDescriptor.get || existingDescriptor.set || existingDescriptor.writable === false) return false;\n      existingDescriptor.value = V;\n      definePropertyModule.f(receiver, propertyKey, existingDescriptor);\n    } else definePropertyModule.f(receiver, propertyKey, createPropertyDescriptor(0, V));\n    return true;\n  }\n  return ownDescriptor.set === undefined ? false : (ownDescriptor.set.call(receiver, V), true);\n}\n\n$({ target: 'Reflect', stat: true }, {\n  set: set\n});\n","var fails = require('../internals/fails');\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !fails(function () {\n  return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!./Header.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!./Header.css\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!./Header.css\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.replace` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.replace\ndefineWellKnownSymbol('replace');\n","exports = module.exports = require(\"../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".InfographicEditor-Contents {\\n    display: inline-block;\\n    font-size: 0;\\n    text-align: left;\\n    text-rendering: optimizeLegibility !important;\\n    -webkit-text-size-adjust: 100%;\\n    text-size-adjust: 100%;\\n    padding-left: 55px;\\n    padding-right: 55px;\\n    padding-bottom: 20px;\\n    outline: none;\\n    pointer-events: none;\\n}\\n\\n.InfographicEditor-Contents.InfographicEditor-Thumbs {\\n    display: flex;\\n    justify-content: center;\\n    flex-wrap: wrap;\\n}\\n\\n.InfographicEditor.__read-only .InfographicEditor-Contents {\\n    padding: 0;\\n}\\n\\n.InfographicEditor-Contents-Block_w {\\n    display: block;\\n    position: relative;\\n}\\n\\n.InfographicEditor-Contents-Block {\\n    position: relative;\\n    z-index: 0;\\n    font-size: 13px;\\n    clear:both;\\n    overflow: hidden;\\n    transform-origin: 0 0;\\n    pointer-events: auto;\\n}\\n\\n.InfographicEditor-Contents-Block-Grid {\\n    pointer-events: none;\\n    position: absolute;\\n    top: 0px;\\n    left: 0px;\\n    bottom: 0px;\\n    right: 0px;\\n}\\n\\n.InfographicEditor-Contents-Item {\\n    position: absolute;\\n    outline: none;\\n    z-index: 0;\\n    cursor: default;\\n}\\n\\n.panel_AutoLayout .InfographicEditor-Contents-Item,\\n.panel_AutoLayout .ItemContent-image {\\n    transition: all 1s ease;\\n}\\n\\n.ItemContent-text {\\n    overflow: hidden;\\n}\\n\\n.ItemContent-link:hover {\\n    opacity: 0.9;\\n}\\n\\n.__transparent  .InfographicEditor-Contents-Block {\\n    background: transparent !important;\\n    box-shadow: none !important;\\n}\\n\\n.InfographicEditor.__navigating,\\n.InfographicEditor.__navigating .InfographicEditor-Contents {\\n    cursor: grab;\\n    pointer-events: all;\\n}\\n.InfographicEditor.__navigating .InfographicEditor-Contents * {\\n    pointer-events: none;\\n}\\n\\n.FreeLayoutEditor-toolbar {\\n    position: fixed;\\n    top: 0;\\n    left: 0;\\n    right: 0;\\n    height: 80px;\\n}\\n\\n.FreeLayoutEditor-SidePanel {\\n    position: fixed;\\n    top: 80px;\\n    right: 0;\\n    bottom: 0;\\n    width: 230px;\\n    background-color: #3b3b3b;\\n    border-left: 2px solid #000;\\n}\\n\\n.FreeLayoutEditor-SidePanel h5 {\\n    display: block;\\n    padding: 10px 0;\\n    font-size: 13px;\\n}\\n\\n.__warning_visible .ElementMenu,\\n.__warning_visible .FreeLayoutEditor-SidePanel {\\n    margin-top: 30px;\\n}\\n\\n/*\\nLooks like this allows us to use correct font despite it being set in new.css.\\nMost probably this relies on draft-js internal implementation where they set\\ndata-text to lowest-level nodes containing text\\n*/\\n.ItemContent-text [data-text=\\\"true\\\"] {\\n    font-family: inherit;\\n    font-weight: inherit;\\n    font-size: inherit;\\n    line-height: inherit;\\n    letter-spacing: inherit;\\n    color: inherit;\\n}\\n\\n.ItemContent-text {\\n    color: #000;\\n    -webkit-font-smoothing: antialiased;\\n    -moz-osx-font-smoothing: grayscale;\\n}\\n\\n.ItemContent-text.__editable {\\n    cursor: text;\\n}\\n\\n.ItemContent-text a:hover {\\n    text-decoration: none;\\n}\\n\\n.ItemContent-text.__no-font-kerning {\\n    -webkit-font-kerning: none;\\n    font-kerning: none;\\n    font-variant-ligatures: no-common-ligatures;\\n    -webkit-font-feature-settings: 'kern' 0, 'liga' 0, 'clig' 0;\\n    font-feature-settings: 'kern' 0, 'liga' 0, 'clig' 0;\\n    font-synthesis: none;\\n}\\n\\n.ItemContent-text ol,\\n.ItemContent-text ul,\\n.ItemContent-text li {\\n    padding: 0;\\n    margin: 0;\\n    border: 0;\\n    outline: none;\\n}\\n\\n.ItemContent-text.__with-overflow {\\n    overflow: visible;\\n}\\n\\n.ItemContent-text-outer_container {\\n    display: table;\\n    border-spacing: 0;\\n    border-collapse: collapse;\\n}\\n\\n.ItemContent-text-inner_container {\\n    display: table-cell;\\n    padding: 0;\\n    border: 0;\\n    outline: none;\\n}\\n\\n.ItemContent-link {\\n    overflow: hidden;\\n    cursor: pointer;\\n}\\n\\nh1,\\nh2,\\nh3,\\nh4,\\nh5,\\nh6,\\na,\\nspan,\\nlabel,\\ninput,\\ntextarea,\\nbutton {\\n    font-weight: 500;\\n    letter-spacing: -0.3px;\\n}\\n\\n.ItemContent-text .ig-link-underline-controllable {\\n    text-decoration: none;\\n}\\n\\n.ItemContent-text .ig-link-underline-controllable:hover {\\n    text-decoration: none;\\n}\\n\\n.ItemContent-text .ig-link-underline-controllable > span:hover {\\n    text-decoration: none !important;\\n}\\n\\n.__ig-alignLeft {\\n    text-align: left;\\n}\\n\\n.__ig-alignCenter {\\n    text-align: center;\\n}\\n\\n.__ig-alignRight {\\n    text-align: right;\\n}\\n\\n.__ig-alignJustify {\\n    text-align: justify;\\n}\\n\\n.__ig-alignLeft .public-DraftStyleDefault-block,\\n.__ig-alignCenter .public-DraftStyleDefault-block,\\n.__ig-alignRight .public-DraftStyleDefault-block,\\n.__ig-alignJustify .public-DraftStyleDefault-block {\\n    text-align: inherit;\\n}\\n\\n.__ig-listItem {\\n    display: block;\\n    clear: both;\\n}\\n\\n.__ig-listBullet {\\n    float: left;\\n}\\n\\n.__ig-listNumber {\\n    float: left;\\n}\\n\\n.__ig-listItemContents {\\n    margin-left: 1em;\\n}\\n\", \"\"]);\n\n// exports\n","const config = {\n    csrftoken: '',\n    apiBase: '/api',\n    downgrade: {\n        salesPersonAvatar: '/i/downgrade/sales.png',\n        salesPersonName: 'Marta',\n    },\n};\nexport default config;\n\nexport function setConfig(c) {\n    Object.assign(config, {\n        ...c,\n        cdn: new URL(c.cdn, document.location.origin).toString().replace(/\\/$/, ''),\n    });\n}\n\nif (window.infogramConfig) {\n    setConfig(window.infogramConfig);\n} else if (window.publicViewConfig) {\n    setConfig(window.publicViewConfig);\n}\n","exports = module.exports = require(\"../../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".NR-yiiIVhzB-2EJfX1s_1 {\\n    position: relative;\\n    z-index: 4;\\n    top: 20px;\\n    text-align: center;\\n    min-width: 135px;\\n    color: #fff;\\n    overflow: hidden;\\n    opacity: 0.8;\\n    font-size: 11px;\\n    font-weight: 500;\\n    display: flex;\\n    justify-content: center;\\n    height: 30px;\\n}\\n\\n._32admtnnEnj7vpahmrb92O,\\n._1bgEAE4ZtbeNyjeH0bpbjq,\\n._1o04mVCrB6j3ka9ViqRB52 {\\n    height: 100%;\\n    display: flex;\\n    justify-content: center;\\n    align-items: center;\\n}\\n\\n._32admtnnEnj7vpahmrb92O {\\n    cursor: pointer;\\n    font-size: 11px;\\n    min-width: unset;\\n    background: #656565;\\n    padding: 0 10px;\\n    border: none;\\n}\\n\\n._32admtnnEnj7vpahmrb92O._1PTffthJssPjY68n4NEOvQ {\\n    border-top-left-radius: 40px;\\n    border-bottom-left-radius: 40px;\\n    margin-right: 1px;\\n}\\n\\n._32admtnnEnj7vpahmrb92O._1x2q1zzQgwNzDo_AlbOYhx {\\n    border-top-right-radius: 40px;\\n    border-bottom-right-radius: 40px;\\n    margin-left: 1px;\\n}\\n\\n._32admtnnEnj7vpahmrb92O:not(.zUYketRXbA8MekRxid4rC):hover,\\n._32admtnnEnj7vpahmrb92O:focus,\\n._1o04mVCrB6j3ka9ViqRB52:focus {\\n    outline: none;\\n    background: #7d7d7d;\\n}\\n\\n.zUYketRXbA8MekRxid4rC {\\n    cursor: default;\\n    color: #8c8c8c!important; /* In prezigram the ControlBox css module loads after TemplatePreview css and that seems to overwrite the top attribute */\\n    background: #656565;\\n}\\n\\n._1bgEAE4ZtbeNyjeH0bpbjq {\\n    background: #656565;\\n    min-width: 55px;\\n    backface-visibility: hidden;\\n    -webkit-backface-visibility: hidden;\\n    -moz-backface-visibility: hidden;\\n}\\n\\n._1o04mVCrB6j3ka9ViqRB52 {\\n    position: absolute;\\n    top: 20px;\\n    left: 1px;\\n    background: #656565;\\n    opacity: 0.8;\\n    color: #fff;\\n    font-size: 11px;\\n    width: 30px;\\n    height: 30px;\\n    min-width: unset;\\n    border-radius: 50%;\\n    cursor: pointer;\\n    z-index: 5;\\n}\\n\\n._1o04mVCrB6j3ka9ViqRB52:hover {\\n    background: #7d7d7d;\\n}\\n\", \"\"]);\n\n// exports\nexports.locals = {\n\t\"container\": \"NR-yiiIVhzB-2EJfX1s_1\",\n\t\"arrow\": \"_32admtnnEnj7vpahmrb92O\",\n\t\"pageIndicator\": \"_1bgEAE4ZtbeNyjeH0bpbjq\",\n\t\"back\": \"_1o04mVCrB6j3ka9ViqRB52\",\n\t\"left\": \"_1PTffthJssPjY68n4NEOvQ\",\n\t\"right\": \"_1x2q1zzQgwNzDo_AlbOYhx\",\n\t\"arrowDisabled\": \"zUYketRXbA8MekRxid4rC\"\n};","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.toPrimitive` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.toprimitive\ndefineWellKnownSymbol('toPrimitive');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.unscopables` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.unscopables\ndefineWellKnownSymbol('unscopables');\n","'use strict';\nvar toObject = require('../internals/to-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toLength = require('../internals/to-length');\n\n// `Array.prototype.fill` method implementation\n// https://tc39.github.io/ecma262/#sec-array.prototype.fill\nmodule.exports = function fill(value /* , start = 0, end = @length */) {\n  var O = toObject(this);\n  var length = toLength(O.length);\n  var argumentsLength = arguments.length;\n  var index = toAbsoluteIndex(argumentsLength > 1 ? arguments[1] : undefined, length);\n  var end = argumentsLength > 2 ? arguments[2] : undefined;\n  var endPos = end === undefined ? length : toAbsoluteIndex(end, length);\n  while (endPos > index) O[index++] = value;\n  return O;\n};\n","/*!\n * Stickyfill -- `position: sticky` polyfill\n * v. 1.1.5 | https://github.com/wilddeer/stickyfill\n * Copyright Oleg Korsunsky | http://wd.dizaina.net/\n *\n * MIT License\n */\nif (typeof document !== 'undefined' || typeof window !== 'undefined') {\n\n\t(function(doc, win) {\n\t    var watchArray = [],\n\t        scroll,\n\t        initialized = false,\n\t        html = doc.documentElement,\n\t        noop = function() {},\n\t        checkTimer,\n\n\t        //visibility API strings\n\t        hiddenPropertyName = 'hidden',\n\t        visibilityChangeEventName = 'visibilitychange';\n\n\t    //fallback to prefixed names in old webkit browsers\n\t    if (doc.webkitHidden !== undefined) {\n\t        hiddenPropertyName = 'webkitHidden';\n\t        visibilityChangeEventName = 'webkitvisibilitychange';\n\t    }\n\n\t    //test getComputedStyle\n\t    if (!win.getComputedStyle) {\n\t        seppuku();\n\t    }\n\n\t    //test for native support\n\t    var prefixes = ['', '-webkit-', '-moz-', '-ms-'],\n\t        block = document.createElement('div');\n\n\t    for (var i = prefixes.length - 1; i >= 0; i--) {\n\t        try {\n\t            block.style.position = prefixes[i] + 'sticky';\n\t        }\n\t        catch(e) {}\n\t        if (block.style.position != '') {\n\t            seppuku();\n\t        }\n\t    }\n\n\t    updateScrollPos();\n\n\t    //commit seppuku!\n\t    function seppuku() {\n\t        init = add = rebuild = pause = stop = kill = noop;\n\t    }\n\n\t    function mergeObjects(targetObj, sourceObject) {\n\t        for (var key in sourceObject) {\n\t            if (sourceObject.hasOwnProperty(key)) {\n\t                targetObj[key] = sourceObject[key];\n\t            }\n\t        }\n\t    }\n\n\t    function parseNumeric(val) {\n\t        return parseFloat(val) || 0;\n\t    }\n\n\t    function updateScrollPos() {\n\t        scroll = {\n\t            top: win.pageYOffset,\n\t            left: win.pageXOffset\n\t        };\n\t    }\n\n\t    function onScroll() {\n\t        if (win.pageXOffset != scroll.left) {\n\t            updateScrollPos();\n\t            rebuild();\n\t            return;\n\t        }\n\n\t        if (win.pageYOffset != scroll.top) {\n\t            updateScrollPos();\n\t            recalcAllPos();\n\t        }\n\t    }\n\n\t    //fixes flickering\n\t    function onWheel(event) {\n\t        setTimeout(function() {\n\t            if (win.pageYOffset != scroll.top) {\n\t                scroll.top = win.pageYOffset;\n\t                recalcAllPos();\n\t            }\n\t        }, 0);\n\t    }\n\n\t    function recalcAllPos() {\n\t        for (var i = watchArray.length - 1; i >= 0; i--) {\n\t            recalcElementPos(watchArray[i]);\n\t        }\n\t    }\n\n\t    function recalcElementPos(el) {\n\t        if (!el.inited) return;\n\n\t        var currentMode = (scroll.top <= el.limit.start? 0: scroll.top >= el.limit.end? 2: 1);\n\n\t        if (el.mode != currentMode) {\n\t            switchElementMode(el, currentMode);\n\t        }\n\t    }\n\n\t    //checks whether stickies start or stop positions have changed\n\t    function fastCheck() {\n\t        for (var i = watchArray.length - 1; i >= 0; i--) {\n\t            if (!watchArray[i].inited) continue;\n\n\t            var deltaTop = Math.abs(getDocOffsetTop(watchArray[i].clone) - watchArray[i].docOffsetTop),\n\t                deltaHeight = Math.abs(watchArray[i].parent.node.offsetHeight - watchArray[i].parent.height);\n\n\t            if (deltaTop >= 2 || deltaHeight >= 2) return false;\n\t        }\n\t        return true;\n\t    }\n\n\t    function initElement(el) {\n\t        if (isNaN(parseFloat(el.computed.top)) || el.isCell || el.computed.display == 'none') return;\n\n\t        el.inited = true;\n\n\t        if (!el.clone) clone(el);\n\t        if (el.parent.computed.position != 'absolute' &&\n\t            el.parent.computed.position != 'relative') el.parent.node.style.position = 'relative';\n\n\t        recalcElementPos(el);\n\n\t        el.parent.height = el.parent.node.offsetHeight;\n\t        el.docOffsetTop = getDocOffsetTop(el.clone);\n\t    }\n\n\t    function deinitElement(el) {\n\t        var deinitParent = true;\n\n\t        el.clone && killClone(el);\n\t        mergeObjects(el.node.style, el.css);\n\n\t        //check whether element's parent is used by other stickies\n\t        for (var i = watchArray.length - 1; i >= 0; i--) {\n\t            if (watchArray[i].node !== el.node && watchArray[i].parent.node === el.parent.node) {\n\t                deinitParent = false;\n\t                break;\n\t            }\n\t        };\n\n\t        if (deinitParent) el.parent.node.style.position = el.parent.css.position;\n\t        el.mode = -1;\n\t    }\n\n\t    function initAll() {\n\t        for (var i = watchArray.length - 1; i >= 0; i--) {\n\t            initElement(watchArray[i]);\n\t        }\n\t    }\n\n\t    function deinitAll() {\n\t        for (var i = watchArray.length - 1; i >= 0; i--) {\n\t            deinitElement(watchArray[i]);\n\t        }\n\t    }\n\n\t    function switchElementMode(el, mode) {\n\t        var nodeStyle = el.node.style;\n\n\t        switch (mode) {\n\t            case 0:\n\t                nodeStyle.position = 'absolute';\n\t                nodeStyle.left = el.offset.left + 'px';\n\t                nodeStyle.right = el.offset.right + 'px';\n\t                nodeStyle.top = el.offset.top + 'px';\n\t                nodeStyle.bottom = 'auto';\n\t                nodeStyle.width = 'auto';\n\t                nodeStyle.marginLeft = 0;\n\t                nodeStyle.marginRight = 0;\n\t                nodeStyle.marginTop = 0;\n\t                break;\n\n\t            case 1:\n\t                nodeStyle.position = 'fixed';\n\t                nodeStyle.left = el.box.left + 'px';\n\t                nodeStyle.right = el.box.right + 'px';\n\t                nodeStyle.top = el.css.top;\n\t                nodeStyle.bottom = 'auto';\n\t                nodeStyle.width = 'auto';\n\t                nodeStyle.marginLeft = 0;\n\t                nodeStyle.marginRight = 0;\n\t                nodeStyle.marginTop = 0;\n\t                break;\n\n\t            case 2:\n\t                nodeStyle.position = 'absolute';\n\t                nodeStyle.left = el.offset.left + 'px';\n\t                nodeStyle.right = el.offset.right + 'px';\n\t                nodeStyle.top = 'auto';\n\t                nodeStyle.bottom = 0;\n\t                nodeStyle.width = 'auto';\n\t                nodeStyle.marginLeft = 0;\n\t                nodeStyle.marginRight = 0;\n\t                break;\n\t        }\n\n\t        el.mode = mode;\n\t    }\n\n\t    function clone(el) {\n\t        el.clone = document.createElement('div');\n\n\t        var refElement = el.node.nextSibling || el.node,\n\t            cloneStyle = el.clone.style;\n\n\t        cloneStyle.height = el.height + 'px';\n\t        cloneStyle.width = el.width + 'px';\n\t        cloneStyle.marginTop = el.computed.marginTop;\n\t        cloneStyle.marginBottom = el.computed.marginBottom;\n\t        cloneStyle.marginLeft = el.computed.marginLeft;\n\t        cloneStyle.marginRight = el.computed.marginRight;\n\t        cloneStyle.padding = cloneStyle.border = cloneStyle.borderSpacing = 0;\n\t        cloneStyle.fontSize = '1em';\n\t        cloneStyle.position = 'static';\n\t        cloneStyle.cssFloat = el.computed.cssFloat;\n\n\t        el.node.parentNode.insertBefore(el.clone, refElement);\n\t    }\n\n\t    function killClone(el) {\n\t        el.clone.parentNode.removeChild(el.clone);\n\t        el.clone = undefined;\n\t    }\n\n\t    function getElementParams(node) {\n\t        var computedStyle = getComputedStyle(node),\n\t            parentNode = node.parentNode,\n\t            parentComputedStyle = getComputedStyle(parentNode),\n\t            cachedPosition = node.style.position;\n\n\t        node.style.position = 'relative';\n\n\t        var computed = {\n\t                top: computedStyle.top,\n\t                marginTop: computedStyle.marginTop,\n\t                marginBottom: computedStyle.marginBottom,\n\t                marginLeft: computedStyle.marginLeft,\n\t                marginRight: computedStyle.marginRight,\n\t                cssFloat: computedStyle.cssFloat,\n\t                display: computedStyle.display\n\t            },\n\t            numeric = {\n\t                top: parseNumeric(computedStyle.top),\n\t                marginBottom: parseNumeric(computedStyle.marginBottom),\n\t                paddingLeft: parseNumeric(computedStyle.paddingLeft),\n\t                paddingRight: parseNumeric(computedStyle.paddingRight),\n\t                borderLeftWidth: parseNumeric(computedStyle.borderLeftWidth),\n\t                borderRightWidth: parseNumeric(computedStyle.borderRightWidth)\n\t            };\n\n\t        node.style.position = cachedPosition;\n\n\t        var css = {\n\t                position: node.style.position,\n\t                top: node.style.top,\n\t                bottom: node.style.bottom,\n\t                left: node.style.left,\n\t                right: node.style.right,\n\t                width: node.style.width,\n\t                marginTop: node.style.marginTop,\n\t                marginLeft: node.style.marginLeft,\n\t                marginRight: node.style.marginRight\n\t            },\n\t            nodeOffset = getElementOffset(node),\n\t            parentOffset = getElementOffset(parentNode),\n\n\t            parent = {\n\t                node: parentNode,\n\t                css: {\n\t                    position: parentNode.style.position\n\t                },\n\t                computed: {\n\t                    position: parentComputedStyle.position\n\t                },\n\t                numeric: {\n\t                    borderLeftWidth: parseNumeric(parentComputedStyle.borderLeftWidth),\n\t                    borderRightWidth: parseNumeric(parentComputedStyle.borderRightWidth),\n\t                    borderTopWidth: parseNumeric(parentComputedStyle.borderTopWidth),\n\t                    borderBottomWidth: parseNumeric(parentComputedStyle.borderBottomWidth)\n\t                }\n\t            },\n\n\t            el = {\n\t                node: node,\n\t                box: {\n\t                    left: nodeOffset.win.left,\n\t                    right: html.clientWidth - nodeOffset.win.right\n\t                },\n\t                offset: {\n\t                    top: nodeOffset.win.top - parentOffset.win.top - parent.numeric.borderTopWidth,\n\t                    left: nodeOffset.win.left - parentOffset.win.left - parent.numeric.borderLeftWidth,\n\t                    right: -nodeOffset.win.right + parentOffset.win.right - parent.numeric.borderRightWidth\n\t                },\n\t                css: css,\n\t                isCell: computedStyle.display == 'table-cell',\n\t                computed: computed,\n\t                numeric: numeric,\n\t                width: nodeOffset.win.right - nodeOffset.win.left,\n\t                height: nodeOffset.win.bottom - nodeOffset.win.top,\n\t                mode: -1,\n\t                inited: false,\n\t                parent: parent,\n\t                limit: {\n\t                    start: nodeOffset.doc.top - numeric.top,\n\t                    end: parentOffset.doc.top + parentNode.offsetHeight - parent.numeric.borderBottomWidth -\n\t                        node.offsetHeight - numeric.top - numeric.marginBottom\n\t                }\n\t            };\n\n\t        return el;\n\t    }\n\n\t    function getDocOffsetTop(node) {\n\t        var docOffsetTop = 0;\n\n\t        while (node) {\n\t            docOffsetTop += node.offsetTop;\n\t            node = node.offsetParent;\n\t        }\n\n\t        return docOffsetTop;\n\t    }\n\n\t    function getElementOffset(node) {\n\t        var box = node.getBoundingClientRect();\n\n\t            return {\n\t                doc: {\n\t                    top: box.top + win.pageYOffset,\n\t                    left: box.left + win.pageXOffset\n\t                },\n\t                win: box\n\t            };\n\t    }\n\n\t    function startFastCheckTimer() {\n\t        checkTimer = setInterval(function() {\n\t            !fastCheck() && rebuild();\n\t        }, 500);\n\t    }\n\n\t    function stopFastCheckTimer() {\n\t        clearInterval(checkTimer);\n\t    }\n\n\t    function handlePageVisibilityChange() {\n\t        if (!initialized) return;\n\n\t        if (document[hiddenPropertyName]) {\n\t            stopFastCheckTimer();\n\t        }\n\t        else {\n\t            startFastCheckTimer();\n\t        }\n\t    }\n\n\t    function init() {\n\t        if (initialized) return;\n\n\t        updateScrollPos();\n\t        initAll();\n\n\t        win.addEventListener('scroll', onScroll);\n\t        win.addEventListener('wheel', onWheel);\n\n\t        //watch for width changes\n\t        win.addEventListener('resize', rebuild);\n\t        win.addEventListener('orientationchange', rebuild);\n\n\t        //watch for page visibility\n\t        doc.addEventListener(visibilityChangeEventName, handlePageVisibilityChange);\n\n\t        startFastCheckTimer();\n\n\t        initialized = true;\n\t    }\n\n\t    function rebuild() {\n\t        if (!initialized) return;\n\n\t        deinitAll();\n\n\t        for (var i = watchArray.length - 1; i >= 0; i--) {\n\t            watchArray[i] = getElementParams(watchArray[i].node);\n\t        }\n\n\t        initAll();\n\t    }\n\n\t    function pause() {\n\t        win.removeEventListener('scroll', onScroll);\n\t        win.removeEventListener('wheel', onWheel);\n\t        win.removeEventListener('resize', rebuild);\n\t        win.removeEventListener('orientationchange', rebuild);\n\t        doc.removeEventListener(visibilityChangeEventName, handlePageVisibilityChange);\n\n\t        stopFastCheckTimer();\n\n\t        initialized = false;\n\t    }\n\n\t    function stop() {\n\t        pause();\n\t        deinitAll();\n\t    }\n\n\t    function kill() {\n\t        stop();\n\n\t        //empty the array without loosing the references,\n\t        //the most performant method according to http://jsperf.com/empty-javascript-array\n\t        while (watchArray.length) {\n\t            watchArray.pop();\n\t        }\n\t    }\n\n\t    function add(node) {\n\t        //check if Stickyfill is already applied to the node\n\t        for (var i = watchArray.length - 1; i >= 0; i--) {\n\t            if (watchArray[i].node === node) return;\n\t        };\n\n\t        var el = getElementParams(node);\n\n\t        watchArray.push(el);\n\n\t        if (!initialized) {\n\t            init();\n\t        }\n\t        else {\n\t            initElement(el);\n\t        }\n\t    }\n\n\t    function remove(node) {\n\t        for (var i = watchArray.length - 1; i >= 0; i--) {\n\t            if (watchArray[i].node === node) {\n\t                deinitElement(watchArray[i]);\n\t                watchArray.splice(i, 1);\n\t            }\n\t        };\n\t    }\n\n\t    //expose Stickyfill\n\t    win.Stickyfill = {\n\t        stickies: watchArray,\n\t        add: add,\n\t        remove: remove,\n\t        init: init,\n\t        rebuild: rebuild,\n\t        pause: pause,\n\t        stop: stop,\n\t        kill: kill\n\t    };\n\t})(document, window);\n\n\n\t//if jQuery is available -- create a plugin\n\tif (window.jQuery) {\n\t    (function($) {\n\t        $.fn.Stickyfill = function(options) {\n\t            this.each(function() {\n\t                Stickyfill.add(this);\n\t            });\n\n\t            return this;\n\t        };\n\t    })(window.jQuery);\n\t}\n\n}\n","var isObject = require('../internals/is-object');\n\nmodule.exports = function (it) {\n  if (!isObject(it)) {\n    throw TypeError(String(it) + ' is not an object');\n  } return it;\n};\n","var $ = require('../internals/export');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\n\nvar NATIVE_ARRAY_BUFFER_VIEWS = ArrayBufferViewCore.NATIVE_ARRAY_BUFFER_VIEWS;\n\n// `ArrayBuffer.isView` method\n// https://tc39.github.io/ecma262/#sec-arraybuffer.isview\n$({ target: 'ArrayBuffer', stat: true, forced: !NATIVE_ARRAY_BUFFER_VIEWS }, {\n  isView: ArrayBufferViewCore.isView\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $includes = require('../internals/array-includes').includes;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\n\n// `%TypedArray%.prototype.includes` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.includes\nArrayBufferViewCore.exportProto('includes', function includes(searchElement /* , fromIndex */) {\n  return $includes(aTypedArray(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);\n});\n","import i18n from 'i18next';\nimport React, {Component} from 'react';\nimport PropTypes from 'prop-types';\nimport {Container} from 'flux/utils';\nimport styled from 'styled-components';\n\nimport ProgressBar from '../../../widgets/ProgressBar';\nimport Button from '../../../widgets/button/Button.react';\nimport Dialog from '../../../widgets/dialog/Dialog.react';\nimport DialogButtons from '../../../widgets/dialog/DialogButtons.react';\nimport ProgressDialogStore from '../stores/progress_dialog_store';\n\nimport {\n    resetProgress,\n    startProgress,\n} from '../actions/progress_dialog_actions';\n\nconst customDialogStyle = `\n    background-color: #d8d8d8;\n    min-height: 210px;\n    width: 590px;\n    outline: 0;\n    text-align: center;\n`;\n\nconst ProgressDialogTitle = styled.h2`\n    border-radius: 4px 4px 0 0;\n    font-size: 17px;\n    line-height: 69px;\n    background: #fff;\n    color: #2d2d2d;\n`;\n\nconst ProgressBarContainer = styled.div`\n    width: 400px;\n    padding: 15px 95px 0;\n    text-align: left;\n`;\n\nconst ProgressBarLabel = styled.span`\n    font-size: 11px;\n    margin-bottom: 10px;\n    color: #2d2d2d;\n    display: inline-block;\n    \n    ${props => props.error && `\n        color: #c32f2f;\n    `}\n`;\n\nconst ProgressBarValue = ProgressBarLabel;\n\n\nconst ProgressDialogButton = styled(DialogButtons)`\n    background: #d8d8d8;\n    height: 40px;\n`;\n\nconst StyledButton = styled(Button)`\n    box-sizing: border-box;\n    width: 160px;\n    margin: 0 5px;\n    font-size: 15px;\n    padding: 12px 0 13px;\n    font-size: 15px;\n    line-height: 15px;\n    color: #656565;\n    border: 2px solid #656565;\n\n    &:hover {\n        background: #656565;\n        color: #fff;\n    }\n`;\n\nclass ProgressDialog extends Component {\n    static propTypes = {\n        interval: PropTypes.number,\n        onCancel: PropTypes.func,\n        onClose: PropTypes.func.isRequired,\n        label: PropTypes.string.isRequired,\n        title: PropTypes.string.isRequired,\n    }\n\n    static getStores() {\n        return [ProgressDialogStore];\n    }\n\n    static calculateState() {\n        return {\n            completed: ProgressDialogStore.completed,\n            error: ProgressDialogStore.error,\n            value: ProgressDialogStore.value,\n        };\n    }\n\n    constructor(props) {\n        super(props);\n\n        this._handleCancelClick = this._handleCancelClick.bind(this);\n    }\n\n    render() {\n        return (\n            <Dialog\n                onClose={this._handleCancelClick}\n                customCss={customDialogStyle}\n                modal\n                open\n            >\n                {/* This transition is for embeds */}\n                <ProgressDialogTitle>{this.props.title || 'Preparing your file'}</ProgressDialogTitle>\n\n                <ProgressBarContainer>\n                    <ProgressBarLabel error={this.state.error}>{this.state.error || this.props.label || 'Please wait...'}</ProgressBarLabel>\n                    {!this.state.error && <ProgressBarValue>{`${this.state.value.toFixed()}%`}</ProgressBarValue>}\n                    <ProgressBar error={!!this.state.error} value={this.state.value || 0}/>\n                </ProgressBarContainer>\n\n                <ProgressDialogButton>\n                    <StyledButton onClick={this._handleCancelClick}>\n                        {this.state.error ? (i18n.t('close') || 'Close') : (i18n.t('cancel') || 'Cancel')}\n                    </StyledButton>\n                </ProgressDialogButton>\n            </Dialog>\n        );\n    }\n\n    componentDidMount() {\n        startProgress(this.props.interval);\n    }\n\n    componentDidUpdate() {\n        if (this.state.completed && this.state.value >= 99) {\n            setTimeout(() => {\n                resetProgress();\n                this.props.onClose();\n            }, 200);\n        }\n    }\n\n    _handleCancelClick() {\n        const {onClose, onCancel} = this.props;\n        onCancel && onCancel();\n        onClose();\n    }\n\n    componentWillUnmount() {\n        resetProgress();\n    }\n}\n\nconst ProgressDialogContainer = Container.create(ProgressDialog, {withProps: true});\nexport default ProgressDialogContainer;\n","import i18n from 'i18next';\nimport React from 'react';\n\nimport {FilterElementPropTypes} from '../types';\nimport IntensityOf from './IntensityOf.react';\n\nconst baseColor = '#b77d21'; // 'rgb(161,44,199)';\n\n/**\n * Adds bronze coloring\n *\n * @param {string} in1 pointer to filter's input (same as SVG *in*)\n * @param {string} result pointer to output (same as SVG *result*)\n * @param {number} amount filter intensity (0-1)\n */\nconst Bronze = ({in1, amount, result}) =>\n    <>\n        <feFlood floodColor={baseColor} floodOpacity=\"0.32\" result=\"fill\"/>\n        <feBlend in={in1} in2=\"fill\" mode=\"lighten\" result=\"tinted\"/>\n        <feComposite in=\"tinted\" in2=\"tinted\" operator=\"arithmetic\" k1=\"0.5\" k2=\"1\" k3=\"1\" k4=\"-0.5\" result=\"Bronze\"/>\n        <IntensityOf in1=\"Bronze\" source={in1} amount={amount} result={result}/>\n    </>\n;\n\nBronze.propTypes = FilterElementPropTypes;\n\nexport default {\n    Component: Bronze,\n    get caption() {\n        return i18n.t('inspector.free.filters.bronze');\n    },\n    default: 0.5,\n    min: 0,\n    max: 1,\n};\n","import _ from 'lodash';\n\nlet entities = {};\nlet sheetNames = {};\n\nexport function addEntity(id, data) {\n    entities[id] = data;\n    if (_.get(data, 'instance.options.sheets')) {\n        sheetNames[id] = data.instance.options.sheets.map((item) => item.categories.title);\n    }\n}\n\nexport function resetEntities() {\n    entities = {};\n    sheetNames = {};\n}\n\nexport function removeEntity(id) {\n    if (_.get(entities, `${id}.cleanUpSheetPlayer`)) {\n        entities[id].cleanUpSheetPlayer();\n    }\n\n    delete entities[id];\n    delete sheetNames[id];\n}\n\nexport default {\n    getEntity(id) {\n        return entities[id];\n    },\n    getAllEntities() {\n        return entities;\n    },\n    getSheetNames(id) {\n        return sheetNames[id] || [];\n    },\n};\n","import {PureComponent} from 'react';\nimport PropTypes from 'prop-types';\nimport ImmutablePropTypes from 'react-immutable-proptypes';\n\nexport default class CustomFontLoader extends PureComponent {\n    static propTypes = {\n        fonts: ImmutablePropTypes.mapOf(PropTypes.string.isRequired).isRequired,\n    }\n\n    styleNode = null;\n\n\n    componentDidMount() {\n        this.addStyleElement();\n    }\n\n    componentDidUpdate() {\n        this.removeStyleElement();\n        this.addStyleElement();\n    }\n\n    componentWillUnmount() {\n        this.removeStyleElement();\n    }\n\n    addStyleElement() {\n        const cssContent = this.props.fonts.reduce((css, url, name) =>\n            css += `@font-face {font-family: \"${name}\";src: url(${url});}\\n`\n        , '\\n');\n\n        this.removeStyleElement();\n        this.styleNode = document.createElement('style');\n        this.styleNode.appendChild(document.createTextNode(cssContent));\n        document.head.appendChild(this.styleNode);\n    }\n\n    removeStyleElement() {\n        if (this.styleNode && this.styleNode.parentElement) {\n            this.styleNode.parentElement.removeChild(this.styleNode);\n        }\n    }\n\n    render() {\n        return null;\n    }\n}\n","'use strict';\nvar toPrimitive = require('../internals/to-primitive');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n  var propertyKey = toPrimitive(key);\n  if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n  else object[propertyKey] = value;\n};\n","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar sameValue = require('../internals/same-value');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\n// @@search logic\nfixRegExpWellKnownSymbolLogic('search', 1, function (SEARCH, nativeSearch, maybeCallNative) {\n  return [\n    // `String.prototype.search` method\n    // https://tc39.github.io/ecma262/#sec-string.prototype.search\n    function search(regexp) {\n      var O = requireObjectCoercible(this);\n      var searcher = regexp == undefined ? undefined : regexp[SEARCH];\n      return searcher !== undefined ? searcher.call(regexp, O) : new RegExp(regexp)[SEARCH](String(O));\n    },\n    // `RegExp.prototype[@@search]` method\n    // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@search\n    function (regexp) {\n      var res = maybeCallNative(nativeSearch, regexp, this);\n      if (res.done) return res.value;\n\n      var rx = anObject(regexp);\n      var S = String(this);\n\n      var previousLastIndex = rx.lastIndex;\n      if (!sameValue(previousLastIndex, 0)) rx.lastIndex = 0;\n      var result = regExpExec(rx, S);\n      if (!sameValue(rx.lastIndex, previousLastIndex)) rx.lastIndex = previousLastIndex;\n      return result === null ? -1 : result.index;\n    }\n  ];\n});\n","import PropTypes from 'prop-types';\nimport React, {PureComponent} from 'react';\nimport {fromJS} from 'immutable';\n\nimport style from '../../../../freelayout_editor/components/contents/Shape/shape.css';\nimport {getPathFromPoints} from './utils';\nimport {getPositions, getPositionsGrouped} from './helper';\nimport {MARKER_SIZE, markers, strokeDasharray} from '../../../../freelayout_editor/components/contents/Shape/Line.react';\nimport {positiveDeg, deg} from '../../../../../components/FreeLayoutEditor/handlers/handle/utils';\nimport AccessibleWrapper from '../../../../freelayout_editor/components/contents/AccessibleWrapper';\n\nfunction prepareData(props) {\n    const {scaleX, scaleY, block, pageSize, readOnly, overlay} = props;\n    let {entity, design} = props;\n    if (overlay) {\n        design = fromJS({colors: [], stroke: '#3195cb'});\n        entity = entity.merge({props: entity.getProps().set('stroke', '#3195cb').set('opacity', 1)});\n    }\n    const {from, to} = readOnly && entity.groupKey ?\n        getPositionsGrouped(entity, block, pageSize) :\n        getPositions(entity, block, pageSize);\n\n    const lineStart = {x: from.x, y: from.y};\n    const lineEnd = {x: to.x, y: to.y};\n\n    const stroke = entity.getProperty('stroke', design);\n    const strokeWidth = entity.getProperty('strokeWidth', design);\n\n    const StartMarker = markers[entity.getProperty('markerStart', design)];\n    const EndMarker = markers[entity.getProperty('markerEnd', design)];\n\n    let startMarkerProps;\n    let endMarkerProps;\n\n    if (EndMarker || StartMarker) {\n        const vectSub = {x: to.x - from.x, y: to.y - from.y};\n        const directionVect = Math.atan2(vectSub.y, vectSub.x);\n\n        if (EndMarker) {\n            lineEnd.x = to.x - strokeWidth * Math.cos(directionVect);\n            lineEnd.y = to.y - strokeWidth * Math.sin(directionVect);\n        }\n\n        if (StartMarker) {\n            lineStart.x = from.x + strokeWidth * Math.cos(directionVect);\n            lineStart.y = from.y + strokeWidth * Math.sin(directionVect);\n        }\n\n        const size = strokeWidth * MARKER_SIZE;\n\n        const adjustRotation = (function(degrees) {\n            return (deg) => positiveDeg(degrees + deg);\n        })(deg(directionVect));\n\n        const markerProps = {\n            strokeWidth,\n            stroke,\n            fill: stroke,\n            size,\n        };\n\n        startMarkerProps = {\n            ...markerProps,\n            x: from.x,\n            y: from.y,\n            transform: `rotate(${adjustRotation(-90)}, ${from.x}, ${from.y})`,\n        };\n\n        endMarkerProps = {\n            ...markerProps,\n            x: to.x,\n            y: to.y,\n            transform: `rotate(${adjustRotation(90)}, ${to.x}, ${to.y})`,\n        };\n    }\n\n    let opacity = entity.getProperty('opacity');\n    if (typeof opacity !== 'number') {\n        opacity = 1;\n    }\n\n    const connectorStyle = {\n        transform: `scale(${scaleX}, ${scaleY})`,\n        transformOrigin: '0 0',\n        opacity,\n    };\n\n    const pathProps = {\n        d: getPathFromPoints({from: lineStart, to: lineEnd}),\n        strokeWidth,\n        stroke,\n        fill: stroke,\n        strokeDasharray: strokeDasharray(entity.getProperty('strokeType', design), strokeWidth),\n    };\n\n    return {\n        connectorStyle,\n        StartMarker,\n        EndMarker,\n        startMarkerProps,\n        endMarkerProps,\n        pathProps,\n    };\n}\n\nexport async function initialPropsForData() {\n    return {\n        props: {\n            stroke: '{{fillColor|#656565}}',\n        },\n    };\n}\n\nclass Connector extends PureComponent {\n    static propTypes = {\n        block: PropTypes.object,\n        design: PropTypes.any,\n        entity: PropTypes.shape({\n            getProperty: PropTypes.func.isRequired,\n            getKey: PropTypes.func.isRequired,\n            getAccessibility: PropTypes.func.isRequired,\n        }).isRequired,\n        onMouseHover: PropTypes.func,\n        overlay: PropTypes.bool,\n        readOnly: PropTypes.bool,\n    };\n\n    constructor(props) {\n        super(props);\n        this._handleMouseMove = this._handleMouseMove.bind(this);\n    }\n\n    render() {\n        const {overlay, entity} = this.props;\n        const {\n            connectorStyle,\n            StartMarker,\n            EndMarker,\n            startMarkerProps,\n            endMarkerProps,\n            pathProps,\n        } = prepareData(this.props);\n\n        const pathStyle = {};\n        const groupProps = {};\n\n        if (!overlay) {\n            pathStyle.pointerEvents = 'auto';\n            groupProps.onMouseMove = this._handleMouseMove;\n        }\n\n        let content = (\n            <div className={style.shape} style={connectorStyle}>\n                <svg width=\"100%\" height=\"100%\" overflow=\"visible\">\n                    <g {...groupProps}>\n                        {StartMarker && <StartMarker {...startMarkerProps} style={pathStyle}/>}\n                        {EndMarker && <EndMarker {...endMarkerProps} style={pathStyle}/>}\n                        <path {...pathProps} style={pathStyle}/>\n                    </g>\n                </svg>\n            </div>\n        );\n\n        const accessibility = entity.getAccessibility();\n        if (accessibility && accessibility.enabled) {\n            content = (<AccessibleWrapper id={entity.getKey()} role=\"img\" accessibility={accessibility}>\n                {content}\n            </AccessibleWrapper>);\n        }\n\n        return content;\n    }\n\n    _handleMouseMove(e) {\n        if (this.props.onMouseHover) {\n            this.props.onMouseHover(this.props.entity, e);\n        }\n    }\n}\n\nexport default Connector;\n","'use strict';\nvar $ = require('../internals/export');\nvar $padEnd = require('../internals/string-pad').end;\nvar WEBKIT_BUG = require('../internals/webkit-string-pad-bug');\n\n// `String.prototype.padEnd` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.padend\n$({ target: 'String', proto: true, forced: WEBKIT_BUG }, {\n  padEnd: function padEnd(maxLength /* , fillString = ' ' */) {\n    return $padEnd(this, maxLength, arguments.length > 1 ? arguments[1] : undefined);\n  }\n});\n","import {getRoundRectangleFromPoints} from '../components/contents/Connector/utils';\nimport getEditorStateWithNewGroupBounds from '../../freelayout_editor/components/contents/Group/utils/getEditorStateWithNewGroupBounds';\nimport {getPointOnEntity} from '../components/contents/Connector/helper';\n\nexport function getConnectionAbsolutePosition(connection, block, pageSize) {\n    const {width, height} = pageSize;\n\n    const targetKey = connection.get('key');\n    const x = connection.get('x');\n    const y = connection.get('y');\n\n    let absolutePosition = {\n        x: x * width,\n        y: y * height,\n    };\n\n    if (connection.get('type') === 'entity') {\n        const targetEntity = block.getEntity(targetKey);\n        absolutePosition = getPointOnEntity(connection, targetEntity);\n    }\n\n    return absolutePosition;\n}\n\nexport function connectorBounds(editorState, entityKeys) {\n    const content = editorState.getCurrentContent();\n    const entity = editorState.getEntity(entityKeys[0]);\n    const block = content.getBlock(entity.getBlockKey());\n    const entities = block.getEntitiesByKeys(entityKeys);\n    const pageSize = editorState.getCurrentContent().getPageSize();\n\n    const involvedConnectors = block.getEntities().filter(connector => {\n        return connector.isConnector() && ['from', 'to'].some(connectionType => {\n            const connection = connector.getProperty(connectionType);\n            return connection.get('type') === 'entity' && entities.find(ent => ent.getKey() === connection.get('key'));\n        });\n    });\n\n    if (!involvedConnectors.size) {\n        return {\n            updated: false,\n            editorState,\n        };\n    }\n\n    involvedConnectors.forEach(connector => {\n        const from = getConnectionAbsolutePosition(connector.getProperty('from'), block, pageSize);\n        const to = getConnectionAbsolutePosition(connector.getProperty('to'), block, pageSize);\n        const boundingRectangle = getRoundRectangleFromPoints(from, to);\n\n        editorState = editorState.setEntity(connector.getKey(), boundingRectangle);\n\n        if (connector.groupKey) {\n            editorState = getEditorStateWithNewGroupBounds(editorState, connector);\n        }\n    });\n\n    return {\n        updated: true,\n        editorState,\n    };\n}\n","// element-closest | CC0-1.0 | github.com/jonathantneal/closest\n\n(function (ElementProto) {\n\tif (typeof ElementProto.matches !== 'function') {\n\t\tElementProto.matches = ElementProto.msMatchesSelector || ElementProto.mozMatchesSelector || ElementProto.webkitMatchesSelector || function matches(selector) {\n\t\t\tvar element = this;\n\t\t\tvar elements = (element.document || element.ownerDocument).querySelectorAll(selector);\n\t\t\tvar index = 0;\n\n\t\t\twhile (elements[index] && elements[index] !== element) {\n\t\t\t\t++index;\n\t\t\t}\n\n\t\t\treturn Boolean(elements[index]);\n\t\t};\n\t}\n\n\tif (typeof ElementProto.closest !== 'function') {\n\t\tElementProto.closest = function closest(selector) {\n\t\t\tvar element = this;\n\n\t\t\twhile (element && element.nodeType === 1) {\n\t\t\t\tif (element.matches(selector)) {\n\t\t\t\t\treturn element;\n\t\t\t\t}\n\n\t\t\t\telement = element.parentNode;\n\t\t\t}\n\n\t\t\treturn null;\n\t\t};\n\t}\n})(window.Element.prototype);\n","var typedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Uint16Array` constructor\n// https://tc39.github.io/ecma262/#sec-typedarray-objects\ntypedArrayConstructor('Uint16', 2, function (init) {\n  return function Uint16Array(data, byteOffset, length) {\n    return init(this, data, byteOffset, length);\n  };\n});\n","var requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar quot = /\"/g;\n\n// B.2.3.2.1 CreateHTML(string, tag, attribute, value)\n// https://tc39.github.io/ecma262/#sec-createhtml\nmodule.exports = function (string, tag, attribute, value) {\n  var S = String(requireObjectCoercible(string));\n  var p1 = '<' + tag;\n  if (attribute !== '') p1 += ' ' + attribute + '=\"' + String(value).replace(quot, '&quot;') + '\"';\n  return p1 + '>' + S + '</' + tag + '>';\n};\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n * \n * @providesModule EmitterSubscription\n * @typechecks\n */\n\n'use strict';\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar EventSubscription = require('./EventSubscription');\n\n/**\n * EmitterSubscription represents a subscription with listener and context data.\n */\n\nvar EmitterSubscription = (function (_EventSubscription) {\n  _inherits(EmitterSubscription, _EventSubscription);\n\n  /**\n   * @param {EventSubscriptionVendor} subscriber - The subscriber that controls\n   *   this subscription\n   * @param {function} listener - Function to invoke when the specified event is\n   *   emitted\n   * @param {*} context - Optional context object to use when invoking the\n   *   listener\n   */\n\n  function EmitterSubscription(subscriber, listener, context) {\n    _classCallCheck(this, EmitterSubscription);\n\n    _EventSubscription.call(this, subscriber);\n    this.listener = listener;\n    this.context = context;\n  }\n\n  return EmitterSubscription;\n})(EventSubscription);\n\nmodule.exports = EmitterSubscription;","module.exports = function (it) {\n  return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","export const EDITOR_STATE_CHANGE = 'EDITOR_STATE_CHANGE';\nexport const EXTERNAL_EDITOR_STATE_CHANGE = 'EXTERNAL_EDITOR_STATE_CHANGE';\nexport const EDITOR_ZOOM = 'EDITOR_ZOOM';\nexport const EDITOR_SCALE = 'EDITOR_SCALE';\nexport const EDITOR_SET_CHART_EXTERNAL_DATA = 'EDITOR_SET_CHART_EXTERNAL_DATA';\nexport const ADD_RAW_ENTITY = 'ADD_RAW_ENTITY';\nexport const ADD_ENTITY = 'ADD_ENTITY';\nexport const REMOVE_ENTITIES = 'REMOVE_ENTITIES';\nexport const ADD_BLOCK = 'ADD_BLOCK';\nexport const REMOVE_CALLOUT = 'REMOVE_CALLOUT';\nexport const CHART_ENTITY_SET = 'CHART_ENTITY_SET';\nexport const SAVE_TEXT_ENTITY = 'SAVE_TEXT_ENTITY';\nexport const EDITOR_STATE_UNDO = 'EDITOR_STATE_UNDO';\nexport const EDITOR_STATE_REDO = 'EDITOR_STATE_REDO';\n\nexport const EDITOR_ACTION_LOADING = 'EDITOR_ACTION_LOADING';\n\nexport const EDITOR_DISPLAY_START_SAVING = 'EDITOR_DISPLAY_START_SAVING';\nexport const EDITOR_DISPLAY_STOP_SAVING = 'EDITOR_DISPLAY_STOP_SAVING';\n\nexport const EXIT_GROUP_EDIT_MODE = 'EXIT_GROUP_EDIT_MODE';\nexport const ENTER_GROUP_EDIT_MODE = 'ENTER_GROUP_EDIT_MODE';\n\nexport const DISPLAY_MAP_POSITIONING_CONTROLS = 'DISPLAY_MAP_POSITIONING_CONTROLS';\nexport const SET_POSITION_FOR_ALL_SHEETS = 'SET_POSITION_FOR_ALL_SHEETS';\nexport const SET_MAP_POSITION_RESTORE_STATUS = 'SET_MAP_POSITION_RESTORE_STATUS';\nexport const RESET_MAP_POSITIONING_STATE = 'RESET_MAP_POSITIONING_STATE';\nexport const FREELAYOUT_SET_TRANSITION = 'FREELAYOUT_SET_TRANSITION';\n\nexport const FREE_USER_PAGE_LIMIT = 5;\nexport const PRO_USER_PAGE_LIMIT = 10;\n\nexport const FREELAYOUT_SET_INTERLINKED_CHARTS = 'FREELAYOUT_SET_INTERLINKED_CHARTS';\nexport const FREELAYOUT_SET_INTERACTIVITY_HINT = 'FREELAYOUT_SET_INTERACTIVITY_HINT';\nexport const FREELAYOUT_SET_ALLOW_TO_SHARE = 'FREELAYOUT_SET_ALLOW_TO_SHARE';\nexport const FREELAYOUT_SET_ALLOW_FULLSCREEN = 'FREELAYOUT_SET_ALLOW_FULLSCREEN';\nexport const FREELAYOUT_SET_PROJECT_LANGUAGE = 'FREELAYOUT_SET_PROJECT_LANGUAGE';\n\nexport const OPEN_EDIT_CONTEXT_MENU = 'OPEN_EDIT_CONTEXT_MENU';\nexport const CLOSE_EDIT_CONTEXT_MENU = 'CLOSE_EDIT_CONTEXT_MENU';\nexport const OPEN_EDIT_CONTEXT_MENU_EXPORT_DROPDOWN = 'OPEN_EDIT_CONTEXT_MENU_EXPORT_DROPDOWN';\n\nexport const PAGE_RESIZE_HIDE = 'PAGE_RESIZE_HIDE';\nexport const PAGE_RESIZE_HEIGHT = 'PAGE_RESIZE_HEIGHT';\nexport const PAGE_RESIZE_LEFT = 'PAGE_RESIZE_LEFT';\nexport const PAGE_RESIZE_RIGHT = 'PAGE_RESIZE_RIGHT';\nexport const SELECTION_STATE_CHANGE = 'SELECTION_STATE_CHANGE';\nexport const SELECTION_BOUNDING_BOX_CHANGE = 'SELECTION_BOUNDING_BOX_CHANGE';\nexport const INITIAL_BOUNDING_BOX_CHANGE = 'INITIAL_BOUNDING_BOX_CHANGE';\nexport const PUSH_BOUND_UNDO_STACK = 'PUSH_BOUND_UNDO_STACK';\n\nexport const DISPLAY_IMAGE_MASKING_CONTROLS = 'DISPLAY_IMAGE_MASKING_CONTROLS';\nexport const DISPLAY_IMAGE_CROPPING_CONTROLS = 'DISPLAY_IMAGE_CROPPING_CONTROLS';\nexport const START_CLIP_RESIZE = 'START_CLIP_RESIZE';\nexport const START_CLIP_MOVE = 'START_CLIP_MOVE';\nexport const START_CLIP_ROTATE = 'START_CLIP_ROTATE';\nexport const TRANSFORM_IMAGE_MASK = 'TRANSFORM_IMAGE_MASK';\nexport const MOVE_IMAGE_MASK = 'MOVE_IMAGE_MASK';\nexport const RESIZE_IMAGE_CROP = 'RESIZE_IMAGE_CROP';\nexport const MOVE_IMAGE_CROP = 'MOVE_IMAGE_CROP';\nexport const EXIT_CLIPPING_MODE = 'EXIT_CLIPPING_MODE';\nexport const STOP_CLIPPING = 'STOP_CLIPPING';\nexport const APPLY_IMAGE_CLIP = 'APPLY_IMAGE_CLIP';\nexport const REMOVE_IMAGE_CLIP = 'REMOVE_IMAGE_CLIP';\nexport const IMAGE_MASK = 'IMAGE_MASK';\nexport const IMAGE_CROP = 'IMAGE_CROP';\n\nexport const COPY_ELEMENT_STYLE = 'COPY_ELEMENT_STYLE';\n\nexport const ADD_TEXT_TO_SHAPE = 'ADD_TEXT_TO_SHAPE';\n\nexport const UPDATE_ENTITY_ANIMATION = 'UPDATE_ENTITY_ANIMATION';\nexport const REMOVE_ENTITY_ANIMATION = 'REMOVE_ENTITY_ANIMATION';\n\nexport const SET_LAYOUT = 'SET_LAYOUT';\n","\nvar content = require(\"!!../../../node_modules/css-loader/index.js??ref--5-1!./WebSearchView.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../node_modules/css-loader/index.js??ref--5-1!./WebSearchView.css\", function() {\n\t\tvar newContent = require(\"!!../../../node_modules/css-loader/index.js??ref--5-1!./WebSearchView.css\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"._3yJzF75hQcp0Xh_Ww8NtU6 {\\n    position: absolute;\\n    width: 0;\\n    height: 0;\\n    visibility: hidden;\\n    pointer-events: none;\\n}\\n\", \"\"]);\n\n// exports\nexports.locals = {\n\t\"takeNoSpace\": \"_3yJzF75hQcp0Xh_Ww8NtU6\"\n};","import AppDispatcher from '../../dispatcher';\nimport {\n    EXIT_GROUP_EDIT_MODE,\n    ENTER_GROUP_EDIT_MODE,\n} from '../constants/EditorConstants';\n\nexport const enterGroupEditMode = groupKey => {\n    AppDispatcher.dispatch({\n        type: ENTER_GROUP_EDIT_MODE,\n        payload: {\n            groupKey,\n        },\n    });\n};\nexport const exitGroupEditMode = groupKey => {\n    AppDispatcher.dispatch({\n        type: EXIT_GROUP_EDIT_MODE,\n        payload: {\n            groupKey,\n        },\n    });\n};\n","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!./ShareDialog.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!./ShareDialog.css\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!./ShareDialog.css\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","import invariant from 'invariant';\nimport Bowser from 'bowser';\n\nimport {getWindowSize} from './common';\n\n//there is a bug in Firefox that makes it impossible to use intersection observer, when fixed can remove firefox detection\n//BUG was fixed in firefox version 68\n//https://bugzilla.mozilla.org/show_bug.cgi?id=1359318#c28\nconst firefoxWithBrokenObserverVersion = Bowser\n    .getParser(window.navigator.userAgent)\n    .satisfies({[Bowser.BROWSER_MAP.firefox]: '<68'});\n\nexport const INTERSECTION_OBSERVER_SUPPORTED = 'IntersectionObserver' in window && !firefoxWithBrokenObserverVersion;\n\nexport function createMockObserver() {\n    return {\n        add: function(target, callback) {\n            this.callback = callback;\n            if (this.triggered) {\n                this.callback();\n            }\n        },\n        trigger: function() {\n            this.triggered = true;\n            if (this.callback) {\n                this.callback();\n            }\n        },\n        remove() {\n            this.callback = null;\n        },\n        getSmallerObjectVisibilityRatio() {\n            return 1;\n        },\n    };\n}\n\nfunction range(start, end, base) {\n    base = base || 1;\n    const result = [];\n    for (let i = start; i < end; i++) {\n        result.push(i / base);\n    }\n    return result;\n}\n\nconst options = {\n    root: null,\n    rootMargin: '0px',\n    threshold: range(0, 1000, 1000),\n};\n\nfunction getAvailableScreenSizeFromEntries(entries) {\n    invariant(!!entries.length, 'Non zero entries excpected');\n\n    const rect = entries.reduce((rect, entry) => {\n        rect.left = Math.min(entry.left, rect.left);\n        rect.top = Math.min(entry.top, rect.top);\n        rect.bottom = Math.max(entry.bottom, rect.bottom);\n        rect.right = Math.max(entry.right, rect.right);\n        return rect;\n    }, {\n        left: entries[0].left,\n        right: entries[0].right,\n        top: entries[0].top,\n        bottom: entries[0].bottom,\n    });\n\n    rect.width = rect.right - rect.left;\n    rect.height = rect.bottom - rect.top;\n\n    return rect;\n}\n\nexport class IntersectionObserverListener {\n    constructor(callback) {\n        this.windowSize = {};\n        this.documentSize = {};\n        this.fillers = [];\n        this.root = null;\n        this.lastIntersectionRoot = null;\n        this.fillerIntersectionCache = new Map();\n\n        this.observer = new IntersectionObserver((entries) => {\n            const allIntersectionReacts = new Map();\n            entries.filter(entrie => entrie.target !== this.root)\n                .forEach(entrie => {\n                    const bounds = entrie.target.getBoundingClientRect();\n\n                    if (entrie.intersectionRect.width>0 && entrie.intersectionRect.height >0) {\n                        //There is number of reasons for this code connencted to some weird quirks of how intersection observer works\n                        //Firstly it does not report objects that did not change their visiblity\n                        //Secondly I encountered cases when it was reporting bounding boxes that differed from ones reported by getBoundingClientRect\n                        //By documentation it should return the same\n                        const adjustedIntersectionRect = {\n                            left: entrie.intersectionRect.left + bounds.left - entrie.boundingClientRect.left,\n                            right: entrie.intersectionRect.right + bounds.right - entrie.boundingClientRect.right,\n                            top: entrie.intersectionRect.top + bounds.top - entrie.boundingClientRect.top,\n                            bottom: entrie.intersectionRect.bottom + bounds.bottom - entrie.boundingClientRect.bottom,\n                            width: entrie.intersectionRect.width + bounds.width - entrie.boundingClientRect.width,\n                            height: entrie.intersectionRect.height + bounds.height - entrie.boundingClientRect.height,\n                        };\n\n                        this.fillerIntersectionCache.set(entrie.target, adjustedIntersectionRect);\n                        allIntersectionReacts.set(entrie.target, adjustedIntersectionRect);\n                    } else {\n                        this.fillerIntersectionCache.set(entrie.target, entrie.intersectionRect);\n                        allIntersectionReacts.set(entrie.target, entrie.intersectionRect);\n                    }\n                });\n\n            this.fillerIntersectionCache.forEach((rect, target) => {\n                if (!allIntersectionReacts.has(target) && rect.height > 0) {\n                    allIntersectionReacts.set(target, target.getBoundingClientRect());\n                }\n            });\n\n            const correctIntersections = Array.from(allIntersectionReacts.values());\n\n            if (correctIntersections.length > 0) {\n                callback(getAvailableScreenSizeFromEntries(correctIntersections));\n            }\n\n            this.syncFillers();\n        }, options);\n\n        this.syncFillers();\n    }\n\n    destroy() {\n        this.observer.disconnect();\n        Object.values(this.fillers).forEach(filler => {\n            if (filler.parentNode) {\n                filler.parentNode.removeChild(filler);\n            }\n        });\n    }\n\n    setRoot(root) {\n        if (this.root !== root) {\n            this.root = root;\n            this.windowSize = {};\n            this.documentSize = {};\n            this.syncFillers();\n        }\n    }\n\n    loopFillers(documentsWidthsFittingInToWindow, documentHeightsFittingInToWindow, callback) {\n        const maxX = Math.max(documentsWidthsFittingInToWindow, this.fillers.length);\n        for (let x = 0; x < maxX; x++) {\n            const fillersY = this.fillers[x] || [];\n            this.fillers[x] = fillersY;\n            const maxY = Math.max(documentHeightsFittingInToWindow, fillersY.length);\n            for (let y = 0; y < maxY; y++) {\n                const filler = fillersY[y];\n\n                callback(x, y, filler);\n            }\n            this.fillers[x] = fillersY.slice(0, documentHeightsFittingInToWindow);\n        }\n        this.fillers = this.fillers.slice(0, documentsWidthsFittingInToWindow);\n    }\n\n    //for wow3 animations we need to track objects size/position changes in the screen\n    //we also need to do it in cross domain static iframe scenario where we do not have access to parent window to learn our position on screen\n    //IntersectionObserver only informs us about intersection area change of tracked object\n    //if object is 100% seen before and after movement IntersectionObserver will not trigger\n    //thus for our needs its behavior is not sufficient\n    //here what we do is we fill our infographic document with invisible rectangles of not too big size\n    //and we track them instead, this allows us to learn that document view area changed\n    //as at least some of our fillers are changing their intersection area\n    //then by combining their intersection areas we know visible area of document\n    //plus it serves as a cross domain parent window scroll event\n    //this method here is responsible for adding/removing and resizing fillers\n    syncFillers = () => {\n        const oldWindowSize = this.windowSize;\n        const oldDocumentSize = this.documentSize;\n        let documentsWidthsFittingInToWindow;\n        let documentHeightsFittingInToWindow;\n        let fillerWidth;\n        let fillerHeight;\n        this.windowSize = getWindowSize();\n        this.windowSize.height = window.screen.height;\n        const intersectionRoot = this.root;\n        this.documentSize = intersectionRoot ? intersectionRoot.getBoundingClientRect() : {height: 0, width: 0};\n\n        if (this.lastIntersectionRoot !== intersectionRoot) {\n            this.intersectionRootChanged(intersectionRoot);\n        }\n\n        const windowSizeChanged = oldWindowSize.width !== this.windowSize.width ||\n            oldWindowSize.height !== this.windowSize.height ||\n            oldDocumentSize.width !== this.documentSize.width ||\n            oldDocumentSize.height !== this.documentSize.height;\n\n        if (windowSizeChanged) {\n            documentsWidthsFittingInToWindow = Math.max(1, Math.ceil(this.documentSize.width / this.windowSize.width));\n            documentHeightsFittingInToWindow = Math.max(1, Math.ceil(this.documentSize.height / this.windowSize.height));\n\n            //20 padding is added for iframe resize detection, basically fillers will never gonna be seen 100%\n            //when for some reasons our iframe is resized it will report it, resync and its again less then 100%\n            fillerWidth = 20 + this.documentSize.width / documentsWidthsFittingInToWindow;\n            fillerHeight = 20 + this.documentSize.height / documentHeightsFittingInToWindow;\n\n            this.loopFillers(\n                documentsWidthsFittingInToWindow,\n                documentHeightsFittingInToWindow,\n                (x, y, filler) => {\n                    const fillerNotNeededAnymore = (y >= documentHeightsFittingInToWindow || x >= documentsWidthsFittingInToWindow);\n                    if (fillerNotNeededAnymore) {\n                        filler && this.removeFiller(x, y, filler);\n                    } else {\n                        if (!filler) {\n                            filler = this.fillers[x][y] = document.createElement('div');\n                            filler.id = `filler-${x}-${y}`;\n                        }\n\n                        if (filler.parentNode !== intersectionRoot) {\n                            if (intersectionRoot) {\n                                if (!filler.parentNode) {//new just created filler needs to be observed\n                                    this.observer.observe(filler);\n                                }\n                                intersectionRoot.appendChild(filler);//new or old but with wrong parent, just move from old to new parent\n                            } else if (filler.parentNode) {//there is no new root and this filler is still added somewhere, remove and unobserve\n                                filler.parentNode.removeChild(filler);\n                                this.observer.unobserve(filler);\n                            }\n                        } else if (filler.parentNode) {\n                            // this is needed for cases when filler was 100% visible and changed size, then event will not trigger for it as it stayed 100% visible\n                            //but considering we change size we need new info\n                            this.observer.unobserve(filler);\n                            this.observer.observe(filler);\n                        }\n\n                        filler.style = `position: absolute; visibility: hidden; pointer-events:none; left: ${x * fillerWidth - 10}px; top: ${y * fillerHeight - 10}px; width: ${fillerWidth}px; height: ${fillerHeight}px;`;\n                    }\n                },\n            );\n        }\n    };\n\n    removeFiller(x, y, filler) {\n        this.observer.unobserve(filler);\n        if (filler.parentNode) {\n            filler.parentNode.removeChild(filler);\n        }\n        this.fillers[x][y] = null;\n    }\n\n    intersectionRootChanged(intersectionRoot) {\n        if (this.lastIntersectionRoot) {\n            this.observer.unobserve(this.lastIntersectionRoot);\n        }\n        if (intersectionRoot) {\n            this.observer.observe(intersectionRoot);\n        }\n\n        this.lastIntersectionRoot = intersectionRoot;\n    }\n}\n\n","module.exports = __webpack_public_path__ + \"1dEm8WBg2S6p4__2EBRQo3.svg\";","var $ = require('../internals/export');\nvar anObject = require('../internals/an-object');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\nvar objectSetPrototypeOf = require('../internals/object-set-prototype-of');\n\n// `Reflect.setPrototypeOf` method\n// https://tc39.github.io/ecma262/#sec-reflect.setprototypeof\nif (objectSetPrototypeOf) $({ target: 'Reflect', stat: true }, {\n  setPrototypeOf: function setPrototypeOf(target, proto) {\n    anObject(target);\n    aPossiblePrototype(proto);\n    try {\n      objectSetPrototypeOf(target, proto);\n      return true;\n    } catch (error) {\n      return false;\n    }\n  }\n});\n","var $ = require('../internals/export');\nvar isInteger = require('../internals/is-integer');\n\n// `Number.isInteger` method\n// https://tc39.github.io/ecma262/#sec-number.isinteger\n$({ target: 'Number', stat: true }, {\n  isInteger: isInteger\n});\n","import React, {Component} from 'react';\nimport {Container} from 'flux/utils';\n\nimport MouseSelectionStore from '../MouseSelection/store';\nimport style from './MouseSelectionOverlay.css';\n\nclass MouseSelectionOverlay extends Component {\n    static getStores() {\n        return [\n            MouseSelectionStore,\n        ];\n    }\n\n    static calculateState() {\n        return {\n            rectangle: MouseSelectionStore.rectangle,\n        };\n    }\n\n    render() {\n        if (!this.state.rectangle) return null;\n        const {top, left, width, height} = this.state.rectangle;\n        const position = {top, left, width, height};\n        return <div style={position} className={style.overlay}/>;\n    }\n}\n\nexport default Container.create(MouseSelectionOverlay);\n","/* global Backbone, _, app */\nimport i18n from 'i18next';\n\n\nimport Theme from '../models/theme';\nimport slug from '../shared/slug';\n\nvar Infographic = Backbone.Model.extend({\n    url: function() {\n        return ['/api/infographics', this.get('block_id') || this.get('id')].join('/');\n    },\n    defaults: {\n        properties: {},\n    },\n\n    initialize: function() {\n        this.on('request', function() {\n            app.events.trigger('Editable:saving');\n        });\n        this.on('sync', function() {\n            app.events.trigger('Editable:saved');\n        });\n    },\n    save: function(attrs, options) {\n        if (options && options.patch) {\n            options.attrs = attrs;\n            options.patch = false;\n        }\n        return Backbone.Model.prototype.save.apply(this, [attrs, options]);\n    },\n    parse: function(response) {\n        if (response.theme) {\n            response.theme = new Theme(response.theme, {parse: true});\n        }\n\n        return response;\n    },\n    publishedStatus: function() {\n        var publishType = this.get('properties') && this.get('properties').publishType;\n\n        if (this.get('public') && publishType === 0) {\n            return 'public';\n        }\n\n        if ((publishType === 1 || publishType === 2) && this.get('privateURL')) {\n            return 'private';\n        }\n\n        return 'draft';\n    },\n\n    isOwner: function() {\n        return app && app.profile && app.profile.id === this.get('user_id');\n    },\n\n    publishedHuman: function() {\n        switch (this.publishedStatus()) {\n            case 'public':\n                return i18n.t('app.library.status_hint.public');\n            case 'private':\n                return i18n.t('app.library.status_hint.private');\n            case 'draft':\n                return i18n.t('app.library.status_hint.draft_2');\n        }\n    },\n\n    isPublished: function() {\n        return this.publishedStatus() === 'public';\n    },\n\n    isUnpublished: function() {\n        return this.publishedStatus() === 'draft';\n    },\n\n    toJSON: function() {\n        return _.extend(Backbone.Model.prototype.toJSON.apply(this, arguments), {isPublished: this.isPublished()});\n    },\n\n    fullUrl: function(brandDomain = '') {\n        const host = `${window.location.protocol}//${brandDomain && brandDomain + '.'}${window.location.host.replace(/e.infogram.com|e.infogr.am/, 'infogram.com')}`;\n        if (this.get('public')) {\n            return `${host}/${slug(this.get('title') || 'Untitled')}-${this.get('publishedURLId')}`;\n        }\n        return `${host}/${this.get('publishedURLId')}`;\n    },\n\n    shareUrl: function(brandDomain = '') {\n        if (this.get('properties').title_link === 'custom' && this.get('properties').title_url) {\n            return this.get('properties').title_url;\n        }\n        return this.fullUrl(brandDomain);\n    },\n\n    editUrl: function() {\n        return '/app/#/edit/' + this.get('block_id');\n    },\n\n    title: function() {\n        return this.get('title');\n    },\n\n    description: () => {\n        return this.get('description');\n    },\n\n    // used in web/embed views only\n    shareText: function() {\n        var title = this.get('title');\n        return 'Infographic' + (title ? ': ' + title : '');\n    },\n\n    exportSettings: function() {\n        var properties = this.get('properties');\n        return properties.export_settings || {};\n    },\n});\n\nexport default Infographic;\n","export { default as CSSTransition } from './CSSTransition';\nexport { default as ReplaceTransition } from './ReplaceTransition';\nexport { default as SwitchTransition } from './SwitchTransition';\nexport { default as TransitionGroup } from './TransitionGroup';\nexport { default as Transition } from './Transition';\nexport { default as config } from './config';","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"._36JNtGP426cu8CadxbETc6 {\\n    display: block;\\n    width: 100%;\\n    height: 100%;\\n    top: 0;\\n    left: 0;\\n    background-repeat: no-repeat;\\n    background-position: center;\\n    background-size: cover;\\n    pointer-events: none;\\n}\\n\\n._251546EwCGtrgEVDBxAcVU {\\n    position: absolute;\\n    top: 0;\\n    left: 0;\\n    width: 100%;\\n    height: 100%;\\n    pointer-events: none;\\n    background: none;\\n    background: -moz-radial-gradient(circle, rgba(0,0,0,0) 0%, rgba(0,0,0,0) 69%, rgba(0,0,0,0.75) 100%);\\n    background: -webkit-radial-gradient(circle, rgba(0,0,0,0) 0%, rgba(0,0,0,0) 69%, rgba(0,0,0,0.75) 100%);\\n    background: radial-gradient(circle, rgba(0,0,0,0) 0%, rgba(0,0,0,0) 69%, rgba(0,0,0,0.75) 100%);\\n    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=\\\"#000000\\\",endColorstr=\\\"#000000\\\",GradientType=1);\\n}\\n\", \"\"]);\n\n// exports\nexports.locals = {\n\t\"backgroundImage\": \"_36JNtGP426cu8CadxbETc6\",\n\t\"vignette\": \"_251546EwCGtrgEVDBxAcVU\"\n};","var typedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Uint8ClampedArray` constructor\n// https://tc39.github.io/ecma262/#sec-typedarray-objects\ntypedArrayConstructor('Uint8', 1, function (init) {\n  return function Uint8ClampedArray(data, byteOffset, length) {\n    return init(this, data, byteOffset, length);\n  };\n}, true);\n","'use strict';\nvar $ = require('../internals/export');\nvar toLength = require('../internals/to-length');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\n\nvar nativeEndsWith = ''.endsWith;\nvar min = Math.min;\n\n// `String.prototype.endsWith` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.endswith\n$({ target: 'String', proto: true, forced: !correctIsRegExpLogic('endsWith') }, {\n  endsWith: function endsWith(searchString /* , endPosition = @length */) {\n    var that = String(requireObjectCoercible(this));\n    notARegExp(searchString);\n    var endPosition = arguments.length > 1 ? arguments[1] : undefined;\n    var len = toLength(that.length);\n    var end = endPosition === undefined ? len : min(toLength(endPosition), len);\n    var search = String(searchString);\n    return nativeEndsWith\n      ? nativeEndsWith.call(that, search, end)\n      : that.slice(end - search.length, end) === search;\n  }\n});\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\n\n// `AdvanceStringIndex` abstract operation\n// https://tc39.github.io/ecma262/#sec-advancestringindex\nmodule.exports = function (S, index, unicode) {\n  return index + (unicode ? charAt(S, index).length : 1);\n};\n","var typedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Int16Array` constructor\n// https://tc39.github.io/ecma262/#sec-typedarray-objects\ntypedArrayConstructor('Int16', 2, function (init) {\n  return function Int16Array(data, byteOffset, length) {\n    return init(this, data, byteOffset, length);\n  };\n});\n","'use strict';\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, request, response) {\n  error.config = config;\n  if (code) {\n    error.code = code;\n  }\n\n  error.request = request;\n  error.response = response;\n  error.isAxiosError = true;\n\n  error.toJSON = function() {\n    return {\n      // Standard\n      message: this.message,\n      name: this.name,\n      // Microsoft\n      description: this.description,\n      number: this.number,\n      // Mozilla\n      fileName: this.fileName,\n      lineNumber: this.lineNumber,\n      columnNumber: this.columnNumber,\n      stack: this.stack,\n      // Axios\n      config: this.config,\n      code: this.code\n    };\n  };\n  return error;\n};\n","import PropTypes from 'prop-types';\nimport React, {PureComponent} from 'react';\nimport {fromJS} from 'immutable';\nimport cx from 'classnames';\nimport _ from 'lodash';\n\nimport {getTooltip} from '../../../../client/components/charts/tooltip';\n\nimport Chart from '../../app/freelayout_editor/components/contents/Chart/Chart.react';\nimport LazyView from '../../components/IntersectionObserver/LazyView.react';\nimport hiddenOffScreen from './AccessibilityDescriptionStyle';\n\nfunction wrapPlaceholderEntity(entity) {\n    const wrapped = Object.create(entity);\n    wrapped.getKey = () => entity.getKey() + '_wrapped';\n    return wrapped;\n}\n\nconst CHART_SCALE = 1;\n\nexport default class ChartContainer extends PureComponent {\n    static propTypes = {\n        element: PropTypes.object.isRequired,\n        accessibility: PropTypes.object,\n        id: PropTypes.string,\n        shrink: PropTypes.bool,\n        style: PropTypes.object,\n        onRendered: PropTypes.func,\n        showChartsOnScroll: PropTypes.bool,\n        previousElementsRendered: PropTypes.any,\n        observer: PropTypes.any,\n        forcedLiveDataInit: PropTypes.bool,\n        interactivityHintEnabled: PropTypes.bool,\n        embed: PropTypes.bool,\n    };\n\n    constructor(props) {\n        super(props);\n        this.state = {\n            visible: false,\n        };\n        this.props.previousElementsRendered.then(() => this.setState({visible: true}));\n    }\n\n    componentWillUnmount() {\n        getTooltip().hide();\n    }\n\n    static getDerivedStateFromProps(props, state) {\n        const {element} = props;\n        return {\n            entity: {\n                getKey: function() {\n                    return element.chart_id;\n                },\n                getWidth: function() {\n                },\n                getHeight: function() {\n                    return element.custom.height;\n                },\n                getProperty: function(key) {\n                    switch (key) {\n                        case 'chartData':\n                            return fromJS(element);\n                    }\n                },\n                getAccessibility: function() {\n                    return element.accessibility;\n                },\n            },\n            design: {},\n            visible: state.visible,\n            live: _.get(element, 'custom.live.enabled') ? (props.forcedLiveDataInit ? 'forceFirst' : 'enabled') : 'disabled',\n        };\n    }\n\n    onRendered = () => {\n        this.props.onRendered();\n        if (this.state.placeholder && !this.state.placeholderHeight) {\n            this.setState({\n                placeholderHeight: this.state.placeholder.getBoundingClientRect().height,\n            });\n        }\n    }\n\n    setPlaceholderRef = (element) => {\n        this.setState({placeholder: element});\n    }\n\n    renderChart = () => {\n        const {design, entity} = this.state;\n        return (<Chart\n            design={design}\n            editable={false}\n            entity={entity}\n            liveData={this.state.live}\n            scaleX={CHART_SCALE}\n            scaleY={CHART_SCALE}\n            freeLayout={false}\n            observer={this.props.observer}\n            interactivityHintEnabled={this.props.interactivityHintEnabled}\n            className=\"inner\"\n            viewMode={this.props.embed ? 'embed' : 'web'}\n                />);\n    };\n\n    renderShowOnViewChart = () => {\n        const {design, entity, visible} = this.state;\n        return visible ?\n            (<LazyView observer={this.props.observer} height={this.state.placeholderHeight} threshold={0.3}>\n                {this.renderChart()}\n            </LazyView>)\n            :\n            (\n                <div ref={this.setPlaceholderRef} style={{opacity: 0}}>\n                    <Chart\n                        design={design}\n                        editable={false}\n                        entity={wrapPlaceholderEntity(entity)}\n                        liveData=\"disabled\"\n                        scaleX={CHART_SCALE}\n                        scaleY={CHART_SCALE}\n                        freeLayout={false}\n                        onRendered={this.onRendered}\n                        animateCharts={false}\n                        className=\"inner\"\n                        viewMode={this.props.embed ? 'embed' : 'web'}\n                        isPlaceholder\n                    />\n                </div>\n            );\n    };\n\n    render() {\n        const {description, label, enabled: accessible} = this.props.accessibility;\n        const props = {\n            'aria-label': accessible && label,\n        };\n        if (accessible && description) {\n            props['aria-describedby'] = `${this.props.id}_description`;\n            props.tabIndex = -1;\n        }\n\n        const chart = this.props.showChartsOnScroll ? this.renderShowOnViewChart() : this.renderChart();\n\n        return (\n            <div\n                className={cx('moveable_w', {shrink: this.props.shrink})}\n                data-object-type=\"chart\"\n                style={this.props.style}\n            >\n                <div className=\"moveable chart ig-theme-group-chart\"\n                     style={{\n                         minHeight: this.state.placeholderHeight || 1,\n                     }}\n                >\n                    {chart}\n                    {accessible && description &&\n                    <span id={`${this.props.id}_description`} style={hiddenOffScreen}>{description}</span>\n                    }\n                </div>\n            </div>\n\n        );\n    }\n}\n","var nativeExpm1 = Math.expm1;\nvar exp = Math.exp;\n\n// `Math.expm1` method implementation\n// https://tc39.github.io/ecma262/#sec-math.expm1\nmodule.exports = (!nativeExpm1\n  // Old FF bug\n  || nativeExpm1(10) > 22025.465794806719 || nativeExpm1(10) < 22025.4657948067165168\n  // Tor Browser bug\n  || nativeExpm1(-2e-17) != -2e-17\n) ? function expm1(x) {\n  return (x = +x) == 0 ? x : x > -1e-6 && x < 1e-6 ? x + x * x / 2 : exp(x) - 1;\n} : nativeExpm1;\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.matchAll` well-known symbol\ndefineWellKnownSymbol('matchAll');\n","export const PRESENTATION_FULLSCREEN_ENTER = 'PRESENTATION_FULLSCREEN_ENTER';\nexport const PRESENTATION_FULLSCREEN_EXIT = 'PRESENTATION_FULLSCREEN_EXIT';\nexport const PRESENTATION_SWITCH_PAGE = 'PRESENTATION_SWITCH_PAGE';\nexport const PRESENTATION_RESIZE = 'PRESENTATION_RESIZE';\nexport const PRESENTATION_DISPLAY_CONTROLS = 'PRESENTATION_DISPLAY_CONTROLS';\nexport const PRESENTATION_DISPLAY_SCROLL_PROGRESS = 'PRESENTATION_DISPLAY_SCROLL_PROGRESS';\nexport const PRESENTATION_NAVIGATE = 'PRESENTATION_NAVIGATE';\nexport const PRESENTATION_NAVIGATION_TREE_POP = 'PRESENTATION_NAVIGATION_TREE_POP';\n","\"use strict\";\n\n// ES3 safe\nvar _undefined = void 0;\n\nmodule.exports = function (value) { return value !== _undefined && value !== null; };\n","/*!\n* screenfull\n* v3.3.3 - 2018-09-04\n* (c) Sindre Sorhus; MIT License\n*/\n(function () {\n\t'use strict';\n\n\tvar document = typeof window !== 'undefined' && typeof window.document !== 'undefined' ? window.document : {};\n\tvar isCommonjs = typeof module !== 'undefined' && module.exports;\n\tvar keyboardAllowed = typeof Element !== 'undefined' && 'ALLOW_KEYBOARD_INPUT' in Element;\n\n\tvar fn = (function () {\n\t\tvar val;\n\n\t\tvar fnMap = [\n\t\t\t[\n\t\t\t\t'requestFullscreen',\n\t\t\t\t'exitFullscreen',\n\t\t\t\t'fullscreenElement',\n\t\t\t\t'fullscreenEnabled',\n\t\t\t\t'fullscreenchange',\n\t\t\t\t'fullscreenerror'\n\t\t\t],\n\t\t\t// New WebKit\n\t\t\t[\n\t\t\t\t'webkitRequestFullscreen',\n\t\t\t\t'webkitExitFullscreen',\n\t\t\t\t'webkitFullscreenElement',\n\t\t\t\t'webkitFullscreenEnabled',\n\t\t\t\t'webkitfullscreenchange',\n\t\t\t\t'webkitfullscreenerror'\n\n\t\t\t],\n\t\t\t// Old WebKit (Safari 5.1)\n\t\t\t[\n\t\t\t\t'webkitRequestFullScreen',\n\t\t\t\t'webkitCancelFullScreen',\n\t\t\t\t'webkitCurrentFullScreenElement',\n\t\t\t\t'webkitCancelFullScreen',\n\t\t\t\t'webkitfullscreenchange',\n\t\t\t\t'webkitfullscreenerror'\n\n\t\t\t],\n\t\t\t[\n\t\t\t\t'mozRequestFullScreen',\n\t\t\t\t'mozCancelFullScreen',\n\t\t\t\t'mozFullScreenElement',\n\t\t\t\t'mozFullScreenEnabled',\n\t\t\t\t'mozfullscreenchange',\n\t\t\t\t'mozfullscreenerror'\n\t\t\t],\n\t\t\t[\n\t\t\t\t'msRequestFullscreen',\n\t\t\t\t'msExitFullscreen',\n\t\t\t\t'msFullscreenElement',\n\t\t\t\t'msFullscreenEnabled',\n\t\t\t\t'MSFullscreenChange',\n\t\t\t\t'MSFullscreenError'\n\t\t\t]\n\t\t];\n\n\t\tvar i = 0;\n\t\tvar l = fnMap.length;\n\t\tvar ret = {};\n\n\t\tfor (; i < l; i++) {\n\t\t\tval = fnMap[i];\n\t\t\tif (val && val[1] in document) {\n\t\t\t\tfor (i = 0; i < val.length; i++) {\n\t\t\t\t\tret[fnMap[0][i]] = val[i];\n\t\t\t\t}\n\t\t\t\treturn ret;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t})();\n\n\tvar eventNameMap = {\n\t\tchange: fn.fullscreenchange,\n\t\terror: fn.fullscreenerror\n\t};\n\n\tvar screenfull = {\n\t\trequest: function (elem) {\n\t\t\tvar request = fn.requestFullscreen;\n\n\t\t\telem = elem || document.documentElement;\n\n\t\t\t// Work around Safari 5.1 bug: reports support for\n\t\t\t// keyboard in fullscreen even though it doesn't.\n\t\t\t// Browser sniffing, since the alternative with\n\t\t\t// setTimeout is even worse.\n\t\t\tif (/ Version\\/5\\.1(?:\\.\\d+)? Safari\\//.test(navigator.userAgent)) {\n\t\t\t\telem[request]();\n\t\t\t} else {\n\t\t\t\telem[request](keyboardAllowed ? Element.ALLOW_KEYBOARD_INPUT : {});\n\t\t\t}\n\t\t},\n\t\texit: function () {\n\t\t\tdocument[fn.exitFullscreen]();\n\t\t},\n\t\ttoggle: function (elem) {\n\t\t\tif (this.isFullscreen) {\n\t\t\t\tthis.exit();\n\t\t\t} else {\n\t\t\t\tthis.request(elem);\n\t\t\t}\n\t\t},\n\t\tonchange: function (callback) {\n\t\t\tthis.on('change', callback);\n\t\t},\n\t\tonerror: function (callback) {\n\t\t\tthis.on('error', callback);\n\t\t},\n\t\ton: function (event, callback) {\n\t\t\tvar eventName = eventNameMap[event];\n\t\t\tif (eventName) {\n\t\t\t\tdocument.addEventListener(eventName, callback, false);\n\t\t\t}\n\t\t},\n\t\toff: function (event, callback) {\n\t\t\tvar eventName = eventNameMap[event];\n\t\t\tif (eventName) {\n\t\t\t\tdocument.removeEventListener(eventName, callback, false);\n\t\t\t}\n\t\t},\n\t\traw: fn\n\t};\n\n\tif (!fn) {\n\t\tif (isCommonjs) {\n\t\t\tmodule.exports = false;\n\t\t} else {\n\t\t\twindow.screenfull = false;\n\t\t}\n\n\t\treturn;\n\t}\n\n\tObject.defineProperties(screenfull, {\n\t\tisFullscreen: {\n\t\t\tget: function () {\n\t\t\t\treturn Boolean(document[fn.fullscreenElement]);\n\t\t\t}\n\t\t},\n\t\telement: {\n\t\t\tenumerable: true,\n\t\t\tget: function () {\n\t\t\t\treturn document[fn.fullscreenElement];\n\t\t\t}\n\t\t},\n\t\tenabled: {\n\t\t\tenumerable: true,\n\t\t\tget: function () {\n\t\t\t\t// Coerce to boolean in case of old WebKit\n\t\t\t\treturn Boolean(document[fn.fullscreenEnabled]);\n\t\t\t}\n\t\t}\n\t});\n\n\tif (isCommonjs) {\n\t\tmodule.exports = screenfull;\n\t} else {\n\t\twindow.screenfull = screenfull;\n\t}\n})();\n","\"use strict\";\n\nvar isObject = require(\"../object/is\");\n\nmodule.exports = function (value) {\n\tif (!isObject(value)) return false;\n\ttry {\n\t\tif (!value.constructor) return false;\n\t\treturn value.constructor.prototype === value;\n\t} catch (error) {\n\t\treturn false;\n\t}\n};\n","import {calculateClippedRectangle} from '../../../components/FreeLayoutEditor/util/clippedEntity';\n\n/**\n * When callout entity is resized checks if inner padding (padding between callout entities)\n * should be adjusted.\n * If callout does not have fixed paddings set and inner handler is used\n * then padding should be adjusted.\n *\n * @param entity entity being resized\n * @param callout callout that contains item being resized\n * @param calloutEntities all the entities within callout\n * @param blockRect callout bounding box\n * @param pointerDown mouse down position as {x; y}\n * @returns {boolean} true if inner padding needs to be adjusted\n */\nexport default function shouldAdjustCalloutInnerPadding(entity, callout, calloutEntities, blockRect, pointerDown) {\n    if (!entity.getCalloutKey() || callout.get('fixedPaddings') || calloutEntities.size < 2) {\n        return false;\n    }\n\n    let entityInnerSide;\n    let entityMiddle;\n    let pointer;\n    if (callout.get('alignment') === 'horizontal') {\n        pointer = pointerDown.x;\n        if (entity.getKey() === calloutEntities.first().getKey()) {\n            const firstRect = calculateClippedRectangle(calloutEntities.first());\n            entityInnerSide = blockRect.left + firstRect.left + firstRect.width;\n            entityMiddle = blockRect.left + firstRect.left + firstRect.width / 2;\n        } else {\n            const lastRect = calculateClippedRectangle(calloutEntities.last());\n            entityInnerSide = blockRect.left + lastRect.left;\n            entityMiddle = blockRect.left + lastRect.left + lastRect.width / 2;\n        }\n    } else {\n        pointer = pointerDown.y;\n        if (entity.getKey() === calloutEntities.first().getKey()) {\n            const firstRect = calculateClippedRectangle(calloutEntities.first());\n            entityInnerSide = blockRect.top + firstRect.top + firstRect.height;\n            entityMiddle = blockRect.top + firstRect.top + firstRect.height / 2;\n        } else {\n            const lastRect = calculateClippedRectangle(calloutEntities.last());\n            entityInnerSide = blockRect.top + lastRect.top;\n            entityMiddle = blockRect.top + lastRect.top + lastRect.height / 2;\n        }\n    }\n    return Math.abs(entityInnerSide - pointer) < Math.abs(entityMiddle - pointer);\n}\n","import {SET_ACTIVE_HANDLE} from '../constants';\nimport Dispatcher from '../../../../app/dispatcher';\n\nexport default function setActiveHandle(activeHandle, entities, pointerLocation) {\n    Dispatcher.dispatch({\n        type: SET_ACTIVE_HANDLE,\n        activeHandle,\n        entities,\n        pointerLocation,\n    });\n}\n","var $ = require('../internals/export');\n\nvar log = Math.log;\nvar LN2 = Math.LN2;\n\n// `Math.log2` method\n// https://tc39.github.io/ecma262/#sec-math.log2\n$({ target: 'Math', stat: true }, {\n  log2: function log2(x) {\n    return log(x) / LN2;\n  }\n});\n","var id = 0;\nvar postfix = Math.random();\n\nmodule.exports = function (key) {\n  return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36);\n};\n","import {Record, List, Map, fromJS} from 'immutable';\nimport invariant from 'invariant';\n\nimport InfographicEntity from './InfographicEntity';\nimport {fromRawBackground} from './Background';\nimport generateUniqueIdentifier from '../util/generateUniqueIdentifier';\n\nconst designSetters = {\n    background: fromRawBackground,\n    hideFooter: setFooterVisibility,\n    header: fromRawHeader,\n};\n\nconst Header = Record({\n    text: '',\n});\n\nfunction fromRawHeader(header) {\n    if (!header) {\n        return undefined;\n    }\n\n    if (header.text) {\n        return Header({\n            text: header.text,\n        });\n    }\n    return undefined;\n}\n\nconst InfographicContentBlockRecord = Record({\n    key: '',\n    design: Map(),\n    entities: List(),\n    animationSequence: undefined,\n});\n\nfunction setFooterVisibility(value) {\n    return value;\n}\n\nexport default class InfographicContentBlock extends InfographicContentBlockRecord {\n    static create() {\n        return new InfographicContentBlock({\n            key: generateUniqueIdentifier(),\n        });\n    }\n\n    static createFromJSONObject(blockKey, blockData, entityMap = {}) {\n        const design = fromJS(blockData.design || {});\n        const entities = List(blockData.entities || []).map(entityDataOrKey => {\n            let entityData, entityKey;\n            if (typeof entityDataOrKey === 'string') {\n                // Its a key. Load it from external source.\n                entityData = entityMap[entityDataOrKey];\n                entityKey = entityDataOrKey;\n                invariant(entityData, `Invalid flex structure. No entity with key ${entityKey} found.`);\n            } else {\n                entityData = entityDataOrKey;\n                entityKey = entityDataOrKey.key;\n                invariant(entityKey, `Invalid flex structure. No key found in inlined entity.`);\n            }\n            return InfographicEntity.fromRawEntity({...entityData, key: entityKey}, blockKey);\n        });\n        const animationSequence = blockData ? List(blockData.animationSequence) : undefined;\n        return new InfographicContentBlock({key: blockKey, design, entities, animationSequence});\n    }\n\n    getKey() {\n        return this.get('key');\n    }\n\n    getDesign() {\n        return this.get('design');\n    }\n\n    getDesignProperty(name) {\n        return this.getIn(['design', name]);\n    }\n\n    setDesignProperty(name, value) {\n        if (designSetters[name]) {\n            value = designSetters[name](value);\n            if (value === undefined) {\n                return this.removeIn(['design', name]);\n            }\n            return this.setIn(['design', name], value);\n        }\n        return this;\n    }\n\n    /**\n     * Fairly complicated getter for the sequence\n     * in which app will trigger animations on subsequent clicks.\n     *\n     * The order of animations must be somehow stored because it can be manually adjusted.\n     * However, it must also account for any on-click entities that might have been added\n     * since last manual adjustment. Every time the sequence is required -\n     * either to display/manipulate in editor or to apply in presentation mode -\n     * it must calculate the most up-to-date version of the list.\n     *\n     * @returns most up-to-date sequence that includes both defined order and any added onClick entity keys\n     */\n    getAnimationSequence() {\n        // Take all the keys of entities with onClick trigger\n        const clickAnimations = this.getEntities()\n            .filter(entity => entity.getIn(['props', 'animation', 'regime']) === 'onClick')\n            .map(entity => entity.getKey());\n\n        // Take last saved animation sequence\n        const animationSequence = this.get('animationSequence');\n\n        // ...if there isn't one saved, it means list of all onClick entities is de facto the sequence\n        if (!animationSequence || animationSequence.isEmpty()) {\n            return clickAnimations.size ? clickAnimations : undefined;\n        }\n\n        // Append new onClick entities to the end of existing sequence\n        return clickAnimations.reduce(\n            (returnList, key) => {\n                if (!returnList.includes(key)) {\n                    return returnList.push(key);\n                }\n                return returnList;\n            },\n            animationSequence\n                // ...but update old sequence to contain only entities with onClick trigger\n                .filter(key => !!clickAnimations.includes(key)),\n        );\n    }\n\n    setAnimationSequence(sequence) {\n        return this.set('animationSequence', sequence);\n    }\n\n    getEntity(key) {\n        for (const entity of this.get('entities')) {\n            if (entity.getKey() === key) {\n                return entity;\n            }\n        }\n        return null;\n    }\n\n    getEntities() {\n        return this.get('entities');\n    }\n\n    getEntitiesByKeys(keys, {orderByKeys=false}={}) {\n        const entities = this.entities.filter(entity => keys.includes(entity.key));\n        if (orderByKeys) {\n            return entities.sort((a, b) => keys.indexOf(a.getKey()) - keys.indexOf(b.getKey()));\n        }\n        return entities;\n    }\n\n    setEntity(key, put) {\n        const entityIndex = this.getEntities().findIndex(e => e.getKey() === key);\n        return this.mergeDeepIn(['entities', entityIndex], put);\n    }\n\n    setEntities(entities) {\n        return this.set('entities', entities);\n    }\n}\n","var $ = require('../internals/export');\n\n// `Number.isNaN` method\n// https://tc39.github.io/ecma262/#sec-number.isnan\n$({ target: 'Number', stat: true }, {\n  isNaN: function isNaN(number) {\n    // eslint-disable-next-line no-self-compare\n    return number != number;\n  }\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\nif (process.env.NODE_ENV !== 'production') {\n  var ReactIs = require('react-is');\n\n  // By explicitly using `prop-types` you are opting into new development behavior.\n  // http://fb.me/prop-types-in-prod\n  var throwOnDirectAccess = true;\n  module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n  // By explicitly using `prop-types` you are opting into new production behavior.\n  // http://fb.me/prop-types-in-prod\n  module.exports = require('./factoryWithThrowingShims')();\n}\n","\nvar content = require(\"!!../../../../../../node_modules/css-loader/index.js??ref--5-1!./Presentation.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../../../node_modules/css-loader/index.js??ref--5-1!./Presentation.css\", function() {\n\t\tvar newContent = require(\"!!../../../../../../node_modules/css-loader/index.js??ref--5-1!./Presentation.css\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","'use strict';\nvar regexpFlags = require('./regexp-flags');\n\nvar nativeExec = RegExp.prototype.exec;\n// This always refers to the native implementation, because the\n// String#replace polyfill uses ./fix-regexp-well-known-symbol-logic.js,\n// which loads this file before patching the method.\nvar nativeReplace = String.prototype.replace;\n\nvar patchedExec = nativeExec;\n\nvar UPDATES_LAST_INDEX_WRONG = (function () {\n  var re1 = /a/;\n  var re2 = /b*/g;\n  nativeExec.call(re1, 'a');\n  nativeExec.call(re2, 'a');\n  return re1.lastIndex !== 0 || re2.lastIndex !== 0;\n})();\n\n// nonparticipating capturing group, copied from es5-shim's String#split patch.\nvar NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;\n\nvar PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED;\n\nif (PATCH) {\n  patchedExec = function exec(str) {\n    var re = this;\n    var lastIndex, reCopy, match, i;\n\n    if (NPCG_INCLUDED) {\n      reCopy = new RegExp('^' + re.source + '$(?!\\\\s)', regexpFlags.call(re));\n    }\n    if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex;\n\n    match = nativeExec.call(re, str);\n\n    if (UPDATES_LAST_INDEX_WRONG && match) {\n      re.lastIndex = re.global ? match.index + match[0].length : lastIndex;\n    }\n    if (NPCG_INCLUDED && match && match.length > 1) {\n      // Fix browsers whose `exec` methods don't consistently return `undefined`\n      // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/\n      nativeReplace.call(match[0], reCopy, function () {\n        for (i = 1; i < arguments.length - 2; i++) {\n          if (arguments[i] === undefined) match[i] = undefined;\n        }\n      });\n    }\n\n    return match;\n  };\n}\n\nmodule.exports = patchedExec;\n","\nvar content = require(\"!!../../../../../node_modules/css-loader/index.js??ref--5-1!./animation.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../../node_modules/css-loader/index.js??ref--5-1!./animation.css\", function() {\n\t\tvar newContent = require(\"!!../../../../../node_modules/css-loader/index.js??ref--5-1!./animation.css\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","import Dispatcher from '../../../app/dispatcher';\nimport {\n    FREELAYOUT_MOUSE_SELECTION_MOVE,\n    FREELAYOUT_MOUSE_SELECTION_UP,\n    FREELAYOUT_MOUSE_SELECTION_DOWN,\n} from './constants';\n\nexport function selectionMouseDown(x, y) {\n    Dispatcher.dispatch({\n        type: FREELAYOUT_MOUSE_SELECTION_DOWN,\n        x, y,\n    });\n}\n\nexport function selectionMouseMove(x, y, options = {}) {\n    Dispatcher.dispatch({\n        type: FREELAYOUT_MOUSE_SELECTION_MOVE,\n        x, y,\n        options,\n    });\n}\n\nexport function selectionMouseUp() {\n    Dispatcher.dispatch({\n        type: FREELAYOUT_MOUSE_SELECTION_UP,\n    });\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/forced-string-html-method');\n\n// `String.prototype.fontcolor` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.fontcolor\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('fontcolor') }, {\n  fontcolor: function fontcolor(color) {\n    return createHTML(this, 'font', 'color', color);\n  }\n});\n","import i18n from 'i18next';\n\n/**\n * Vignette (fake)\n *\n * Adds gradient rounded corners (only one color)\n *\n * Since Safari below version 12 (11, 10 etc.)\n * fails to work with feImage, feSpotLight, fePointLight\n * filter primitives, vignette effect is faked without\n * actual SVG filter @see <CoverImage/> component.\n *\n * When support for older Safari versions is dropped,\n * burn this and use more elegant SVG filter solution.\n *\n * This module is used only for min/max/caption definitions,\n * to keep them in the same place.\n*/\n\nexport default {\n    get caption() {\n        return i18n.t('inspector.free.filters.vignette');\n    },\n    max: 1,\n    min: 0,\n    default: 0,\n};\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.toStringTag` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.tostringtag\ndefineWellKnownSymbol('toStringTag');\n","var fails = require('../internals/fails');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n  var value = data[normalize(feature)];\n  return value == POLYFILL ? true\n    : value == NATIVE ? false\n    : typeof detection == 'function' ? fails(detection)\n    : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n  return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","\"use strict\";\n/* tslint:disable:max-line-length */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar glassbox_client_logger_1 = require(\"../glassbox.client.logger\");\nfunction _log(schemaId, eventType, eventName, params) {\n    return glassbox_client_logger_1.logGlassboxHelper('Analytics', schemaId, 'Js', eventType, eventName, params);\n}\n/* User accepted the privacy policy.. */\nfunction logAcceptPrivacyPolicy() {\n    return _log(15700, 'AcceptPrivacyPolicy', 'AcceptPrivacyPolicyWebJs');\n}\nexports.logAcceptPrivacyPolicy = logAcceptPrivacyPolicy;\n/* User accepted team invitation via their dashboard. */\nfunction logAcceptTeamInvitation(params) {\n    return _log(13975, 'AcceptTeamInvitation', 'AcceptTeamInvitationWebJs', params);\n}\nexports.logAcceptTeamInvitation = logAcceptTeamInvitation;\n/* User accepted the terms of use.. */\nfunction logAcceptTermsofService() {\n    return _log(15702, 'AcceptTermsofService', 'AcceptTermsofServiceWebJs');\n}\nexports.logAcceptTermsofService = logAcceptTermsofService;\n/* TECHNICAL EVENT. Use this if you want to filter based on feature switches or list feature switches of a user or group. */\nfunction logActiveFeatureSwitches(params) {\n    return _log(15206, 'ActiveFeatureSwitches', 'ActiveFeatureSwitchesWebJs', params);\n}\nexports.logActiveFeatureSwitches = logActiveFeatureSwitches;\n/* Adding new collaborator to a presentation failed. */\nfunction logAddCollaboratorFailed(params) {\n    return _log(13983, 'AddCollaboratorFailed', 'AddCollaboratorFailedWebJs', params);\n}\nexports.logAddCollaboratorFailed = logAddCollaboratorFailed;\n/* User adds new collaborator, updates collaborator rights (can edit/present/comment) of existing collaborator, or resends invitation. */\nfunction logAddCollaborator(params) {\n    return _log(13977, 'AddCollaborator', 'AddCollaboratorWebJs', params);\n}\nexports.logAddCollaborator = logAddCollaborator;\n/* Adding new collaborator to a folder failed. */\nfunction logAddFolderCollaboratorFailed(params) {\n    return _log(15203, 'AddFolderCollaboratorFailed', 'AddFolderCollaboratorFailedWebJs', params);\n}\nexports.logAddFolderCollaboratorFailed = logAddFolderCollaboratorFailed;\n/* User added new collaborator to a folder. */\nfunction logAddFolderCollaborator(params) {\n    return _log(15201, 'AddFolderCollaborator', 'AddFolderCollaboratorWebJs', params);\n}\nexports.logAddFolderCollaborator = logAddFolderCollaborator;\n/* User added new presentation to a folder. */\nfunction logAddPresentationToFolder(params) {\n    return _log(14000, 'AddPresentationToFolder', 'AddPresentationToFolderWebJs', params);\n}\nexports.logAddPresentationToFolder = logAddPresentationToFolder;\n/* User allowed us to show browser notifications for them. */\nfunction logAllowBrowserNotifications() {\n    return _log(14872, 'AllowBrowserNotifications', 'AllowBrowserNotificationsWebJs');\n}\nexports.logAllowBrowserNotifications = logAllowBrowserNotifications;\n/* User allowed us to request browser notification permissions from them. */\nfunction logAllowToRequestBrowserNotificationsPermission() {\n    return _log(14875, 'AllowToRequestBrowserNotificationsPermission', 'AllowToRequestBrowserNotificationsPermissionWebJs');\n}\nexports.logAllowToRequestBrowserNotificationsPermission = logAllowToRequestBrowserNotificationsPermission;\n/* Camera action happened that was not initiated by user, like dropping object outside zoom bounds. */\nfunction logAutoZoom(params) {\n    return _log(14582, 'AutoZoom', 'AutoZoomWebJs', params);\n}\nexports.logAutoZoom = logAutoZoom;\n/* User clicked \"Back\" on welcome screen. */\nfunction logBackOnWelcomeScreen() {\n    return _log(15377, 'BackOnWelcomeScreen', 'BackOnWelcomeScreenWebJs');\n}\nexports.logBackOnWelcomeScreen = logBackOnWelcomeScreen;\n/* Go back to outline from frame.. */\nfunction logBackToOutline(params) {\n    return _log(16303, 'BackToOutline', 'BackToOutlineWebJs', params);\n}\nexports.logBackToOutline = logBackToOutline;\n/* User blocked us from showing browser notifications for them. */\nfunction logBlockBrowserNotifications() {\n    return _log(14880, 'BlockBrowserNotifications', 'BlockBrowserNotificationsWebJs');\n}\nexports.logBlockBrowserNotifications = logBlockBrowserNotifications;\n/* Keeps track of when the user clicks on a callout. */\nfunction logCalloutClicked(params) {\n    return _log(15214, 'CalloutClicked', 'CalloutClickedWebJs', params);\n}\nexports.logCalloutClicked = logCalloutClicked;\n/* Team Admin clicks cancel when is asked to confirm enabling SAML SSO for his team when hitting save button. */\nfunction logCancelSamlActivation(params) {\n    return _log(16451, 'CancelSamlActivation', 'CancelSamlActivationWebJs', params);\n}\nexports.logCancelSamlActivation = logCancelSamlActivation;\n/* User cancelled Prezi subscription in 'Account settings'. */\nfunction logCancelSubscription() {\n    return _log(14010, 'CancelSubscription', 'CancelSubscriptionWebJs');\n}\nexports.logCancelSubscription = logCancelSubscription;\n/* The user clicked on a thumbnail in the carousel to view another prezi. */\nfunction logCarouselThumbnailClicked(params) {\n    return _log(15111, 'CarouselThumbnailClicked', 'CarouselThumbnailClickedWebJs', params);\n}\nexports.logCarouselThumbnailClicked = logCarouselThumbnailClicked;\n/* User opened the change password form in 'Account settings'. */\nfunction logChangeAccountPassword() {\n    return _log(14012, 'ChangeAccountPassword', 'ChangeAccountPasswordWebJs');\n}\nexports.logChangeAccountPassword = logChangeAccountPassword;\n/* User changed credit card information in 'Account settings'. */\nfunction logChangeCreditCard() {\n    return _log(14014, 'ChangeCreditCard', 'ChangeCreditCardWebJs');\n}\nexports.logChangeCreditCard = logChangeCreditCard;\n/* User changed language of Prezi. */\nfunction logChangeLanguage(params) {\n    return _log(14054, 'ChangeLanguage', 'ChangeLanguageWebJs', params);\n}\nexports.logChangeLanguage = logChangeLanguage;\n/* User changed profile visibility to public or private. */\nfunction logChangeProfileVisibility(params) {\n    return _log(14058, 'ChangeProfileVisibility', 'ChangeProfileVisibilityWebJs', params);\n}\nexports.logChangeProfileVisibility = logChangeProfileVisibility;\n/* User switched availability within team on/off, or modified team collaborator rights (can edit/present/comment). */\nfunction logChangeTeamAccess(params) {\n    return _log(14061, 'ChangeTeamAccess', 'ChangeTeamAccessWebJs', params);\n}\nexports.logChangeTeamAccess = logChangeTeamAccess;\n/* Admin switched enabling the creation of public presentations within a team on/off. */\nfunction logChangeTeamPrivacy(params) {\n    return _log(14066, 'ChangeTeamPrivacy', 'ChangeTeamPrivacyWebJs', params);\n}\nexports.logChangeTeamPrivacy = logChangeTeamPrivacy;\n/* Admin switched analytics (tracking views of shared presentations) for a team on/off. */\nfunction logChangeTeamTracking(params) {\n    return _log(15227, 'ChangeTeamTracking', 'ChangeTeamTrackingWebJs', params);\n}\nexports.logChangeTeamTracking = logChangeTeamTracking;\n/* Admin switched viewer identification (asking for viewer name and email) for a team on/off. */\nfunction logChangeTeamViewerIdentification(params) {\n    return _log(15229, 'ChangeTeamViewerIdentification', 'ChangeTeamViewerIdentificationWebJs', params);\n}\nexports.logChangeTeamViewerIdentification = logChangeTeamViewerIdentification;\n/* User changed email address, name, industry or job title in 'Account settings'. */\nfunction logChangedAccountInformation(params) {\n    return _log(14016, 'ChangedAccountInformation', 'ChangedAccountInformationWebJs', params);\n}\nexports.logChangedAccountInformation = logChangedAccountInformation;\n/* User changed account password in 'Account settings'. */\nfunction logChangedAccountPassword() {\n    return _log(14018, 'ChangedAccountPassword', 'ChangedAccountPasswordWebJs');\n}\nexports.logChangedAccountPassword = logChangedAccountPassword;\n/* User switched on/off analytics tracking of view link. */\nfunction logChangedAnalyticsTracking(params) {\n    return _log(15225, 'ChangedAnalyticsTracking', 'ChangedAnalyticsTrackingWebJs', params);\n}\nexports.logChangedAnalyticsTracking = logChangedAnalyticsTracking;\n/* User changed name of folder. */\nfunction logChangedFolderName(params) {\n    return _log(14026, 'ChangedFolderName', 'ChangedFolderNameWebJs', params);\n}\nexports.logChangedFolderName = logChangedFolderName;\n/* Presentation title was changed. */\nfunction logChangedPresentationTitle(params) {\n    return _log(14034, 'ChangedPresentationTitle', 'ChangedPresentationTitleWebJs', params);\n}\nexports.logChangedPresentationTitle = logChangedPresentationTitle;\n/* User changed name of view link. */\nfunction logChangedViewLinkName(params) {\n    return _log(14049, 'ChangedViewLinkName', 'ChangedViewLinkNameWebJs', params);\n}\nexports.logChangedViewLinkName = logChangedViewLinkName;\n/* User switched on/off asking viewer email and name for view link. */\nfunction logChangedViewerIdentification(params) {\n    return _log(14042, 'ChangedViewerIdentification', 'ChangedViewerIdentificationWebJs', params);\n}\nexports.logChangedViewerIdentification = logChangedViewerIdentification;\n/* User clicked on a call to action button. */\nfunction logClickCta(params) {\n    return _log(14957, 'ClickCta', 'ClickCtaWebJs', params);\n}\nexports.logClickCta = logClickCta;\n/* The user clicked on the Prezi Logo in the navigation header on the top of the page. */\nfunction logClickPreziLogo() {\n    return _log(15231, 'ClickPreziLogo', 'ClickPreziLogoWebJs');\n}\nexports.logClickPreziLogo = logClickPreziLogo;\n/* Click reusable prezi card on marketing page. */\nfunction logClickReusablePreziCard(params) {\n    return _log(15622, 'ClickReusablePreziCard', 'ClickReusablePreziCardWebJs', params);\n}\nexports.logClickReusablePreziCard = logClickReusablePreziCard;\n/* Click a template card on marketing page. */\nfunction logClickTemplateCard(params) {\n    return _log(15620, 'ClickTemplateCard', 'ClickTemplateCardWebJs', params);\n}\nexports.logClickTemplateCard = logClickTemplateCard;\n/* User clicked on a tag on the video view page. */\nfunction logClickVideoTag(params) {\n    return _log(15698, 'ClickVideoTag', 'ClickVideoTagWebJs', params);\n}\nexports.logClickVideoTag = logClickVideoTag;\n/* ClickVideoWelcomeClose. */\nfunction logClickVideoWelcomeClose() {\n    return _log(15762, 'ClickVideoWelcomeClose', 'ClickVideoWelcomeCloseWebJs');\n}\nexports.logClickVideoWelcomeClose = logClickVideoWelcomeClose;\n/* ClickVideoWelcomeLearnMore. */\nfunction logClickVideoWelcomeLearnMore() {\n    return _log(15764, 'ClickVideoWelcomeLearnMore', 'ClickVideoWelcomeLearnMoreWebJs');\n}\nexports.logClickVideoWelcomeLearnMore = logClickVideoWelcomeLearnMore;\n/* ClickVideoWelcomeTerms. */\nfunction logClickVideoWelcomeTerms() {\n    return _log(15766, 'ClickVideoWelcomeTerms', 'ClickVideoWelcomeTermsWebJs');\n}\nexports.logClickVideoWelcomeTerms = logClickVideoWelcomeTerms;\n/* User closed the 'Invite people to collaborate' dialog. */\nfunction logCloseCollaboratorsDialog(params) {\n    return _log(14102, 'CloseCollaboratorsDialog', 'CloseCollaboratorsDialogWebJs', params);\n}\nexports.logCloseCollaboratorsDialog = logCloseCollaboratorsDialog;\n/* User closed the 'Create new link' dialog. */\nfunction logCloseCreateAnalyticsLinkDialog() {\n    return _log(14104, 'CloseCreateAnalyticsLinkDialog', 'CloseCreateAnalyticsLinkDialogWebJs');\n}\nexports.logCloseCreateAnalyticsLinkDialog = logCloseCreateAnalyticsLinkDialog;\n/* User closed the 'Export to PDF' dialog. */\nfunction logCloseExportPdfDialog(params) {\n    return _log(14107, 'CloseExportPdfDialog', 'CloseExportPdfDialogWebJs', params);\n}\nexports.logCloseExportPdfDialog = logCloseExportPdfDialog;\n/* User closed the 'Export to PPT' dialog. */\nfunction logCloseExportPptDialog(params) {\n    return _log(14110, 'CloseExportPptDialog', 'CloseExportPptDialogWebJs', params);\n}\nexports.logCloseExportPptDialog = logCloseExportPptDialog;\n/* User closed the 'Share folder' dialog. */\nfunction logCloseFolderCollaboratorsDialog(params) {\n    return _log(15239, 'CloseFolderCollaboratorsDialog', 'CloseFolderCollaboratorsDialogWebJs', params);\n}\nexports.logCloseFolderCollaboratorsDialog = logCloseFolderCollaboratorsDialog;\n/* Minimize collection.. */\nfunction logCloseFrameCollection(params) {\n    return _log(16305, 'CloseFrameCollection', 'CloseFrameCollectionWebJs', params);\n}\nexports.logCloseFrameCollection = logCloseFrameCollection;\n/* User closed the browser notification. */\nfunction logCloseNotification() {\n    return _log(14883, 'CloseNotification', 'CloseNotificationWebJs');\n}\nexports.logCloseNotification = logCloseNotification;\n/* User closed a paywall dialog. */\nfunction logClosePaywallDialog() {\n    return _log(14984, 'ClosePaywallDialog', 'ClosePaywallDialogWebJs');\n}\nexports.logClosePaywallDialog = logClosePaywallDialog;\n/* Close presentation player dialog.. */\nfunction logClosePreziPlayerDialog(params) {\n    return _log(16307, 'ClosePreziPlayerDialog', 'ClosePreziPlayerDialogWebJs', params);\n}\nexports.logClosePreziPlayerDialog = logClosePreziPlayerDialog;\n/* User closed the 'Privacy' dialog of a presentation. */\nfunction logClosePrivacyDialog(params) {\n    return _log(14123, 'ClosePrivacyDialog', 'ClosePrivacyDialogWebJs', params);\n}\nexports.logClosePrivacyDialog = logClosePrivacyDialog;\n/* Team admin confirms enabling SAML SSO for his team after hitting save. */\nfunction logConfirmSamlActivation(params) {\n    return _log(16453, 'ConfirmSamlActivation', 'ConfirmSamlActivationWebJs', params);\n}\nexports.logConfirmSamlActivation = logConfirmSamlActivation;\n/* Team Admin double-confirms SAML deactivation process. */\nfunction logConfirmSamlDeactivation(params) {\n    return _log(16455, 'ConfirmSamlDeactivation', 'ConfirmSamlDeactivationWebJs', params);\n}\nexports.logConfirmSamlDeactivation = logConfirmSamlDeactivation;\n/* Removing a team member failed. */\nfunction logConfirmTeamMemberRemovalFailed(params) {\n    return _log(14135, 'ConfirmTeamMemberRemovalFailed', 'ConfirmTeamMemberRemovalFailedWebJs', params);\n}\nexports.logConfirmTeamMemberRemovalFailed = logConfirmTeamMemberRemovalFailed;\n/* Admin confirmed removal of a team member. */\nfunction logConfirmTeamMemberRemoval(params) {\n    return _log(14133, 'ConfirmTeamMemberRemoval', 'ConfirmTeamMemberRemovalWebJs', params);\n}\nexports.logConfirmTeamMemberRemoval = logConfirmTeamMemberRemoval;\n/* On MUL order confirmation page click \"Purchase\" button. */\nfunction logConfirmedPayment(params) {\n    return _log(15835, 'ConfirmedPayment', 'ConfirmedPaymentWebJs', params);\n}\nexports.logConfirmedPayment = logConfirmedPayment;\n/* User connected their Prezi account to a social account (Facebook, Google, etc.). */\nfunction logConnectSocialAccount(params) {\n    return _log(16428, 'ConnectSocialAccount', 'ConnectSocialAccountWebJs', params);\n}\nexports.logConnectSocialAccount = logConnectSocialAccount;\n/* User clicks on \"Contact support\" in Invoices tab at Admin Console. */\nfunction logContactSupport() {\n    return _log(13883, 'ContactSupport', 'ContactSupportWebJs');\n}\nexports.logContactSupport = logContactSupport;\n/* User clicked on 'Contact admin' button in the 'Licenses' section of 'Account settings'. */\nfunction logContactTeamAdmin(params) {\n    return _log(15250, 'ContactTeamAdmin', 'ContactTeamAdminWebJs', params);\n}\nexports.logContactTeamAdmin = logContactTeamAdmin;\n/* A presentation was successfully copied. */\nfunction logCopiedPresentation(params) {\n    return _log(15536, 'CopiedPresentation', 'CopiedPresentationWebJs', params);\n}\nexports.logCopiedPresentation = logCopiedPresentation;\n/* User clicks on the button to copy the embed code to the clipboard on the view page. */\nfunction logCopyEmbedCodeToClipboard(params) {\n    return _log(15833, 'CopyEmbedCodeToClipboard', 'CopyEmbedCodeToClipboardWebJs', params);\n}\nexports.logCopyEmbedCodeToClipboard = logCopyEmbedCodeToClipboard;\n/* User copied a presentation. */\nfunction logCopyPresentation(params) {\n    return _log(15124, 'CopyPresentation', 'CopyPresentationWebJs', params);\n}\nexports.logCopyPresentation = logCopyPresentation;\n/* User copied view link with a button. */\nfunction logCopyViewLink(params) {\n    return _log(14614, 'CopyViewLink', 'CopyViewLinkWebJs', params);\n}\nexports.logCopyViewLink = logCopyViewLink;\n/* User started to create a new presentation by importing a PPT. */\nfunction logCreateNewPresentationFromPpt(params) {\n    return _log(16321, 'CreateNewPresentationFromPpt', 'CreateNewPresentationFromPptWebJs', params);\n}\nexports.logCreateNewPresentationFromPpt = logCreateNewPresentationFromPpt;\n/* User clicked \"From scratch\" on creation welcome screen. */\nfunction logCreateNewPresentationFromScratch(params) {\n    return _log(16323, 'CreateNewPresentationFromScratch', 'CreateNewPresentationFromScratchWebJs', params);\n}\nexports.logCreateNewPresentationFromScratch = logCreateNewPresentationFromScratch;\n/* User clicked \"From a template\" on the creation welcome screen. */\nfunction logCreateNewPresentationFromTemplate(params) {\n    return _log(16325, 'CreateNewPresentationFromTemplate', 'CreateNewPresentationFromTemplateWebJs', params);\n}\nexports.logCreateNewPresentationFromTemplate = logCreateNewPresentationFromTemplate;\n/* User clicked on the 'New presentation' button. */\nfunction logCreateNewPresentation() {\n    return _log(14755, 'CreateNewPresentation', 'CreateNewPresentationWebJs');\n}\nexports.logCreateNewPresentation = logCreateNewPresentation;\n/* User clicked \"With custom branding\" on creation welcome screen. */\nfunction logCreateNewPresentationWithCustomBranding() {\n    return _log(15005, 'CreateNewPresentationWithCustomBranding', 'CreateNewPresentationWithCustomBrandingWebJs');\n}\nexports.logCreateNewPresentationWithCustomBranding = logCreateNewPresentationWithCustomBranding;\n/* User created a new folder. */\nfunction logCreatedNewFolder(params) {\n    return _log(15256, 'CreatedNewFolder', 'CreatedNewFolderWebJs', params);\n}\nexports.logCreatedNewFolder = logCreatedNewFolder;\n/* User created a new view link for a presentation. */\nfunction logCreatedViewLink(params) {\n    return _log(15267, 'CreatedViewLink', 'CreatedViewLinkWebJs', params);\n}\nexports.logCreatedViewLink = logCreatedViewLink;\n/* User deactivated a view link. */\nfunction logDeactivatedViewLink(params) {\n    return _log(14619, 'DeactivatedViewLink', 'DeactivatedViewLinkWebJs', params);\n}\nexports.logDeactivatedViewLink = logDeactivatedViewLink;\n/* User started deleting their Prezi account. */\nfunction logDeleteAccount() {\n    return _log(14150, 'DeleteAccount', 'DeleteAccountWebJs');\n}\nexports.logDeleteAccount = logDeleteAccount;\n/* User started deleting a folder. */\nfunction logDeleteFolder(params) {\n    return _log(15272, 'DeleteFolder', 'DeleteFolderWebJs', params);\n}\nexports.logDeleteFolder = logDeleteFolder;\n/* Team admin disables SAML SSO switch in Admin Console, Settings. */\nfunction logDisableSamlSwitch(params) {\n    return _log(16445, 'DisableSamlSwitch', 'DisableSamlSwitchWebJs', params);\n}\nexports.logDisableSamlSwitch = logDisableSamlSwitch;\n/* SAML SSO has been successfully disabled by the Team Admin. */\nfunction logDisabledSaml(params) {\n    return _log(16460, 'DisabledSaml', 'DisabledSamlWebJs', params);\n}\nexports.logDisabledSaml = logDisabledSaml;\n/* User disconnected their Prezi account from a social account it was previously connected to. */\nfunction logDisconnectSocialAccount(params) {\n    return _log(16430, 'DisconnectSocialAccount', 'DisconnectSocialAccountWebJs', params);\n}\nexports.logDisconnectSocialAccount = logDisconnectSocialAccount;\n/* List of invoices has been printed to the Team Admin (True; False). */\nfunction logDisplayedInvoices(params) {\n    return _log(13885, 'DisplayedInvoices', 'DisplayedInvoicesWebJs', params);\n}\nexports.logDisplayedInvoices = logDisplayedInvoices;\n/* User clicked on the 'Download CSV' button on the Analytics dashboard, on an Analytics detail page or on the company leaderboard. */\nfunction logDownloadAnalyticsCsv(params) {\n    return _log(14157, 'DownloadAnalyticsCsv', 'DownloadAnalyticsCsvWebJs', params);\n}\nexports.logDownloadAnalyticsCsv = logDownloadAnalyticsCsv;\n/* The download of the Next desktop app has begun. */\nfunction logDownloadAppStarted() {\n    return _log(15801, 'DownloadAppStarted', 'DownloadAppStartedWebJs');\n}\nexports.logDownloadAppStarted = logDownloadAppStarted;\n/* User downloaded the Next desktop app. */\nfunction logDownloadApp() {\n    return _log(15797, 'DownloadApp', 'DownloadAppWebJs');\n}\nexports.logDownloadApp = logDownloadApp;\n/* Click on Download selected frames as images.. */\nfunction logDownloadFramesAsImages(params) {\n    return _log(16309, 'DownloadFramesAsImages', 'DownloadFramesAsImagesWebJs', params);\n}\nexports.logDownloadFramesAsImages = logDownloadFramesAsImages;\n/* User clicked \"Download\" to download an invoice from the list. */\nfunction logDownloadInvoice(params) {\n    return _log(13887, 'DownloadInvoice', 'DownloadInvoiceWebJs', params);\n}\nexports.logDownloadInvoice = logDownloadInvoice;\n/* User navigated to download the Prezi mobile app when following a link to join a Live Prezi session. */\nfunction logDownloadMobileApp() {\n    return _log(14164, 'DownloadMobileApp', 'DownloadMobileAppWebJs');\n}\nexports.logDownloadMobileApp = logDownloadMobileApp;\n/* Admin downloaded the list of all presentations created by the members of a team as a CSV. */\nfunction logDownloadTeamPresentationsList(params) {\n    return _log(14169, 'DownloadTeamPresentationsList', 'DownloadTeamPresentationsListWebJs', params);\n}\nexports.logDownloadTeamPresentationsList = logDownloadTeamPresentationsList;\n/* DownloadVideoApp. */\nfunction logDownloadVideoApp() {\n    return _log(15770, 'DownloadVideoApp', 'DownloadVideoAppWebJs');\n}\nexports.logDownloadVideoApp = logDownloadVideoApp;\n/* Team admin enables SAML SSO switch in Admin Console, Settings. */\nfunction logEnableSamlSwitch(params) {\n    return _log(16447, 'EnableSamlSwitch', 'EnableSamlSwitchWebJs', params);\n}\nexports.logEnableSamlSwitch = logEnableSamlSwitch;\n/* SAML SSO has been successfully enabled by the Team Admin. */\nfunction logEnabledSaml(params) {\n    return _log(16463, 'EnabledSaml', 'EnabledSamlWebJs', params);\n}\nexports.logEnabledSaml = logEnabledSaml;\n/* User clicked \"Explore presentations\" on the welcome screen. */\nfunction logExplorePresentations(params) {\n    return _log(16327, 'ExplorePresentations', 'ExplorePresentationsWebJs', params);\n}\nexports.logExplorePresentations = logExplorePresentations;\n/* User started to export a presentation as PDF. */\nfunction logExportPdf(params) {\n    return _log(14179, 'ExportPdf', 'ExportPdfWebJs', params);\n}\nexports.logExportPdf = logExportPdf;\n/* User started to export a presentation as PPT. */\nfunction logExportPpt(params) {\n    return _log(14186, 'ExportPpt', 'ExportPptWebJs', params);\n}\nexports.logExportPpt = logExportPpt;\n/* The zuora Iframe failed to load. */\nfunction logFailedIframeLoad() {\n    return _log(15140, 'FailedIframeLoad', 'FailedIframeLoadWebJs');\n}\nexports.logFailedIframeLoad = logFailedIframeLoad;\n/* Failed payment on the buy now page. */\nfunction logFailedPaymentBuyNow(params) {\n    return _log(14941, 'FailedPaymentBuyNow', 'FailedPaymentBuyNowWebJs', params);\n}\nexports.logFailedPaymentBuyNow = logFailedPaymentBuyNow;\n/* The zuora iframe returned an error with the payment. */\nfunction logFailedPaymentSubmit(params) {\n    return _log(15142, 'FailedPaymentSubmit', 'FailedPaymentSubmitWebJs', params);\n}\nexports.logFailedPaymentSubmit = logFailedPaymentSubmit;\n/* User failed to log in using SAML SSO email login form on page \"Log in with SAML\". */\nfunction logFailedSamlLogin(params) {\n    return _log(16469, 'FailedSamlLogin', 'FailedSamlLoginWebJs', params);\n}\nexports.logFailedSamlLogin = logFailedSamlLogin;\n/* Technical event fired when a presentation could not be copied. */\nfunction logFailedToCopyPresentation(params) {\n    return _log(15546, 'FailedToCopyPresentation', 'FailedToCopyPresentationWebJs', params);\n}\nexports.logFailedToCopyPresentation = logFailedToCopyPresentation;\n/* FilterContent -  replacing FilterPresentation for the new unified dashboard.. */\nfunction logFilterContent(params) {\n    return _log(13281, 'FilterContent', 'FilterContentWebJs', params);\n}\nexports.logFilterContent = logFilterContent;\n/* User filtered presentations listed in the dashboard by their owner (all/created by me/shared with me). */\nfunction logFilterPresentations(params) {\n    return _log(14190, 'FilterPresentations', 'FilterPresentationsWebJs', params);\n}\nexports.logFilterPresentations = logFilterPresentations;\n/* Exporting a presentation as PDF finished. */\nfunction logFinishedExportingPdf(params) {\n    return _log(14194, 'FinishedExportingPdf', 'FinishedExportingPdfWebJs', params);\n}\nexports.logFinishedExportingPdf = logFinishedExportingPdf;\n/* Report offensive content.. */\nfunction logFlagContent(params) {\n    return _log(16311, 'FlagContent', 'FlagContentWebJs', params);\n}\nexports.logFlagContent = logFlagContent;\n/* New team member was added to the team. */\nfunction logInvitedTeamMember(params) {\n    return _log(14210, 'InvitedTeamMember', 'InvitedTeamMemberWebJs', params);\n}\nexports.logInvitedTeamMember = logInvitedTeamMember;\n/* User left full screen while viewing or presenting a presentation. */\nfunction logLeaveFullScreen(params) {\n    return _log(14227, 'LeaveFullScreen', 'LeaveFullScreenWebJs', params);\n}\nexports.logLeaveFullScreen = logLeaveFullScreen;\n/* Describes whether a user has clicked on the like button in a presentation view page. */\nfunction logLikePresentationPage(params) {\n    return _log(15839, 'LikePresentationPage', 'LikePresentationPageWebJs', params);\n}\nexports.logLikePresentationPage = logLikePresentationPage;\n/* User opened the 'View links' dialog (web) or the 'Analytics window' (desktop) from a presentation detail page. */\nfunction logLoadAllViewLinks(params) {\n    return _log(15284, 'LoadAllViewLinks', 'LoadAllViewLinksWebJs', params);\n}\nexports.logLoadAllViewLinks = logLoadAllViewLinks;\n/* OBSOLETE, use the LoadedDetailedView instead.. */\nfunction logLoadDetailedView(params) {\n    return _log(14595, 'LoadDetailedView', 'LoadDetailedViewWebJs', params);\n}\nexports.logLoadDetailedView = logLoadDetailedView;\n/* OBSOLETE, use the LoadedEditor instead.. */\nfunction logLoadEditor(params) {\n    return _log(14548, 'LoadEditor', 'LoadEditorWebJs', params);\n}\nexports.logLoadEditor = logLoadEditor;\n/* OBSOLETE, use the LoadedPreziCard instead.. */\nfunction logLoadPreziCard(params) {\n    return _log(15518, 'LoadPreziCard', 'LoadPreziCardWebJs', params);\n}\nexports.logLoadPreziCard = logLoadPreziCard;\n/* OBSOLETE, use the LoadedPrezi instead.. */\nfunction logLoadPrezi(params) {\n    return _log(14283, 'LoadPrezi', 'LoadPreziWebJs', params);\n}\nexports.logLoadPrezi = logLoadPrezi;\n/* OBSOLETE. Also, warning: Computer only, no mobile/tablet. Loads of Public View page.. */\nfunction logLoadPublicViewPage(params) {\n    return _log(13881, 'LoadPublicViewPage', 'LoadPublicViewPageWebJs', params);\n}\nexports.logLoadPublicViewPage = logLoadPublicViewPage;\n/* Account settings' page loaded. */\nfunction logLoadedAccountSettings() {\n    return _log(14232, 'LoadedAccountSettings', 'LoadedAccountSettingsWebJs');\n}\nexports.logLoadedAccountSettings = logLoadedAccountSettings;\n/* Loaded wordpress blog page. */\nfunction logLoadedBlogPage() {\n    return _log(15793, 'LoadedBlogPage', 'LoadedBlogPageWebJs');\n}\nexports.logLoadedBlogPage = logLoadedBlogPage;\n/* Loaded dialog that explains the reason why we want to send notifications to the user. */\nfunction logLoadedBrowserNotificationsDialog() {\n    return _log(14887, 'LoadedBrowserNotificationsDialog', 'LoadedBrowserNotificationsDialogWebJs');\n}\nexports.logLoadedBrowserNotificationsDialog = logLoadedBrowserNotificationsDialog;\n/* Land on Buy Now page. */\nfunction logLoadedBuyNowPage() {\n    return _log(14909, 'LoadedBuyNowPage', 'LoadedBuyNowPageWebJs');\n}\nexports.logLoadedBuyNowPage = logLoadedBuyNowPage;\n/* Dialog loaded about failed attempt to create a copy of a presentation.. */\nfunction logLoadedCopyFailedDialog(params) {\n    return _log(15028, 'LoadedCopyFailedDialog', 'LoadedCopyFailedDialogWebJs', params);\n}\nexports.logLoadedCopyFailedDialog = logLoadedCopyFailedDialog;\n/* Dialog loaded about presentation copying in progress.. */\nfunction logLoadedCopyInProgressDialog(params) {\n    return _log(15034, 'LoadedCopyInProgressDialog', 'LoadedCopyInProgressDialogWebJs', params);\n}\nexports.logLoadedCopyInProgressDialog = logLoadedCopyInProgressDialog;\n/* Dashboard was loaded. */\nfunction logLoadedDashboard(params) {\n    return _log(13277, 'LoadedDashboard', 'LoadedDashboardWebJs', params);\n}\nexports.logLoadedDashboard = logLoadedDashboard;\n/* Detail page of a presentation was loaded. */\nfunction logLoadedDetailedView(params) {\n    return _log(14237, 'LoadedDetailedView', 'LoadedDetailedViewWebJs', params);\n}\nexports.logLoadedDetailedView = logLoadedDetailedView;\n/* Dialog loaded to inform user they tried to reach a feature available only on desktop app . */\nfunction logLoadedDownloadAppDialog() {\n    return _log(14245, 'LoadedDownloadAppDialog', 'LoadedDownloadAppDialogWebJs');\n}\nexports.logLoadedDownloadAppDialog = logLoadedDownloadAppDialog;\n/* Editor loaded completely. */\nfunction logLoadedEditor(params) {\n    return _log(14949, 'LoadedEditor', 'LoadedEditorWebJs', params);\n}\nexports.logLoadedEditor = logLoadedEditor;\n/* Presentations in the selected folder loaded. */\nfunction logLoadedFolder(params) {\n    return _log(14257, 'LoadedFolder', 'LoadedFolderWebJs', params);\n}\nexports.logLoadedFolder = logLoadedFolder;\n/* Collection automatically opened.. */\nfunction logLoadedFrameCollection(params) {\n    return _log(16313, 'LoadedFrameCollection', 'LoadedFrameCollectionWebJs', params);\n}\nexports.logLoadedFrameCollection = logLoadedFrameCollection;\n/* Live Prezi page for followers loaded. */\nfunction logLoadedLivePreziFollowPage(params) {\n    return _log(14262, 'LoadedLivePreziFollowPage', 'LoadedLivePreziFollowPageWebJs', params);\n}\nexports.logLoadedLivePreziFollowPage = logLoadedLivePreziFollowPage;\n/* Showed a browser notification to the user. */\nfunction logLoadedNotification(params) {\n    return _log(14889, 'LoadedNotification', 'LoadedNotificationWebJs', params);\n}\nexports.logLoadedNotification = logLoadedNotification;\n/* TECHNICAL EVENT: A paywall dialog popped up for a user. */\nfunction logLoadedPaywallDialog(params) {\n    return _log(15803, 'LoadedPaywallDialog', 'LoadedPaywallDialogWebJs', params);\n}\nexports.logLoadedPaywallDialog = logLoadedPaywallDialog;\n/* Prezi card loaded on the dashboard. */\nfunction logLoadedPreziCard(params) {\n    return _log(15296, 'LoadedPreziCard', 'LoadedPreziCardWebJs', params);\n}\nexports.logLoadedPreziCard = logLoadedPreziCard;\n/* Presentation loaded for view. */\nfunction logLoadedPrezi(params) {\n    return _log(15294, 'LoadedPrezi', 'LoadedPreziWebJs', params);\n}\nexports.logLoadedPrezi = logLoadedPrezi;\n/* View page of a public presentation loaded. */\nfunction logLoadedPublicViewPage(params) {\n    return _log(15298, 'LoadedPublicViewPage', 'LoadedPublicViewPageWebJs', params);\n}\nexports.logLoadedPublicViewPage = logLoadedPublicViewPage;\n/* Segmentation dialog loaded automatically for SUL users when opening the dashboard for the first time. */\nfunction logLoadedSegmentationDialog() {\n    return _log(15300, 'LoadedSegmentationDialog', 'LoadedSegmentationDialogWebJs');\n}\nexports.logLoadedSegmentationDialog = logLoadedSegmentationDialog;\n/* Team invitation dialog displayed on the dashboard for newly invited team member. */\nfunction logLoadedTeamInvitationDialog(params) {\n    return _log(15302, 'LoadedTeamInvitationDialog', 'LoadedTeamInvitationDialogWebJs', params);\n}\nexports.logLoadedTeamInvitationDialog = logLoadedTeamInvitationDialog;\n/* Team member list loaded on the admin console. */\nfunction logLoadedTeamMemberList(params) {\n    return _log(14272, 'LoadedTeamMemberList', 'LoadedTeamMemberListWebJs', params);\n}\nexports.logLoadedTeamMemberList = logLoadedTeamMemberList;\n/* Signup page for newly invited team member loaded. */\nfunction logLoadedTeamMemberSignupPage() {\n    return _log(15304, 'LoadedTeamMemberSignupPage', 'LoadedTeamMemberSignupPageWebJs');\n}\nexports.logLoadedTeamMemberSignupPage = logLoadedTeamMemberSignupPage;\n/* List of templates loaded. */\nfunction logLoadedTemplateList(params) {\n    return _log(16389, 'LoadedTemplateList', 'LoadedTemplateListWebJs', params);\n}\nexports.logLoadedTemplateList = logLoadedTemplateList;\n/* Transcript of a public presentation loaded on the view page. */\nfunction logLoadedTranscript(params) {\n    return _log(15308, 'LoadedTranscript', 'LoadedTranscriptWebJs', params);\n}\nexports.logLoadedTranscript = logLoadedTranscript;\n/* Viewer identification form loaded after opening a view link (if this option was set for the link). */\nfunction logLoadedViewerIdentificationForm(params) {\n    return _log(15515, 'LoadedViewerIdentificationForm', 'LoadedViewerIdentificationFormWebJs', params);\n}\nexports.logLoadedViewerIdentificationForm = logLoadedViewerIdentificationForm;\n/* Viewer was fully loaded. */\nfunction logLoadedViewer(params) {\n    return _log(15316, 'LoadedViewer', 'LoadedViewerWebJs', params);\n}\nexports.logLoadedViewer = logLoadedViewer;\n/* User was authenticated. */\nfunction logLoggedIn(params) {\n    return _log(16496, 'LoggedIn', 'LoggedInWebJs', params);\n}\nexports.logLoggedIn = logLoggedIn;\n/* User filled in login information and submitted it to log in to Prezi. */\nfunction logLogin(params) {\n    return _log(16502, 'Login', 'LoginWebJs', params);\n}\nexports.logLogin = logLogin;\n/* Admin promoted a team member to admin. */\nfunction logMakeAdmin(params) {\n    return _log(14296, 'MakeAdmin', 'MakeAdminWebJs', params);\n}\nexports.logMakeAdmin = logMakeAdmin;\n/* User navigated in the presentation. */\nfunction logNavigatePrezi(params) {\n    return _log(15472, 'NavigatePrezi', 'NavigatePreziWebJs', params);\n}\nexports.logNavigatePrezi = logNavigatePrezi;\n/* New session started. */\nfunction logNewSession() {\n    return _log(15331, 'NewSession', 'NewSessionWebJs');\n}\nexports.logNewSession = logNewSession;\n/* User opened 'Account settings'. */\nfunction logOpenAccountSettings() {\n    return _log(14783, 'OpenAccountSettings', 'OpenAccountSettingsWebJs');\n}\nexports.logOpenAccountSettings = logOpenAccountSettings;\n/* User opened the 'View links' dialog where all previously created links are listed. */\nfunction logOpenAllViewLinks(params) {\n    return _log(15347, 'OpenAllViewLinks', 'OpenAllViewLinksWebJs', params);\n}\nexports.logOpenAllViewLinks = logOpenAllViewLinks;\n/* User clicked on a view link of a presentation listed on the analytics dashboard to go to the analytics detail page. */\nfunction logOpenAnalyticsDetailsPage(params) {\n    return _log(15353, 'OpenAnalyticsDetailsPage', 'OpenAnalyticsDetailsPageWebJs', params);\n}\nexports.logOpenAnalyticsDetailsPage = logOpenAnalyticsDetailsPage;\n/* User opened the settings dropdown of a view link from an analytics detail page. */\nfunction logOpenAnalyticsLinkSettings(params) {\n    return _log(15355, 'OpenAnalyticsLinkSettings', 'OpenAnalyticsLinkSettingsWebJs', params);\n}\nexports.logOpenAnalyticsLinkSettings = logOpenAnalyticsLinkSettings;\n/* User opened the analytics dashboard. */\nfunction logOpenAnalytics() {\n    return _log(15349, 'OpenAnalytics', 'OpenAnalyticsWebJs');\n}\nexports.logOpenAnalytics = logOpenAnalytics;\n/* User opened a Prezi support article. */\nfunction logOpenArticle(params) {\n    return _log(16422, 'OpenArticle', 'OpenArticleWebJs', params);\n}\nexports.logOpenArticle = logOpenArticle;\n/* User opened the 'Add collaborator' dialog in the mobile app. */\nfunction logOpenCollaboratorsDialog(params) {\n    return _log(14605, 'OpenCollaboratorsDialog', 'OpenCollaboratorsDialogWebJs', params);\n}\nexports.logOpenCollaboratorsDialog = logOpenCollaboratorsDialog;\n/* User navigated to the 'company leaderboard' on the analytics dashboard. */\nfunction logOpenCompanyLeaderboard(params) {\n    return _log(14323, 'OpenCompanyLeaderboard', 'OpenCompanyLeaderboardWebJs', params);\n}\nexports.logOpenCompanyLeaderboard = logOpenCompanyLeaderboard;\n/* User clicked on the 'Create new link' button on the analytics dashboard. */\nfunction logOpenCreateAnalyticsLinkDialog() {\n    return _log(14325, 'OpenCreateAnalyticsLinkDialog', 'OpenCreateAnalyticsLinkDialogWebJs');\n}\nexports.logOpenCreateAnalyticsLinkDialog = logOpenCreateAnalyticsLinkDialog;\n/* User opened the 'Create new link' dialog. */\nfunction logOpenCreateViewLinkDialog(params) {\n    return _log(14599, 'OpenCreateViewLinkDialog', 'OpenCreateViewLinkDialogWebJs', params);\n}\nexports.logOpenCreateViewLinkDialog = logOpenCreateViewLinkDialog;\n/* User navigated to the dashboard by switching between Prezi Classic or Prezi Next, or by arriving from the onboarding presentation. */\nfunction logOpenDashboard(params) {\n    return _log(14745, 'OpenDashboard', 'OpenDashboardWebJs', params);\n}\nexports.logOpenDashboard = logOpenDashboard;\n/* User started deleting a folder. */\nfunction logOpenDeleteFolderDialog(params) {\n    return _log(14328, 'OpenDeleteFolderDialog', 'OpenDeleteFolderDialogWebJs', params);\n}\nexports.logOpenDeleteFolderDialog = logOpenDeleteFolderDialog;\n/* User started deleting a presentation. */\nfunction logOpenDeletePresentationDialog(params) {\n    return _log(14655, 'OpenDeletePresentationDialog', 'OpenDeletePresentationDialogWebJs', params);\n}\nexports.logOpenDeletePresentationDialog = logOpenDeletePresentationDialog;\n/* User opened the detail page of a presentation from the dashboard. */\nfunction logOpenDetailedView(params) {\n    return _log(15524, 'OpenDetailedView', 'OpenDetailedViewWebJs', params);\n}\nexports.logOpenDetailedView = logOpenDetailedView;\n/* User opened the 'Download presentation' dialog to export the presentation in a portable format. */\nfunction logOpenDownloadPresentationDialog(params) {\n    return _log(15528, 'OpenDownloadPresentationDialog', 'OpenDownloadPresentationDialogWebJs', params);\n}\nexports.logOpenDownloadPresentationDialog = logOpenDownloadPresentationDialog;\n/* User opened a presentation to edit. */\nfunction logOpenEditor(params) {\n    return _log(14638, 'OpenEditor', 'OpenEditorWebJs', params);\n}\nexports.logOpenEditor = logOpenEditor;\n/* User opened the 'Export to PDF' dialog to export a presentation as a PDF. */\nfunction logOpenExportPdfDialog(params) {\n    return _log(14652, 'OpenExportPdfDialog', 'OpenExportPdfDialogWebJs', params);\n}\nexports.logOpenExportPdfDialog = logOpenExportPdfDialog;\n/* User opened the 'Export to PowerPoint' dialog to export a presentation as a PPT. */\nfunction logOpenExportPptDialog(params) {\n    return _log(14335, 'OpenExportPptDialog', 'OpenExportPptDialogWebJs', params);\n}\nexports.logOpenExportPptDialog = logOpenExportPptDialog;\n/* User clicked on the 'Save PDF' button to open exported PDF. */\nfunction logOpenExportedPdf(params) {\n    return _log(14333, 'OpenExportedPdf', 'OpenExportedPdfWebJs', params);\n}\nexports.logOpenExportedPdf = logOpenExportedPdf;\n/* User opened the list of collaborators of a folder with the 'Share' button or the 'Invite collaborators' link. */\nfunction logOpenFolderCollaboratorsDialog(params) {\n    return _log(15357, 'OpenFolderCollaboratorsDialog', 'OpenFolderCollaboratorsDialogWebJs', params);\n}\nexports.logOpenFolderCollaboratorsDialog = logOpenFolderCollaboratorsDialog;\n/* User selected to add the presentation to a folder, list of folders displayed. */\nfunction logOpenFolderListForPresentation(params) {\n    return _log(15363, 'OpenFolderListForPresentation', 'OpenFolderListForPresentationWebJs', params);\n}\nexports.logOpenFolderListForPresentation = logOpenFolderListForPresentation;\n/* User clicked on a folder to list presentations in it. */\nfunction logOpenFolder(params) {\n    return _log(14340, 'OpenFolder', 'OpenFolderWebJs', params);\n}\nexports.logOpenFolder = logOpenFolder;\n/* Pull up collection.. */\nfunction logOpenFrameCollection(params) {\n    return _log(16317, 'OpenFrameCollection', 'OpenFrameCollectionWebJs', params);\n}\nexports.logOpenFrameCollection = logOpenFrameCollection;\n/* Click on frame. */\nfunction logOpenFrame(params) {\n    return _log(16315, 'OpenFrame', 'OpenFrameWebJs', params);\n}\nexports.logOpenFrame = logOpenFrame;\n/* User opened the Help menu. */\nfunction logOpenHelpMenu() {\n    return _log(14345, 'OpenHelpMenu', 'OpenHelpMenuWebJs');\n}\nexports.logOpenHelpMenu = logOpenHelpMenu;\n/* User opened the intercom panel. */\nfunction logOpenIntercom() {\n    return _log(14349, 'OpenIntercom', 'OpenIntercomWebJs');\n}\nexports.logOpenIntercom = logOpenIntercom;\n/* User has opened Invoices tab in Admin Console (True; False). */\nfunction logOpenInvoices(params) {\n    return _log(13889, 'OpenInvoices', 'OpenInvoicesWebJs', params);\n}\nexports.logOpenInvoices = logOpenInvoices;\n/* User navigated to the Prezi knowledge base. */\nfunction logOpenKnowledgeBase() {\n    return _log(14351, 'OpenKnowledgeBase', 'OpenKnowledgeBaseWebJs');\n}\nexports.logOpenKnowledgeBase = logOpenKnowledgeBase;\n/* User opened the language chooser dropdown. */\nfunction logOpenLanguageChooser() {\n    return _log(14357, 'OpenLanguageChooser', 'OpenLanguageChooserWebJs');\n}\nexports.logOpenLanguageChooser = logOpenLanguageChooser;\n/* User navigated to the learn page. */\nfunction logOpenLearnPage() {\n    return _log(15479, 'OpenLearnPage', 'OpenLearnPageWebJs');\n}\nexports.logOpenLearnPage = logOpenLearnPage;\n/* User selected the 'License' section of 'Account settings'. */\nfunction logOpenLicenseSettings() {\n    return _log(14359, 'OpenLicenseSettings', 'OpenLicenseSettingsWebJs');\n}\nexports.logOpenLicenseSettings = logOpenLicenseSettings;\n/* User initiated a Live Prezi session on a presentation. */\nfunction logOpenLivePreziDialog(params) {\n    return _log(14644, 'OpenLivePreziDialog', 'OpenLivePreziDialogWebJs', params);\n}\nexports.logOpenLivePreziDialog = logOpenLivePreziDialog;\n/* User opened the Prezi mobile app when following a link to join a Live Prezi session. */\nfunction logOpenMobileApp() {\n    return _log(15390, 'OpenMobileApp', 'OpenMobileAppWebJs');\n}\nexports.logOpenMobileApp = logOpenMobileApp;\n/* User opened the mobile apps download page. */\nfunction logOpenMobileAppsPage() {\n    return _log(14361, 'OpenMobileAppsPage', 'OpenMobileAppsPageWebJs');\n}\nexports.logOpenMobileAppsPage = logOpenMobileAppsPage;\n/* Used opened the browser notification. */\nfunction logOpenNotification() {\n    return _log(14891, 'OpenNotification', 'OpenNotificationWebJs');\n}\nexports.logOpenNotification = logOpenNotification;\n/* User opened the presentation card menu of the onboarding presentation titled 'Getting started'. */\nfunction logOpenOnboardingPreziCardMenu(params) {\n    return _log(15165, 'OpenOnboardingPreziCardMenu', 'OpenOnboardingPreziCardMenuWebJs', params);\n}\nexports.logOpenOnboardingPreziCardMenu = logOpenOnboardingPreziCardMenu;\n/* User opened the detail page of the onboarding presentation titled 'Getting started'. */\nfunction logOpenOnboardingPreziDetailedView(params) {\n    return _log(15395, 'OpenOnboardingPreziDetailedView', 'OpenOnboardingPreziDetailedViewWebJs', params);\n}\nexports.logOpenOnboardingPreziDetailedView = logOpenOnboardingPreziDetailedView;\n/* User opened the onboarding presentation titled 'Getting started' for editing. */\nfunction logOpenOnboardingPreziToEdit(params) {\n    return _log(15171, 'OpenOnboardingPreziToEdit', 'OpenOnboardingPreziToEditWebJs', params);\n}\nexports.logOpenOnboardingPreziToEdit = logOpenOnboardingPreziToEdit;\n/* User opened the onboarding presentation titled 'Getting started' for viewing. */\nfunction logOpenOnboardingPreziToPresent(params) {\n    return _log(15174, 'OpenOnboardingPreziToPresent', 'OpenOnboardingPreziToPresentWebJs', params);\n}\nexports.logOpenOnboardingPreziToPresent = logOpenOnboardingPreziToPresent;\n/* User clicked on the watch video link in the onboarding popup to navigate to the 'Get started' page. */\nfunction logOpenOnboardingVideo(params) {\n    return _log(15403, 'OpenOnboardingVideo', 'OpenOnboardingVideoWebJs', params);\n}\nexports.logOpenOnboardingVideo = logOpenOnboardingVideo;\n/* User opened the presentation card menu of a presentation listed on the dashboard. */\nfunction logOpenPresentationCardMenu(params) {\n    return _log(14376, 'OpenPresentationCardMenu', 'OpenPresentationCardMenuWebJs', params);\n}\nexports.logOpenPresentationCardMenu = logOpenPresentationCardMenu;\n/* User opened the presentation filter dropdown on the dashboard. */\nfunction logOpenPresentationFilter() {\n    return _log(14379, 'OpenPresentationFilter', 'OpenPresentationFilterWebJs');\n}\nexports.logOpenPresentationFilter = logOpenPresentationFilter;\n/* User opened the Presenter view of a presentation. */\nfunction logOpenPresenterView(params) {\n    return _log(15405, 'OpenPresenterView', 'OpenPresenterViewWebJs', params);\n}\nexports.logOpenPresenterView = logOpenPresenterView;\n/* Visitor clicked on a recommended presentation or template thumbnail on a public view page. */\nfunction logOpenPreziCard(params) {\n    return _log(15000, 'OpenPreziCard', 'OpenPreziCardWebJs', params);\n}\nexports.logOpenPreziCard = logOpenPreziCard;\n/* User started setting up a remote control on the desktop app or their mobile device. */\nfunction logOpenPreziRemote() {\n    return _log(15414, 'OpenPreziRemote', 'OpenPreziRemoteWebJs');\n}\nexports.logOpenPreziRemote = logOpenPreziRemote;\n/* User opened the privacy dialog of a presentation. */\nfunction logOpenPrivacyDialog(params) {\n    return _log(15420, 'OpenPrivacyDialog', 'OpenPrivacyDialogWebJs', params);\n}\nexports.logOpenPrivacyDialog = logOpenPrivacyDialog;\n/* User switched between Prezi Classic and Prezi Next dashboards. */\nfunction logOpenProductSwitcher() {\n    return _log(14385, 'OpenProductSwitcher', 'OpenProductSwitcherWebJs');\n}\nexports.logOpenProductSwitcher = logOpenProductSwitcher;\n/* User selected the 'Profile' section of 'Account settings'. */\nfunction logOpenProfileSettings() {\n    return _log(14388, 'OpenProfileSettings', 'OpenProfileSettingsWebJs');\n}\nexports.logOpenProfileSettings = logOpenProfileSettings;\n/* User clicked on a social media sharing button. */\nfunction logOpenSocialShare(params) {\n    return _log(15429, 'OpenSocialShare', 'OpenSocialShareWebJs', params);\n}\nexports.logOpenSocialShare = logOpenSocialShare;\n/* User navigated to the Prezi support page. */\nfunction logOpenSupportPage() {\n    return _log(14394, 'OpenSupportPage', 'OpenSupportPageWebJs');\n}\nexports.logOpenSupportPage = logOpenSupportPage;\n/* Admin opened the team member list on the admin console. */\nfunction logOpenTeamMemberList(params) {\n    return _log(14396, 'OpenTeamMemberList', 'OpenTeamMemberListWebJs', params);\n}\nexports.logOpenTeamMemberList = logOpenTeamMemberList;\n/* Admin navigated to the 'Settings' part of the admin console. */\nfunction logOpenTeamSettings(params) {\n    return _log(14398, 'OpenTeamSettings', 'OpenTeamSettingsWebJs', params);\n}\nexports.logOpenTeamSettings = logOpenTeamSettings;\n/* User opened a presentation to comment. */\nfunction logOpenToComment(params) {\n    return _log(15433, 'OpenToComment', 'OpenToCommentWebJs', params);\n}\nexports.logOpenToComment = logOpenToComment;\n/* User opened a presentation listed on the dashboard to view. */\nfunction logOpenToPresent(params) {\n    return _log(15441, 'OpenToPresent', 'OpenToPresentWebJs', params);\n}\nexports.logOpenToPresent = logOpenToPresent;\n/* User navigated to the training page. */\nfunction logOpenTrainingPage() {\n    return _log(15489, 'OpenTrainingPage', 'OpenTrainingPageWebJs');\n}\nexports.logOpenTrainingPage = logOpenTrainingPage;\n/* User clicked on the 'See full transcript' button on the view page of a public presentation. */\nfunction logOpenTranscript(params) {\n    return _log(14405, 'OpenTranscript', 'OpenTranscriptWebJs', params);\n}\nexports.logOpenTranscript = logOpenTranscript;\n/* User opened analytics of a view link on the presentation detail page (web) or in the 'Analytics window' (desktop). */\nfunction logOpenViewLinkAnalytics(params) {\n    return _log(15450, 'OpenViewLinkAnalytics', 'OpenViewLinkAnalyticsWebJs', params);\n}\nexports.logOpenViewLinkAnalytics = logOpenViewLinkAnalytics;\n/* User opened the 'Link setup' dialog from the 'View links' dialog, from the detail page or from the 'Analytics window' (desktop). */\nfunction logOpenViewLinkDialog(params) {\n    return _log(14631, 'OpenViewLinkDialog', 'OpenViewLinkDialogWebJs', params);\n}\nexports.logOpenViewLinkDialog = logOpenViewLinkDialog;\n/* User navigated to the workshop & training page. */\nfunction logOpenWorkshopAndTraining() {\n    return _log(14413, 'OpenWorkshopAndTraining', 'OpenWorkshopAndTrainingWebJs');\n}\nexports.logOpenWorkshopAndTraining = logOpenWorkshopAndTraining;\n/* Team Admin opened \"Admin Settings\". */\nfunction logOpenedAdminSettings(params) {\n    return _log(16443, 'OpenedAdminSettings', 'OpenedAdminSettingsWebJs', params);\n}\nexports.logOpenedAdminSettings = logOpenedAdminSettings;\n/* User has opened Log In page. */\nfunction logOpenedLogin() {\n    return _log(16467, 'OpenedLogin', 'OpenedLoginWebJs');\n}\nexports.logOpenedLogin = logOpenedLogin;\n/* User has opened \"Log in with SAML SSO\" page. */\nfunction logOpenedSamlLogin(params) {\n    return _log(16465, 'OpenedSamlLogin', 'OpenedSamlLoginWebJs', params);\n}\nexports.logOpenedSamlLogin = logOpenedSamlLogin;\n/* User clicked on the play button to view a presentation after following a view link. */\nfunction logPlayPrezi(params) {\n    return _log(14421, 'PlayPrezi', 'PlayPreziWebJs', params);\n}\nexports.logPlayPrezi = logPlayPrezi;\n/* Play video on marketing page. */\nfunction logPlayVideo() {\n    return _log(15618, 'PlayVideo', 'PlayVideoWebJs');\n}\nexports.logPlayVideo = logPlayVideo;\n/* User entered full screen while viewing or presenting a presentation. */\nfunction logPresentInFullScreen(params) {\n    return _log(14427, 'PresentInFullScreen', 'PresentInFullScreenWebJs', params);\n}\nexports.logPresentInFullScreen = logPresentInFullScreen;\n/* The user navigated to the very end of the prezi on the view page, and the restart screen showed up.. */\nfunction logPreziEndScreenShowed(params) {\n    return _log(15066, 'PreziEndScreenShowed', 'PreziEndScreenShowedWebJs', params);\n}\nexports.logPreziEndScreenShowed = logPreziEndScreenShowed;\n/* Admin demoted an admin to a regular team member. */\nfunction logRemoveAsAdmin(params) {\n    return _log(14431, 'RemoveAsAdmin', 'RemoveAsAdminWebJs', params);\n}\nexports.logRemoveAsAdmin = logRemoveAsAdmin;\n/* User removed a collaborator from a folder. */\nfunction logRemoveFolderCollaborator(params) {\n    return _log(15466, 'RemoveFolderCollaborator', 'RemoveFolderCollaboratorWebJs', params);\n}\nexports.logRemoveFolderCollaborator = logRemoveFolderCollaborator;\n/* User removed a presentation from a folder. */\nfunction logRemovePresentationFromFolder(params) {\n    return _log(14438, 'RemovePresentationFromFolder', 'RemovePresentationFromFolderWebJs', params);\n}\nexports.logRemovePresentationFromFolder = logRemovePresentationFromFolder;\n/* Admin removed a member of a team. */\nfunction logRemoveTeamMember(params) {\n    return _log(14442, 'RemoveTeamMember', 'RemoveTeamMemberWebJs', params);\n}\nexports.logRemoveTeamMember = logRemoveTeamMember;\n/* Requested browser notification permissions from the user using the browser's built-in dialog. */\nfunction logRequestedBrowserNotificationsPermission() {\n    return _log(14894, 'RequestedBrowserNotificationsPermission', 'RequestedBrowserNotificationsPermissionWebJs');\n}\nexports.logRequestedBrowserNotificationsPermission = logRequestedBrowserNotificationsPermission;\n/* Invitation to a previously invited team member got resent. */\nfunction logResentTeamMemberInvitation(params) {\n    return _log(14444, 'ResentTeamMemberInvitation', 'ResentTeamMemberInvitationWebJs', params);\n}\nexports.logResentTeamMemberInvitation = logResentTeamMemberInvitation;\n/* User selected to restart at the end of viewing or presenting a presentation. */\nfunction logRestartPrezi(params) {\n    return _log(14447, 'RestartPrezi', 'RestartPreziWebJs', params);\n}\nexports.logRestartPrezi = logRestartPrezi;\n/* User was authenticated successfully with SAML. */\nfunction logSamlLoggedInSuccess(params) {\n    return _log(16499, 'SamlLoggedInSuccess', 'SamlLoggedInSuccessWebJs', params);\n}\nexports.logSamlLoggedInSuccess = logSamlLoggedInSuccess;\n/* Click on Save frame.. */\nfunction logSaveFrame(params) {\n    return _log(16319, 'SaveFrame', 'SaveFrameWebJs', params);\n}\nexports.logSaveFrame = logSaveFrame;\n/* Team admin saves changes to the SAML SSO settings in Admin Console. */\nfunction logSaveSamlSettings(params) {\n    return _log(16449, 'SaveSamlSettings', 'SaveSamlSettingsWebJs', params);\n}\nexports.logSaveSamlSettings = logSaveSamlSettings;\n/* User searches for Prezi content through the search header on the public view page. */\nfunction logSearchContent(params) {\n    return _log(15893, 'SearchContent', 'SearchContentWebJs', params);\n}\nexports.logSearchContent = logSearchContent;\n/* User searched for a presentation on the dashboard. */\nfunction logSearchPresentation() {\n    return _log(14463, 'SearchPresentation', 'SearchPresentationWebJs');\n}\nexports.logSearchPresentation = logSearchPresentation;\n/* The user searches for a presentation on the view page. */\nfunction logSearchPresentations(params) {\n    return _log(15891, 'SearchPresentations', 'SearchPresentationsWebJs', params);\n}\nexports.logSearchPresentations = logSearchPresentations;\n/* The user clicked on the page's bar to search for prezis. */\nfunction logSearchPrezisClicked() {\n    return _log(15074, 'SearchPrezisClicked', 'SearchPrezisClickedWebJs');\n}\nexports.logSearchPrezisClicked = logSearchPrezisClicked;\n/* User hovered over a bar chart displaying time spent on a presentation step, preview of the specific path step displayed. */\nfunction logSeePathStepPreview(params) {\n    return _log(14468, 'SeePathStepPreview', 'SeePathStepPreviewWebJs', params);\n}\nexports.logSeePathStepPreview = logSeePathStepPreview;\n/* User selected a presentation to create a view link for in the 'Create new link' dialog (only if opened from the analytics dashboard). */\nfunction logSelectPresentationForAnalyticsLink(params) {\n    return _log(14470, 'SelectPresentationForAnalyticsLink', 'SelectPresentationForAnalyticsLinkWebJs', params);\n}\nexports.logSelectPresentationForAnalyticsLink = logSelectPresentationForAnalyticsLink;\n/* User set the privacy level (private/public) of a presentation. */\nfunction logSetPrivacy(params) {\n    return _log(14480, 'SetPrivacy', 'SetPrivacyWebJs', params);\n}\nexports.logSetPrivacy = logSetPrivacy;\n/* Long transcript was displayed partially, 'See full transcript' button appeared. */\nfunction logShowPagedTranscript(params) {\n    return _log(14486, 'ShowPagedTranscript', 'ShowPagedTranscriptWebJs', params);\n}\nexports.logShowPagedTranscript = logShowPagedTranscript;\n/* User selected the 'PowerPoint...' item from the Insert top menu. This starts one of the PPT import work-flows. You can findout which one from the ppt_import_flow_version attribute. */\nfunction logShowPptInsertOptions(params) {\n    return _log(14898, 'ShowPptInsertOptions', 'ShowPptInsertOptionsWebJs', params);\n}\nexports.logShowPptInsertOptions = logShowPptInsertOptions;\n/* ShowVideoWelcomeDialog. */\nfunction logShowVideoWelcomeDialog() {\n    return _log(15768, 'ShowVideoWelcomeDialog', 'ShowVideoWelcomeDialogWebJs');\n}\nexports.logShowVideoWelcomeDialog = logShowVideoWelcomeDialog;\n/* The email capture modal on the view page showed up.. */\nfunction logShowedEmailCapture(params) {\n    return _log(15079, 'ShowedEmailCapture', 'ShowedEmailCaptureWebJs', params);\n}\nexports.logShowedEmailCapture = logShowedEmailCapture;\n/* User clicked \"Skip\" on the welcome screen. */\nfunction logSkipWelcomeScreen(params) {\n    return _log(15584, 'SkipWelcomeScreen', 'SkipWelcomeScreenWebJs', params);\n}\nexports.logSkipWelcomeScreen = logSkipWelcomeScreen;\n/* The user clicked on a thumbnail for a story block. */\nfunction logStoryBlockThumbnailClicked(params) {\n    return _log(15099, 'StoryBlockThumbnailClicked', 'StoryBlockThumbnailClickedWebJs', params);\n}\nexports.logStoryBlockThumbnailClicked = logStoryBlockThumbnailClicked;\n/* When signing up for Prezi, a user enters and submits their payment information. */\nfunction logSubmitPaymentInfo() {\n    return _log(14591, 'SubmitPaymentInfo', 'SubmitPaymentInfoWebJs');\n}\nexports.logSubmitPaymentInfo = logSubmitPaymentInfo;\n/* When signing up for Prezi, a user enters and submits their personal information. */\nfunction logSubmitPersonalInfo() {\n    return _log(14593, 'SubmitPersonalInfo', 'SubmitPersonalInfoWebJs');\n}\nexports.logSubmitPersonalInfo = logSubmitPersonalInfo;\n/* User clicked on \"Done\" after adding a survey answer. */\nfunction logSubmittedIntentSurveyAnswer(params) {\n    return _log(15589, 'SubmittedIntentSurveyAnswer', 'SubmittedIntentSurveyAnswerWebJs', params);\n}\nexports.logSubmittedIntentSurveyAnswer = logSubmittedIntentSurveyAnswer;\n/* Segmentation answer saved for SUL users in the first segmentation question. */\nfunction logSubmittedSegmentationAnswer(params) {\n    return _log(15897, 'SubmittedSegmentationAnswer', 'SubmittedSegmentationAnswerWebJs', params);\n}\nexports.logSubmittedSegmentationAnswer = logSubmittedSegmentationAnswer;\n/* Segmentation answer saved for SUL users in the second segmentation question. */\nfunction logSubmittedSubSegmentationAnswer(params) {\n    return _log(15895, 'SubmittedSubSegmentationAnswer', 'SubmittedSubSegmentationAnswerWebJs', params);\n}\nexports.logSubmittedSubSegmentationAnswer = logSubmittedSubSegmentationAnswer;\n/* Viewer filled in and submitted the viewer identification form after opening a view link. */\nfunction logSubmittedViewerIdentificationForm(params) {\n    return _log(14502, 'SubmittedViewerIdentificationForm', 'SubmittedViewerIdentificationFormWebJs', params);\n}\nexports.logSubmittedViewerIdentificationForm = logSubmittedViewerIdentificationForm;\n/* Successful payment on the buy now page. */\nfunction logSuccessfulPaymentBuyNow(params) {\n    return _log(15837, 'SuccessfulPaymentBuyNow', 'SuccessfulPaymentBuyNowWebJs', params);\n}\nexports.logSuccessfulPaymentBuyNow = logSuccessfulPaymentBuyNow;\n/* The user clicked on the page's suggested terms to search for prezis. */\nfunction logSuggestedSearchTermsClicked() {\n    return _log(15109, 'SuggestedSearchTermsClicked', 'SuggestedSearchTermsClickedWebJs');\n}\nexports.logSuggestedSearchTermsClicked = logSuggestedSearchTermsClicked;\n/* Inviting a new team member failed. */\nfunction logTeamMemberInvitationFailed(params) {\n    return _log(14509, 'TeamMemberInvitationFailed', 'TeamMemberInvitationFailedWebJs', params);\n}\nexports.logTeamMemberInvitationFailed = logTeamMemberInvitationFailed;\n/* Tracks if the user clicked on the teaser content shown on the view page. */\nfunction logTeaserContentClicked(params) {\n    return _log(15107, 'TeaserContentClicked', 'TeaserContentClickedWebJs', params);\n}\nexports.logTeaserContentClicked = logTeaserContentClicked;\n/* Tracks whenever a user moves their mouse over the teaser content shown on the view page. */\nfunction logTeaserContentHovered(params) {\n    return _log(15122, 'TeaserContentHovered', 'TeaserContentHoveredWebJs', params);\n}\nexports.logTeaserContentHovered = logTeaserContentHovered;\n/* Describe whether a user has clicked to withdraw their like from a presentation view page. */\nfunction logUnlikePresentationPage(params) {\n    return _log(15841, 'UnlikePresentationPage', 'UnlikePresentationPageWebJs', params);\n}\nexports.logUnlikePresentationPage = logUnlikePresentationPage;\n/* User updated collaborator rights (can edit/present/comment) in the collaborator list. */\nfunction logUpdateCollaborator(params) {\n    return _log(14515, 'UpdateCollaborator', 'UpdateCollaboratorWebJs', params);\n}\nexports.logUpdateCollaborator = logUpdateCollaborator;\n/* Changes to SAML SSO settings have been successfully updated. */\nfunction logUpdatedSaml(params) {\n    return _log(16457, 'UpdatedSaml', 'UpdatedSamlWebJs', params);\n}\nexports.logUpdatedSaml = logUpdatedSaml;\n/* User upgraded their license in Prezi Classic or Prezi Next. */\nfunction logUpgradeLicense(params) {\n    return _log(13973, 'UpgradeLicense', 'UpgradeLicenseWebJs', params);\n}\nexports.logUpgradeLicense = logUpgradeLicense;\n/* User used a deep link to get to a specific part of the product. */\nfunction logUseDeepLink(params) {\n    return _log(14868, 'UseDeepLink', 'UseDeepLinkWebJs', params);\n}\nexports.logUseDeepLink = logUseDeepLink;\n/* Describes when the user picks a template from the web pages. */\nfunction logUseWebTemplate(params) {\n    return _log(15603, 'UseWebTemplate', 'UseWebTemplateWebJs', params);\n}\nexports.logUseWebTemplate = logUseWebTemplate;\n/* The user submitted a search request on the view page.. */\nfunction logViewPageSearchSubmit(params) {\n    return _log(15131, 'ViewPageSearchSubmit', 'ViewPageSearchSubmitWebJs', params);\n}\nexports.logViewPageSearchSubmit = logViewPageSearchSubmit;\n/* The user clicks a CTA on the view page to visit the pricing page. */\nfunction logVisitPricingPage(params) {\n    return _log(15605, 'VisitPricingPage', 'VisitPricingPageWebJs', params);\n}\nexports.logVisitPricingPage = logVisitPricingPage;\n/* The user clicks a CTA to visit the product page. */\nfunction logVisitProductPage(params) {\n    return _log(15150, 'VisitProductPage', 'VisitProductPageWebJs', params);\n}\nexports.logVisitProductPage = logVisitProductPage;\n/* User zoomed in while editing the presenation. */\nfunction logZoomIn(params) {\n    return _log(14555, 'ZoomIn', 'ZoomInWebJs', params);\n}\nexports.logZoomIn = logZoomIn;\n/* User zoomed out while editing the presentation. */\nfunction logZoomOut(params) {\n    return _log(14561, 'ZoomOut', 'ZoomOutWebJs', params);\n}\nexports.logZoomOut = logZoomOut;\n","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!./InfographicSideButtons.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!./InfographicSideButtons.css\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!./InfographicSideButtons.css\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","import i18n from 'i18next';\n\nimport moment from 'moment';\nimport PropTypes from 'prop-types';\nimport React, {Component, Fragment} from 'react';\nimport _ from 'lodash';\n\nimport {getTooltip} from '../../../../../../../client/components/charts/tooltip';\n\n\nimport ChartModel from '../../../../../models/infographic/chart';\nimport ChartFactory from '../../../../../common/chart_factory/chart_factory';\nimport chartDefaultsInit from '../../../../../shared/chart_defaults';\nimport {addEntity, removeEntity} from '../../../../../common/chart_factory/entities';\nimport CurrentInfographicStore from '../../../../main/stores/CurrentInfographicStore';\nimport fetchNewLiveData from '../../../../../components/DataTable/actions/fetchNewLiveData';\n\nimport Dispatcher from '../../../../dispatcher';\nimport ImmutablePropertyReconciler from '../../../../../shared/ImmutablePropertyReconciler';\n\nimport {scrollOrNavigateToPage} from '../../../Scroll/actions';\nimport EditorStateStore from '../../../stores/EditorStateStore';\nimport {CHART_ENTITY_SET} from '../../../constants/EditorConstants';\nimport {pageNumberByKey} from '../../contents/pageNumberByKey';\nimport {withEditorContext} from '../../../../../components/FreeLayoutEditor/base/EditorContext';\nimport AccountLogic from '../../../../../views/account_logic';\nimport offScreenStyle from '../../AccessibilityDescriptionStyle';\nimport {TABLE} from '../../../../../shared/chart_constants';\n\nconst ChartDefaults = chartDefaultsInit(i18n);\n\nconst MIN_CHART_SIZE = 50;\n\nexport async function initialPropsForData(params, options) {\n    const defaults = ChartDefaults[`${params.chartId}_${params.modifier}`] || {};\n    const width = options.elementWidth;\n    const height = Math.ceil(width * 0.75 / 10) * 10;\n    let chartData;\n    if (CurrentInfographicStore.usingBackboneModel) {\n        const response = await fetch(`/api/charts`, {\n            method: 'POST',\n            credentials: 'same-origin',\n            headers: {\n                'Content-Type': 'application/json',\n                'csrf-token': AccountLogic.profile.csrfToken,\n            },\n            body: JSON.stringify({\n                ID1: params.infographicId,\n                chart_type_nr: params.chartId,\n                mod: params.modifier,\n                custom: params.custom,\n                data: params.data,\n            }),\n        });\n        if (!response.ok) throw new Error('Could not create chart');\n        chartData = await response.json();\n    } else {\n        chartData = {\n            chart_type_nr: params.chartId,\n            modifier: params.modifier,\n            colors: CurrentInfographicStore.model.theme.colors,\n            custom: {\n                ...defaults.custom,\n                decimalSeparator: '.',\n                groupingSymbol: 'none',\n                ...params.custom,\n            },\n            defaultColors: CurrentInfographicStore.model.theme.colors,\n            sheetnames: [],\n            sheets_settings: [],\n            data: params.data || defaults.dummy,\n        };\n        if (chartData.chart_type_nr === 24) { // Timer\n            chartData.custom = {};\n            const next = moment().day() === 6 ? 6 + 7 : 6; // next Saturday\n            const d = moment().day(next);\n            chartData.data = [[['Until Next Saturday', d.year(), d.month() + 1, d.date(), 0, 0, 0, 'down', 'years', 'months', 'days', 'hours', 'minutes', 'seconds']]];\n        } else if (chartData.chart_type_nr === 19) { // Table\n            const themeColorCount = chartData.colors.length;\n            for (let i = 0; i < 10; i++) {\n                chartData.colors.push(chartData.colors[i % themeColorCount]);\n            }\n        } else if (chartData.chart_type_nr === 9) { // Map\n            chartData.defaultColorsHeatmap = chartData.colors.slice(0, 2);\n        }\n    }\n    return {\n        width: _.get(defaults.dimensions, 'flex.width', width),\n        height: _.get(defaults.dimensions, 'flex.height', height),\n        minWidth: _.get(defaults.dimensions, 'flex.minWidth', MIN_CHART_SIZE),\n        minHeight: _.get(defaults.dimensions, 'flex.minHeight', MIN_CHART_SIZE),\n        props: {chartData},\n    };\n}\n\n@withEditorContext\nexport default class Chart extends Component {\n    static defaultProps = {\n        liveData: 'enabled',\n        animateCharts: true,\n        freeLayout: true,\n    };\n    static propTypes = {\n        entity: PropTypes.shape({\n            getKey: PropTypes.func.isRequired,\n            getWidth: PropTypes.func.isRequired,\n            getHeight: PropTypes.func.isRequired,\n            getProperty: PropTypes.func.isRequired,\n            getAccessibility: PropTypes.func.isRequired,\n        }).isRequired,\n        design: PropTypes.any.isRequired,\n        editorContext: PropTypes.any.isRequired,\n        liveData: PropTypes.oneOf(['disabled', 'once', 'enabled', 'forceFirst']).isRequired,\n        observer: PropTypes.object,\n        editable: PropTypes.bool,\n        interactivityHintEnabled: PropTypes.bool,\n        scaleX: PropTypes.number.isRequired,\n        scaleY: PropTypes.number.isRequired,\n        groupScaleX: PropTypes.number,\n        groupScaleY: PropTypes.number,\n        animateCharts: PropTypes.bool,\n        freeLayout: PropTypes.bool,\n        onRendered: PropTypes.func,\n        className: PropTypes.string,\n        isPlaceholder: PropTypes.bool,\n        viewMode: PropTypes.string,\n        onSheetClick: PropTypes.func,\n        captureSheetIndex: PropTypes.number,\n        assets: PropTypes.shape({getURL: PropTypes.func.isRequired}),\n    };\n\n    chartRenderPromise = null;\n\n    constructor(props) {\n        super(props);\n        this.fetchNewLiveData = this.fetchNewLiveData.bind(this);\n        this.chartContainer = React.createRef();\n    }\n\n    getChartNamespacedId() {\n        if (this.props.editorContext.chartNamespace) {\n            return this.props.editorContext.chartNamespace + '-' + this.props.entity.getKey();\n        }\n        return this.props.entity.getKey();\n    }\n\n    render() {\n        const style = {\n            width: this.props.entity.getWidth(),\n            transform: `scale(${this.props.scaleX}, ${this.props.scaleY})`,\n            transformOrigin: '0 0',\n        };\n        if (this.props.freeLayout) {\n            style.height = this.props.entity.getHeight();\n        }\n\n        let accessibilityElements;\n        const accessibility = this.props.entity.getAccessibility();\n        if (!this.props.editable && accessibility && accessibility.enabled) {\n            let image;\n            let description;\n            const descriptionID = `${this.getChartNamespacedId()}_description`;\n            if (accessibility.enabled && (accessibility.description || accessibility.label)) {\n                image = (\n                    <img className=\"screen-reader-chart-image\"\n                         alt={accessibility.label ? accessibility.label : undefined}\n                         aria-describedby={accessibility.description ? descriptionID : undefined}\n                         tabIndex={accessibility.description ? '-1' : undefined}\n                    />\n                );\n            }\n            if (accessibility.enabled && accessibility.description) {\n                description = (\n                    <span\n                        id={descriptionID}\n                        style={offScreenStyle}\n                    >\n                        {accessibility.description}\n                    </span>);\n            }\n            accessibilityElements = (\n                <Fragment>\n                    {image}\n                    {description}\n                </Fragment>\n            );\n        }\n\n        return (\n            <Fragment>\n                {accessibilityElements}\n                <div className={this.props.className} ref={this.chartContainer} style={style} role=\"presentation\" aria-hidden=\"true\"/>\n            </Fragment>\n        );\n    }\n\n    componentDidMount() {\n        this._requestChartRender();\n        this.startFetchingLiveData();\n    }\n\n    componentDidUpdate() {\n        this._requestChartRender();\n    }\n\n    componentWillUnmount() {\n        getTooltip().hide();\n        removeEntity(this.getChartNamespacedId());\n        clearTimeout(this._liveRefreshTimer);\n    }\n\n    shouldComponentUpdate(nextProps) {\n        const {entity, design, assets, scaleX, scaleY, groupScaleX, groupScaleY, isPlaceholder} = this.props;\n        if (isPlaceholder) {\n            return false;\n        }\n        const widthChanged = entity.getWidth() !== nextProps.entity.getWidth();\n        const heightChanged = entity.getHeight() !== nextProps.entity.getHeight();\n        const chartData = entity.getProperty('chartData');\n        const dataChanged = chartData !== nextProps.entity.getProperty('chartData');\n        const designChanged = design !== nextProps.design;\n        const scaleChanged = scaleX !== nextProps.scaleX || scaleY !== nextProps.scaleY;\n        const groupScaleChanged = groupScaleX !== nextProps.groupScaleX || groupScaleY !== nextProps.groupScaleY;\n        const typeMod = `${chartData.get('chart_type_nr')}_${chartData.get('modifier')}`;\n        const assetsChanged = typeMod === TABLE && assets !== nextProps.assets; // only tables have assets\n\n        return widthChanged || heightChanged || dataChanged || designChanged || scaleChanged || groupScaleChanged || assetsChanged;\n    }\n\n    fetchNewLiveData(force, sheetIndex) {\n        if (document.hidden) {\n            return Promise.resolve();\n        }\n\n        return fetchNewLiveData(this._chartModel, sheetIndex, force);\n    }\n\n    startFetchingLiveData() {\n        clearTimeout(this._liveRefreshTimer);\n        const {entity, liveData} = this.props;\n        if (!entity.getProperty('chartData').getIn(['custom', 'live', 'enabled'], false)) return;\n        if (liveData === 'once') {\n            const refreshed = entity.getProperty('chartData').getIn(['custom', 'live', 'refreshed']);\n\n            // we fetched already less than 5sec ago, we shouldn't do it again\n            // (usecase is inserting new chart with live data from ElementsMenu)\n            if (refreshed && Date.now() - refreshed < 5000) {\n                return;\n            }\n\n            // If live data is disabled (e.g. in editor) - fetch it once anyway.\n            requestAnimationFrame(() => this.fetchNewLiveData(true));\n        } else if (liveData === 'enabled' || liveData === 'forceFirst') {\n            const refreshInterval = parseInt(entity.getProperty('chartData').getIn(['custom', 'live', 'refresh']), 10);\n\n            if (!refreshInterval) {\n                return;\n            }\n\n            const promiseWhile = (forced = false) => {\n                this.fetchNewLiveData(forced).then(() => {\n                    this._liveRefreshTimer = setTimeout(promiseWhile, refreshInterval);\n                });\n            };\n\n            let force = false;\n            // we are forcing initial call to get the latest data from datasource\n            if (liveData === 'forceFirst') {\n                force = true;\n            }\n\n            requestAnimationFrame(() => {\n                promiseWhile(force);\n            });\n        }\n    }\n\n    _requestChartRender() {\n        if (this.chartRenderPromise) {\n            this.chartRenderPromise = this.chartRenderPromise.then(() => this._renderChart());\n        } else {\n            this.chartRenderPromise = this._renderChart();\n        }\n        this.props.onRendered && this.chartRenderPromise\n            .then(instance => instance.instance.loaded.then(() => instance))\n            .then(this.props.onRendered);\n    }\n\n    _renderChart() {\n        const container = this.chartContainer.current;\n        if (!container) {\n            return Promise.reject();\n        }\n        const infographicModel = CurrentInfographicStore.model;\n        const {entity, editable, design, animateCharts, scaleX, scaleY, groupScaleX, groupScaleY} = this.props;\n        const rawChartData = entity.getProperty('chartData').toJS();\n        const scale = {\n            x: (groupScaleX || scaleX),\n            y: (groupScaleY || scaleY),\n        };\n\n        let tabs = true;\n        const properties = infographicModel.get('properties');\n        if (properties) {\n            tabs = properties.tabs;\n        }\n\n        rawChartData.custom.height = entity.getHeight();\n        rawChartData.chart_id = this.getChartNamespacedId();\n        rawChartData.isFreelayoutInline = this.props.freeLayout;\n\n        const theme = infographicModel.get('theme');\n\n        let replacements;\n        if (this.props.freeLayout) {\n            const reconciler = new ImmutablePropertyReconciler(rawChartData, theme, design);\n            reconciler.reconcile();\n            replacements = reconciler.replacements;\n        }\n\n        this._chartModel = new ChartModel(rawChartData);\n\n        return ChartFactory.create({\n            chart: this._chartModel,\n            container,\n            theme,\n            freeLayout: this.props.freeLayout,\n            tabs,\n            interactivityHintEnabled: this.props.interactivityHintEnabled,\n            observer: this.props.observer,\n            editable,\n            viewMode: this.props.viewMode,\n            scale,\n            animate: animateCharts,\n            onSheetClick: this.props.onSheetClick,\n            captureSheetIndex: this.props.captureSheetIndex,\n            assets: this.props.assets,\n        }).then((factoryInstance) => {\n            const {chart} = factoryInstance;\n            if (this.props.freeLayout) {\n                _.merge(chart.attributes, replacements);\n            }\n            const events = _.get(factoryInstance, 'instance.events');\n            events.on('interaction.flex', (interaction) => {\n                if (interaction.location === 'link') {\n                    const url = interaction.params.value;\n                    const pageNumber = pageNumberByKey(url, EditorStateStore.editorState);\n                    if (pageNumber !== undefined && pageNumber !== -1) {\n                        scrollOrNavigateToPage(pageNumber);\n                    } else {\n                        const w = window.open(url);\n                        w.opener = null; // for security reasons we set opener to null\n                    }\n                }\n            });\n\n            addEntity(this.getChartNamespacedId(), factoryInstance);\n            Dispatcher.dispatch({\n                type: CHART_ENTITY_SET,\n            });\n\n            return factoryInstance;\n        });\n    }\n}\n","const DEFAULT_PADDING = 7;\nconst TRAPEZIUM_OFFSET = 0.2;\n\n/*\n    this function does contain lots of magic numbers, but extraction of those\n    into variables wouldn't make them any less magic, basically it's just\n    geometry + some tinkering in order to get appropriate text box sizes\n*/\nexport default function shapeTextDimensions(entity, w, h) {\n    const type = entity.getProperty('type');\n    let paddingX = DEFAULT_PADDING;\n    let paddingY = DEFAULT_PADDING;\n    let marginString;\n    let width;\n    let height;\n    switch (type) {\n        case 'rectangle': {\n            const rx = entity.getProperty('rx') / 8;\n            const ry = entity.getProperty('ry') / 8;\n            paddingX += rx;\n            paddingY += ry;\n            width = w -(rx + DEFAULT_PADDING) * 2;\n            height = h - (ry + DEFAULT_PADDING) * 2;\n            marginString = `${paddingY}px ${paddingX}px`;\n            break;\n        }\n        case 'ellipse': {\n            height = Math.sqrt(h * h / 2);\n            width = Math.sqrt(w * w / 2);\n            paddingX = (w - width) / 2;\n            paddingY = (h - height) / 2;\n            marginString = `${paddingY}px ${paddingX}px`;\n            break;\n        }\n        case 'cylinder': {\n            width = w -2 * paddingX;\n            height = h * 0.8;\n            marginString = `${h * 0.1}px ${paddingX}px`;\n            break;\n        }\n        case 'oval': {\n            height = h * 0.8;\n            width = w - (height / 2);\n            marginString = `${h * 0.1}px ${h / 4}px`;\n            break;\n        }\n        case 'triangle': {\n            width = w / 2;\n            height = h / 2;\n            marginString = `${height}px 0 0 ${width / 2}px`;\n            break;\n        }\n        case 'cloud': {\n            width = w * 0.6;\n            height = h * 0.6;\n            marginString = `${(h - height)/ 2}px ${(w - width) / 2}px`;\n            break;\n        }\n        case 'rhombus': {\n            width = w / 2;\n            height = h / 2;\n            marginString = `${height / 2}px ${width / 2}px`;\n            break;\n        }\n        case 'hexagon': {\n            width = w / 2;\n            height = h - 2 * paddingY;\n            marginString = `${paddingY}px ${width / 2}px`;\n            break;\n        }\n        case 'polygon': {\n            paddingX = 37 / 195 * w;\n            paddingY = h / 3.5;\n            width = 121 / 195 * w;\n            height = h - paddingY - DEFAULT_PADDING;\n            marginString = `${paddingY}px ${paddingX}px ${DEFAULT_PADDING}px ${paddingX}px`;\n            break;\n        }\n        case 'trapeziumUp':\n        case 'trapeziumDown':\n        case 'parallelogramLeft':\n        case 'parallelogramRight': {\n            height = h -2 * DEFAULT_PADDING;\n            width = w -2 * TRAPEZIUM_OFFSET * w;\n            marginString = `${paddingY}px ${w * TRAPEZIUM_OFFSET}px`;\n            break;\n        }\n    }\n    return {\n        dimensions: {\n            width,\n            height,\n        },\n        marginString,\n    };\n}\n","\"use strict\";\n\nvar isValue = require(\"./is-value\");\n\nmodule.exports = function (value) {\n\tif (!isValue(value)) throw new TypeError(\"Cannot use null or undefined\");\n\treturn value;\n};\n","import i18n from 'i18next';\nimport React from 'react';\n\nimport {FilterElementPropTypes} from '../types';\n\n/**\n * Brightness\n *\n * @param {string} in1 pointer to filter's input (same as SVG *in*)\n * @param {string} result pointer to output (same as SVG *result*)\n * @param {number} amount level of brightness (0-1)\n */\nexport const Brightness = ({amount, in1, result}) =>\n    <feComponentTransfer in={in1} result={result}>\n        <feFuncR type=\"linear\" slope={amount.toFixed(2)}/>\n        <feFuncG type=\"linear\" slope={amount.toFixed(2)}/>\n        <feFuncB type=\"linear\" slope={amount.toFixed(2)}/>\n    </feComponentTransfer>\n;\n\nBrightness.propTypes = FilterElementPropTypes;\n\nexport default {\n    Component: Brightness,\n    get caption() {\n        return i18n.t('inspector.free.filters.brightness');\n    },\n    max: 2,\n    min: 0,\n    default: 1,\n};\n","/**\n * Copyright (c) 2014-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\nvar runtime = (function (exports) {\n  \"use strict\";\n\n  var Op = Object.prototype;\n  var hasOwn = Op.hasOwnProperty;\n  var undefined; // More compressible than void 0.\n  var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n  var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n  var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n  var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n  function wrap(innerFn, outerFn, self, tryLocsList) {\n    // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n    var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n    var generator = Object.create(protoGenerator.prototype);\n    var context = new Context(tryLocsList || []);\n\n    // The ._invoke method unifies the implementations of the .next,\n    // .throw, and .return methods.\n    generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n    return generator;\n  }\n  exports.wrap = wrap;\n\n  // Try/catch helper to minimize deoptimizations. Returns a completion\n  // record like context.tryEntries[i].completion. This interface could\n  // have been (and was previously) designed to take a closure to be\n  // invoked without arguments, but in all the cases we care about we\n  // already have an existing method we want to call, so there's no need\n  // to create a new function object. We can even get away with assuming\n  // the method takes exactly one argument, since that happens to be true\n  // in every case, so we don't have to touch the arguments object. The\n  // only additional allocation required is the completion record, which\n  // has a stable shape and so hopefully should be cheap to allocate.\n  function tryCatch(fn, obj, arg) {\n    try {\n      return { type: \"normal\", arg: fn.call(obj, arg) };\n    } catch (err) {\n      return { type: \"throw\", arg: err };\n    }\n  }\n\n  var GenStateSuspendedStart = \"suspendedStart\";\n  var GenStateSuspendedYield = \"suspendedYield\";\n  var GenStateExecuting = \"executing\";\n  var GenStateCompleted = \"completed\";\n\n  // Returning this object from the innerFn has the same effect as\n  // breaking out of the dispatch switch statement.\n  var ContinueSentinel = {};\n\n  // Dummy constructor functions that we use as the .constructor and\n  // .constructor.prototype properties for functions that return Generator\n  // objects. For full spec compliance, you may wish to configure your\n  // minifier not to mangle the names of these two functions.\n  function Generator() {}\n  function GeneratorFunction() {}\n  function GeneratorFunctionPrototype() {}\n\n  // This is a polyfill for %IteratorPrototype% for environments that\n  // don't natively support it.\n  var IteratorPrototype = {};\n  IteratorPrototype[iteratorSymbol] = function () {\n    return this;\n  };\n\n  var getProto = Object.getPrototypeOf;\n  var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n  if (NativeIteratorPrototype &&\n      NativeIteratorPrototype !== Op &&\n      hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n    // This environment has a native %IteratorPrototype%; use it instead\n    // of the polyfill.\n    IteratorPrototype = NativeIteratorPrototype;\n  }\n\n  var Gp = GeneratorFunctionPrototype.prototype =\n    Generator.prototype = Object.create(IteratorPrototype);\n  GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n  GeneratorFunctionPrototype.constructor = GeneratorFunction;\n  GeneratorFunctionPrototype[toStringTagSymbol] =\n    GeneratorFunction.displayName = \"GeneratorFunction\";\n\n  // Helper for defining the .next, .throw, and .return methods of the\n  // Iterator interface in terms of a single ._invoke method.\n  function defineIteratorMethods(prototype) {\n    [\"next\", \"throw\", \"return\"].forEach(function(method) {\n      prototype[method] = function(arg) {\n        return this._invoke(method, arg);\n      };\n    });\n  }\n\n  exports.isGeneratorFunction = function(genFun) {\n    var ctor = typeof genFun === \"function\" && genFun.constructor;\n    return ctor\n      ? ctor === GeneratorFunction ||\n        // For the native GeneratorFunction constructor, the best we can\n        // do is to check its .name property.\n        (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n      : false;\n  };\n\n  exports.mark = function(genFun) {\n    if (Object.setPrototypeOf) {\n      Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n    } else {\n      genFun.__proto__ = GeneratorFunctionPrototype;\n      if (!(toStringTagSymbol in genFun)) {\n        genFun[toStringTagSymbol] = \"GeneratorFunction\";\n      }\n    }\n    genFun.prototype = Object.create(Gp);\n    return genFun;\n  };\n\n  // Within the body of any async function, `await x` is transformed to\n  // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n  // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n  // meant to be awaited.\n  exports.awrap = function(arg) {\n    return { __await: arg };\n  };\n\n  function AsyncIterator(generator) {\n    function invoke(method, arg, resolve, reject) {\n      var record = tryCatch(generator[method], generator, arg);\n      if (record.type === \"throw\") {\n        reject(record.arg);\n      } else {\n        var result = record.arg;\n        var value = result.value;\n        if (value &&\n            typeof value === \"object\" &&\n            hasOwn.call(value, \"__await\")) {\n          return Promise.resolve(value.__await).then(function(value) {\n            invoke(\"next\", value, resolve, reject);\n          }, function(err) {\n            invoke(\"throw\", err, resolve, reject);\n          });\n        }\n\n        return Promise.resolve(value).then(function(unwrapped) {\n          // When a yielded Promise is resolved, its final value becomes\n          // the .value of the Promise<{value,done}> result for the\n          // current iteration.\n          result.value = unwrapped;\n          resolve(result);\n        }, function(error) {\n          // If a rejected Promise was yielded, throw the rejection back\n          // into the async generator function so it can be handled there.\n          return invoke(\"throw\", error, resolve, reject);\n        });\n      }\n    }\n\n    var previousPromise;\n\n    function enqueue(method, arg) {\n      function callInvokeWithMethodAndArg() {\n        return new Promise(function(resolve, reject) {\n          invoke(method, arg, resolve, reject);\n        });\n      }\n\n      return previousPromise =\n        // If enqueue has been called before, then we want to wait until\n        // all previous Promises have been resolved before calling invoke,\n        // so that results are always delivered in the correct order. If\n        // enqueue has not been called before, then it is important to\n        // call invoke immediately, without waiting on a callback to fire,\n        // so that the async generator function has the opportunity to do\n        // any necessary setup in a predictable way. This predictability\n        // is why the Promise constructor synchronously invokes its\n        // executor callback, and why async functions synchronously\n        // execute code before the first await. Since we implement simple\n        // async functions in terms of async generators, it is especially\n        // important to get this right, even though it requires care.\n        previousPromise ? previousPromise.then(\n          callInvokeWithMethodAndArg,\n          // Avoid propagating failures to Promises returned by later\n          // invocations of the iterator.\n          callInvokeWithMethodAndArg\n        ) : callInvokeWithMethodAndArg();\n    }\n\n    // Define the unified helper method that is used to implement .next,\n    // .throw, and .return (see defineIteratorMethods).\n    this._invoke = enqueue;\n  }\n\n  defineIteratorMethods(AsyncIterator.prototype);\n  AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n    return this;\n  };\n  exports.AsyncIterator = AsyncIterator;\n\n  // Note that simple async functions are implemented on top of\n  // AsyncIterator objects; they just return a Promise for the value of\n  // the final result produced by the iterator.\n  exports.async = function(innerFn, outerFn, self, tryLocsList) {\n    var iter = new AsyncIterator(\n      wrap(innerFn, outerFn, self, tryLocsList)\n    );\n\n    return exports.isGeneratorFunction(outerFn)\n      ? iter // If outerFn is a generator, return the full iterator.\n      : iter.next().then(function(result) {\n          return result.done ? result.value : iter.next();\n        });\n  };\n\n  function makeInvokeMethod(innerFn, self, context) {\n    var state = GenStateSuspendedStart;\n\n    return function invoke(method, arg) {\n      if (state === GenStateExecuting) {\n        throw new Error(\"Generator is already running\");\n      }\n\n      if (state === GenStateCompleted) {\n        if (method === \"throw\") {\n          throw arg;\n        }\n\n        // Be forgiving, per 25.3.3.3.3 of the spec:\n        // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n        return doneResult();\n      }\n\n      context.method = method;\n      context.arg = arg;\n\n      while (true) {\n        var delegate = context.delegate;\n        if (delegate) {\n          var delegateResult = maybeInvokeDelegate(delegate, context);\n          if (delegateResult) {\n            if (delegateResult === ContinueSentinel) continue;\n            return delegateResult;\n          }\n        }\n\n        if (context.method === \"next\") {\n          // Setting context._sent for legacy support of Babel's\n          // function.sent implementation.\n          context.sent = context._sent = context.arg;\n\n        } else if (context.method === \"throw\") {\n          if (state === GenStateSuspendedStart) {\n            state = GenStateCompleted;\n            throw context.arg;\n          }\n\n          context.dispatchException(context.arg);\n\n        } else if (context.method === \"return\") {\n          context.abrupt(\"return\", context.arg);\n        }\n\n        state = GenStateExecuting;\n\n        var record = tryCatch(innerFn, self, context);\n        if (record.type === \"normal\") {\n          // If an exception is thrown from innerFn, we leave state ===\n          // GenStateExecuting and loop back for another invocation.\n          state = context.done\n            ? GenStateCompleted\n            : GenStateSuspendedYield;\n\n          if (record.arg === ContinueSentinel) {\n            continue;\n          }\n\n          return {\n            value: record.arg,\n            done: context.done\n          };\n\n        } else if (record.type === \"throw\") {\n          state = GenStateCompleted;\n          // Dispatch the exception by looping back around to the\n          // context.dispatchException(context.arg) call above.\n          context.method = \"throw\";\n          context.arg = record.arg;\n        }\n      }\n    };\n  }\n\n  // Call delegate.iterator[context.method](context.arg) and handle the\n  // result, either by returning a { value, done } result from the\n  // delegate iterator, or by modifying context.method and context.arg,\n  // setting context.delegate to null, and returning the ContinueSentinel.\n  function maybeInvokeDelegate(delegate, context) {\n    var method = delegate.iterator[context.method];\n    if (method === undefined) {\n      // A .throw or .return when the delegate iterator has no .throw\n      // method always terminates the yield* loop.\n      context.delegate = null;\n\n      if (context.method === \"throw\") {\n        // Note: [\"return\"] must be used for ES3 parsing compatibility.\n        if (delegate.iterator[\"return\"]) {\n          // If the delegate iterator has a return method, give it a\n          // chance to clean up.\n          context.method = \"return\";\n          context.arg = undefined;\n          maybeInvokeDelegate(delegate, context);\n\n          if (context.method === \"throw\") {\n            // If maybeInvokeDelegate(context) changed context.method from\n            // \"return\" to \"throw\", let that override the TypeError below.\n            return ContinueSentinel;\n          }\n        }\n\n        context.method = \"throw\";\n        context.arg = new TypeError(\n          \"The iterator does not provide a 'throw' method\");\n      }\n\n      return ContinueSentinel;\n    }\n\n    var record = tryCatch(method, delegate.iterator, context.arg);\n\n    if (record.type === \"throw\") {\n      context.method = \"throw\";\n      context.arg = record.arg;\n      context.delegate = null;\n      return ContinueSentinel;\n    }\n\n    var info = record.arg;\n\n    if (! info) {\n      context.method = \"throw\";\n      context.arg = new TypeError(\"iterator result is not an object\");\n      context.delegate = null;\n      return ContinueSentinel;\n    }\n\n    if (info.done) {\n      // Assign the result of the finished delegate to the temporary\n      // variable specified by delegate.resultName (see delegateYield).\n      context[delegate.resultName] = info.value;\n\n      // Resume execution at the desired location (see delegateYield).\n      context.next = delegate.nextLoc;\n\n      // If context.method was \"throw\" but the delegate handled the\n      // exception, let the outer generator proceed normally. If\n      // context.method was \"next\", forget context.arg since it has been\n      // \"consumed\" by the delegate iterator. If context.method was\n      // \"return\", allow the original .return call to continue in the\n      // outer generator.\n      if (context.method !== \"return\") {\n        context.method = \"next\";\n        context.arg = undefined;\n      }\n\n    } else {\n      // Re-yield the result returned by the delegate method.\n      return info;\n    }\n\n    // The delegate iterator is finished, so forget it and continue with\n    // the outer generator.\n    context.delegate = null;\n    return ContinueSentinel;\n  }\n\n  // Define Generator.prototype.{next,throw,return} in terms of the\n  // unified ._invoke helper method.\n  defineIteratorMethods(Gp);\n\n  Gp[toStringTagSymbol] = \"Generator\";\n\n  // A Generator should always return itself as the iterator object when the\n  // @@iterator function is called on it. Some browsers' implementations of the\n  // iterator prototype chain incorrectly implement this, causing the Generator\n  // object to not be returned from this call. This ensures that doesn't happen.\n  // See https://github.com/facebook/regenerator/issues/274 for more details.\n  Gp[iteratorSymbol] = function() {\n    return this;\n  };\n\n  Gp.toString = function() {\n    return \"[object Generator]\";\n  };\n\n  function pushTryEntry(locs) {\n    var entry = { tryLoc: locs[0] };\n\n    if (1 in locs) {\n      entry.catchLoc = locs[1];\n    }\n\n    if (2 in locs) {\n      entry.finallyLoc = locs[2];\n      entry.afterLoc = locs[3];\n    }\n\n    this.tryEntries.push(entry);\n  }\n\n  function resetTryEntry(entry) {\n    var record = entry.completion || {};\n    record.type = \"normal\";\n    delete record.arg;\n    entry.completion = record;\n  }\n\n  function Context(tryLocsList) {\n    // The root entry object (effectively a try statement without a catch\n    // or a finally block) gives us a place to store values thrown from\n    // locations where there is no enclosing try statement.\n    this.tryEntries = [{ tryLoc: \"root\" }];\n    tryLocsList.forEach(pushTryEntry, this);\n    this.reset(true);\n  }\n\n  exports.keys = function(object) {\n    var keys = [];\n    for (var key in object) {\n      keys.push(key);\n    }\n    keys.reverse();\n\n    // Rather than returning an object with a next method, we keep\n    // things simple and return the next function itself.\n    return function next() {\n      while (keys.length) {\n        var key = keys.pop();\n        if (key in object) {\n          next.value = key;\n          next.done = false;\n          return next;\n        }\n      }\n\n      // To avoid creating an additional object, we just hang the .value\n      // and .done properties off the next function object itself. This\n      // also ensures that the minifier will not anonymize the function.\n      next.done = true;\n      return next;\n    };\n  };\n\n  function values(iterable) {\n    if (iterable) {\n      var iteratorMethod = iterable[iteratorSymbol];\n      if (iteratorMethod) {\n        return iteratorMethod.call(iterable);\n      }\n\n      if (typeof iterable.next === \"function\") {\n        return iterable;\n      }\n\n      if (!isNaN(iterable.length)) {\n        var i = -1, next = function next() {\n          while (++i < iterable.length) {\n            if (hasOwn.call(iterable, i)) {\n              next.value = iterable[i];\n              next.done = false;\n              return next;\n            }\n          }\n\n          next.value = undefined;\n          next.done = true;\n\n          return next;\n        };\n\n        return next.next = next;\n      }\n    }\n\n    // Return an iterator with no values.\n    return { next: doneResult };\n  }\n  exports.values = values;\n\n  function doneResult() {\n    return { value: undefined, done: true };\n  }\n\n  Context.prototype = {\n    constructor: Context,\n\n    reset: function(skipTempReset) {\n      this.prev = 0;\n      this.next = 0;\n      // Resetting context._sent for legacy support of Babel's\n      // function.sent implementation.\n      this.sent = this._sent = undefined;\n      this.done = false;\n      this.delegate = null;\n\n      this.method = \"next\";\n      this.arg = undefined;\n\n      this.tryEntries.forEach(resetTryEntry);\n\n      if (!skipTempReset) {\n        for (var name in this) {\n          // Not sure about the optimal order of these conditions:\n          if (name.charAt(0) === \"t\" &&\n              hasOwn.call(this, name) &&\n              !isNaN(+name.slice(1))) {\n            this[name] = undefined;\n          }\n        }\n      }\n    },\n\n    stop: function() {\n      this.done = true;\n\n      var rootEntry = this.tryEntries[0];\n      var rootRecord = rootEntry.completion;\n      if (rootRecord.type === \"throw\") {\n        throw rootRecord.arg;\n      }\n\n      return this.rval;\n    },\n\n    dispatchException: function(exception) {\n      if (this.done) {\n        throw exception;\n      }\n\n      var context = this;\n      function handle(loc, caught) {\n        record.type = \"throw\";\n        record.arg = exception;\n        context.next = loc;\n\n        if (caught) {\n          // If the dispatched exception was caught by a catch block,\n          // then let that catch block handle the exception normally.\n          context.method = \"next\";\n          context.arg = undefined;\n        }\n\n        return !! caught;\n      }\n\n      for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n        var entry = this.tryEntries[i];\n        var record = entry.completion;\n\n        if (entry.tryLoc === \"root\") {\n          // Exception thrown outside of any try block that could handle\n          // it, so set the completion value of the entire function to\n          // throw the exception.\n          return handle(\"end\");\n        }\n\n        if (entry.tryLoc <= this.prev) {\n          var hasCatch = hasOwn.call(entry, \"catchLoc\");\n          var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n          if (hasCatch && hasFinally) {\n            if (this.prev < entry.catchLoc) {\n              return handle(entry.catchLoc, true);\n            } else if (this.prev < entry.finallyLoc) {\n              return handle(entry.finallyLoc);\n            }\n\n          } else if (hasCatch) {\n            if (this.prev < entry.catchLoc) {\n              return handle(entry.catchLoc, true);\n            }\n\n          } else if (hasFinally) {\n            if (this.prev < entry.finallyLoc) {\n              return handle(entry.finallyLoc);\n            }\n\n          } else {\n            throw new Error(\"try statement without catch or finally\");\n          }\n        }\n      }\n    },\n\n    abrupt: function(type, arg) {\n      for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n        var entry = this.tryEntries[i];\n        if (entry.tryLoc <= this.prev &&\n            hasOwn.call(entry, \"finallyLoc\") &&\n            this.prev < entry.finallyLoc) {\n          var finallyEntry = entry;\n          break;\n        }\n      }\n\n      if (finallyEntry &&\n          (type === \"break\" ||\n           type === \"continue\") &&\n          finallyEntry.tryLoc <= arg &&\n          arg <= finallyEntry.finallyLoc) {\n        // Ignore the finally entry if control is not jumping to a\n        // location outside the try/catch block.\n        finallyEntry = null;\n      }\n\n      var record = finallyEntry ? finallyEntry.completion : {};\n      record.type = type;\n      record.arg = arg;\n\n      if (finallyEntry) {\n        this.method = \"next\";\n        this.next = finallyEntry.finallyLoc;\n        return ContinueSentinel;\n      }\n\n      return this.complete(record);\n    },\n\n    complete: function(record, afterLoc) {\n      if (record.type === \"throw\") {\n        throw record.arg;\n      }\n\n      if (record.type === \"break\" ||\n          record.type === \"continue\") {\n        this.next = record.arg;\n      } else if (record.type === \"return\") {\n        this.rval = this.arg = record.arg;\n        this.method = \"return\";\n        this.next = \"end\";\n      } else if (record.type === \"normal\" && afterLoc) {\n        this.next = afterLoc;\n      }\n\n      return ContinueSentinel;\n    },\n\n    finish: function(finallyLoc) {\n      for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n        var entry = this.tryEntries[i];\n        if (entry.finallyLoc === finallyLoc) {\n          this.complete(entry.completion, entry.afterLoc);\n          resetTryEntry(entry);\n          return ContinueSentinel;\n        }\n      }\n    },\n\n    \"catch\": function(tryLoc) {\n      for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n        var entry = this.tryEntries[i];\n        if (entry.tryLoc === tryLoc) {\n          var record = entry.completion;\n          if (record.type === \"throw\") {\n            var thrown = record.arg;\n            resetTryEntry(entry);\n          }\n          return thrown;\n        }\n      }\n\n      // The context.catch method must only be called with a location\n      // argument that corresponds to a known catch block.\n      throw new Error(\"illegal catch attempt\");\n    },\n\n    delegateYield: function(iterable, resultName, nextLoc) {\n      this.delegate = {\n        iterator: values(iterable),\n        resultName: resultName,\n        nextLoc: nextLoc\n      };\n\n      if (this.method === \"next\") {\n        // Deliberately forget the last sent value so that we don't\n        // accidentally pass it on to the delegate.\n        this.arg = undefined;\n      }\n\n      return ContinueSentinel;\n    }\n  };\n\n  // Regardless of whether this script is executing as a CommonJS module\n  // or not, return the runtime object so that we can declare the variable\n  // regeneratorRuntime in the outer scope, which allows this module to be\n  // injected easily by `bin/regenerator --include-runtime script.js`.\n  return exports;\n\n}(\n  // If this script is executing as a CommonJS module, use module.exports\n  // as the regeneratorRuntime namespace. Otherwise create a new empty\n  // object. Either way, the resulting object will be used to initialize\n  // the regeneratorRuntime variable at the top of this file.\n  typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n  regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n  // This module should not be running in strict mode, so the above\n  // assignment should always work unless something is misconfigured. Just\n  // in case runtime.js accidentally runs in strict mode, we can escape\n  // strict mode using a global Function call. This could conceivably fail\n  // if a Content Security Policy forbids using Function, but in that case\n  // the proper solution is to fix the accidental strict mode problem. If\n  // you've misconfigured your bundler to force strict mode and applied a\n  // CSP to forbid Function, and you're not willing to fix either of those\n  // problems, please detail your unique predicament in a GitHub issue.\n  Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}\n","/* global Backbone */\nimport ThemeHelper from '../common/theme_helper';\n\nvar Theme = Backbone.Model.extend({\n\n    initialize: function() {\n        if (this.get('shrinkMargin') || this.get('shrinkPadding')) {\n            ThemeHelper.setMargin(this.get('shrinkMargin'));\n            ThemeHelper.setChartPadding(this.get('shrinkPadding'));\n        } else {\n            ThemeHelper.clear();\n        }\n\n        this.on('change', function() {\n            ThemeHelper.setMargin(this.get('shrinkMargin'));\n            ThemeHelper.setChartPadding(this.get('shrinkPadding'));\n        }, this);\n    },\n\n    urlRoot: '/api/themes',\n    idAttribute: 'id',\n});\nexport default Theme;\n","var DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar anObject = require('../internals/an-object');\nvar toPrimitive = require('../internals/to-primitive');\n\nvar nativeDefineProperty = Object.defineProperty;\n\n// `Object.defineProperty` method\n// https://tc39.github.io/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? nativeDefineProperty : function defineProperty(O, P, Attributes) {\n  anObject(O);\n  P = toPrimitive(P, true);\n  anObject(Attributes);\n  if (IE8_DOM_DEFINE) try {\n    return nativeDefineProperty(O, P, Attributes);\n  } catch (error) { /* empty */ }\n  if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported');\n  if ('value' in Attributes) O[P] = Attributes.value;\n  return O;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n  utils.isStandardBrowserEnv() ?\n\n  // Standard browser envs support document.cookie\n    (function standardBrowserEnv() {\n      return {\n        write: function write(name, value, expires, path, domain, secure) {\n          var cookie = [];\n          cookie.push(name + '=' + encodeURIComponent(value));\n\n          if (utils.isNumber(expires)) {\n            cookie.push('expires=' + new Date(expires).toGMTString());\n          }\n\n          if (utils.isString(path)) {\n            cookie.push('path=' + path);\n          }\n\n          if (utils.isString(domain)) {\n            cookie.push('domain=' + domain);\n          }\n\n          if (secure === true) {\n            cookie.push('secure');\n          }\n\n          document.cookie = cookie.join('; ');\n        },\n\n        read: function read(name) {\n          var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n          return (match ? decodeURIComponent(match[3]) : null);\n        },\n\n        remove: function remove(name) {\n          this.write(name, '', Date.now() - 86400000);\n        }\n      };\n    })() :\n\n  // Non standard browser env (web workers, react-native) lack needed support.\n    (function nonStandardBrowserEnv() {\n      return {\n        write: function write() {},\n        read: function read() { return null; },\n        remove: function remove() {}\n      };\n    })()\n);\n","var anObject = require('../internals/an-object');\n\n// call something on iterator step with safe closing on error\nmodule.exports = function (iterator, fn, value, ENTRIES) {\n  try {\n    return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);\n  // 7.4.6 IteratorClose(iterator, completion)\n  } catch (error) {\n    var returnMethod = iterator['return'];\n    if (returnMethod !== undefined) anObject(returnMethod.call(iterator));\n    throw error;\n  }\n};\n","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!./DynamicFiltersProvider.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!./DynamicFiltersProvider.css\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!./DynamicFiltersProvider.css\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","'use strict';\n// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`\nrequire('../modules/es.array.iterator');\nvar $ = require('../internals/export');\nvar USE_NATIVE_URL = require('../internals/native-url');\nvar redefine = require('../internals/redefine');\nvar redefineAll = require('../internals/redefine-all');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createIteratorConstructor = require('../internals/create-iterator-constructor');\nvar InternalStateModule = require('../internals/internal-state');\nvar anInstance = require('../internals/an-instance');\nvar hasOwn = require('../internals/has');\nvar bind = require('../internals/bind-context');\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar URL_SEARCH_PARAMS = 'URLSearchParams';\nvar URL_SEARCH_PARAMS_ITERATOR = URL_SEARCH_PARAMS + 'Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalParamsState = InternalStateModule.getterFor(URL_SEARCH_PARAMS);\nvar getInternalIteratorState = InternalStateModule.getterFor(URL_SEARCH_PARAMS_ITERATOR);\n\nvar plus = /\\+/g;\nvar sequences = Array(4);\n\nvar percentSequence = function (bytes) {\n  return sequences[bytes - 1] || (sequences[bytes - 1] = RegExp('((?:%[\\\\da-f]{2}){' + bytes + '})', 'gi'));\n};\n\nvar percentDecode = function (sequence) {\n  try {\n    return decodeURIComponent(sequence);\n  } catch (error) {\n    return sequence;\n  }\n};\n\nvar deserialize = function (it) {\n  var result = it.replace(plus, ' ');\n  var bytes = 4;\n  try {\n    return decodeURIComponent(result);\n  } catch (error) {\n    while (bytes) {\n      result = result.replace(percentSequence(bytes--), percentDecode);\n    }\n    return result;\n  }\n};\n\nvar find = /[!'()~]|%20/g;\n\nvar replace = {\n  '!': '%21',\n  \"'\": '%27',\n  '(': '%28',\n  ')': '%29',\n  '~': '%7E',\n  '%20': '+'\n};\n\nvar replacer = function (match) {\n  return replace[match];\n};\n\nvar serialize = function (it) {\n  return encodeURIComponent(it).replace(find, replacer);\n};\n\nvar parseSearchParams = function (result, query) {\n  if (query) {\n    var attributes = query.split('&');\n    var index = 0;\n    var attribute, entry;\n    while (index < attributes.length) {\n      attribute = attributes[index++];\n      if (attribute.length) {\n        entry = attribute.split('=');\n        result.push({\n          key: deserialize(entry.shift()),\n          value: deserialize(entry.join('='))\n        });\n      }\n    }\n  }\n};\n\nvar updateSearchParams = function (query) {\n  this.entries.length = 0;\n  parseSearchParams(this.entries, query);\n};\n\nvar validateArgumentsLength = function (passed, required) {\n  if (passed < required) throw TypeError('Not enough arguments');\n};\n\nvar URLSearchParamsIterator = createIteratorConstructor(function Iterator(params, kind) {\n  setInternalState(this, {\n    type: URL_SEARCH_PARAMS_ITERATOR,\n    iterator: getIterator(getInternalParamsState(params).entries),\n    kind: kind\n  });\n}, 'Iterator', function next() {\n  var state = getInternalIteratorState(this);\n  var kind = state.kind;\n  var step = state.iterator.next();\n  var entry = step.value;\n  if (!step.done) {\n    step.value = kind === 'keys' ? entry.key : kind === 'values' ? entry.value : [entry.key, entry.value];\n  } return step;\n});\n\n// `URLSearchParams` constructor\n// https://url.spec.whatwg.org/#interface-urlsearchparams\nvar URLSearchParamsConstructor = function URLSearchParams(/* init */) {\n  anInstance(this, URLSearchParamsConstructor, URL_SEARCH_PARAMS);\n  var init = arguments.length > 0 ? arguments[0] : undefined;\n  var that = this;\n  var entries = [];\n  var iteratorMethod, iterator, step, entryIterator, first, second, key;\n\n  setInternalState(that, {\n    type: URL_SEARCH_PARAMS,\n    entries: entries,\n    updateURL: function () { /* empty */ },\n    updateSearchParams: updateSearchParams\n  });\n\n  if (init !== undefined) {\n    if (isObject(init)) {\n      iteratorMethod = getIteratorMethod(init);\n      if (typeof iteratorMethod === 'function') {\n        iterator = iteratorMethod.call(init);\n        while (!(step = iterator.next()).done) {\n          entryIterator = getIterator(anObject(step.value));\n          if (\n            (first = entryIterator.next()).done ||\n            (second = entryIterator.next()).done ||\n            !entryIterator.next().done\n          ) throw TypeError('Expected sequence with length 2');\n          entries.push({ key: first.value + '', value: second.value + '' });\n        }\n      } else for (key in init) if (hasOwn(init, key)) entries.push({ key: key, value: init[key] + '' });\n    } else {\n      parseSearchParams(entries, typeof init === 'string' ? init.charAt(0) === '?' ? init.slice(1) : init : init + '');\n    }\n  }\n};\n\nvar URLSearchParamsPrototype = URLSearchParamsConstructor.prototype;\n\nredefineAll(URLSearchParamsPrototype, {\n  // `URLSearchParams.prototype.appent` method\n  // https://url.spec.whatwg.org/#dom-urlsearchparams-append\n  append: function append(name, value) {\n    validateArgumentsLength(arguments.length, 2);\n    var state = getInternalParamsState(this);\n    state.entries.push({ key: name + '', value: value + '' });\n    state.updateURL();\n  },\n  // `URLSearchParams.prototype.delete` method\n  // https://url.spec.whatwg.org/#dom-urlsearchparams-delete\n  'delete': function (name) {\n    validateArgumentsLength(arguments.length, 1);\n    var state = getInternalParamsState(this);\n    var entries = state.entries;\n    var key = name + '';\n    var index = 0;\n    while (index < entries.length) {\n      if (entries[index].key === key) entries.splice(index, 1);\n      else index++;\n    }\n    state.updateURL();\n  },\n  // `URLSearchParams.prototype.get` method\n  // https://url.spec.whatwg.org/#dom-urlsearchparams-get\n  get: function get(name) {\n    validateArgumentsLength(arguments.length, 1);\n    var entries = getInternalParamsState(this).entries;\n    var key = name + '';\n    var index = 0;\n    for (; index < entries.length; index++) {\n      if (entries[index].key === key) return entries[index].value;\n    }\n    return null;\n  },\n  // `URLSearchParams.prototype.getAll` method\n  // https://url.spec.whatwg.org/#dom-urlsearchparams-getall\n  getAll: function getAll(name) {\n    validateArgumentsLength(arguments.length, 1);\n    var entries = getInternalParamsState(this).entries;\n    var key = name + '';\n    var result = [];\n    var index = 0;\n    for (; index < entries.length; index++) {\n      if (entries[index].key === key) result.push(entries[index].value);\n    }\n    return result;\n  },\n  // `URLSearchParams.prototype.has` method\n  // https://url.spec.whatwg.org/#dom-urlsearchparams-has\n  has: function has(name) {\n    validateArgumentsLength(arguments.length, 1);\n    var entries = getInternalParamsState(this).entries;\n    var key = name + '';\n    var index = 0;\n    while (index < entries.length) {\n      if (entries[index++].key === key) return true;\n    }\n    return false;\n  },\n  // `URLSearchParams.prototype.set` method\n  // https://url.spec.whatwg.org/#dom-urlsearchparams-set\n  set: function set(name, value) {\n    validateArgumentsLength(arguments.length, 1);\n    var state = getInternalParamsState(this);\n    var entries = state.entries;\n    var found = false;\n    var key = name + '';\n    var val = value + '';\n    var index = 0;\n    var entry;\n    for (; index < entries.length; index++) {\n      entry = entries[index];\n      if (entry.key === key) {\n        if (found) entries.splice(index--, 1);\n        else {\n          found = true;\n          entry.value = val;\n        }\n      }\n    }\n    if (!found) entries.push({ key: key, value: val });\n    state.updateURL();\n  },\n  // `URLSearchParams.prototype.sort` method\n  // https://url.spec.whatwg.org/#dom-urlsearchparams-sort\n  sort: function sort() {\n    var state = getInternalParamsState(this);\n    var entries = state.entries;\n    // Array#sort is not stable in some engines\n    var slice = entries.slice();\n    var entry, entriesIndex, sliceIndex;\n    entries.length = 0;\n    for (sliceIndex = 0; sliceIndex < slice.length; sliceIndex++) {\n      entry = slice[sliceIndex];\n      for (entriesIndex = 0; entriesIndex < sliceIndex; entriesIndex++) {\n        if (entries[entriesIndex].key > entry.key) {\n          entries.splice(entriesIndex, 0, entry);\n          break;\n        }\n      }\n      if (entriesIndex === sliceIndex) entries.push(entry);\n    }\n    state.updateURL();\n  },\n  // `URLSearchParams.prototype.forEach` method\n  forEach: function forEach(callback /* , thisArg */) {\n    var entries = getInternalParamsState(this).entries;\n    var boundFunction = bind(callback, arguments.length > 1 ? arguments[1] : undefined, 3);\n    var index = 0;\n    var entry;\n    while (index < entries.length) {\n      entry = entries[index++];\n      boundFunction(entry.value, entry.key, this);\n    }\n  },\n  // `URLSearchParams.prototype.keys` method\n  keys: function keys() {\n    return new URLSearchParamsIterator(this, 'keys');\n  },\n  // `URLSearchParams.prototype.values` method\n  values: function values() {\n    return new URLSearchParamsIterator(this, 'values');\n  },\n  // `URLSearchParams.prototype.entries` method\n  entries: function entries() {\n    return new URLSearchParamsIterator(this, 'entries');\n  }\n}, { enumerable: true });\n\n// `URLSearchParams.prototype[@@iterator]` method\nredefine(URLSearchParamsPrototype, ITERATOR, URLSearchParamsPrototype.entries);\n\n// `URLSearchParams.prototype.toString` method\n// https://url.spec.whatwg.org/#urlsearchparams-stringification-behavior\nredefine(URLSearchParamsPrototype, 'toString', function toString() {\n  var entries = getInternalParamsState(this).entries;\n  var result = [];\n  var index = 0;\n  var entry;\n  while (index < entries.length) {\n    entry = entries[index++];\n    result.push(serialize(entry.key) + '=' + serialize(entry.value));\n  } return result.join('&');\n}, { enumerable: true });\n\nsetToStringTag(URLSearchParamsConstructor, URL_SEARCH_PARAMS);\n\n$({ global: true, forced: !USE_NATIVE_URL }, {\n  URLSearchParams: URLSearchParamsConstructor\n});\n\nmodule.exports = {\n  URLSearchParams: URLSearchParamsConstructor,\n  getState: getInternalParamsState\n};\n","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"._1AuSrXvhw47XDsC6tlZcV4 {\\n    position: absolute;\\n    top: calc(30% + 80px);\\n    left: 50%;\\n    transform: translate(-50%, -50%);\\n    background: #f5f5f6;\\n    text-align: center;\\n}\\n\\n._1AuSrXvhw47XDsC6tlZcV4._2oBQjfVOUGX4WmkGYQBF6s {\\n    background: transparent;\\n}\\n\\n._2VmJpzDdlkJl-ljcTrFBSd {\\n    position: fixed;\\n    top: 0;\\n    left: 0;\\n    right: 0;\\n}\\n\\n._19ymQFuxq4teUw2tB2oIGg:before {\\n    color: #71A0CD;\\n    font-size: 50px;\\n}\\n\\n.j3LEM7iQTq-L1ayEP6P6T {\\n    margin: 15px 0 10px;\\n    font-size: 27px;\\n    font-weight: 300;\\n    color: #4a4a4a;\\n}\\n\\n._3pO5_oCjl2LC6HlEloIoIN {\\n    margin-bottom: 25px;\\n    font-size: 15px;\\n    line-height: 23px;\\n    font-weight: 500;\\n    color: #4a4a4a;\\n}\\n\\n._2K2C2e4girGAJLMo4_n-le {\\n    overflow: hidden;\\n}\\n\\n._1rsPvQQvjBH0tFD4XPQXz3 {\\n    display: inline-block;\\n    box-sizing: border-box;\\n    vertical-align: middle;\\n    height: 50px;\\n    width: 200px;\\n    border: 1px solid #d6d6da;\\n    border-radius: 4px 0 0 4px;\\n    padding: 0 0 0 15px;\\n    font-size: 15px;\\n    color: #434343;\\n    outline: none;\\n}\\n._1rsPvQQvjBH0tFD4XPQXz3::placeholder {\\n    color: #afafaf;\\n}\\n._1rsPvQQvjBH0tFD4XPQXz3::-moz-placeholder {\\n    color: #afafaf;\\n}\\n._1rsPvQQvjBH0tFD4XPQXz3:ms-input-placeholder {\\n    color: #afafaf;\\n}\\n._1rsPvQQvjBH0tFD4XPQXz3::-webkit-input-placeholder {\\n    color: #afafaf;\\n}\\n\\n._2d4_zCHDXYZCk-N3OjwlLr {\\n    border-color: #ce2533;\\n}\\n\\n._1LHDsRYN37RrzQGNUuSWyn {\\n    position: relative;\\n    display: inline-block;\\n    vertical-align: middle;\\n    border: none;\\n    border-radius: 0 4px 4px 0;\\n    box-sizing: border-box;\\n    height: 50px;\\n    background: #3195cb;\\n    width: 100px;\\n    color: #fff;\\n    font-size: 15px;\\n    cursor: pointer;\\n    outline: none;\\n}\\n._1LHDsRYN37RrzQGNUuSWyn:hover {\\n    background-color: #5fb7e5;\\n}\\n.tjzhcqpHYXpegShugBooh {\\n    text-indent: -9999px;\\n}\\n.tjzhcqpHYXpegShugBooh:after {\\n    position: absolute;\\n    display: inline-block;\\n    content: '';\\n    top: 50%;\\n    left: 50%;\\n    width: 20px;\\n    height: 20px;\\n    margin-top: -13px;\\n    margin-left: -10px;\\n    border: 3px solid transparent;\\n    border-top: 3px solid #fff;\\n    border-right: 3px solid #fff;\\n    border-radius: 50%;\\n    -webkit-animation: _3IsFELunI8iO_kk20fvhPR 1s linear infinite;\\n    animation: _3IsFELunI8iO_kk20fvhPR 1s linear infinite;\\n}\\n\\n@keyframes _3IsFELunI8iO_kk20fvhPR {\\n    100% {\\n        transform: rotate(360deg);\\n    }\\n}\\n\\n@media screen and (max-width: 600px) {\\n    ._1rsPvQQvjBH0tFD4XPQXz3 {\\n        border-radius: 4px;\\n    }\\n    ._1LHDsRYN37RrzQGNUuSWyn {\\n        margin-top: 10px;\\n        border-radius: 4px;\\n    }\\n}\\n\", \"\"]);\n\n// exports\nexports.locals = {\n\t\"container\": \"_1AuSrXvhw47XDsC6tlZcV4\",\n\t\"transparent\": \"_2oBQjfVOUGX4WmkGYQBF6s\",\n\t\"header\": \"_2VmJpzDdlkJl-ljcTrFBSd\",\n\t\"lockIcon\": \"_19ymQFuxq4teUw2tB2oIGg\",\n\t\"heading\": \"j3LEM7iQTq-L1ayEP6P6T\",\n\t\"subheading\": \"_3pO5_oCjl2LC6HlEloIoIN\",\n\t\"form\": \"_2K2C2e4girGAJLMo4_n-le\",\n\t\"input\": \"_1rsPvQQvjBH0tFD4XPQXz3\",\n\t\"inputError\": \"_2d4_zCHDXYZCk-N3OjwlLr\",\n\t\"button\": \"_1LHDsRYN37RrzQGNUuSWyn\",\n\t\"buttonLoading\": \"tjzhcqpHYXpegShugBooh\",\n\t\"infogram-loader\": \"_3IsFELunI8iO_kk20fvhPR\"\n};","/* global PREZIGRAM */\nimport _ from 'lodash';\nimport {glassboxWebPrezigram} from '@prezi/client-logger-module';\n\nimport CurrentInfographicStore from '../../main/stores/CurrentInfographicStore';\nimport EditorStateStore from '../stores/EditorStateStore';\n\nimport {connectorTransformBySingleKey} from '../../connectors/modifier/connectorTransform';\nimport {modify_object_action} from '../../../../../glassbox/logger_constants';\nimport {logModifyObjectWebJs} from '../../../../../glassbox/client_logger';\nimport updateEditorState from './updateEditorState';\nimport {getCalloutPaddingsByKey} from '../../callouts/utils/getCalloutPaddings';\nimport adjustCalloutOnItemChange from '../../callouts/utils/adjustCalloutOnItemChange';\n\nexport const logModify = _.debounce((entityKey, patch) => {\n    let action = modify_object_action.OTHER;\n\n    if (patch.props) {\n        if (patch.props.animation) {\n            // should be already logged in AnimationBlock.react.js or animation/utils.js\n            return;\n        } else if (patch.props.accesibility) {\n            action = modify_object_action.ACCESSIBILITY;\n        }\n    }\n\n    if (patch.filters) {\n        // this change should be already logged by more specific log\n        return;\n    }\n\n    if (PREZIGRAM) {\n        glassboxWebPrezigram.logModifyObject({\n            prezi_oid: CurrentInfographicStore.infographicId,\n            object_id: entityKey,\n            object_type: EditorStateStore.editorState.getEntity(entityKey).getType().toUpperCase(),\n            topic_relationship: 'GRAM',\n            edition_mode: 'DEFAULT',\n            modify_action: action,\n        });\n    } else {\n        logModifyObjectWebJs({\n            project_id: CurrentInfographicStore.infographicId,\n            object_id: entityKey,\n            object_type: EditorStateStore.editorState.getEntity(entityKey).getType().toUpperCase(),\n            modify_object_action: action,\n        });\n    }\n}, 1000);\n\nexport function adjustStateOnEntityUpdate({originalState, originalEntity, updatedEditorState, entityKey, patch}) {\n    let nextEditorState = updatedEditorState;\n    if (originalEntity.getCalloutKey()) {\n        const paddings = getCalloutPaddingsByKey(originalState, originalEntity.getCalloutKey());\n        nextEditorState = adjustCalloutOnItemChange(\n            nextEditorState,\n            originalEntity,\n            paddings\n        );\n    }\n\n    nextEditorState = connectorTransformBySingleKey(nextEditorState, entityKey, patch);\n    return nextEditorState;\n}\n\nexport default function updateEntity(entityKey, patch, options) {\n    const originalState = EditorStateStore.editorState;\n    const originalEntity = originalState.getEntity(entityKey);\n    let nextEditorState = originalState.setEntity(entityKey, patch, options);\n    nextEditorState = adjustStateOnEntityUpdate({\n        originalState,\n        originalEntity,\n        updatedEditorState: nextEditorState,\n        entityKey,\n        patch,\n    });\n    updateEditorState(nextEditorState);\n    if (!options || !options.isLogged) {\n        logModify(entityKey, patch);\n    }\n}\n","import {getRoundRectangleFromPoints} from '../components/contents/Connector/utils';\nimport {getConnectionAbsolutePosition} from './connectorBounds';\nimport {\n    Point,\n    centerOf,\n    rotatePoint,\n    calculateRotation,\n} from '../../../components/FreeLayoutEditor/handlers/handle/utils';\nimport getEditorStateWithNewGroupBounds from '../../freelayout_editor/components/contents/Group/utils/getEditorStateWithNewGroupBounds';\nimport {RESIZE, ROTATE} from '../../../components/FreeLayoutEditor/handlers/handle/transformations';\nimport {getPointOnEntity} from '../components/contents/Connector/helper';\n\nexport function transformOrphanConnectorEnds({connectors, selectedEntities, editorState, action, boundingBox, startPt, endPt, deltaRotation}) {\n    const content = editorState.getCurrentContent();\n    const {width, height} = content.getPageSize();\n    const selectedEntityKeys = selectedEntities.map(([entity]) => entity.getKey());\n    const center = centerOf(boundingBox);\n    const rotation = deltaRotation === undefined ? calculateRotation(startPt, endPt, center) : deltaRotation;\n\n    let hasEntityOutsideSelection = false;\n\n    connectors.forEach(([entity, put]) => {\n        const ptsOnBlock = ['from', 'to'].reduce((ptsOnBlock, type) => {\n            const connection = entity.getProperty(type);\n            const isOrphan = connection.get('type') === 'block';\n\n            if (!isOrphan) {\n                hasEntityOutsideSelection = hasEntityOutsideSelection || selectedEntityKeys.indexOf(connection.get('key')) === -1;\n                return ptsOnBlock;\n            }\n\n            put.props = {};\n\n            let ptOnBlock = Point(\n                connection.get('x') * width,\n                connection.get('y') * height\n            );\n\n            if (action === ROTATE) {\n                ptOnBlock = rotatePoint(ptOnBlock, rotation, center);\n            }\n\n            // we resize by relative location against owner entity\n            if (action === RESIZE) {\n                const entRect = entity.rectangle();\n                const entRectCenter = centerOf(entRect);\n\n                const pct = Point(\n                    (ptOnBlock.x - entRectCenter.x) / entRect.width,\n                    (ptOnBlock.y - entRectCenter.y) / entRect.height\n                );\n\n                const newEntRectCenter = centerOf(put);\n\n                ptOnBlock = Point(\n                    pct.x * put.width + newEntRectCenter.x,\n                    pct.y * put.height + newEntRectCenter.y\n                );\n            }\n\n            ptsOnBlock[type] = Point(ptOnBlock.x, ptOnBlock.y);\n\n            return ptsOnBlock;\n        }, {});\n\n\n        ['from', 'to'].forEach(type => {\n            const ptOnBlock = ptsOnBlock[type];\n\n            if (ptOnBlock) {\n                put.props[type] = {\n                    x: ptOnBlock.x / width,\n                    y: ptOnBlock.y / height,\n                };\n            } else {\n                // important to get updated version of connecor\n                // they are modified in editorState before this with connectorTransform\n                // but we use version before connectorTransform\n                entity = editorState.getEntity(entity.getKey());\n                const connection = entity.getProperty(type);\n                const targetEntity = editorState.getEntity(connection.get('key'));\n                ptsOnBlock[type] = getPointOnEntity(connection, targetEntity);\n            }\n        });\n\n        const boundingRectangle = getRoundRectangleFromPoints(ptsOnBlock.from, ptsOnBlock.to);\n\n        put.top = boundingRectangle.top;\n        put.left = boundingRectangle.left;\n        put.height = boundingRectangle.height;\n        put.width = boundingRectangle.width;\n\n        editorState = editorState.setEntity(entity.getKey(), put);\n\n        if (entity.groupKey) {\n            editorState = getEditorStateWithNewGroupBounds(editorState, entity);\n        }\n    });\n\n    return {editorState, hasEntityOutsideSelection};\n}\n\nexport function connectorTransform(editorState, entity) {\n    const content = editorState.getCurrentContent();\n    const block = content.getBlock(entity.getBlockKey());\n    const connectors = block\n        .getEntities()\n        .filter(ent => ent.isConnector());\n\n    entity = block.getEntity(entity.getKey());\n    const pageSize = content.getPageSize();\n\n    for (const connector of connectors) {\n        editorState = rotateConnector(editorState, connector, entity, block, pageSize);\n    }\n\n    return editorState;\n}\n\nconst CONNECTOR_DEPENDENT_PROPS = [\n    'left',\n    'top',\n    'width',\n    'height',\n    'transform',\n];\n\nfunction hasRequiredUpdates(patch) {\n    return CONNECTOR_DEPENDENT_PROPS.some(prop => patch[prop] !== undefined);\n}\n\nexport function connectorTransformBySingleKey(editorState, entityKey, changes) {\n    const entity = editorState.getEntity(entityKey);\n\n    if (entity.isLine() || entity.isConnector() || !hasRequiredUpdates(changes)) {\n        return editorState;\n    }\n\n    return connectorTransform(editorState, entity);\n}\n\nfunction rotateConnector(editorState, connector, entity, block, pageSize) {\n    const found = ['from', 'to']\n        .map(type => ({key: connector.getProperty(type).get('key'), type}))\n        .filter(d => d.key === entity.getKey());\n\n    found.forEach(({type}) => {\n        const oppType = type === 'from' ? 'to' : 'from';\n        const absolutePositions = {\n            [type]: getConnectionAbsolutePosition(connector.getProperty(type), block, pageSize),\n            [oppType]: getConnectionAbsolutePosition(connector.getProperty(oppType), block, pageSize),\n        };\n        const boundingRectangle = getRoundRectangleFromPoints(absolutePositions.from, absolutePositions.to);\n        const connectorData = {...boundingRectangle};\n        editorState = editorState.setEntity(connector.getKey(), connectorData);\n    });\n\n    return editorState;\n}\n\nexport function connectorMove({editorState, entities, connector, put, adjustedDx, adjustedDy}) {\n    const content = editorState.getCurrentContent();\n    const {width, height} = content.getPageSize();\n    const outsideTargets = [];\n    const changes = ['from', 'to'].reduce((changes, connectionType) => {\n        const connection = connector.getProperty(connectionType);\n\n        // orphan connections will always be moved\n        if (connection.get('type') === 'block') {\n            const pt = Point(\n                (connection.get('x') * width) + adjustedDx,\n                (connection.get('y') * height) + adjustedDy,\n            );\n            changes[connectionType] = {\n                type: 'block',\n                pt,\n            };\n            return changes;\n        }\n\n        const targetEntityKey = connection.get('key');\n\n        if (!entities.some(ent => ent.getKey() === targetEntityKey)) {\n            outsideTargets.push(connectionType);\n            const targetEntity = editorState.getEntity(targetEntityKey);\n            const pt = getPointOnEntity(connection, targetEntity);\n            changes[connectionType] = {\n                type: 'entity',\n                pt,\n            };\n        }\n\n        return changes;\n    }, {});\n\n    // only makes sense to update connector bounds if outside target entity\n    // is not moved with connector\n    if (outsideTargets.length === 1) {\n        const oppConnectionType = outsideTargets[0] === 'from' ? 'to' : 'from';\n        const oppConnection = connector.getProperty(oppConnectionType);\n        // in case if opposite connection is entity then it should be filled in\n        // because block will always be present in changes\n        if (oppConnection.get('type') === 'entity') {\n            const targetEntity = editorState.getEntity(oppConnection.get('key'));\n            const pt = getPointOnEntity(oppConnection, targetEntity);\n            changes[oppConnectionType] = {\n                pt,\n            };\n        }\n\n        const rect = getRoundRectangleFromPoints(changes.from.pt, changes.to.pt);\n\n        put.left = rect.left;\n        put.top = rect.top;\n        put.width = rect.width;\n        put.height = rect.height;\n    }\n\n    ['from', 'to'].forEach(connectionType => {\n        const item = changes[connectionType];\n\n        if (item && item.type === 'block') {\n            put.props = put.props || {};\n            put.props[connectionType] = {\n                x: (item.pt.x / width),\n                y: (item.pt.y / height),\n            };\n        }\n    });\n\n    return {\n        put,\n        // skip updating because connected with two entities that are not moved\n        skip: (outsideTargets.length > 1),\n    };\n}\n","\nvar content = require(\"!!../../../node_modules/css-loader/index.js??ref--5-1!./WebInfographicView.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../node_modules/css-loader/index.js??ref--5-1!./WebInfographicView.css\", function() {\n\t\tvar newContent = require(\"!!../../../node_modules/css-loader/index.js??ref--5-1!./WebInfographicView.css\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","export default {\n    position: 'absolute',\n    left: '-10000px',\n    top: 'auto',\n    width: '1px',\n    height: '1px',\n    overflow: 'hidden',\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/forced-string-html-method');\n\n// `String.prototype.link` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.link\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('link') }, {\n  link: function link(url) {\n    return createHTML(this, 'a', 'href', url);\n  }\n});\n","\nvar content = require(\"!!../../../../../../../node_modules/css-loader/index.js??ref--5-1!./LinkPreview.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../../../../node_modules/css-loader/index.js??ref--5-1!./LinkPreview.css\", function() {\n\t\tvar newContent = require(\"!!../../../../../../../node_modules/css-loader/index.js??ref--5-1!./LinkPreview.css\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","import React, {PureComponent} from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nconst StyledShareButton = styled.button`\n    float: left;\n    height: 22px;\n    line-height: 22px;\n    color: #fff;\n    text-align: center;\n    cursor: pointer;\n    position: relative;\n    padding: 0px 0px 0px 22px;\n    border-radius: 20px;\n    min-width: auto;\n    box-sizing: content-box;\n    font-size: 11px;\n    font-weight: 500;\n    outline: none;\n\n    &::after {\n        content: '';\n        background-image: url('data:image/svg+xml,%3Csvg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"%3E%3Cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M22 20V14V13.999C12.125 13.999 8 19.999 8 19.999C8 19.999 9.937 5.99899 22 5.99899V-0.00100708L32 10.062L22 20ZM4 28H28V18.001H32V28.001C32 30.188 30.188 32.001 28 32.001H4C1.813 32.001 0 30.189 0 28.001V10.063C0 7.87499 1.812 5.99999 4 5.99999H8V9.99999H4V28Z\" fill=\"${props => props.svgColor}\"/%3E%3C/svg%3E%0A');\n        background-size: 10px 10px;\n        width: 10px;\n        height: 10px;\n        line-height: 1;\n        vertical-align: middle;\n        position: absolute;\n        left: 6px;\n        top: 5px;\n    }\n\n    ${props => props.fullWidth && `\n        padding-right: 15px;\n        padding-left: 25px;\n  \n        &::after {\n             left: 9px;\n        }\n    `}\n`;\n\nStyledShareButton.defaultProps = {\n    className: 'ig-share-button',\n};\n\nexport default class ShareButton extends PureComponent {\n    static propTypes = {\n        text: PropTypes.string.isRequired,\n        fullWidth: PropTypes.bool.isRequired,\n        onButtonClick: PropTypes.func.isRequired,\n        style: PropTypes.object,\n    };\n\n    render() {\n        const {text, fullWidth, style} = this.props;\n        style.fontSize = 11;\n        return (\n            <StyledShareButton\n                onClick={this.props.onButtonClick}\n                fullWidth={fullWidth}\n                style={style}\n                svgColor={style.color.replace('#', '%23')}\n            >\n                {fullWidth && text}\n            </StyledShareButton>\n        );\n    }\n}\n","import {Record} from 'immutable';\n\nconst Rectangle = Record({\n    top: 0,\n    left: 0,\n    width: 0,\n    height: 0,\n    rotation: 0,\n}, 'Rectangle');\n\nexport default Rectangle;\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar isArray = require('../internals/is-array');\nvar isObject = require('../internals/is-object');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar createProperty = require('../internals/create-property');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable');\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;\nvar MAXIMUM_ALLOWED_INDEX_EXCEEDED = 'Maximum allowed index exceeded';\n\nvar IS_CONCAT_SPREADABLE_SUPPORT = !fails(function () {\n  var array = [];\n  array[IS_CONCAT_SPREADABLE] = false;\n  return array.concat()[0] !== array;\n});\n\nvar SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('concat');\n\nvar isConcatSpreadable = function (O) {\n  if (!isObject(O)) return false;\n  var spreadable = O[IS_CONCAT_SPREADABLE];\n  return spreadable !== undefined ? !!spreadable : isArray(O);\n};\n\nvar FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !SPECIES_SUPPORT;\n\n// `Array.prototype.concat` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.concat\n// with adding support of @@isConcatSpreadable and @@species\n$({ target: 'Array', proto: true, forced: FORCED }, {\n  concat: function concat(arg) { // eslint-disable-line no-unused-vars\n    var O = toObject(this);\n    var A = arraySpeciesCreate(O, 0);\n    var n = 0;\n    var i, k, length, len, E;\n    for (i = -1, length = arguments.length; i < length; i++) {\n      E = i === -1 ? O : arguments[i];\n      if (isConcatSpreadable(E)) {\n        len = toLength(E.length);\n        if (n + len > MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);\n        for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]);\n      } else {\n        if (n >= MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);\n        createProperty(A, n++, E);\n      }\n    }\n    A.length = n;\n    return A;\n  }\n});\n","export const INFOGRAPHIC_FOOTER_SELECT = 'INFOGRAPHIC_FOOTER_SELECT';\nexport const INFOGRAPHIC_FOOTER_TOGGLE_FONT_SIZE = 'INFOGRAPHIC_FOOTER_TOGGLE_FONT_SIZE';\nexport const INFOGRAPHIC_FOOTER_SHOW_SHARE_DIALOG = 'INFOGRAPHIC_FOOTER_SHOW_SHARE_DIALOG';\nexport const INFOGRAPHIC_SET_FOOTER_SHARE_DIALOG_PAGE = 'INFOGRAPHIC_SET_FOOTER_SHARE_DIALOG_PAGE';\n\nexport const INFOGRAPHIC_FOOTER_HEIGHT = 60;\n","import _typeof from \"../../helpers/esm/typeof\";\nimport assertThisInitialized from \"./assertThisInitialized\";\nexport default function _possibleConstructorReturn(self, call) {\n  if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n    return call;\n  }\n\n  return assertThisInitialized(self);\n}","var anObject = require('../internals/an-object');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nmodule.exports = function (it) {\n  var iteratorMethod = getIteratorMethod(it);\n  if (typeof iteratorMethod != 'function') {\n    throw TypeError(String(it) + ' is not iterable');\n  } return anObject(iteratorMethod.call(it));\n};\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $copyWithin = require('../internals/array-copy-within');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\n\n// `%TypedArray%.prototype.copyWithin` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.copywithin\nArrayBufferViewCore.exportProto('copyWithin', function copyWithin(target, start /* , end */) {\n  return $copyWithin.call(aTypedArray(this), target, start, arguments.length > 2 ? arguments[2] : undefined);\n});\n","exports = module.exports = require(\"../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"._3ir2TKYh5byhYjY8HSOZUj {\\n    position: absolute;\\n    top: 0;\\n    bottom: 0;\\n    left: 0;\\n    right: 0;\\n    pointer-events: none;\\n}\\n\", \"\"]);\n\n// exports\nexports.locals = {\n\t\"wrapper\": \"_3ir2TKYh5byhYjY8HSOZUj\"\n};","var $ = require('../internals/export');\n\nvar nativeAtanh = Math.atanh;\nvar log = Math.log;\n\n// `Math.atanh` method\n// https://tc39.github.io/ecma262/#sec-math.atanh\n// Tor Browser bug: Math.atanh(-0) -> 0\n$({ target: 'Math', stat: true, forced: !(nativeAtanh && 1 / nativeAtanh(-0) < 0) }, {\n  atanh: function atanh(x) {\n    return (x = +x) == 0 ? x : log((1 + x) / (1 - x)) / 2;\n  }\n});\n","var $ = require('../internals/export');\nvar global = require('../internals/global');\nvar microtask = require('../internals/microtask');\nvar classof = require('../internals/classof-raw');\n\nvar process = global.process;\nvar isNode = classof(process) == 'process';\n\n// `queueMicrotask` method\n// https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#dom-queuemicrotask\n$({ global: true, enumerable: true, noTargetGet: true }, {\n  queueMicrotask: function queueMicrotask(fn) {\n    var domain = isNode && process.domain;\n    microtask(domain ? domain.bind(fn) : fn);\n  }\n});\n","import React, {PureComponent, Fragment} from 'react';\nimport PropTypes from 'prop-types';\nimport ImmutablePropTypes from 'react-immutable-proptypes';\n\nimport allHandlers from '../handlers/allHandlers';\n\nclass EntitySelectionOverlay extends PureComponent {\n    static propTypes = {\n        entity: ImmutablePropTypes.record.isRequired,\n        handlerKey: PropTypes.string.isRequired,\n        scaleX: PropTypes.number.isRequired,\n        scaleY: PropTypes.number.isRequired,\n        hovered: PropTypes.bool.isRequired,\n        selected: PropTypes.bool.isRequired,\n        highlighted: PropTypes.bool,\n        multipleSelected: PropTypes.bool.isRequired,\n        multiSelectionActive: PropTypes.bool.isRequired,\n        component: PropTypes.func.isRequired,\n        boundingBoxComponent: PropTypes.any,\n        commenting: PropTypes.bool,\n        block: PropTypes.any.isRequired,\n        pageSize: PropTypes.shape({\n            width: PropTypes.number.isRequired,\n            height: PropTypes.number.isRequired,\n        }),\n    };\n\n    static defaultProps = {\n        multiSelectionActive: false,\n    };\n\n    constructor(props) {\n        super(props);\n        this._refs = {};\n        this._handlers = {\n            select: this._assignHandler('select_entity'),\n            rotate: this._assignHandler('rotate'),\n            resize: this._assignHandler('resize'),\n            resizeSide: this._assignHandler('resizeSide'),\n            resizeWidth: this._assignHandler('resizeWidth'),\n            scaleText: this._assignHandler('scaleText'),\n            begin: this._assignHandler('begin'),\n            end: this._assignHandler('end'),\n            from: this._assignHandler('from'),\n            to: this._assignHandler('to'),\n        };\n    }\n\n    _assignHandler(type) {\n        return (e) => {\n            if (e) {\n                allHandlers.addHandler(e, type, this.props.handlerKey);\n            } else if (this._refs[type]) {\n                allHandlers.removeHandler(this._refs[type], type, this.props.handlerKey);\n            }\n            this._refs[type] = e;\n        };\n    }\n\n    render() {\n        const {\n            component: EntitySelection,\n            boundingBoxComponent: EntityBoundingBox,\n        } = this.props;\n\n        return (\n            <Fragment>\n                {(this.props.hovered || this.props.selected) && (\n                    <EntitySelection\n                        hovered={this.props.hovered}\n                        selected={this.props.selected}\n                        multiSelectionActive={this.props.multiSelectionActive}\n                        entity={this.props.entity}\n                        handlers={this._handlers}\n                        scaleX={this.props.scaleX}\n                        scaleY={this.props.scaleY}\n                        commenting={this.props.commenting}\n                        block={this.props.block}\n                        pageSize={this.props.pageSize}\n                    />\n                )}\n                {EntityBoundingBox && (\n                    <EntityBoundingBox\n                        entity={this.props.entity}\n                        selected={this.props.selected}\n                        multipleSelected={this.props.multipleSelected}\n                        highlighted={this.props.highlighted}\n                        scaleX={this.props.scaleX}\n                        scaleY={this.props.scaleY}\n                    />\n                )}\n            </Fragment>\n        );\n    }\n}\n\nexport default EntitySelectionOverlay;\n","import {combineReducers} from 'redux-immutable';\nimport invariant from 'invariant';\n\nimport footerSettings from './footer-settings';\n\nconst defaultReducers = {\n    //Please put only those reducers here that are required by\n    //ALL portions of the project - web, embed views, downloads,\n    //editor. To add something that is required only by the editor\n    //app (including teams, branding, analytics etc.) use\n    //`addReducers` API - see public/js/app.js.\n    footerSettings,\n};\n\nexport const makeRootReducer = (moreReducers = {}) => {\n    const reducers = {...defaultReducers};\n    for (const key in moreReducers) {\n        invariant(!reducers[key], `Reducer ${key} already exists`);\n        reducers[key] = moreReducers[key];\n    }\n    return combineReducers(reducers);\n};\n","import Fonts from '../shared/fonts';\nimport stylesheets from './stylesheets';\n\nimport Dispatcher from '../app/dispatcher';\nimport Constants from '../app/constants';\n\nexport const loadFonts = async function(fonts, custom = undefined) {\n    return new Promise(resolve => {\n        Fonts.loadFonts(fonts, resolve, 0, new Date(), custom);\n    });\n};\n\nconst loadUniqueStylesheets = async function(url) {\n    return new Promise((resolve, reject) => {\n        stylesheets.loadUnique(url, resolve, reject);\n    });\n};\n\nexport default async function loadThemeAssets(theme, additionalFonts, custom) {\n    const themeId = theme.get('id');\n    const themeCssUrl = '/api/stylesheets/' + themeId;\n\n    const fonts = theme.attributes.localFonts;\n\n    if (custom) {\n        fonts.branding = custom;\n    }\n\n    if (additionalFonts && additionalFonts.length) {\n        fonts.google = additionalFonts.concat(fonts.google || []);\n    }\n\n    window.loadingLog && window.loadingLog.push('loadThemeAssets');\n    await loadFonts(fonts);\n    window.loadingLog && window.loadingLog.push('loadFonts');\n    try {\n        await loadUniqueStylesheets(themeCssUrl);\n    } catch (e) {\n        console.error(e);\n        window.onerror && window.onerror('load stylesheet failed', 'public/js/common/loadThemeAssets.js', 0, 0, e);\n    }\n\n    window.loadingLog && window.loadingLog.push('loadUniqueStylesheets');\n\n    setTimeout(() => {\n        Dispatcher.dispatch({\n            type: Constants.INFOGRAPHIC_THEME_LOADED,\n            themeId,\n        });\n    }, 0);\n}\n","var $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar anObject = require('../internals/an-object');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\n\n// `Reflect.getOwnPropertyDescriptor` method\n// https://tc39.github.io/ecma262/#sec-reflect.getownpropertydescriptor\n$({ target: 'Reflect', stat: true, sham: !DESCRIPTORS }, {\n  getOwnPropertyDescriptor: function getOwnPropertyDescriptor(target, propertyKey) {\n    return getOwnPropertyDescriptorModule.f(anObject(target), propertyKey);\n  }\n});\n","var shared = require('../internals/shared');\n\nmodule.exports = shared('native-function-to-string', Function.toString);\n","'use strict';\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar Iterators = require('../internals/iterators');\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (IteratorConstructor, NAME, next) {\n  var TO_STRING_TAG = NAME + ' Iterator';\n  IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(1, next) });\n  setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n  Iterators[TO_STRING_TAG] = returnThis;\n  return IteratorConstructor;\n};\n","export default class UpdateLoop {\n    constructor() {\n        this._running = false;\n        this._hook = null;\n    }\n\n    get running() {\n        return this._running;\n    }\n\n    _updateProxy = () => {\n        if (!this._running) {\n            this.rafId = null;\n            this._hook = null;\n            return;\n        }\n        this._step();\n        this._enqueue();\n    }\n\n    _step = () => {\n        this._hook();\n    }\n\n    _enqueue = () => {\n        if (this.rafId) {\n            cancelAnimationFrame(this.rafId);\n        }\n        this.rafId = requestAnimationFrame(this._updateProxy);\n    }\n\n    start = (callback) => {\n        this._hook = callback;\n        this._running = true;\n        this._enqueue();\n    }\n\n    stop = () => {\n        if (this.rafId) {\n            cancelAnimationFrame(this.rafId);\n        }\n        this._running = false;\n    }\n}\n","import EditorState from '../immutable/EditorState';\nimport InfographicEntity from '../immutable/InfographicEntity';\nimport addEntitiesInternal from './addEntitiesInternal';\nimport generateUniqueIdentifier from '../util/generateUniqueIdentifier';\n\nexport default function addEntities(editorState, entities, {pushToUndoStack, groupBeingEdited} = {}) {\n    if (pushToUndoStack) {\n        editorState = EditorState.push(editorState, editorState.getCurrentContent());\n    }\n    const {\n        globalEntities: entitiesToAdd,\n        editorState: updatedEditorState,\n        transfer,\n    } = assignEntityGroupOrder(editorState, entities, findRootEntities(entities), {groupBeingEdited});\n    editorState = addEntitiesInternal(updatedEditorState, {groupBeingEdited}, ...entitiesToAdd);\n    return {\n        editorState,\n        entityKeys: entitiesToAdd.map(e => e.getKey()),\n        transfer,\n    };\n}\n\nfunction findRootEntities(entities) {\n    return entities.filter(entity => {\n        if (!entity.groupKey) {\n            return true;\n        }\n        if (entity.groupKey) {\n            const parentIsPresent = entities.find(e => e.key === entity.groupKey);\n            if (!parentIsPresent) {\n                return true;\n            }\n        }\n        return false;\n    });\n}\n\nfunction assignEntityGroupOrder(editorState, orginalEntities, entities, {groupEntity, groupBeingEdited}, globalEntities=[], transfer={}) {\n    const localEntities = [];\n    for (const e of entities) {\n        const newKey = generateUniqueIdentifier();\n        transfer[e.getKey()] = newKey;\n        let entity = InfographicEntity.set(e, {\n            key: newKey,\n            locked: false,\n            groupKey: !groupEntity && !e.getCalloutKey() && groupBeingEdited || undefined,\n        });\n        //We are creating with in groups edit mode. Should be called just for the top layer ones.\n        if (entity.getGroupKey()) {\n            const groupEntityWeAreDuplicatingIn = editorState.getEntity(groupBeingEdited);\n            //asign new key to parent group\n            editorState = editorState.setEntity(groupBeingEdited, {props: {entityKeys: [...groupEntityWeAreDuplicatingIn.getChildrenKeys(), newKey]}});\n        }\n\n        if (groupEntity) {\n            entity = InfographicEntity.set(entity, {\n                blockKey: groupEntity.getBlockKey(),\n                groupKey: entity.getCalloutKey() ? undefined : groupEntity.getKey(),\n            });\n        }\n\n        if (entity.isGroup()) {\n            const entitiesInGroup = orginalEntities.filter(oe => {\n                return e.getChildrenKeys().includes(oe.key);\n            });\n            const {localEntities: childEntities} = assignEntityGroupOrder(editorState, orginalEntities, entitiesInGroup, {groupEntity: entity}, globalEntities, transfer);\n\n            entity = InfographicEntity.set(entity, {props: {entityKeys: childEntities.filter(e => !e.getCalloutKey()).map(e => e.getKey())}});\n        }\n        localEntities.push(entity);\n        globalEntities.push(entity);\n    }\n    return {globalEntities, localEntities, editorState, transfer};\n}\n","module.exports = __webpack_public_path__ + \"3JOMXr4Su7HdZ2-Yo7fuJB.svg\";","import {roundRect} from '../../../../../components/FreeLayoutEditor/util/bounds';\n\nexport function getRoundRectangleFromPoints(from, to) {\n    return roundRect(getRectangleFromPoints(from, to));\n}\n\nexport function getPathFromPoints({from, to}) {\n    return `M${from.x},${from.y} L${to.x},${to.y}`;\n}\n\nexport function getRectangleFromPoints(from, to) {\n    return {\n        left: Math.min(from.x, to.x),\n        top: Math.min(from.y, to.y),\n        width: Math.max(1, Math.abs(to.x - from.x)), // limit to 1px minimum\n        height: Math.max(1, Math.abs(to.y - from.y)),\n    };\n}\n\nexport function toPctPointOfRectangle(point, rect) {\n    return {\n        x: (point.x - rect.left) / rect.width,\n        y: (point.y - rect.top) / rect.height,\n    };\n}\n\nexport function fromPctPointOfRectangle(point, rect) {\n    return {\n        x: rect.left + (point.x * rect.width),\n        y: rect.top + (point.y * rect.height),\n    };\n}\n\nexport function constrainPctValue(value, treshold) {\n    if (value <= (0.5 + treshold) && value >= (0.5 - treshold)) {\n        return 0.5;\n    }\n\n    if (value <= treshold || value >= (1 - treshold)) {\n        return value > 0.5 ? 1 : 0;\n    }\n\n    return value;\n}\n","export default function editOnMouseLeave() {\n    if (this.updateLoop.running) {\n        this.updateLoop.stop();\n    }\n}\n","import React, {PureComponent} from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport LazyBlockWrapper from '../LazyBlockWrapper.react';\n\nconst ScrollPageWrapper = styled.div`\n    position: relative;\n    margin-bottom: 20px;\n\n    :last-of-type {\n        margin-bottom: 0;\n    }\n`;\n\nexport class ScrollPage extends PureComponent {\n    static propTypes = {\n        block: PropTypes.any,\n        assets: PropTypes.shape({getURL: PropTypes.func.isRequired}),\n        children: PropTypes.any,\n        width: PropTypes.number,\n        height: PropTypes.number,\n        observer: PropTypes.shape({\n            observe: PropTypes.func,\n            unobserve: PropTypes.func,\n        }),\n    };\n\n    render() {\n        return (\n            <ScrollPageWrapper>\n                <LazyBlockWrapper\n                    block={this.props.block}\n                    assets={this.props.assets}\n                    width={this.props.width}\n                    height={this.props.height}\n                    observer={this.props.observer}\n                >\n                    {this.props.children}\n                </LazyBlockWrapper>\n            </ScrollPageWrapper>\n        );\n    }\n}\n","export const ROUNDED_SHAPE_DEFAULT_RADIUS = 15;\nexport const TRAPEZIUM_DEFAULT_OFFSET = 0.2;\n","var toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar bind = require('../internals/bind-context');\nvar aTypedArrayConstructor = require('../internals/array-buffer-view-core').aTypedArrayConstructor;\n\nmodule.exports = function from(source /* , mapfn, thisArg */) {\n  var O = toObject(source);\n  var argumentsLength = arguments.length;\n  var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n  var mapping = mapfn !== undefined;\n  var iteratorMethod = getIteratorMethod(O);\n  var i, length, result, step, iterator;\n  if (iteratorMethod != undefined && !isArrayIteratorMethod(iteratorMethod)) {\n    iterator = iteratorMethod.call(O);\n    O = [];\n    while (!(step = iterator.next()).done) {\n      O.push(step.value);\n    }\n  }\n  if (mapping && argumentsLength > 2) {\n    mapfn = bind(mapfn, arguments[2], 2);\n  }\n  length = toLength(O.length);\n  result = new (aTypedArrayConstructor(this))(length);\n  for (i = 0; length > i; i++) {\n    result[i] = mapping ? mapfn(O[i], i) : O[i];\n  }\n  return result;\n};\n","var Url = function(urlString) {\n\n    var url = {};\n\n    if (urlString) {\n        parse(urlString);\n    }\n\n    function parse(urlString) {\n        // Check if urlString is string\n        if (!(typeof urlString == 'string' || urlString instanceof String)) {\n            return;\n        }\n\n        // Trim whitespace\n        urlString = urlString.replace(/(^[\\s]+|[\\s]+$)/g, '');\n\n        // Parse (from http://jsperf.com/url-parsing)\n        var urlRegex = /^(((([^:\\/#\\?]+:)?(?:(\\/\\/)((?:(([^:@\\/#\\?]+)(?:\\:([^:@\\/#\\?]+))?)@)?(([^:\\/#\\?\\]\\[]+|\\[[^\\/\\]@#?]+\\])(?:\\:([0-9]+))?))?)?)?((\\/?(?:[^\\/\\?#]+\\/+)*)([^\\?#]*)))?(\\?[^#]+)?)(#.*)?/;\n        var urlMatches = urlRegex.exec(urlString);\n\n        url.protocol = urlMatches[4];\n        url.user = urlMatches[8];\n        url.pass = urlMatches[9];\n        url.hostname = urlMatches[11];\n        url.port = urlMatches[12];\n        url.pathname = urlMatches[13];\n\n        if (urlMatches[17] && urlMatches[17].indexOf('#') === 0) {\n            // Remove hash sign\n            url.hash = urlMatches[17].substr(1);\n        }\n\n        url.hash = urlMatches[17];\n\n        url.query = {};\n        if (urlMatches[16] && urlMatches[16] !== '') {\n            var query = urlMatches[16].substring(1);\n\n            var querySplit = query.split('&');\n            var iter = 0;\n            var querySplitLength = querySplit.length;\n            for (iter; iter < querySplitLength; iter++) {\n                var queryPair = querySplit[iter].split('=');\n                url.query[decodeURIComponent(queryPair[0])] = decodeURIComponent(queryPair[1]);\n            }\n        }\n    }\n\n    function setProtocol(protocol) {\n        if (protocol && protocol.length > 1 && protocol.substr(-1) !== ':') {\n            protocol += ':';\n        }\n\n        url.protocol = protocol;\n    }\n\n    function setHostname(host) {\n        url.hostname = host;\n    }\n\n    function setPathname(path) {\n        url.pathname = path;\n    }\n\n    function setHash(hash) {\n        url.hash = hash;\n    }\n\n    function setPort(port) {\n        url.port = port;\n    }\n\n    function setParam(key, value) {\n        if (!url.query) {\n            url.query = {};\n        }\n\n        url.query[key] = value;\n    }\n\n    function setParams(params) {\n        if (!url.query) {\n            url.query = {};\n        }\n\n        if (params && params instanceof Object && Object.getPrototypeOf(params) === Object.getPrototypeOf({})) {\n            for (var key in params) {\n                if (params.hasOwnProperty(key)) {\n                    var param = params[key];\n\n                    url.query[decodeURIComponent(key)] = decodeURIComponent(param);\n                }\n            }\n\n        }\n    }\n\n    function getParam(key) {\n        if (url.query && url.query[key]) {\n            return url.query[key];\n        } else {\n            return null;\n        }\n    }\n\n    function getParams() {\n        var out = {};\n\n        // Make copy of parameters\n        if (url.query) {\n            for (var key in url.query) {\n                if (url.query.hasOwnProperty(key)) {\n                    out[key] = url.query[key];\n                }\n            }\n        }\n\n        return out;\n    }\n\n    function getPathname() {\n        if (url.pathname) {\n            return url.pathname;\n        } else {\n            return '/';\n        }\n    }\n\n    function build() {\n        if (!url) {\n            return null;\n        } else {\n            var out = [];\n\n            if (url.protocol) {\n                out.push(url.protocol);\n            }\n\n            if (url.hostname) {\n                out.push('//');\n            }\n\n            if (url.user) {\n                out.push(url.user);\n\n                if (url.pass) {\n                    out.push(':');\n\n                    out.push(url.pass);\n                }\n\n                out.push('@');\n            }\n\n            out.push(url.hostname);\n\n            if (url.port) {\n                out.push(':' + url.port);\n            }\n\n            if (url.pathname) {\n                if (url.pathname.substr(0, 1) !== '/') {\n                    out.push('/');\n                }\n\n                out.push(url.pathname);\n            }\n\n            var hasQuery = false;\n            for (var param in url.query) {\n                if (url.query.hasOwnProperty(param)) {\n                    if (!hasQuery) {\n                        out.push('?');\n                        hasQuery = true;\n                    } else {\n                        out.push('&');\n                    }\n\n                    out.push(encodeURIComponent(param) + '=' + encodeURIComponent(url.query[param]));\n                }\n            }\n\n            if (url.hash) {\n                if (url.hash.indexOf('#') !== 0) {\n                    out.push('#');\n                }\n\n                out.push(url.hash);\n            }\n\n            return out.join('');\n        }\n    }\n\n    return {\n        parse: parse,\n        setProtocol: setProtocol,\n        setHostname: setHostname,\n        setPathname: setPathname,\n        setHash: setHash,\n        setPort: setPort,\n        setParam: setParam,\n        setParams: setParams,\n        getParam: getParam,\n        getParams: getParams,\n        getPathname: getPathname,\n        build: build\n    };\n};\n\nif (typeof window !== 'undefined') {\n    window.Url = Url;\n}\n\nmodule.exports = Url;\n","import PropTypes from 'prop-types';\nimport React, {PureComponent} from 'react';\n\nimport loadImage from '../../../loadImage';\n\nconst convertUrl = (url) =>\n    url.replace(/_q\\.(jpg|jpeg|png)$/, '.$1');\n\nexport default class Flickr extends PureComponent {\n    static propTypes = {\n        image: PropTypes.string.isRequired,\n    };\n\n    static initialPropsForData = (data, options) => {\n        return loadImage(\n            convertUrl(data.image)\n        ).then(({height, width}) => {\n            const elementWidth = options.elementWidth;\n            const elementHeight = height / width * elementWidth;\n            return {\n                width: elementWidth,\n                height: elementHeight,\n            };\n        });\n    }\n\n    render() {\n        const {image} = this.props;\n        const style = {\n            width: '100%',\n            height: '100%',\n        };\n        return (\n            <img className=\"ItemContent-image\" src={convertUrl(image)} style={style}/>\n        );\n    }\n}\n","import {Record} from 'immutable';\n\nconst TransformRecord = Record({\n    rotate: 0,\n    flipHorizontal: false,\n    flipVertical: false,\n});\n\nexport default class Transform extends TransformRecord {\n    static fromRawTransform(raw) {\n        return new Transform(raw);\n    }\n\n    getRotate() {\n        return this.get('rotate');\n    }\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar IndexedObject = require('../internals/indexed-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar sloppyArrayMethod = require('../internals/sloppy-array-method');\n\nvar nativeJoin = [].join;\n\nvar ES3_STRINGS = IndexedObject != Object;\nvar SLOPPY_METHOD = sloppyArrayMethod('join', ',');\n\n// `Array.prototype.join` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.join\n$({ target: 'Array', proto: true, forced: ES3_STRINGS || SLOPPY_METHOD }, {\n  join: function join(separator) {\n    return nativeJoin.call(toIndexedObject(this), separator === undefined ? ',' : separator);\n  }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createIteratorConstructor = require('../internals/create-iterator-constructor');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toLength = require('../internals/to-length');\nvar aFunction = require('../internals/a-function');\nvar anObject = require('../internals/an-object');\nvar classof = require('../internals/classof');\nvar getFlags = require('../internals/regexp-flags');\nvar hide = require('../internals/hide');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar speciesConstructor = require('../internals/species-constructor');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar InternalStateModule = require('../internals/internal-state');\nvar IS_PURE = require('../internals/is-pure');\n\nvar MATCH_ALL = wellKnownSymbol('matchAll');\nvar REGEXP_STRING = 'RegExp String';\nvar REGEXP_STRING_ITERATOR = REGEXP_STRING + ' Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(REGEXP_STRING_ITERATOR);\nvar RegExpPrototype = RegExp.prototype;\nvar regExpBuiltinExec = RegExpPrototype.exec;\n\nvar regExpExec = function (R, S) {\n  var exec = R.exec;\n  var result;\n  if (typeof exec == 'function') {\n    result = exec.call(R, S);\n    if (typeof result != 'object') throw TypeError('Incorrect exec result');\n    return result;\n  } return regExpBuiltinExec.call(R, S);\n};\n\n// eslint-disable-next-line max-len\nvar $RegExpStringIterator = createIteratorConstructor(function RegExpStringIterator(regexp, string, global, fullUnicode) {\n  setInternalState(this, {\n    type: REGEXP_STRING_ITERATOR,\n    regexp: regexp,\n    string: string,\n    global: global,\n    unicode: fullUnicode,\n    done: false\n  });\n}, REGEXP_STRING, function next() {\n  var state = getInternalState(this);\n  if (state.done) return { value: undefined, done: true };\n  var R = state.regexp;\n  var S = state.string;\n  var match = regExpExec(R, S);\n  if (match === null) return { value: undefined, done: state.done = true };\n  if (state.global) {\n    if (String(match[0]) == '') R.lastIndex = advanceStringIndex(S, toLength(R.lastIndex), state.unicode);\n    return { value: match, done: false };\n  }\n  state.done = true;\n  return { value: match, done: false };\n});\n\nvar $matchAll = function (string) {\n  var R = anObject(this);\n  var S = String(string);\n  var C, flagsValue, flags, matcher, global, fullUnicode;\n  C = speciesConstructor(R, RegExp);\n  flagsValue = R.flags;\n  if (flagsValue === undefined && R instanceof RegExp && !('flags' in RegExpPrototype)) {\n    flagsValue = getFlags.call(R);\n  }\n  flags = flagsValue === undefined ? '' : String(flagsValue);\n  matcher = new C(C === RegExp ? R.source : R, flags);\n  global = !!~flags.indexOf('g');\n  fullUnicode = !!~flags.indexOf('u');\n  matcher.lastIndex = toLength(R.lastIndex);\n  return new $RegExpStringIterator(matcher, S, global, fullUnicode);\n};\n\n// `String.prototype.matchAll` method\n// https://github.com/tc39/proposal-string-matchall\n$({ target: 'String', proto: true }, {\n  matchAll: function matchAll(regexp) {\n    var O = requireObjectCoercible(this);\n    var S, matcher, rx;\n    if (regexp != null) {\n      matcher = regexp[MATCH_ALL];\n      if (matcher === undefined && IS_PURE && classof(regexp) == 'RegExp') matcher = $matchAll;\n      if (matcher != null) return aFunction(matcher).call(regexp, O);\n    }\n    S = String(O);\n    rx = new RegExp(regexp, 'g');\n    return IS_PURE ? $matchAll.call(rx, S) : rx[MATCH_ALL](S);\n  }\n});\n\nIS_PURE || MATCH_ALL in RegExpPrototype || hide(RegExpPrototype, MATCH_ALL, $matchAll);\n","\"use strict\";\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 */\n\nfunction makeEmptyFunction(arg) {\n  return function () {\n    return arg;\n  };\n}\n\n/**\n * This function accepts and discards inputs; it has no side effects. This is\n * primarily useful idiomatically for overridable function endpoints which\n * always need to be callable, since JS lacks a null-call idiom ala Cocoa.\n */\nvar emptyFunction = function emptyFunction() {};\n\nemptyFunction.thatReturns = makeEmptyFunction;\nemptyFunction.thatReturnsFalse = makeEmptyFunction(false);\nemptyFunction.thatReturnsTrue = makeEmptyFunction(true);\nemptyFunction.thatReturnsNull = makeEmptyFunction(null);\nemptyFunction.thatReturnsThis = function () {\n  return this;\n};\nemptyFunction.thatReturnsArgument = function (arg) {\n  return arg;\n};\n\nmodule.exports = emptyFunction;","import EditorState from '../immutable/EditorState';\nimport {flattenEntities} from '../../../app/freelayout_editor/components/contents/Group/utils/flatten';\nimport rearrangeEntitiesWithinGroup from '../../../app/freelayout_editor/components/contents/Group/utils/rearrangeEntitiesWithinGroup';\n\nexport function bringToFrontOfEntity(editorState, entityKeyToCover, ...entityKeys) {\n    return rearrangeEntitiesWithinBlock(editorState, entityKeys, createEntityToCoverCallback(editorState, entityKeyToCover), {pushToUndoStack: false});\n}\n\nfunction createEntityToCoverCallback(editorState, entityKeyToCover) {\n    return function entityToCover(editorState, block, from, entity) {\n        const entities = block.getEntities().splice(from, 1);\n\n        const to = entities.findIndex(e => e.key === entityKeyToCover);\n\n        return block.set('entities', entities.splice(to + 1, 0, entity));\n    };\n}\n\nexport function bringToFront(editorState, ...entityKeys) {\n    return rearrangeEntitiesWithinBlock(editorState, entityKeys, moveEntityToEnd);\n}\n\nexport function sendToBack(editorState, ...entityKeys) {\n    return rearrangeEntitiesWithinBlock(editorState, entityKeys, moveEntityToStart);\n}\n\nfunction moveEntityToStart(editorState, block, entityIndex, entity) {\n    if (entity.getGroupKey()) {\n        return moveEntityToStartBeforeGroup(editorState, block, entity, entityIndex);\n    }\n    return block.set('entities', block.getEntities().splice(entityIndex, 1).unshift(entity));\n}\n\nfunction moveEntityToEnd(editorState, block, entityIndex, entity) {\n    if (entity.getGroupKey()) {\n        return moveEntityToEndBeforeGroup(block, entity, entityIndex);\n    }\n    return block.set('entities', block.getEntities().splice(entityIndex, 1).push(entity));\n}\n\nfunction moveEntityToEndBeforeGroup(block, entity, entityIndex) {\n    let groupIndex = block.getEntities().findIndex(e => e.key === entity.getGroupKey());\n    if (entityIndex <= groupIndex) {\n        groupIndex = groupIndex - 1;\n    }\n    if (groupIndex < 0) {\n        groupIndex = 0;\n    }\n    return block.set('entities', block.getEntities().splice(entityIndex, 1).splice(groupIndex, 0, entity));\n}\n\nfunction moveEntityToStartBeforeGroup(editorState, block, entity, entityIndex) {\n    const group = block.getEntity(entity.getGroupKey());\n    const groupChildren = group.getChildrenKeys();\n    const allChildren = flattenEntities(editorState, editorState.getEntities(groupChildren));\n    const groupIndex = block.getEntities().findIndex(e => e.key === group.getKey());\n    let insertIndex = groupIndex - allChildren.size;\n    if (insertIndex < 0) {\n        insertIndex = 0;\n    }\n    return block.set('entities', block.getEntities().splice(entityIndex, 1).splice(insertIndex, 0, entity));\n}\n\nfunction rearrangeEntitiesWithinBlock(editorState, entityKeys, callback, {pushToUndoStack = true} = {}) {\n    let currentContent = editorState.getCurrentContent();\n    if (pushToUndoStack) {\n        editorState = EditorState.push(editorState, currentContent);\n    }\n\n    for (const entityKey of entityKeys) {\n        const entity = currentContent.getEntity(entityKey);\n        const block = currentContent.getBlock(entity.blockKey);\n        const entityIndex = block.getEntities().findIndex(e => e.key === entityKey);\n        if (entityIndex === -1 || entity.locked) {\n            continue;\n        }\n        const blockIndex = currentContent.getBlockIndex(entity.blockKey);\n        let reorderedBlock = callback(editorState, block, entityIndex, entity);\n\n        if (entity.isGroup()) {\n            reorderedBlock = rearrangeEntitiesWithinGroup(editorState, entity, reorderedBlock);\n        }\n        currentContent = currentContent.merge({\n            blocks: currentContent.getBlocks().set(blockIndex, reorderedBlock),\n        });\n    }\n    return EditorState.set(editorState, {currentContent});\n}\n","'use strict';\nvar isArray = require('../internals/is-array');\nvar toLength = require('../internals/to-length');\nvar bind = require('../internals/bind-context');\n\n// `FlattenIntoArray` abstract operation\n// https://tc39.github.io/proposal-flatMap/#sec-FlattenIntoArray\nvar flattenIntoArray = function (target, original, source, sourceLen, start, depth, mapper, thisArg) {\n  var targetIndex = start;\n  var sourceIndex = 0;\n  var mapFn = mapper ? bind(mapper, thisArg, 3) : false;\n  var element;\n\n  while (sourceIndex < sourceLen) {\n    if (sourceIndex in source) {\n      element = mapFn ? mapFn(source[sourceIndex], sourceIndex, original) : source[sourceIndex];\n\n      if (depth > 0 && isArray(element)) {\n        targetIndex = flattenIntoArray(target, original, element, toLength(element.length), targetIndex, depth - 1) - 1;\n      } else {\n        if (targetIndex >= 0x1FFFFFFFFFFFFF) throw TypeError('Exceed the acceptable array length');\n        target[targetIndex] = element;\n      }\n\n      targetIndex++;\n    }\n    sourceIndex++;\n  }\n  return targetIndex;\n};\n\nmodule.exports = flattenIntoArray;\n","\nvar content = require(\"!!../../../../../node_modules/css-loader/index.js??ref--5-1!./CompatibilityCoverImage.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../../node_modules/css-loader/index.js??ref--5-1!./CompatibilityCoverImage.css\", function() {\n\t\tvar newContent = require(\"!!../../../../../node_modules/css-loader/index.js??ref--5-1!./CompatibilityCoverImage.css\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n  'age', 'authorization', 'content-length', 'content-type', 'etag',\n  'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n  'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n  'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n  var parsed = {};\n  var key;\n  var val;\n  var i;\n\n  if (!headers) { return parsed; }\n\n  utils.forEach(headers.split('\\n'), function parser(line) {\n    i = line.indexOf(':');\n    key = utils.trim(line.substr(0, i)).toLowerCase();\n    val = utils.trim(line.substr(i + 1));\n\n    if (key) {\n      if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n        return;\n      }\n      if (key === 'set-cookie') {\n        parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n      } else {\n        parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n      }\n    }\n  });\n\n  return parsed;\n};\n","import _ from 'lodash';\n\nimport InfographicBackboneModel from '../../../models/infographic';\nimport ThemeBackboneModel from '../../../models/theme';\n\nexport default function createBackboneModelFromJSON(json) {\n    const raw = _.clone(json);\n    if (raw.theme) {\n        raw.theme.branding = {\n            colors: ['#AA0000', '#00AA00', '#0000AA'],\n        };\n        raw.theme = createBackboneThemeFromJSON(raw.theme);\n    }\n    return new InfographicBackboneModel(raw);\n}\n\nexport function createBackboneThemeFromJSON(json) {\n    return new ThemeBackboneModel(json);\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar speciesConstructor = require('../internals/species-constructor');\nvar promiseResolve = require('../internals/promise-resolve');\n\n// `Promise.prototype.finally` method\n// https://tc39.github.io/ecma262/#sec-promise.prototype.finally\n$({ target: 'Promise', proto: true, real: true }, {\n  'finally': function (onFinally) {\n    var C = speciesConstructor(this, getBuiltIn('Promise'));\n    var isFunction = typeof onFinally == 'function';\n    return this.then(\n      isFunction ? function (x) {\n        return promiseResolve(C, onFinally()).then(function () { return x; });\n      } : onFinally,\n      isFunction ? function (e) {\n        return promiseResolve(C, onFinally()).then(function () { throw e; });\n      } : onFinally\n    );\n  }\n});\n","import invariant from 'invariant';\nimport _ from 'lodash';\n\nimport {\n    calculateClippedRectangle,\n    calculateTrueRectangle,\n} from '../../util/clippedEntity';\n\nimport {\n    RESIZE,\n    RESIZE_WIDTH,\n    ROTATE,\n    transform,\n    SCALE_TEXT,\n} from './transformations';\nimport {roundRect} from '../../util/bounds';\nimport shapeTextDimensions from '../../../../app/freelayout_editor/components/contents/Shape/shapeDimensions';\nimport {SELECTOR_HORIZONTAL_PADDING} from '../../../TextEditor/constants/TextEditorConstants';\n\nimport {\n    Rectangle,\n    centerOf,\n    calculateRotation,\n    deg,\n    rad,\n    roundRotation,\n    getPositionOnSizeChange,\n    rotatePoint,\n} from './utils';\n\nexport default function singleTransform(entity, action, options) {\n    const {\n        startCoordinates,\n        newCoordinates,\n        altKey,\n        shiftKey,\n        rotationOriginAdjusted,\n        rotationOrigin,\n        entityOverrides,\n        editorState, // necessary for entityOverrides\n    } = options;\n    const visibleRect = calculateClippedRectangle(entity);\n    const rect = Rectangle(visibleRect.left, visibleRect.top, visibleRect.width, visibleRect.height, visibleRect.transform.rotate);\n\n    let deltaRotation = 0;\n    if (action & ROTATE) {\n        const deltaRotationOrigin = action & RESIZE ? rotationOriginAdjusted : centerOf(rect);\n        deltaRotation = calculateRotation(startCoordinates, newCoordinates, deltaRotationOrigin);\n        deltaRotation = rad(roundRotation(deg(deltaRotation), action & RESIZE));\n    }\n\n    const {rect: r, resizeSide} = transform(\n        rect,\n        startCoordinates,\n        newCoordinates,\n        action,\n        {\n            rotationOrigin,\n            deltaRotation: deltaRotation,\n            maxHeight: entity.maxHeight,\n            minHeight: entity.minHeight || 1,\n            maxWidth: entity.maxWidth,\n            minWidth: entity.minWidth || 1,\n            lockAspectRatio: shiftKey || entity.isAspectRatioLocked || (action & SCALE_TEXT),\n            proportional: altKey,\n            snap: shiftKey,\n        }\n    );\n\n    const {left, top, width, height, rotation} = calculateTrueRectangle(entity, r);\n\n    let put = {\n        left: left,\n        top: top,\n        width: width,\n        height: height,\n    };\n\n    if (action & RESIZE) {\n        // When resizing we can round all values so that the shape\n        // will look presisly positioned even with zoom.\n        put = roundRect(put);\n    }\n\n    put.transform = entity.transform.set('rotate', roundRotation(rotation, entity.isLine()));\n\n    if (entity.type === 'SHAPE' && entity.getProperty('content')) {\n        put.props = {\n            text: shapeTextDimensions(entity, width, height),\n        };\n    }\n\n    if (action & RESIZE_WIDTH) {\n        delete put.height;\n\n        if (entityOverrides && entityOverrides.has(entity.key)) {\n            invariant(resizeSide, 'Handle side is not known');\n            const actualEntity = editorState.getEntity(entity.key);\n            const deltaWidth = put.width - actualEntity.width;\n            const overrides = entityOverrides.get(entity.key);\n            invariant(\n                overrides.top !== undefined &&\n                overrides.left !== undefined &&\n                overrides.height !== undefined,\n                'Overridden values of `left`, `top`, or `height` are not defined',\n            );\n            if (altKey) {\n                //resize from both sides at once keeping center the same\n                const halfDeltaWidth = deltaWidth / 2;\n                const rectAngle = rad(entity.transform.rotate);\n                const realMovement = rotatePoint({x: halfDeltaWidth, y: 0}, rectAngle);\n                const rect = {\n                    left: overrides.left - realMovement.x,\n                    top: actualEntity.top - realMovement.y,\n                    width: actualEntity.width + halfDeltaWidth,\n                    height: actualEntity.height,\n                    rotation: entity.transform.rotate,\n                };\n                const {x: left, y: top} = getPositionOnSizeChange({x: deltaWidth, y: 0}, rect);\n                put.left = left;\n                put.top = top;\n            } else {\n                if (resizeSide === 'west') {\n                    const rectAngle = rad(entity.transform.rotate);\n                    const realMovement = rotatePoint({x: deltaWidth, y: 0}, rectAngle);\n\n                    const rect = {\n                        left: overrides.left - realMovement.x,\n                        top: overrides.top - realMovement.y,\n                        width: actualEntity.width,\n                        height: overrides.height,\n                        rotation: entity.transform.rotate,\n                    };\n                    const {x: left, y: top} = getPositionOnSizeChange({x: deltaWidth, y: 0}, rect);\n                    put.left = left;\n                    put.top = top;\n                } else if (resizeSide === 'east') {\n                    const rect = {\n                        left: overrides.left,\n                        top: overrides.top,\n                        width: actualEntity.width,\n                        height: overrides.height,\n                        rotation: entity.transform.rotate,\n                    };\n                    const {x: left, y: top} = getPositionOnSizeChange({x: deltaWidth, y: 0}, rect);\n                    put.left = left;\n                    put.top = top;\n                }\n            }\n        }\n\n        if (entity.type === 'TEXT') {\n            const scaleX = entity.getProperty('scaleX');\n            _.set(put, 'props.scaleWidth', put.width / scaleX - SELECTOR_HORIZONTAL_PADDING * 2);\n        }\n    }\n\n    if (action & SCALE_TEXT) {\n        const scaleWidth = _.isNil(entity.getProperty('scaleWidth')) ? entity.width : entity.getProperty('scaleWidth');\n        const scaleHeight = _.isNil(entity.getProperty('scaleHeight')) ? entity.height : entity.getProperty('scaleHeight');\n        _.set(put, 'props.scaleX', put.width / (scaleWidth + SELECTOR_HORIZONTAL_PADDING * 2));\n        _.set(put, 'props.scaleY', put.height / scaleHeight);\n        _.set(put, 'props.scaleWidth', scaleWidth);\n        _.set(put, 'props.scaleHeight', scaleHeight);\n    }\n\n    return put;\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toInteger = require('../internals/to-integer');\nvar toLength = require('../internals/to-length');\nvar toObject = require('../internals/to-object');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar createProperty = require('../internals/create-property');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar max = Math.max;\nvar min = Math.min;\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;\nvar MAXIMUM_ALLOWED_LENGTH_EXCEEDED = 'Maximum allowed length exceeded';\n\n// `Array.prototype.splice` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.splice\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !arrayMethodHasSpeciesSupport('splice') }, {\n  splice: function splice(start, deleteCount /* , ...items */) {\n    var O = toObject(this);\n    var len = toLength(O.length);\n    var actualStart = toAbsoluteIndex(start, len);\n    var argumentsLength = arguments.length;\n    var insertCount, actualDeleteCount, A, k, from, to;\n    if (argumentsLength === 0) {\n      insertCount = actualDeleteCount = 0;\n    } else if (argumentsLength === 1) {\n      insertCount = 0;\n      actualDeleteCount = len - actualStart;\n    } else {\n      insertCount = argumentsLength - 2;\n      actualDeleteCount = min(max(toInteger(deleteCount), 0), len - actualStart);\n    }\n    if (len + insertCount - actualDeleteCount > MAX_SAFE_INTEGER) {\n      throw TypeError(MAXIMUM_ALLOWED_LENGTH_EXCEEDED);\n    }\n    A = arraySpeciesCreate(O, actualDeleteCount);\n    for (k = 0; k < actualDeleteCount; k++) {\n      from = actualStart + k;\n      if (from in O) createProperty(A, k, O[from]);\n    }\n    A.length = actualDeleteCount;\n    if (insertCount < actualDeleteCount) {\n      for (k = actualStart; k < len - actualDeleteCount; k++) {\n        from = k + actualDeleteCount;\n        to = k + insertCount;\n        if (from in O) O[to] = O[from];\n        else delete O[to];\n      }\n      for (k = len; k > len - actualDeleteCount + insertCount; k--) delete O[k - 1];\n    } else if (insertCount > actualDeleteCount) {\n      for (k = len - actualDeleteCount; k > actualStart; k--) {\n        from = k + actualDeleteCount - 1;\n        to = k + insertCount - 1;\n        if (from in O) O[to] = O[from];\n        else delete O[to];\n      }\n    }\n    for (k = 0; k < insertCount; k++) {\n      O[k + actualStart] = arguments[k + 2];\n    }\n    O.length = len - actualDeleteCount + insertCount;\n    return A;\n  }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar fails = require('../internals/fails');\nvar has = require('../internals/has');\nvar isArray = require('../internals/is-array');\nvar isObject = require('../internals/is-object');\nvar anObject = require('../internals/an-object');\nvar toObject = require('../internals/to-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPrimitive = require('../internals/to-primitive');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar nativeObjectCreate = require('../internals/object-create');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertyNamesExternal = require('../internals/object-get-own-property-names-external');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar hide = require('../internals/hide');\nvar redefine = require('../internals/redefine');\nvar shared = require('../internals/shared');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar uid = require('../internals/uid');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar wrappedWellKnownSymbolModule = require('../internals/wrapped-well-known-symbol');\nvar defineWellKnownSymbol = require('../internals/define-well-known-symbol');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar InternalStateModule = require('../internals/internal-state');\nvar $forEach = require('../internals/array-iteration').forEach;\n\nvar HIDDEN = sharedKey('hidden');\nvar SYMBOL = 'Symbol';\nvar PROTOTYPE = 'prototype';\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(SYMBOL);\nvar ObjectPrototype = Object[PROTOTYPE];\nvar $Symbol = global.Symbol;\nvar JSON = global.JSON;\nvar nativeJSONStringify = JSON && JSON.stringify;\nvar nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\nvar nativeDefineProperty = definePropertyModule.f;\nvar nativeGetOwnPropertyNames = getOwnPropertyNamesExternal.f;\nvar nativePropertyIsEnumerable = propertyIsEnumerableModule.f;\nvar AllSymbols = shared('symbols');\nvar ObjectPrototypeSymbols = shared('op-symbols');\nvar StringToSymbolRegistry = shared('string-to-symbol-registry');\nvar SymbolToStringRegistry = shared('symbol-to-string-registry');\nvar WellKnownSymbolsStore = shared('wks');\nvar QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar USE_SETTER = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDescriptor = DESCRIPTORS && fails(function () {\n  return nativeObjectCreate(nativeDefineProperty({}, 'a', {\n    get: function () { return nativeDefineProperty(this, 'a', { value: 7 }).a; }\n  })).a != 7;\n}) ? function (O, P, Attributes) {\n  var ObjectPrototypeDescriptor = nativeGetOwnPropertyDescriptor(ObjectPrototype, P);\n  if (ObjectPrototypeDescriptor) delete ObjectPrototype[P];\n  nativeDefineProperty(O, P, Attributes);\n  if (ObjectPrototypeDescriptor && O !== ObjectPrototype) {\n    nativeDefineProperty(ObjectPrototype, P, ObjectPrototypeDescriptor);\n  }\n} : nativeDefineProperty;\n\nvar wrap = function (tag, description) {\n  var symbol = AllSymbols[tag] = nativeObjectCreate($Symbol[PROTOTYPE]);\n  setInternalState(symbol, {\n    type: SYMBOL,\n    tag: tag,\n    description: description\n  });\n  if (!DESCRIPTORS) symbol.description = description;\n  return symbol;\n};\n\nvar isSymbol = NATIVE_SYMBOL && typeof $Symbol.iterator == 'symbol' ? function (it) {\n  return typeof it == 'symbol';\n} : function (it) {\n  return Object(it) instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(O, P, Attributes) {\n  if (O === ObjectPrototype) $defineProperty(ObjectPrototypeSymbols, P, Attributes);\n  anObject(O);\n  var key = toPrimitive(P, true);\n  anObject(Attributes);\n  if (has(AllSymbols, key)) {\n    if (!Attributes.enumerable) {\n      if (!has(O, HIDDEN)) nativeDefineProperty(O, HIDDEN, createPropertyDescriptor(1, {}));\n      O[HIDDEN][key] = true;\n    } else {\n      if (has(O, HIDDEN) && O[HIDDEN][key]) O[HIDDEN][key] = false;\n      Attributes = nativeObjectCreate(Attributes, { enumerable: createPropertyDescriptor(0, false) });\n    } return setSymbolDescriptor(O, key, Attributes);\n  } return nativeDefineProperty(O, key, Attributes);\n};\n\nvar $defineProperties = function defineProperties(O, Properties) {\n  anObject(O);\n  var properties = toIndexedObject(Properties);\n  var keys = objectKeys(properties).concat($getOwnPropertySymbols(properties));\n  $forEach(keys, function (key) {\n    if (!DESCRIPTORS || $propertyIsEnumerable.call(properties, key)) $defineProperty(O, key, properties[key]);\n  });\n  return O;\n};\n\nvar $create = function create(O, Properties) {\n  return Properties === undefined ? nativeObjectCreate(O) : $defineProperties(nativeObjectCreate(O), Properties);\n};\n\nvar $propertyIsEnumerable = function propertyIsEnumerable(V) {\n  var P = toPrimitive(V, true);\n  var enumerable = nativePropertyIsEnumerable.call(this, P);\n  if (this === ObjectPrototype && has(AllSymbols, P) && !has(ObjectPrototypeSymbols, P)) return false;\n  return enumerable || !has(this, P) || !has(AllSymbols, P) || has(this, HIDDEN) && this[HIDDEN][P] ? enumerable : true;\n};\n\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(O, P) {\n  var it = toIndexedObject(O);\n  var key = toPrimitive(P, true);\n  if (it === ObjectPrototype && has(AllSymbols, key) && !has(ObjectPrototypeSymbols, key)) return;\n  var descriptor = nativeGetOwnPropertyDescriptor(it, key);\n  if (descriptor && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) {\n    descriptor.enumerable = true;\n  }\n  return descriptor;\n};\n\nvar $getOwnPropertyNames = function getOwnPropertyNames(O) {\n  var names = nativeGetOwnPropertyNames(toIndexedObject(O));\n  var result = [];\n  $forEach(names, function (key) {\n    if (!has(AllSymbols, key) && !has(hiddenKeys, key)) result.push(key);\n  });\n  return result;\n};\n\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(O) {\n  var IS_OBJECT_PROTOTYPE = O === ObjectPrototype;\n  var names = nativeGetOwnPropertyNames(IS_OBJECT_PROTOTYPE ? ObjectPrototypeSymbols : toIndexedObject(O));\n  var result = [];\n  $forEach(names, function (key) {\n    if (has(AllSymbols, key) && (!IS_OBJECT_PROTOTYPE || has(ObjectPrototype, key))) {\n      result.push(AllSymbols[key]);\n    }\n  });\n  return result;\n};\n\n// `Symbol` constructor\n// https://tc39.github.io/ecma262/#sec-symbol-constructor\nif (!NATIVE_SYMBOL) {\n  $Symbol = function Symbol() {\n    if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor');\n    var description = !arguments.length || arguments[0] === undefined ? undefined : String(arguments[0]);\n    var tag = uid(description);\n    var setter = function (value) {\n      if (this === ObjectPrototype) setter.call(ObjectPrototypeSymbols, value);\n      if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n      setSymbolDescriptor(this, tag, createPropertyDescriptor(1, value));\n    };\n    if (DESCRIPTORS && USE_SETTER) setSymbolDescriptor(ObjectPrototype, tag, { configurable: true, set: setter });\n    return wrap(tag, description);\n  };\n\n  redefine($Symbol[PROTOTYPE], 'toString', function toString() {\n    return getInternalState(this).tag;\n  });\n\n  propertyIsEnumerableModule.f = $propertyIsEnumerable;\n  definePropertyModule.f = $defineProperty;\n  getOwnPropertyDescriptorModule.f = $getOwnPropertyDescriptor;\n  getOwnPropertyNamesModule.f = getOwnPropertyNamesExternal.f = $getOwnPropertyNames;\n  getOwnPropertySymbolsModule.f = $getOwnPropertySymbols;\n\n  if (DESCRIPTORS) {\n    // https://github.com/tc39/proposal-Symbol-description\n    nativeDefineProperty($Symbol[PROTOTYPE], 'description', {\n      configurable: true,\n      get: function description() {\n        return getInternalState(this).description;\n      }\n    });\n    if (!IS_PURE) {\n      redefine(ObjectPrototype, 'propertyIsEnumerable', $propertyIsEnumerable, { unsafe: true });\n    }\n  }\n\n  wrappedWellKnownSymbolModule.f = function (name) {\n    return wrap(wellKnownSymbol(name), name);\n  };\n}\n\n$({ global: true, wrap: true, forced: !NATIVE_SYMBOL, sham: !NATIVE_SYMBOL }, {\n  Symbol: $Symbol\n});\n\n$forEach(objectKeys(WellKnownSymbolsStore), function (name) {\n  defineWellKnownSymbol(name);\n});\n\n$({ target: SYMBOL, stat: true, forced: !NATIVE_SYMBOL }, {\n  // `Symbol.for` method\n  // https://tc39.github.io/ecma262/#sec-symbol.for\n  'for': function (key) {\n    var string = String(key);\n    if (has(StringToSymbolRegistry, string)) return StringToSymbolRegistry[string];\n    var symbol = $Symbol(string);\n    StringToSymbolRegistry[string] = symbol;\n    SymbolToStringRegistry[symbol] = string;\n    return symbol;\n  },\n  // `Symbol.keyFor` method\n  // https://tc39.github.io/ecma262/#sec-symbol.keyfor\n  keyFor: function keyFor(sym) {\n    if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol');\n    if (has(SymbolToStringRegistry, sym)) return SymbolToStringRegistry[sym];\n  },\n  useSetter: function () { USE_SETTER = true; },\n  useSimple: function () { USE_SETTER = false; }\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL, sham: !DESCRIPTORS }, {\n  // `Object.create` method\n  // https://tc39.github.io/ecma262/#sec-object.create\n  create: $create,\n  // `Object.defineProperty` method\n  // https://tc39.github.io/ecma262/#sec-object.defineproperty\n  defineProperty: $defineProperty,\n  // `Object.defineProperties` method\n  // https://tc39.github.io/ecma262/#sec-object.defineproperties\n  defineProperties: $defineProperties,\n  // `Object.getOwnPropertyDescriptor` method\n  // https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptors\n  getOwnPropertyDescriptor: $getOwnPropertyDescriptor\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL }, {\n  // `Object.getOwnPropertyNames` method\n  // https://tc39.github.io/ecma262/#sec-object.getownpropertynames\n  getOwnPropertyNames: $getOwnPropertyNames,\n  // `Object.getOwnPropertySymbols` method\n  // https://tc39.github.io/ecma262/#sec-object.getownpropertysymbols\n  getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives\n// https://bugs.chromium.org/p/v8/issues/detail?id=3443\n$({ target: 'Object', stat: true, forced: fails(function () { getOwnPropertySymbolsModule.f(1); }) }, {\n  getOwnPropertySymbols: function getOwnPropertySymbols(it) {\n    return getOwnPropertySymbolsModule.f(toObject(it));\n  }\n});\n\n// `JSON.stringify` method behavior with symbols\n// https://tc39.github.io/ecma262/#sec-json.stringify\nJSON && $({ target: 'JSON', stat: true, forced: !NATIVE_SYMBOL || fails(function () {\n  var symbol = $Symbol();\n  // MS Edge converts symbol values to JSON as {}\n  return nativeJSONStringify([symbol]) != '[null]'\n    // WebKit converts symbol values to JSON as null\n    || nativeJSONStringify({ a: symbol }) != '{}'\n    // V8 throws on boxed symbols\n    || nativeJSONStringify(Object(symbol)) != '{}';\n}) }, {\n  stringify: function stringify(it) {\n    var args = [it];\n    var index = 1;\n    var replacer, $replacer;\n    while (arguments.length > index) args.push(arguments[index++]);\n    $replacer = replacer = args[1];\n    if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n    if (!isArray(replacer)) replacer = function (key, value) {\n      if (typeof $replacer == 'function') value = $replacer.call(this, key, value);\n      if (!isSymbol(value)) return value;\n    };\n    args[1] = replacer;\n    return nativeJSONStringify.apply(JSON, args);\n  }\n});\n\n// `Symbol.prototype[@@toPrimitive]` method\n// https://tc39.github.io/ecma262/#sec-symbol.prototype-@@toprimitive\nif (!$Symbol[PROTOTYPE][TO_PRIMITIVE]) hide($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n// `Symbol.prototype[@@toStringTag]` property\n// https://tc39.github.io/ecma262/#sec-symbol.prototype-@@tostringtag\nsetToStringTag($Symbol, SYMBOL);\n\nhiddenKeys[HIDDEN] = true;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport PropTypes from 'prop-types';\nimport addOneClass from 'dom-helpers/addClass';\nimport removeOneClass from 'dom-helpers/removeClass';\nimport React from 'react';\nimport Transition from './Transition';\nimport { classNamesShape } from './utils/PropTypes';\n\nvar _addClass = function addClass(node, classes) {\n  return node && classes && classes.split(' ').forEach(function (c) {\n    return addOneClass(node, c);\n  });\n};\n\nvar removeClass = function removeClass(node, classes) {\n  return node && classes && classes.split(' ').forEach(function (c) {\n    return removeOneClass(node, c);\n  });\n};\n/**\n * A transition component inspired by the excellent\n * [ng-animate](http://www.nganimate.org/) library, you should use it if you're\n * using CSS transitions or animations. It's built upon the\n * [`Transition`](https://reactcommunity.org/react-transition-group/transition)\n * component, so it inherits all of its props.\n *\n * `CSSTransition` applies a pair of class names during the `appear`, `enter`,\n * and `exit` states of the transition. The first class is applied and then a\n * second `*-active` class in order to activate the CSS transition. After the\n * transition, matching `*-done` class names are applied to persist the\n * transition state.\n *\n * ```jsx\n * function App() {\n *   const [inProp, setInProp] = useState(false);\n *   return (\n *     <div>\n *       <CSSTransition in={inProp} timeout={200} classNames=\"my-node\">\n *         <div>\n *           {\"I'll receive my-node-* classes\"}\n *         </div>\n *       </CSSTransition>\n *       <button type=\"button\" onClick={() => setInProp(true)}>\n *         Click to Enter\n *       </button>\n *     </div>\n *   );\n * }\n * ```\n *\n * When the `in` prop is set to `true`, the child component will first receive\n * the class `example-enter`, then the `example-enter-active` will be added in\n * the next tick. `CSSTransition` [forces a\n * reflow](https://github.com/reactjs/react-transition-group/blob/5007303e729a74be66a21c3e2205e4916821524b/src/CSSTransition.js#L208-L215)\n * between before adding the `example-enter-active`. This is an important trick\n * because it allows us to transition between `example-enter` and\n * `example-enter-active` even though they were added immediately one after\n * another. Most notably, this is what makes it possible for us to animate\n * _appearance_.\n *\n * ```css\n * .my-node-enter {\n *   opacity: 0;\n * }\n * .my-node-enter-active {\n *   opacity: 1;\n *   transition: opacity 200ms;\n * }\n * .my-node-exit {\n *   opacity: 1;\n * }\n * .my-node-exit-active {\n *   opacity: 0;\n *   transition: opacity 200ms;\n * }\n * ```\n *\n * `*-active` classes represent which styles you want to animate **to**.\n *\n * **Note**: If you're using the\n * [`appear`](http://reactcommunity.org/react-transition-group/transition#Transition-prop-appear)\n * prop, make sure to define styles for `.appear-*` classes as well.\n */\n\n\nvar CSSTransition =\n/*#__PURE__*/\nfunction (_React$Component) {\n  _inheritsLoose(CSSTransition, _React$Component);\n\n  function CSSTransition() {\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.appliedClasses = {\n      appear: {},\n      enter: {},\n      exit: {}\n    };\n\n    _this.onEnter = function (node, appearing) {\n      _this.removeClasses(node, 'exit');\n\n      _this.addClass(node, appearing ? 'appear' : 'enter', 'base');\n\n      if (_this.props.onEnter) {\n        _this.props.onEnter(node, appearing);\n      }\n    };\n\n    _this.onEntering = function (node, appearing) {\n      var type = appearing ? 'appear' : 'enter';\n\n      _this.addClass(node, type, 'active');\n\n      if (_this.props.onEntering) {\n        _this.props.onEntering(node, appearing);\n      }\n    };\n\n    _this.onEntered = function (node, appearing) {\n      var type = appearing ? 'appear' : 'enter';\n\n      _this.removeClasses(node, type);\n\n      _this.addClass(node, type, 'done');\n\n      if (_this.props.onEntered) {\n        _this.props.onEntered(node, appearing);\n      }\n    };\n\n    _this.onExit = function (node) {\n      _this.removeClasses(node, 'appear');\n\n      _this.removeClasses(node, 'enter');\n\n      _this.addClass(node, 'exit', 'base');\n\n      if (_this.props.onExit) {\n        _this.props.onExit(node);\n      }\n    };\n\n    _this.onExiting = function (node) {\n      _this.addClass(node, 'exit', 'active');\n\n      if (_this.props.onExiting) {\n        _this.props.onExiting(node);\n      }\n    };\n\n    _this.onExited = function (node) {\n      _this.removeClasses(node, 'exit');\n\n      _this.addClass(node, 'exit', 'done');\n\n      if (_this.props.onExited) {\n        _this.props.onExited(node);\n      }\n    };\n\n    _this.getClassNames = function (type) {\n      var classNames = _this.props.classNames;\n      var isStringClassNames = typeof classNames === 'string';\n      var prefix = isStringClassNames && classNames ? classNames + \"-\" : '';\n      var baseClassName = isStringClassNames ? \"\" + prefix + type : classNames[type];\n      var activeClassName = isStringClassNames ? baseClassName + \"-active\" : classNames[type + \"Active\"];\n      var doneClassName = isStringClassNames ? baseClassName + \"-done\" : classNames[type + \"Done\"];\n      return {\n        baseClassName: baseClassName,\n        activeClassName: activeClassName,\n        doneClassName: doneClassName\n      };\n    };\n\n    return _this;\n  }\n\n  var _proto = CSSTransition.prototype;\n\n  _proto.addClass = function addClass(node, type, phase) {\n    var className = this.getClassNames(type)[phase + \"ClassName\"];\n\n    if (type === 'appear' && phase === 'done') {\n      className += \" \" + this.getClassNames('enter').doneClassName;\n    } // This is for to force a repaint,\n    // which is necessary in order to transition styles when adding a class name.\n\n\n    if (phase === 'active') {\n      /* eslint-disable no-unused-expressions */\n      node && node.scrollTop;\n    }\n\n    this.appliedClasses[type][phase] = className;\n\n    _addClass(node, className);\n  };\n\n  _proto.removeClasses = function removeClasses(node, type) {\n    var _this$appliedClasses$ = this.appliedClasses[type],\n        baseClassName = _this$appliedClasses$.base,\n        activeClassName = _this$appliedClasses$.active,\n        doneClassName = _this$appliedClasses$.done;\n    this.appliedClasses[type] = {};\n\n    if (baseClassName) {\n      removeClass(node, baseClassName);\n    }\n\n    if (activeClassName) {\n      removeClass(node, activeClassName);\n    }\n\n    if (doneClassName) {\n      removeClass(node, doneClassName);\n    }\n  };\n\n  _proto.render = function render() {\n    var _this$props = this.props,\n        _ = _this$props.classNames,\n        props = _objectWithoutPropertiesLoose(_this$props, [\"classNames\"]);\n\n    return React.createElement(Transition, _extends({}, props, {\n      onEnter: this.onEnter,\n      onEntered: this.onEntered,\n      onEntering: this.onEntering,\n      onExit: this.onExit,\n      onExiting: this.onExiting,\n      onExited: this.onExited\n    }));\n  };\n\n  return CSSTransition;\n}(React.Component);\n\nCSSTransition.defaultProps = {\n  classNames: ''\n};\nCSSTransition.propTypes = process.env.NODE_ENV !== \"production\" ? _extends({}, Transition.propTypes, {\n  /**\n   * The animation classNames applied to the component as it appears, enters,\n   * exits or has finished the transition. A single name can be provided and it\n   * will be suffixed for each stage: e.g.\n   *\n   * `classNames=\"fade\"` applies `fade-appear`, `fade-appear-active`,\n   * `fade-appear-done`, `fade-enter`, `fade-enter-active`, `fade-enter-done`,\n   * `fade-exit`, `fade-exit-active`, and `fade-exit-done`.\n   *\n   * **Note**: `fade-appear-done` and `fade-enter-done` will _both_ be applied.\n   * This allows you to define different behavior for when appearing is done and\n   * when regular entering is done, using selectors like\n   * `.fade-enter-done:not(.fade-appear-done)`. For example, you could apply an\n   * epic entrance animation when element first appears in the DOM using\n   * [Animate.css](https://daneden.github.io/animate.css/). Otherwise you can\n   * simply use `fade-enter-done` for defining both cases.\n   *\n   * Each individual classNames can also be specified independently like:\n   *\n   * ```js\n   * classNames={{\n   *  appear: 'my-appear',\n   *  appearActive: 'my-active-appear',\n   *  appearDone: 'my-done-appear',\n   *  enter: 'my-enter',\n   *  enterActive: 'my-active-enter',\n   *  enterDone: 'my-done-enter',\n   *  exit: 'my-exit',\n   *  exitActive: 'my-active-exit',\n   *  exitDone: 'my-done-exit',\n   * }}\n   * ```\n   *\n   * If you want to set these classes using CSS Modules:\n   *\n   * ```js\n   * import styles from './styles.css';\n   * ```\n   *\n   * you might want to use camelCase in your CSS file, that way could simply\n   * spread them instead of listing them one by one:\n   *\n   * ```js\n   * classNames={{ ...styles }}\n   * ```\n   *\n   * @type {string | {\n   *  appear?: string,\n   *  appearActive?: string,\n   *  appearDone?: string,\n   *  enter?: string,\n   *  enterActive?: string,\n   *  enterDone?: string,\n   *  exit?: string,\n   *  exitActive?: string,\n   *  exitDone?: string,\n   * }}\n   */\n  classNames: classNamesShape,\n\n  /**\n   * A `<Transition>` callback fired immediately after the 'enter' or 'appear' class is\n   * applied.\n   *\n   * @type Function(node: HtmlElement, isAppearing: bool)\n   */\n  onEnter: PropTypes.func,\n\n  /**\n   * A `<Transition>` callback fired immediately after the 'enter-active' or\n   * 'appear-active' class is applied.\n   *\n   * @type Function(node: HtmlElement, isAppearing: bool)\n   */\n  onEntering: PropTypes.func,\n\n  /**\n   * A `<Transition>` callback fired immediately after the 'enter' or\n   * 'appear' classes are **removed** and the `done` class is added to the DOM node.\n   *\n   * @type Function(node: HtmlElement, isAppearing: bool)\n   */\n  onEntered: PropTypes.func,\n\n  /**\n   * A `<Transition>` callback fired immediately after the 'exit' class is\n   * applied.\n   *\n   * @type Function(node: HtmlElement)\n   */\n  onExit: PropTypes.func,\n\n  /**\n   * A `<Transition>` callback fired immediately after the 'exit-active' is applied.\n   *\n   * @type Function(node: HtmlElement)\n   */\n  onExiting: PropTypes.func,\n\n  /**\n   * A `<Transition>` callback fired immediately after the 'exit' classes\n   * are **removed** and the `exit-done` class is added to the DOM node.\n   *\n   * @type Function(node: HtmlElement)\n   */\n  onExited: PropTypes.func\n}) : {};\nexport default CSSTransition;","/* global $, _, Backbone */\nimport React from 'react';\nimport ReactDOM from 'react-dom';\n\nimport WebInfographicView from './web/WebInfographicView.react';\nimport WebProfileView from './web/WebProfileView.react';\nimport WebSearchView from './web/WebSearchView.react';\nimport './components/EngagementAnalytics';\nimport AppProvider from './app/AppProvider.react';\n\nwindow.app = {\n    view: $('body').attr('data-window-__viewMode'),\n    events: _.extend({}, Backbone.Events),\n    profile: {},\n    message: {\n        // placeholders, just in case some reused code would want to call them\n        error: function() {},\n        notice: function() {},\n        show: function() {},\n    },\n};\n\nlet Component;\nconst container = document.getElementById('container');\n\nswitch (window.mode) {\n    case 'infographic':\n        Component = WebInfographicView;\n        break;\n    case 'profile':\n        Component = WebProfileView;\n        break;\n    case 'search':\n        Component = WebSearchView;\n        break;\n}\n\nReactDOM.render(\n    <AppProvider>\n        <Component/>\n    </AppProvider>,\n    container\n);\n","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!./PublicDownloadDialog.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!./PublicDownloadDialog.css\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!./PublicDownloadDialog.css\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","/* global Backbone, $, _, app */\n/* eslint no-case-declarations: 0 */\nimport ChartFactory from '../../common/chart_factory/chart_factory';\nimport {PICTORIAL_GRID, PICTORIAL_SIZE, GAUGE, PICTORIAL_BAR, TIMER, BAR_PROGRESS} from '../../shared/chart_constants';\nimport {logAddObjectChartWebJs, logAddObjectMapWebJs} from '../../../../glassbox/client_logger';\nimport CurrentInfographicStore from '../../app/main/stores/CurrentInfographicStore';\nimport chartEnums from '../../shared/chart_constants_inverse';\n\n// this is id to function map example.\n// functions have chart at the end example. Barchart public function\n// this kind of mapping exists on server side libs/infographic\n// in future should be shared\n\nvar Chart = Backbone.Model.extend({\n    urlRoot: '/api/charts',\n    idAttribute: 'chart_id',\n    defaults: () => ({\n        custom: {\n\n        },\n        accessibility: {\n            enabled: true,\n            description: '',\n            label: 'Chart',\n        },\n        dataSets: [],\n    }),\n\n    initialize: function() {\n        this.on('request', function() {\n            app.events.trigger('Editable:saving');\n        });\n        this.on('sync', function() {\n            app.events.trigger('Editable:saved');\n        });\n        this.on('sync', this._ensureColorsIsArray);\n    },\n\n    getFactoryClass: function() {\n        const typeMod = this.getTypeMod();\n        return ChartFactory.prototypes[typeMod];\n    },\n\n    getTypeMod: function() {\n        return `${this.get('chart_type_nr')}_${this.get('modifier')}`;\n    },\n\n    add: function(type, modifier, data, custom, colors, sheetsSettings, sheetnames = []) {\n        if (this.stateLocked) return false;\n        this.stateLocked = true;\n\n        var deferred = $.Deferred();\n\n        var ord;\n        var insertIndex = app.get('insertBeforeIndex');\n\n        if (isFinite(insertIndex)) {\n            ord = insertIndex;\n        }\n\n        const props = {\n            chart_type_nr: type,\n            ID1: window.graphicID,\n            ord,\n            mod: modifier,\n            data,\n            custom,\n            sheetnames,\n        };\n\n        if (colors) {\n            props.colors = colors.map(color => color.replace('#', ''));\n        }\n        if (sheetsSettings) {\n            props.sheets_settings = sheetsSettings;\n        }\n\n        this.set(props);\n\n        var done = function() {\n            this.stateLocked = false;\n            app.events.trigger('Editable:saved');\n            deferred.resolve();\n        }.bind(this);\n\n        app.events.trigger('Editable:saving');\n\n\n        this.save(null, {\n            success: function(model) {\n                var chart_id = 'c_' + model.get('chart_id');\n                model.set('id', chart_id);\n\n                app.events.trigger('Editable:addElement', model, {\n                    beforeIndex: insertIndex,\n                    ui: true,\n                });\n\n                const chartType = chartEnums[`${model.get('chart_type_nr')}_${model.get('modifier')}`].toUpperCase();\n                if (chartType === 'MAP') {\n                    logAddObjectMapWebJs({\n                        project_id: CurrentInfographicStore.infographicId,\n                        object_id: `${model.id}`,\n                        map_type: custom.map,\n                    });\n                } else {\n                    logAddObjectChartWebJs({\n                        project_id: CurrentInfographicStore.infographicId,\n                        object_id: `${model.id}`,\n                        chart_type: chartType,\n                    });\n                }\n                done();\n            },\n\n            error: function(model, response) {\n                app.message.error(response.responseText);\n                done();\n            },\n        });\n\n        return deferred;\n    },\n\n    dimensions: function() {\n        const custom = this.get('custom');\n        let height = 0;\n        if (custom.height) {\n            height = custom.height;\n        } else {\n            switch (this.getTypeMod()) {\n                case PICTORIAL_GRID:\n                case PICTORIAL_SIZE:\n                case GAUGE:\n                    height = 280;\n                    break;\n                case PICTORIAL_BAR:\n                case TIMER:\n                case BAR_PROGRESS:\n                    height = 100;\n                    break;\n            }\n        }\n        return [0, height];\n    },\n\n    _ensureColorsIsArray: function() {\n        var colors = this.get('colors') || [];\n        if (!_.isArray(colors)) {\n            if (_.isString(colors)) {\n                colors = colors.split(' ');\n            } else {\n                throw new Error('Illegal `colors` value');\n            }\n        }\n        this.set('colors', colors.map(function(color) {\n            if (color.length && color[0] !== '#') {\n                color = `#${color}`;\n            }\n            return color;\n        }));\n    },\n});\n\nexport default Chart;\n","module.exports = {\n    LINE: '6_0',\n    LINE_ERROR_MARGIN: '40_0',\n    BAR: '4_0',\n    BAR_STACKED: '17_0',\n    BAR_GROUPED: '4_1',\n    BAR_RADIAL: '2_1',\n    BAR_STACKED_PERCENT: '38_0',\n    BAR_RACE: '41_0',\n    COLUMN: '1_0',\n    COLUMN_STACKED: '10_0',\n    COLUMN_GROUPED: '1_1',\n    COLUMN_STACKED_PERCENT: '39_0',\n    GANTT: '37_0',\n    PIE: '2_0',\n    DOUGHNUT: '2_2',\n    PIE_IRREGULAR: '22_0',\n    SEMI_CIRCLE: '34_0',\n    COLUMN_LINE: '30_0',\n    LINE_LINE: '31_0',\n    COMBO_GROUPED: '35_0',\n    COMBO_STACKED: '36_0',\n    AREA: '15_1',\n    AREA_STACKED: '15_0',\n    AREA_STACKED_PERCENT: '32_0',\n    STREAM_GRAPH: '12_0',\n    AREA_STEPPED: '10_1',\n    SCATTER: '33_0',\n    SCATTER_GROUPED: '20_0',\n    DOT_PLOT: '6_1',\n    BUBBLE: '16_1',\n    BUBBLE_PLOT: '16_0',\n    PICTORIAL_GRID: '3_0',\n    PICTORIAL_SIZE: '7_0',\n    PICTORIAL_BAR: '21_0',\n    PYRAMID: '29_0',\n    FUNNEL: '29_1',\n    TABLE: '19_0',\n    GAUGE: '5_0',\n    BAR_PROGRESS: '28_0',\n    WORDCLOUD: '18_0',\n    TREEMAP: '11_0',\n    CANDLESTICK: '26_0',\n    WATERFALL: '27_0',\n    TIMER: '24_0',\n    FACTS_AND_FIGURES: '23_0',\n    MAP: '9_2',\n};\n","import AppDispatcher from '../../dispatcher';\nimport {EDITOR_STATE_CHANGE} from '../constants/EditorConstants';\n\nexport default function updateEditorState(nextEditorState, options = {}) {\n    AppDispatcher.dispatch({\n        type: EDITOR_STATE_CHANGE,\n        editorState: nextEditorState,\n        ...options,\n    });\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar $every = require('../internals/array-iteration').every;\nvar sloppyArrayMethod = require('../internals/sloppy-array-method');\n\n// `Array.prototype.every` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.every\n$({ target: 'Array', proto: true, forced: sloppyArrayMethod('every') }, {\n  every: function every(callbackfn /* , thisArg */) {\n    return $every(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n  }\n});\n","var $ = require('../internals/export');\nvar from = require('../internals/array-from');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\n\nvar INCORRECT_ITERATION = !checkCorrectnessOfIteration(function (iterable) {\n  Array.from(iterable);\n});\n\n// `Array.from` method\n// https://tc39.github.io/ecma262/#sec-array.from\n$({ target: 'Array', stat: true, forced: INCORRECT_ITERATION }, {\n  from: from\n});\n","import styled, {css} from 'styled-components';\n\nimport PrezigramTheme from '../../contexts/theme/prezigram';\n\nconst StyledButton = styled.a`\n    display: inline-block;\n    border-radius: 4px;\n    cursor: pointer;\n    outline: none;\n    && {\n        box-sizing: border-box;\n    }\n\n    &:hover {\n        text-decoration: none;\n    }\n\n    ${props => props.disabled && `\n        opacity: 0.5;\n        cursor: default;\n    `}\n\n    ${props => props.standard && `\n        padding: 12px 0 13px;\n        font-size: 15px;\n        line-height: 15px;\n    `}\n\n    ${props => props.small && `\n        font-size: 13px;\n        height: 30px;\n        line-height: 30px;\n    `}\n\n    ${props => props.large && `\n        padding-top: 13px;\n        font-size: 17px;\n        line-height: 20px;\n        height: 50px;\n    `}\n\n    ${props => props.blue && css`\n        background-color: #3195cb;\n        color: #fff;\n\n        ${!props.disabled && `\n            &:hover,\n            &:focus {\n                background-color: #5fb7e5;\n            }\n        `}\n\n        ${props.theme.id === PrezigramTheme.id && `\n            font-family: ${PrezigramTheme.fonts.ralewayBold};\n            background-color: ${PrezigramTheme.blue500};\n\n            &:hover {\n                background-color: ${PrezigramTheme.blue400};\n                color: ${PrezigramTheme.white};\n            }\n        `}\n    `}\n\n    ${props => props.red && css`\n        background-color: #c32f2f;\n        color: #fff;\n\n        ${!props.disabled && `\n            &:hover,\n            &:focus {\n                background-color: #da5459;\n            }\n        `}\n\n        ${props.theme.id === PrezigramTheme.id && css`\n            background-color: ${PrezigramTheme.red500};\n\n            ${!props.disabled && `\n                &:hover,\n                &:focus {\n                    color: ${PrezigramTheme.white};\n                    background-color: ${PrezigramTheme.red400};\n                }\n            `}\n        `}\n    `}\n\n    ${props => props.gray && css`\n        background-color: #656565;\n        color: #d8d8d8;\n\n        ${!props.disabled && `\n            &:hover,\n            &:focus {\n                color: #fff;\n                background-color: #7d7d7d;\n                border-color: #7d7d7d;\n            }\n        `}\n\n        ${props.theme.id === PrezigramTheme.id && css`\n            background-color: ${PrezigramTheme.neutral80};\n            color: ${PrezigramTheme.neutral600};\n\n            ${!props.disabled && `\n                &:hover,\n                &:focus {\n                    color: ${PrezigramTheme.neutral600};\n                    background-color: ${PrezigramTheme.neutral100};\n                    border-color: ${PrezigramTheme.neutral100};\n                }\n            `}\n        `}\n    `}\n\n    ${props => props.green && css`\n        background-color: #38a86f;\n        color: #fff;\n\n        ${!props.disabled && `\n            &:hover,\n            &:focus {\n                background-color: #52d49a;\n                border-color: #52d49a;\n            }\n        `}\n    `}\n\n    ${props => props.grayBorder && css`\n        color: #656565;\n        border: 2px solid #656565;\n\n        &:hover {\n            background-color: #656565;\n            color: #fff;\n        }\n\n        ${props.theme.id === PrezigramTheme.id && `\n            border: none;\n            font-family: ${PrezigramTheme.fonts.ralewayBold};\n            color: ${PrezigramTheme.neutral700};\n            background-color: ${PrezigramTheme.neutral80};\n\n            &:hover {\n                color: ${PrezigramTheme.neutral700};\n                background-color: ${PrezigramTheme.neutral100};\n            }\n        `}\n    `}\n\n    ${props => props.icon && `\n        position: relative;\n        padding-left: 25px;\n        padding-right: 10px;\n    `}\n\n    ${props => props.cancel && `\n        color: #434343;\n        box-shadow: inset 0 0 0 2px #656565;\n\n        &:hover {\n            background-color: #7d7d7d;\n            box-shadow: none;\n            color: #fff;\n        }\n    `}\n\n    ${props => props.wide && `\n        padding-left: 0px;\n        width: 100%;\n    `}\n\n    ${props => props.center && `\n        text-align: center;\n    `}\n\n    ${({theme}) => theme.id === PrezigramTheme.id && `\n        font-family: ${PrezigramTheme.fonts.ralewayBold};\n    `}\n`;\n\nconst Icon = styled.span`\n    height: 40px;\n    line-height: 37px;\n    position: absolute;\n    top: 0;\n    left: 12px;\n\n    &:before {\n        line-height: normal;\n    }\n`;\n\nconst IconSvg = styled.img`\n    position: absolute;\n    width: 16px;\n    height: 16px;\n    left: 15px;\n    top: 50%;\n    transform: translateY(-50%);\n`;\n\nconst StyledShareButton = styled.button`\n    display: inline-block;\n    box-sizing: border-box;\n    vertical-align: middle;\n    height: 40px;\n    font-size: 15px;\n\n    position: relative;\n    min-width: 150px;\n    background-color: #3195cb;\n    border-radius: 4px;\n    padding: 0 0 0 10px;\n    overflow: visible;\n\n    &:hover {\n        background-color: #5fb7e5;\n\n        &::after {\n            border-left-color: #5fb7e5;\n        }\n    }\n\n    ${props => props.theme.id === PrezigramTheme.id && `\n        background-color: ${PrezigramTheme.blue500};\n\n        &:hover {\n            background-color: ${PrezigramTheme.blue400};\n        }\n    `}\n`;\n\nexport {\n    StyledButton,\n    StyledShareButton,\n    Icon,\n    IconSvg,\n};\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `ToInteger` abstract operation\n// https://tc39.github.io/ecma262/#sec-tointeger\nmodule.exports = function (argument) {\n  return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument);\n};\n","module.exports = __webpack_public_path__ + \"3ugQhuPhUCkwsE2rW6nfyQ.svg\";","import {Record} from 'immutable';\n\nconst PageSizeRecord = Record({\n    width: 0,\n    height: 0,\n});\n\nexport default class PageSize extends PageSizeRecord {\n    constructor(size) {\n        if (!size || !(size.width > 0) || !(size.height > 0)) {\n            throw new Error(`Invalid page size specified: ${JSON.stringify(size)}`);\n        }\n        super(size);\n    }\n}\n","var $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar aFunction = require('../internals/a-function');\nvar anObject = require('../internals/an-object');\nvar fails = require('../internals/fails');\n\nvar nativeApply = getBuiltIn('Reflect', 'apply');\nvar functionApply = Function.apply;\n\n// MS Edge argumentsList argument is optional\nvar OPTIONAL_ARGUMENTS_LIST = !fails(function () {\n  nativeApply(function () { /* empty */ });\n});\n\n// `Reflect.apply` method\n// https://tc39.github.io/ecma262/#sec-reflect.apply\n$({ target: 'Reflect', stat: true, forced: OPTIONAL_ARGUMENTS_LIST }, {\n  apply: function apply(target, thisArgument, argumentsList) {\n    aFunction(target);\n    anObject(argumentsList);\n    return nativeApply\n      ? nativeApply(target, thisArgument, argumentsList)\n      : functionApply.call(target, thisArgument, argumentsList);\n  }\n});\n","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"._2TG0kxZZheFKWHDH7IeSM5 {\\n    margin-bottom: 0;\\n}\\n._1DsW7frZIalKJVYX98LSeh {\\n    box-sizing: border-box;\\n    position: relative;\\n    height: 300px;\\n    padding-top: 175px;\\n    margin-bottom: 50px;\\n    overflow: hidden;\\n    text-align: center;\\n}\\n._1Gd63dhWOtyOKLQ2fniGM6 {\\n    position: absolute;\\n    top: -40px;\\n    left: -40px;\\n    right: -40px;\\n    bottom: -40px;\\n    height: 380px;\\n    background-position: center center;\\n    background-repeat: no-repeat;\\n    background-size: cover;\\n    filter: blur(40px) brightness(.7);\\n}\\n._1DGNT98GMGWufsdgH29v6C {\\n    position: absolute;\\n    top: 0;\\n    left: 0;\\n    right: 0;\\n    bottom: 0;\\n    background: linear-gradient(to bottom right, rgba(1,1,1,1) 0%, rgba(102,109,199,1) 100%);\\n    opacity: 0.6;\\n}\\n._3fMYJhEljZkc1S5bAiqch- {\\n    position: absolute;\\n    top: 65px;\\n    left: 50%;\\n    transform: translateX(-50%);\\n    display: block;\\n    width: 100px;\\n    height: 100px;\\n    border-radius: 50px;\\n    background-position: center center;\\n    background-size: cover;\\n}\\n._3Jn3fV0ge-Z45-rBtWsPhp {\\n    position: relative;\\n    margin-bottom: 10px;\\n    font-size: 27px;\\n    line-height: 32px;\\n    font-weight: 300;\\n    color: #fff;\\n}\\n._1UaVmDeXrGOVN07wSKCyKD {\\n    position: relative;\\n    font-size: 13px;\\n    font-weight: 500;\\n    line-height: 15px;\\n    color: #fff;\\n}\\n._1UaVmDeXrGOVN07wSKCyKD:before {\\n    opacity: 0.5;\\n    margin-right: 4px;\\n}\\n.bFv_aGBfCqOqSN1s0L6ko {\\n    margin: 0 auto;\\n    font-size: 15px;\\n    line-height: 22px;\\n    color: #656565;\\n    text-align: center;\\n    width: 200px;\\n}\\n.bFv_aGBfCqOqSN1s0L6ko:before {\\n    display: block;\\n    margin-bottom: 10px;\\n    font-size: 65px;\\n    color: #ebebee;\\n}\\n._3Wrz5dRPczywkjww0oJB8l {\\n\\twidth: 100px;\\n\\theight: 100px;\\n\\tborder: none;\\n\\tfont-size: 35px;\\n\\tline-height: 100px;\\n\\tfont-weight: 500;\\n\\tcursor: default;\\n}\\n\", \"\"]);\n\n// exports\nexports.locals = {\n\t\"header\": \"_2TG0kxZZheFKWHDH7IeSM5\",\n\t\"profileHeader\": \"_1DsW7frZIalKJVYX98LSeh\",\n\t\"heroImage\": \"_1Gd63dhWOtyOKLQ2fniGM6\",\n\t\"headerGradient\": \"_1DGNT98GMGWufsdgH29v6C\",\n\t\"headerAvatar\": \"_3fMYJhEljZkc1S5bAiqch-\",\n\t\"headerName\": \"_3Jn3fV0ge-Z45-rBtWsPhp\",\n\t\"headerInfographicsCount\": \"_1UaVmDeXrGOVN07wSKCyKD\",\n\t\"emptyLibraryContent\": \"bFv_aGBfCqOqSN1s0L6ko\",\n\t\"webProfileAvatar\": \"_3Wrz5dRPczywkjww0oJB8l\"\n};","import {Stack} from 'immutable';\n\nimport disassembleGroup from './disassembleGroup';\nimport getEditorStateWithNewGroupBounds from './getEditorStateWithNewGroupBounds';\n\n/**\n * Returns editorstate with children and group keys adjusted after entity was deleted while being part of different group.\n * @typedef {Object} DeleteEntitiesWithinGroupResult\n * @property {Object} editorState - the new EditorState instance\n * @property {Stack} groupKeysToExit - a Stack containing those group keys that should be stopped being edited\n *\n * @param {Object} editorState Instace of EditorState (immutable)\n * @param {Object} entities Immutable.OrderedMap of entities to be flattened\n * @returns {DeleteEntitiesWithinGroupResult} editorState\n */\nexport default function deleteEntitiesWithinGroup(editorState, entities) {\n    editorState = entities.reduce(({editorState, groupKeysToExit}, entity) => {\n        const parentGroupKey = entity.getGroupKey();\n        if (parentGroupKey) {\n            const parentGroup = editorState.getEntity(parentGroupKey);\n            let childEntities = parentGroup.getChildrenKeys();\n            childEntities = childEntities.remove(childEntities.indexOf(entity.getKey()));\n            //Hacky way how to overcome merge issue. Have to think of something better;\n            editorState = editorState.setEntity(parentGroupKey, {props: {entityKeys: null}});\n            editorState = editorState.setEntity(parentGroupKey, {props: {entityKeys: childEntities}});\n            if (childEntities.size < 2) {\n                const result = disassembleGroup(editorState, parentGroup.getKey());\n                editorState = result.editorState;\n                groupKeysToExit = groupKeysToExit.push(result.groupKeyToExit);\n            } else {\n                editorState = getEditorStateWithNewGroupBounds(editorState, entity);\n            }\n        }\n        return {editorState, groupKeysToExit};\n    }, {editorState, groupKeysToExit: Stack()});\n\n    return editorState;\n}\n","exports = module.exports = require(\"../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".vFifJH2o-R4MTCOtvhr-u {\\n    position: relative;\\n}\\n\\n._3czMfreARe4yCG8BnXTE6d {\\n    position: absolute;\\n    pointer-events: auto;\\n    height: 50px;\\n    width: 200px;\\n    border-radius: 4px;\\n    background-color: #333;\\n    color: #FFF;\\n    font-size: 13px;\\n    display: flex;\\n    align-items: center;\\n    text-align: center;\\n    justify-content: center;\\n    user-select: auto;\\n    z-index: 1;\\n}\\n\\n.rvzHKX1BeZDGLSB6PqT0s {\\n    position: absolute;\\n    cursor: default;\\n}\\n\\n._1_MpRNdIyc3uUa67Du6EDB {\\n    position: relative;\\n}\\n\", \"\"]);\n\n// exports\nexports.locals = {\n\t\"wrapper\": \"vFifJH2o-R4MTCOtvhr-u\",\n\t\"callout\": \"_3czMfreARe4yCG8BnXTE6d\",\n\t\"calloutItem\": \"rvzHKX1BeZDGLSB6PqT0s\",\n\t\"calloutItems\": \"_1_MpRNdIyc3uUa67Du6EDB\"\n};","var $ = require('../internals/export');\nvar copyWithin = require('../internals/array-copy-within');\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// `Array.prototype.copyWithin` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.copywithin\n$({ target: 'Array', proto: true }, {\n  copyWithin: copyWithin\n});\n\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('copyWithin');\n","import React, {PureComponent} from 'react';\nimport PropTypes from 'prop-types';\nimport ImmutablePropTypes from 'react-immutable-proptypes';\nimport cx from 'classnames';\n\nimport CalloutItem from './CalloutItem.react';\nimport CalloutCloseButton from './CalloutCloseButton.react';\nimport getCalloutStyle from '../utils/getCalloutStyle';\n\nimport style from './Callout.css';\nimport animation from './animation.css';\n\n\nfunction stopPropagation(e) {\n    e.stopPropagation();\n}\n\nexport default class Callout extends PureComponent {\n    static propTypes = {\n        entity: ImmutablePropTypes.record.isRequired,\n        callout: ImmutablePropTypes.map.isRequired,\n        calloutEntities: ImmutablePropTypes.list,\n        bounds: PropTypes.shape({\n            top: PropTypes.string.isRequired,\n            left: PropTypes.string.isRequired,\n            width: PropTypes.number.isRequired,\n            height: PropTypes.number.isRequired,\n        }).isRequired,\n        design: ImmutablePropTypes.map.isRequired,\n        assets: PropTypes.shape({getURL: PropTypes.func.isRequired}),\n        scaleX: PropTypes.number.isRequired,\n        scaleY: PropTypes.number.isRequired,\n        isOverlay: PropTypes.bool,\n        onMouseLeave: PropTypes.func.isRequired,\n        onMouseHover: PropTypes.func.isRequired,\n        onClose: PropTypes.func.isRequired,\n    };\n\n    render() {\n        const {callout, design, assets, calloutEntities, isOverlay, scaleX, scaleY, bounds} = this.props;\n        const calloutStyle = getCalloutStyle(callout, design);\n\n        return (\n            <div\n                className={cx(style.callout, {\n                    [animation[callout.get('position')]]: !isOverlay,\n                    [animation.overlay]: isOverlay,\n                })}\n                style={{...calloutStyle, ...bounds}}\n                role=\"dialog\"\n                onMouseMove={this._handleMouseMove}\n                onMouseLeave={this._handleMouseLeave}\n                onMouseDown={stopPropagation}\n            >\n                {calloutEntities && calloutEntities.map(entity =>\n                    <CalloutItem\n                        key={entity.getKey()}\n                        entity={entity}\n                        design={design}\n                        assets={assets}\n                        scaleX={scaleX}\n                        scaleY={scaleY}\n                    />\n                )}\n                {isOverlay && <CalloutCloseButton onClose={this._close}/>}\n            </div>\n        );\n    }\n\n    _handleMouseLeave = (e) => {\n        this.props.onMouseLeave(this.props.entity, e);\n    };\n\n    _handleMouseMove = (e) => {\n        this.props.onMouseHover(this.props.entity, e);\n    };\n\n    _close = () => {\n        this.props.onClose(this.props.entity.getKey());\n    };\n}\n","import PropTypes from 'prop-types';\nimport React, {PureComponent} from 'react';\n\nimport loadImage from '../../../loadImage';\nimport Iframe from './Iframe.react';\n\nexport default class Youtube extends PureComponent {\n    static propTypes = {\n        inEditMode: PropTypes.bool,\n        url: PropTypes.string.isRequired,\n        height: PropTypes.oneOfType([\n            PropTypes.string,\n            PropTypes.number,\n        ]),\n    };\n\n    static initialPropsForData = (data, options) => {\n        return loadImage(\n            data.image\n        ).then(({height, width}) => {\n            const elementWidth = options.elementWidth;\n            const elementHeight = height / width * elementWidth;\n            return ({width: elementWidth, height: elementHeight});\n        });\n    }\n\n    render() {\n        const {url, inEditMode} = this.props;\n\n        return (\n            <Iframe\n                inEditMode={inEditMode}\n                url={`https://www.youtube.com/embed/${url}?rel=0`}\n                height={this.props.height}\n            />\n        );\n    }\n}\n","import {\n    GRID_SNAPPING_VISIBLE_THRESHOLD,\n    GRID_SNAPPING_GUIDES_EXTENSION,\n} from '../base/constants';\n\nexport default function(matches, selectionRect) {\n    const visibleSnapLines = [];\n\n    const selectionMinTop = selectionRect.top - GRID_SNAPPING_GUIDES_EXTENSION;\n    const selectionMinLeft = selectionRect.left - GRID_SNAPPING_GUIDES_EXTENSION;\n    const selectionMaxTop = selectionRect.top + selectionRect.height + GRID_SNAPPING_GUIDES_EXTENSION;\n    const selectionMaxLeft = selectionRect.left + selectionRect.width + GRID_SNAPPING_GUIDES_EXTENSION;\n\n    for (const m of matches) {\n        if (m.direction === 'vertical') {\n            visibleSnapLines.push({\n                x: m.coordinate,\n                dashed: false,\n                y1: Math.min(m.bounds.top, selectionMinTop),\n                y2: Math.max(m.bounds.top + m.bounds.height, selectionMaxTop),\n                percent: 1 - Math.abs(m.delta) / GRID_SNAPPING_VISIBLE_THRESHOLD,\n            });\n        } else if (m.direction === 'horizontal') {\n            visibleSnapLines.push({\n                y: m.coordinate,\n                dashed: false,\n                x1: Math.min(m.bounds.left, selectionMinLeft),\n                x2: Math.max(m.bounds.left + m.bounds.width, selectionMaxLeft),\n                percent: 1 - Math.abs(m.delta) / GRID_SNAPPING_VISIBLE_THRESHOLD,\n            });\n        } else if (m.direction === 'vertical-center') {\n            visibleSnapLines.push({\n                x: m.coordinate,\n                dashed: true,\n                y1: Math.min(m.bounds.top, selectionRect.top - GRID_SNAPPING_GUIDES_EXTENSION),\n                y2: Math.max(m.bounds.top + m.bounds.height, selectionMaxTop),\n                percent: 1 - Math.abs(m.delta) / GRID_SNAPPING_VISIBLE_THRESHOLD,\n            });\n        } else if (m.direction === 'horizontal-center') {\n            visibleSnapLines.push({\n                y: m.coordinate,\n                dashed: true,\n                x1: Math.min(m.bounds.left, selectionRect.left - GRID_SNAPPING_GUIDES_EXTENSION),\n                x2: Math.max(m.bounds.left + m.bounds.width, selectionMaxLeft),\n                percent: 1 - Math.abs(m.delta) / GRID_SNAPPING_VISIBLE_THRESHOLD,\n            });\n        }\n    }\n    return visibleSnapLines;\n}\n","/** @license React v16.12.0\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\n'use strict';Object.defineProperty(exports,\"__esModule\",{value:!0});\nvar b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?Symbol.for(\"react.suspense_list\"):\n60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.fundamental\"):60117,w=b?Symbol.for(\"react.responder\"):60118,x=b?Symbol.for(\"react.scope\"):60119;function y(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function z(a){return y(a)===m}\nexports.typeOf=y;exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;exports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;\nexports.isValidElementType=function(a){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===v||a.$$typeof===w||a.$$typeof===x)};exports.isAsyncMode=function(a){return z(a)||y(a)===l};exports.isConcurrentMode=z;exports.isContextConsumer=function(a){return y(a)===k};exports.isContextProvider=function(a){return y(a)===h};\nexports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return y(a)===n};exports.isFragment=function(a){return y(a)===e};exports.isLazy=function(a){return y(a)===t};exports.isMemo=function(a){return y(a)===r};exports.isPortal=function(a){return y(a)===d};exports.isProfiler=function(a){return y(a)===g};exports.isStrictMode=function(a){return y(a)===f};exports.isSuspense=function(a){return y(a)===p};\n","\nvar content = require(\"!!../../../../../../node_modules/css-loader/index.js??ref--5-1!./ProgressBarNavigation.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../../../node_modules/css-loader/index.js??ref--5-1!./ProgressBarNavigation.css\", function() {\n\t\tvar newContent = require(\"!!../../../../../../node_modules/css-loader/index.js??ref--5-1!./ProgressBarNavigation.css\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","function matchAncestor(el, fn) {\n    var n = el;\n    while (n) {\n        if (fn(n)) {\n            return n;\n        }\n        n = n.parentNode;\n    }\n    return n;\n}\n\nexport function findAncestorWithClassName(el, cls) {\n    return matchAncestor(el, function(el) {\n        if (el.nodeType === 1) { //only element nodes please\n            return el.classList.contains(cls);\n        }\n        return false;\n    });\n}\n\nexport function findInEventPathNodeWithClassName(event, cls) {\n    const path = event.path || (event.composedPath && event.composedPath());\n\n    // classList check needed in case `document`\n    // appear in event.path array list.\n    return path && path.some(el => el.classList && el.classList.contains(cls));\n}\n\nexport function elementIsAncestorOf(el, other) {\n    if (!el || !other) {\n        return false;\n    }\n    var n = el;\n    while (n) {\n        if (n === other) {\n            return true;\n        }\n        n = n.parentNode;\n    }\n    return false;\n}\n\nexport function elementIndexInNodeList(el, collection) {\n    return Array.prototype.slice.call(collection).indexOf(el);\n}\n\nexport function isElementInViewport(el) {\n    if (typeof jQuery === 'function' && el instanceof jQuery) {\n        el = el[0];\n    }\n\n    const rect = el.getBoundingClientRect();\n\n    return (\n        rect.top >= 0 &&\n        rect.left >= 0 &&\n        rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) &&\n        rect.right <= (window.innerWidth || document.documentElement.clientWidth)\n    );\n}\n\nexport default {\n    isElementInViewport,\n    findAncestorWithClassName: findAncestorWithClassName,\n    elementIsAncestorOf: elementIsAncestorOf,\n    elementIndexInNodeList: elementIndexInNodeList,\n};\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $every = require('../internals/array-iteration').every;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\n\n// `%TypedArray%.prototype.every` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.every\nArrayBufferViewCore.exportProto('every', function every(callbackfn /* , thisArg */) {\n  return $every(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n});\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule EventSubscription\n * @typechecks\n */\n\n'use strict';\n\n/**\n * EventSubscription represents a subscription to a particular event. It can\n * remove its own subscription.\n */\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\nvar EventSubscription = (function () {\n\n  /**\n   * @param {EventSubscriptionVendor} subscriber the subscriber that controls\n   *   this subscription.\n   */\n\n  function EventSubscription(subscriber) {\n    _classCallCheck(this, EventSubscription);\n\n    this.subscriber = subscriber;\n  }\n\n  /**\n   * Removes this subscription from the subscriber that controls it.\n   */\n\n  EventSubscription.prototype.remove = function remove() {\n    if (this.subscriber) {\n      this.subscriber.removeSubscription(this);\n      this.subscriber = null;\n    }\n  };\n\n  return EventSubscription;\n})();\n\nmodule.exports = EventSubscription;","import React, {PureComponent} from 'react';\nimport PropTypes from 'prop-types';\nimport ImmutablePropTypes from 'react-immutable-proptypes';\nimport Bowser from 'bowser';\nimport cx from 'classnames';\nimport uuid from 'uuid';\n\nimport DynamicFiltersProvider from '../filters/DynamicFiltersProvider.react';\nimport {VignetteRadialGradientPattern, VignetteElement} from './SVGVignette.react';\n\nimport styles from './BaseImage.css';\nimport {amountOf} from '../filters/utils';\n\n// Browser detection\nconst parser = Bowser.getParser(window.navigator.userAgent);\n\nconst msIEOrEdge = parser.isBrowser(Bowser.BROWSER_MAP.ie)\n    || parser.isBrowser(Bowser.BROWSER_MAP.edge);\nconst isSafari = parser.isBrowser(Bowser.BROWSER_MAP.safari);\nconst isFirefox = parser.isBrowser(Bowser.BROWSER_MAP.firefox);\n\nconst cachedNothing = Object.freeze({\n    id: undefined,\n    filter: undefined,\n    svgFilters: undefined,\n    vignette: undefined,\n});\n\nconst noop = () => {};\n\nfunction getVignetteRect({width, height, clip}) {\n    if (!clip) {\n        return {left: 0, top: 0, width, height};\n    }\n    if (clip.has('boundingBox')) {\n        /* MASK */\n        return {\n            left: clip.getIn(['boundingBox', 'left']) * width,\n            top: clip.getIn(['boundingBox', 'top']) * height,\n            width: clip.getIn(['boundingBox', 'width']) * width,\n            height: clip.getIn(['boundingBox', 'height']) * height,\n        };\n    }\n    /* CROP */\n    // Croppping area is defined with actual percentages, must convert\n    return {\n        left: clip.get('left') * width * 0.01,\n        top: clip.get('top') * height * 0.01,\n        width: width * 0.01 * (100 - clip.get('right') - clip.get('left')),\n        height: height * 0.01 * (100 - clip.get('bottom') - clip.get('top')),\n    };\n}\n\nfunction genNewKeyOnEveryMaskMove({clip}) {\n    if (!clip || !clip.has('boundingBox')) {\n        return undefined;\n    }\n    const left = clip.getIn(['boundingBox', 'left']);\n    const top = clip.getIn(['boundingBox', 'top']);\n    const rotation = clip.get('rotate');\n    return `mask-${left}-${top}-${rotation}`;\n}\n\n/**\n * Base Image\n *\n * Smart image component, that renders differently based on content\n * and platform for compatibility\n *\n * You should be able to use it as if basic <img>\n * and it would add/manage required subcomponents based on props\n *\n */\nexport default class BaseImage extends PureComponent {\n    static propTypes = {\n        src: PropTypes.string.isRequired,\n        width: PropTypes.number.isRequired,\n        height: PropTypes.number.isRequired,\n        className: PropTypes.string,\n        style: PropTypes.object,\n        onMouseDown: PropTypes.func,\n        onDoubleClick: PropTypes.func,\n        alt: PropTypes.string,\n        clip: PropTypes.object,\n        filters: ImmutablePropTypes.mapOf(\n            PropTypes.oneOfType([PropTypes.number, PropTypes.string]), PropTypes.string\n        ),\n    }\n\n    static defaultProps = {\n        style: {},\n    }\n\n    state = cachedNothing\n\n    static getState =\n        (filters) => {\n            if (filters && !filters.isEmpty()) {\n                const id = uuid();\n\n                /**\n                 * Vignette is not a real filter,\n                 * that's why we have to pick out\n                 * before giving filters to provider\n                 */\n                const vignette = amountOf(filters, 'vignette');\n                const svgFilters = filters.delete('vignette');\n\n                if (svgFilters.isEmpty()) {\n                    return {\n                        id,\n                        vignette,\n\n                        /**\n                         * Explicitly unset filter properties in state\n                         * because if just omitted, will have the old values\n                         */\n                        filter: undefined,\n                        svgFilters: undefined,\n                    };\n                }\n                return {\n                    id,\n                    vignette,\n                    filter: `url(#${id})`,\n                    svgFilters,\n                };\n            }\n            return cachedNothing;\n        }\n\n    static getDerivedStateFromProps({filters}) {\n        return BaseImage.getState(filters);\n    }\n\n    haveFilters = () => this.props.filters && !this.props.filters.isEmpty()\n\n    hasMask = () => this.props.clip && this.props.clip.has('boundingBox')\n\n    hasCrop = () => this.props.clip && this.props.clip.has('right')\n\n    /**\n     * Use SVG <image> instead of HTML <img> for compatibility\n     *\n     * 1) IE does not support filters and clipPath on <img>\n     * 2) on Firefox w/ vignette, mask gets distorted near the edges on HTML\n     */\n    useSvgFallback = () => (msIEOrEdge && (this.props.style.clipPath || this.haveFilters()))\n        || (isFirefox && this.hasMask() && this.state.vignette)\n\n    renderSVG = () =>\n        <svg\n            className={cx('ItemContent-image', styles.svgBlock)}\n            width={this.props.width}\n            height={this.props.height}\n            style={{top: this.props.style.top, left: this.props.style.left}}\n            viewBox={`0 0 ${this.props.width} ${this.props.height}`}\n            // fix vignette-hole not moving in sync with mouse on IE11\n            key={msIEOrEdge && this.props.clip && this.state.vignette ? Date.now() : undefined}\n        >\n            {this.state.vignette\n                ? this.renderSVGImageWithVignette()\n                : this.renderSVGImage()\n            }\n        </svg>\n\n    renderSVGImage = () =>\n        <image\n            style={this.props.style}\n            xlinkHref={this.props.src}\n            width={this.props.width}\n            height={this.props.height}\n            filter={this.state.filter}\n        />\n\n    renderSVGImageWithVignette = () => {\n        const {src, width, height} = this.props;\n        const {vignette, filter} = this.state;\n\n        const vignetteRect = getVignetteRect(this.props);\n        const vignetteId = `vignette-${this.state.id}`;\n\n        return (\n            <>\n                <defs>\n                    {/*\n                        Render gradient dynamically on the fly in the clip area.\n                        Note: moving around static gradient resulted in weird\n                        glitches and deforming mask ¯\\_(ツ)_/¯\n                    */}\n                    <radialGradient\n                        id={vignetteId}\n                        cx={vignetteRect.left + vignetteRect.width / 2}\n                        cy={vignetteRect.top + vignetteRect.height / 2}\n                        r={Math.max(vignetteRect.width, vignetteRect.height) / 2}\n                        gradientUnits=\"userSpaceOnUse\"\n                    >\n                        <VignetteRadialGradientPattern/>\n                    </radialGradient>\n                </defs>\n                <g style={this.props.style}>\n                    <image\n                        xlinkHref={src}\n                        width={width}\n                        height={height}\n                        filter={filter}\n                    />\n                    <rect\n                        x=\"0\"\n                        y=\"0\"\n                        width={width}\n                        height={height}\n                        style={{opacity: vignette}}\n                        fill={`url(#${vignetteId})`}\n                    />\n                </g>\n            </>\n        );\n    }\n\n    renderImageWithVignette = () => {\n        const vignetteStyle = this.props.clip\n            ? {\n                ...getVignetteRect(this.props),\n                transform: `rotate(${this.props.clip.get('rotate') || 0}deg)`,\n            }\n            : undefined;\n        return (\n            <div\n                className={cx(styles.imageContainer, {[styles.fixDeselectJump]: !isSafari})}\n                style={this.props.style}\n            >\n                <img\n                    className={cx('ItemContent-image', styles.imageBlock)}\n                    src={this.props.src}\n                    style={{\n                        filter: this.state.filter,\n                        WebkitFilter: this.state.filter,\n                    }}\n                    alt={this.props.alt}\n                />\n                <div\n                    className={styles.vignetteContainer}\n                    style={vignetteStyle}\n                >\n                    <VignetteElement intensity={this.state.vignette} id={this.state.id}/>\n                </div>\n            </div>\n        );\n    }\n\n    renderImage = () =>\n        <img\n            className={cx('ItemContent-image', styles.imageBlock)}\n            src={this.props.src}\n            style={{\n                ...this.props.style,\n                filter: this.state.filter,\n                WebkitFilter: this.state.filter,\n            }}\n            alt={this.props.alt}\n        />\n\n    render() {\n        return (\n            <div\n                className={cx(styles.baseImage, this.props.className,\n                    {[styles.fixCropNotVisibleOnIE]: msIEOrEdge && this.hasCrop()}\n                )}\n                // Fixes weird iOS Safari bug\n                // https://bugless.io/app/bug/1563526993.019600\n                // My guess - because content of div is *pointer-events: none*,\n                // Safari for some reason optimises listeners and doesn't attach/fire them.\n                // If you add empty *onClick* listener or *tabIndex=-1/0*, it forces Safari to expect input.\n                // Note: *tabIndex* breaks the backspace-to-delete functionality.\n                onClick={noop}\n                onMouseDown={this.props.onMouseDown}\n                onDoubleClick={this.props.onDoubleClick}\n                // on Safari dragged mask (w/o filters) is not re-rendered otherwise\n                key={isSafari && genNewKeyOnEveryMaskMove(this.props)}\n            >\n                {this.haveFilters() &&\n                    <DynamicFiltersProvider\n                        filters={this.state.svgFilters}\n                        id={this.state.id}\n                    />}\n                {this.useSvgFallback()\n                    ? this.renderSVG()\n                    : this.state.vignette\n                        ? this.renderImageWithVignette()\n                        : this.renderImage()\n                }\n            </div>\n        );\n    }\n}\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar isForced = require('../internals/is-forced');\nvar redefine = require('../internals/redefine');\nvar has = require('../internals/has');\nvar classof = require('../internals/classof-raw');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar toPrimitive = require('../internals/to-primitive');\nvar fails = require('../internals/fails');\nvar create = require('../internals/object-create');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar defineProperty = require('../internals/object-define-property').f;\nvar trim = require('../internals/string-trim').trim;\n\nvar NUMBER = 'Number';\nvar NativeNumber = global[NUMBER];\nvar NumberPrototype = NativeNumber.prototype;\n\n// Opera ~12 has broken Object#toString\nvar BROKEN_CLASSOF = classof(create(NumberPrototype)) == NUMBER;\n\n// `ToNumber` abstract operation\n// https://tc39.github.io/ecma262/#sec-tonumber\nvar toNumber = function (argument) {\n  var it = toPrimitive(argument, false);\n  var first, third, radix, maxCode, digits, length, index, code;\n  if (typeof it == 'string' && it.length > 2) {\n    it = trim(it);\n    first = it.charCodeAt(0);\n    if (first === 43 || first === 45) {\n      third = it.charCodeAt(2);\n      if (third === 88 || third === 120) return NaN; // Number('+0x1') should be NaN, old V8 fix\n    } else if (first === 48) {\n      switch (it.charCodeAt(1)) {\n        case 66: case 98: radix = 2; maxCode = 49; break; // fast equal of /^0b[01]+$/i\n        case 79: case 111: radix = 8; maxCode = 55; break; // fast equal of /^0o[0-7]+$/i\n        default: return +it;\n      }\n      digits = it.slice(2);\n      length = digits.length;\n      for (index = 0; index < length; index++) {\n        code = digits.charCodeAt(index);\n        // parseInt parses a string to a first unavailable symbol\n        // but ToNumber should return NaN if a string contains unavailable symbols\n        if (code < 48 || code > maxCode) return NaN;\n      } return parseInt(digits, radix);\n    }\n  } return +it;\n};\n\n// `Number` constructor\n// https://tc39.github.io/ecma262/#sec-number-constructor\nif (isForced(NUMBER, !NativeNumber(' 0o1') || !NativeNumber('0b1') || NativeNumber('+0x1'))) {\n  var NumberWrapper = function Number(value) {\n    var it = arguments.length < 1 ? 0 : value;\n    var dummy = this;\n    return dummy instanceof NumberWrapper\n      // check on 1..constructor(foo) case\n      && (BROKEN_CLASSOF ? fails(function () { NumberPrototype.valueOf.call(dummy); }) : classof(dummy) != NUMBER)\n        ? inheritIfRequired(new NativeNumber(toNumber(it)), dummy, NumberWrapper) : toNumber(it);\n  };\n  for (var keys = DESCRIPTORS ? getOwnPropertyNames(NativeNumber) : (\n    // ES3:\n    'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' +\n    // ES2015 (in case, if modules with ES2015 Number statics required before):\n    'EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,' +\n    'MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger'\n  ).split(','), j = 0, key; keys.length > j; j++) {\n    if (has(NativeNumber, key = keys[j]) && !has(NumberWrapper, key)) {\n      defineProperty(NumberWrapper, key, getOwnPropertyDescriptor(NativeNumber, key));\n    }\n  }\n  NumberWrapper.prototype = NumberPrototype;\n  NumberPrototype.constructor = NumberWrapper;\n  redefine(global, NUMBER, NumberWrapper);\n}\n","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n    __assign = Object.assign || function(t) {\n        for (var s, i = 1, n = arguments.length; i < n; i++) {\n            s = arguments[i];\n            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n                t[p] = s[p];\n        }\n        return t;\n    };\n    return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Cookies = require(\"es-cookie\");\nvar LogEntryFormatter_1 = require(\"./LogEntryFormatter\");\nvar client_logger_1 = require(\"./client.logger\");\nexports.logConfig = {\n    use_json_logger: false,\n    category: 'website_events',\n    object: 'logged_element',\n    action: 'click',\n    trigger: 'click',\n    platform: 'website',\n};\nvar WebsiteLogger = /** @class */ (function () {\n    function WebsiteLogger() {\n    }\n    WebsiteLogger.log = function (originalLogMessage) {\n        var logMessage = __assign({}, WebsiteLogger.defaultEntryValues, originalLogMessage, { payload: __assign({}, WebsiteLogger.defaultEntryValues.payload, originalLogMessage.payload) });\n        logMessage.logLevel = logMessage.logLevel || client_logger_1.LogLevel.INFO;\n        this.clientLogger.log(logMessage);\n    };\n    WebsiteLogger.initLogger = function (logMessage, logApiEndpoint) {\n        logMessage.payload = logMessage.payload || {};\n        var isProduction = window.location.host.indexOf('preprod') === -1 &&\n            window.location.host.indexOf('localhost') === -1 &&\n            window.location.host.indexOf('sandbox') === -1; // infogram sandbox\n        var clientLoggingConfig = {\n            logApiEndpoint: logApiEndpoint,\n            defaultLogLevel: client_logger_1.LogLevel.INFO,\n            defaultSource: String(logMessage.payload['source'] || ''),\n            isProduction: isProduction,\n        };\n        this.clientLogger = new client_logger_1.ClientLogger(clientLoggingConfig);\n        WebsiteLogger.defaultEntryValues = logMessage;\n        WebsiteLogger.defaultEntryValues.session_id = LogEntryFormatter_1.LogRecordFormatter.generateUUID();\n        try {\n            WebsiteLogger.defaultEntryValues.payload['putma_id'] = Cookies.get('__putma') || 'N/A';\n        }\n        catch (e) {\n            WebsiteLogger.defaultEntryValues.payload['putma_id'] = 'N/A';\n        }\n        if (Site && Site.user_id) {\n            WebsiteLogger.defaultEntryValues.payload['user_id'] = Site.user_id;\n        }\n    };\n    return WebsiteLogger;\n}());\nexports.WebsiteLogger = WebsiteLogger;\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\nmodule.exports = function (METHOD_NAME) {\n  var regexp = /./;\n  try {\n    '/./'[METHOD_NAME](regexp);\n  } catch (e) {\n    try {\n      regexp[MATCH] = false;\n      return '/./'[METHOD_NAME](regexp);\n    } catch (f) { /* empty */ }\n  } return false;\n};\n","import PropTypes from 'prop-types';\n\nimport React, {PureComponent} from 'react';\n\nimport {engagementEvent} from '../../../components/EngagementAnalytics/EngagementAnalytics.actions';\n\nexport default class Link extends PureComponent {\n    static propTypes = {\n        children: PropTypes.any,\n        link: PropTypes.string,\n        id: PropTypes.number.isRequired,\n    };\n\n    onClick = () => {\n        engagementEvent(String(this.props.id), 'link', 'click');\n    }\n\n    render() {\n        return (\n            <a\n                href={this.props.link}\n                rel=\"nofollow noopener noreferrer\"\n                target=\"_blank\"\n                onClick={this.onClick}\n            >{this.props.children}\n            </a>\n        );\n    }\n}\n","var $ = require('../internals/export');\n\n// `Number.MAX_SAFE_INTEGER` constant\n// https://tc39.github.io/ecma262/#sec-number.max_safe_integer\n$({ target: 'Number', stat: true }, {\n  MAX_SAFE_INTEGER: 0x1FFFFFFFFFFFFF\n});\n","var $ = require('../internals/export');\nvar isObject = require('../internals/is-object');\nvar onFreeze = require('../internals/internal-metadata').onFreeze;\nvar FREEZING = require('../internals/freezing');\nvar fails = require('../internals/fails');\n\nvar nativeSeal = Object.seal;\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeSeal(1); });\n\n// `Object.seal` method\n// https://tc39.github.io/ecma262/#sec-object.seal\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !FREEZING }, {\n  seal: function seal(it) {\n    return nativeSeal && isObject(it) ? nativeSeal(onFreeze(it)) : it;\n  }\n});\n","import Spinner, {InlineSpinner} from './Spinner.react';\n\nexport default Spinner;\nexport {InlineSpinner};\n\n","// This file is not transpiled by babel\nvar script = document.getElementsByClassName('app-bundle')[0];\nvar src = script.getAttribute('src');\nmodule.exports = src.substr(0, src.lastIndexOf('/') + 1);\n","'use strict';\nvar $ = require('../internals/export');\nvar exec = require('../internals/regexp-exec');\n\n$({ target: 'RegExp', proto: true, forced: /./.exec !== exec }, {\n  exec: exec\n});\n","var $ = require('../internals/export');\nvar anObject = require('../internals/an-object');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\n\n// `Reflect.deleteProperty` method\n// https://tc39.github.io/ecma262/#sec-reflect.deleteproperty\n$({ target: 'Reflect', stat: true }, {\n  deleteProperty: function deleteProperty(target, propertyKey) {\n    var descriptor = getOwnPropertyDescriptor(anObject(target), propertyKey);\n    return descriptor && !descriptor.configurable ? false : delete target[propertyKey];\n  }\n});\n","module.exports = __webpack_public_path__ + \"27Uv82KruFYHEd-9LK_c-8.svg\";","'use strict';\nvar redefineAll = require('../internals/redefine-all');\nvar getWeakData = require('../internals/internal-metadata').getWeakData;\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar anInstance = require('../internals/an-instance');\nvar iterate = require('../internals/iterate');\nvar ArrayIterationModule = require('../internals/array-iteration');\nvar $has = require('../internals/has');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\nvar find = ArrayIterationModule.find;\nvar findIndex = ArrayIterationModule.findIndex;\nvar id = 0;\n\n// fallback for uncaught frozen keys\nvar uncaughtFrozenStore = function (store) {\n  return store.frozen || (store.frozen = new UncaughtFrozenStore());\n};\n\nvar UncaughtFrozenStore = function () {\n  this.entries = [];\n};\n\nvar findUncaughtFrozen = function (store, key) {\n  return find(store.entries, function (it) {\n    return it[0] === key;\n  });\n};\n\nUncaughtFrozenStore.prototype = {\n  get: function (key) {\n    var entry = findUncaughtFrozen(this, key);\n    if (entry) return entry[1];\n  },\n  has: function (key) {\n    return !!findUncaughtFrozen(this, key);\n  },\n  set: function (key, value) {\n    var entry = findUncaughtFrozen(this, key);\n    if (entry) entry[1] = value;\n    else this.entries.push([key, value]);\n  },\n  'delete': function (key) {\n    var index = findIndex(this.entries, function (it) {\n      return it[0] === key;\n    });\n    if (~index) this.entries.splice(index, 1);\n    return !!~index;\n  }\n};\n\nmodule.exports = {\n  getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n    var C = wrapper(function (that, iterable) {\n      anInstance(that, C, CONSTRUCTOR_NAME);\n      setInternalState(that, {\n        type: CONSTRUCTOR_NAME,\n        id: id++,\n        frozen: undefined\n      });\n      if (iterable != undefined) iterate(iterable, that[ADDER], that, IS_MAP);\n    });\n\n    var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n    var define = function (that, key, value) {\n      var state = getInternalState(that);\n      var data = getWeakData(anObject(key), true);\n      if (data === true) uncaughtFrozenStore(state).set(key, value);\n      else data[state.id] = value;\n      return that;\n    };\n\n    redefineAll(C.prototype, {\n      // 23.3.3.2 WeakMap.prototype.delete(key)\n      // 23.4.3.3 WeakSet.prototype.delete(value)\n      'delete': function (key) {\n        var state = getInternalState(this);\n        if (!isObject(key)) return false;\n        var data = getWeakData(key);\n        if (data === true) return uncaughtFrozenStore(state)['delete'](key);\n        return data && $has(data, state.id) && delete data[state.id];\n      },\n      // 23.3.3.4 WeakMap.prototype.has(key)\n      // 23.4.3.4 WeakSet.prototype.has(value)\n      has: function has(key) {\n        var state = getInternalState(this);\n        if (!isObject(key)) return false;\n        var data = getWeakData(key);\n        if (data === true) return uncaughtFrozenStore(state).has(key);\n        return data && $has(data, state.id);\n      }\n    });\n\n    redefineAll(C.prototype, IS_MAP ? {\n      // 23.3.3.3 WeakMap.prototype.get(key)\n      get: function get(key) {\n        var state = getInternalState(this);\n        if (isObject(key)) {\n          var data = getWeakData(key);\n          if (data === true) return uncaughtFrozenStore(state).get(key);\n          return data ? data[state.id] : undefined;\n        }\n      },\n      // 23.3.3.5 WeakMap.prototype.set(key, value)\n      set: function set(key, value) {\n        return define(this, key, value);\n      }\n    } : {\n      // 23.4.3.1 WeakSet.prototype.add(value)\n      add: function add(value) {\n        return define(this, value, true);\n      }\n    });\n\n    return C;\n  }\n};\n","export {default} from './Avatar.react';\n","var $ = require('../internals/export');\nvar toISOString = require('../internals/date-to-iso-string');\n\n// `Date.prototype.toISOString` method\n// https://tc39.github.io/ecma262/#sec-date.prototype.toisostring\n// PhantomJS / old WebKit has a broken implementations\n$({ target: 'Date', proto: true, forced: Date.prototype.toISOString !== toISOString }, {\n  toISOString: toISOString\n});\n","var $ = require('../internals/export');\nvar parseFloatImplementation = require('../internals/parse-float');\n\n// `parseFloat` method\n// https://tc39.github.io/ecma262/#sec-parsefloat-string\n$({ global: true, forced: parseFloat != parseFloatImplementation }, {\n  parseFloat: parseFloatImplementation\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar ArrayBufferModule = require('../internals/array-buffer');\nvar anObject = require('../internals/an-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toLength = require('../internals/to-length');\nvar speciesConstructor = require('../internals/species-constructor');\n\nvar ArrayBuffer = ArrayBufferModule.ArrayBuffer;\nvar DataView = ArrayBufferModule.DataView;\nvar nativeArrayBufferSlice = ArrayBuffer.prototype.slice;\n\nvar INCORRECT_SLICE = fails(function () {\n  return !new ArrayBuffer(2).slice(1, undefined).byteLength;\n});\n\n// `ArrayBuffer.prototype.slice` method\n// https://tc39.github.io/ecma262/#sec-arraybuffer.prototype.slice\n$({ target: 'ArrayBuffer', proto: true, unsafe: true, forced: INCORRECT_SLICE }, {\n  slice: function slice(start, end) {\n    if (nativeArrayBufferSlice !== undefined && end === undefined) {\n      return nativeArrayBufferSlice.call(anObject(this), start); // FF fix\n    }\n    var length = anObject(this).byteLength;\n    var first = toAbsoluteIndex(start, length);\n    var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n    var result = new (speciesConstructor(this, ArrayBuffer))(toLength(fin - first));\n    var viewSource = new DataView(this);\n    var viewTarget = new DataView(result);\n    var index = 0;\n    while (first < fin) {\n      viewTarget.setUint8(index++, viewSource.getUint8(first++));\n    } return result;\n  }\n});\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport {Container} from 'flux/utils';\n\nexport default function fluxContainer(args?: any) {\n    return (component: any): any => Container.create(component, args);\n}\n","import React, {PureComponent} from 'react';\nimport PropTypes from 'prop-types';\n\nimport {Provider} from 'react-redux';\n\nimport store from '../store';\nimport DialogProvider from '../prezigram/DialogContext';\n\nexport default class AppProvider extends PureComponent {\n    static propTypes = {\n        children: PropTypes.node,\n    };\n    render() {\n        return (\n            <Provider {...this.props} store={store}>\n                <DialogProvider>\n                    {this.props.children}\n                </DialogProvider>\n            </Provider>\n        );\n    }\n}\n","'use strict';\nvar anObject = require('../internals/an-object');\n\n// `RegExp.prototype.flags` getter implementation\n// https://tc39.github.io/ecma262/#sec-get-regexp.prototype.flags\nmodule.exports = function () {\n  var that = anObject(this);\n  var result = '';\n  if (that.global) result += 'g';\n  if (that.ignoreCase) result += 'i';\n  if (that.multiline) result += 'm';\n  if (that.dotAll) result += 's';\n  if (that.unicode) result += 'u';\n  if (that.sticky) result += 'y';\n  return result;\n};\n","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n  utils.forEach(headers, function processHeader(value, name) {\n    if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n      headers[normalizedName] = value;\n      delete headers[name];\n    }\n  });\n};\n","export default function _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}","import {Map} from 'immutable';\n\n/**\n * As the image is clipped, the transform origin changes to the\n * center of the clipped area and the rotation is recalculated\n * from the new transform origin. This results in a shift of\n * resulting position, a jump that needs to be compensated\n * for a visually satisfying result.\n *\n * @param {Number} left Percentage of transform origin left position\n * @param {Number} top Percentage of transform origin top position\n */\nexport default function compensateTransformOriginShift(entity, {left, top}) {\n    const rotate = entity.getTransform().getRotate();\n\n    const crop = entity.getProperty('crop');\n    const mask = entity.getProperty('mask');\n\n    let prevOriginX, prevOriginY;\n    if (crop) {\n        prevOriginX = (entity.getWidth() * (crop.get('left') + (100 - crop.get('left') - crop.get('right')) / 2)) / 100;\n        prevOriginY = (entity.getHeight() * (crop.get('top') + (100 - crop.get('top') - crop.get('bottom')) / 2)) / 100;\n    } else if (mask) {\n        prevOriginX = entity.getWidth() * mask.get('center').get('left');\n        prevOriginY = entity.getHeight() * mask.get('center').get('top');\n    } else {\n        prevOriginX = entity.getWidth() / 2;\n        prevOriginY = entity.getHeight() / 2;\n    }\n\n    const newOriginX = Math.round((entity.getWidth() * left) / 100);\n    const newOriginY = Math.round((entity.getHeight() * top) / 100);\n\n    const cos = Math.cos((rotate * Math.PI) / 180);\n    const sin = Math.sin((rotate * Math.PI) / 180);\n\n    const dOriginX = newOriginX - Math.round(prevOriginX);\n    const dOriginY = newOriginY - Math.round(prevOriginY);\n\n    const rotatedX = Math.round(cos * dOriginX - sin * dOriginY);\n    const rotatedY = Math.round(sin * dOriginX + cos * dOriginY);\n\n    const originOffset = Map({\n        x: rotatedX - dOriginX,\n        y: rotatedY - dOriginY,\n    });\n    return originOffset;\n}\n","'use strict';\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar hide = require('../internals/hide');\nvar has = require('../internals/has');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\nvar returnThis = function () { return this; };\n\n// `%IteratorPrototype%` object\n// https://tc39.github.io/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\nif ([].keys) {\n  arrayIterator = [].keys();\n  // Safari 8 has buggy iterators w/o `next`\n  if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n  else {\n    PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n    if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n  }\n}\n\nif (IteratorPrototype == undefined) IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nif (!IS_PURE && !has(IteratorPrototype, ITERATOR)) hide(IteratorPrototype, ITERATOR, returnThis);\n\nmodule.exports = {\n  IteratorPrototype: IteratorPrototype,\n  BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nconst TakeNoSpace = styled.svg`\n    position: absolute;\n    left: 0;\n    top: 0;\n    width: 100%;\n    height: 100%;\n`;\n\nfunction absoluteUrl(fragment) {\n    const baseUrl = window.location.href.replace(window.location.hash, '');\n    return `${baseUrl}#${fragment}`;\n}\n\n/** Reusable radial gradient definition for image vignette */\nexport const VignetteRadialGradientPattern = () =>\n    <>\n        <stop offset=\"69%\" stopColor=\"#000\" stopOpacity=\"0\"/>\n        <stop offset=\"100%\" stopColor=\"#000\" stopOpacity=\".75\"/>\n    </>\n;\n\n/** SVG vignette element to be overlayed over image */\nexport const VignetteElement = ({id, intensity}) =>\n    <TakeNoSpace\n        xmlns=\"http://www.w3.org/2000/svg\"\n        xmlnsXlink=\"http://www.w3.org/1999/xlink\"\n        preserveAspectRatio=\"none\"\n        style={{opacity: intensity}}\n    >\n        <defs>\n            <radialGradient id={`vignette-${id}`}>\n                <VignetteRadialGradientPattern/>\n            </radialGradient>\n        </defs>\n        {/* If not using absolute URL, gradient not visible in embed on Safari 12 browser */}\n        <rect x={0} y={0} width=\"100%\" height=\"100%\" fill={`url(\"${absoluteUrl(`vignette-${id}`)}\")`}/>\n    </TakeNoSpace>\n;\nVignetteElement.propTypes = {\n    intensity: PropTypes.number,\n    id: PropTypes.string,\n};\n","/* eslint no-case-declarations: 0 */\n\nimport ChartFactory from './chart_factory';\nimport EntityStore, {addEntity} from './entities';\nimport CurrentInfographicStore from '../../app/main/stores/CurrentInfographicStore';\nimport updateFlexData from './update_flex_data';\n\nexport default function reloadChart(chart, callback) {\n    prepareColors(chart);\n    if (chart.get('isFreelayoutInline')) {\n        updateFlexData(chart);\n        if (typeof callback === 'function') {\n            callback();\n        }\n        return; // In freelayout chart will re-render itself on data change.\n    }\n    const infographic = CurrentInfographicStore.model;\n\n    if (!infographic) {\n        return;\n    }\n\n    const theme = infographic.get('theme');\n    const chartId = chart.get('chart_id');\n    const chartFactoryInstance = EntityStore.getEntity(chartId);\n    const container = chartFactoryInstance.container;\n\n    ChartFactory.create({\n        container,\n        chart,\n        theme,\n        tabs: !!infographic.get('properties').tabs,\n        interactivityHintEnabled: infographic.get('properties').interactivity_hint,\n        interlinkedCharts: infographic.get('properties').interlinked_charts,\n        viewMode: chartFactoryInstance.viewMode,\n    }).then((chartObject) => {\n        setTimeout(() => {\n            addEntity(chartId, chartObject);\n\n            if (typeof callback === 'function') {\n                callback();\n            }\n        }, 0);\n    });\n}\n\nconst prepareColors = function(chart) {\n    const tplColors = chart.get('defaultColors');\n    const tplColorsLength = tplColors.length;\n    const colors = chart.get('colors');\n\n    if (!colors) {\n        chart.set('colors', tplColors.slice(0));\n        return;\n    }\n\n    for (let i = 0, colorsLength = colors.length; i < colorsLength; i++) {\n        if (!colors[i]) {\n            colors[i] = tplColors[i % tplColorsLength];\n        }\n    }\n\n    chart.set('colors', colors.slice(0));\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 * @typechecks\n * \n */\n\n/*eslint-disable no-self-compare */\n\n'use strict';\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\n/**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\nfunction is(x, y) {\n  // SameValue algorithm\n  if (x === y) {\n    // Steps 1-5, 7-10\n    // Steps 6.b-6.e: +0 != -0\n    // Added the nonzero y check to make Flow happy, but it is redundant\n    return x !== 0 || y !== 0 || 1 / x === 1 / y;\n  } else {\n    // Step 6.a: NaN == NaN\n    return x !== x && y !== y;\n  }\n}\n\n/**\n * Performs equality by iterating through keys on an object and returning false\n * when any key has values which are not strictly equal between the arguments.\n * Returns true when the values of all keys are strictly equal.\n */\nfunction shallowEqual(objA, objB) {\n  if (is(objA, objB)) {\n    return true;\n  }\n\n  if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) {\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  // Test for A's keys different from B.\n  for (var i = 0; i < keysA.length; i++) {\n    if (!hasOwnProperty.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) {\n      return false;\n    }\n  }\n\n  return true;\n}\n\nmodule.exports = shallowEqual;","import Dispatcher from '../../dispatcher';\nimport Constants from '../../constants';\n\nexport default function invalidateCurrentInfographic() {\n    Dispatcher.dispatch({\n        type: Constants.INFOGRAPHIC_INVALIDATE,\n    });\n}\n","/* global _ */\nimport helper from './helper';\nimport cleanupCustomSettings from './cleanupCustomSettings';\n\nfunction extractTitles(data, custom) {\n    if (!data.slice) {\n        return {};\n    }\n    let sheets = [data[0]];\n    if (custom.useAllColumns) {\n        sheets = data;\n    }\n    let titles = [];\n    // if row switch toggle on\n    sheets.forEach(sheet => {\n        if (custom.switchRowsColumns === true) {\n            titles = titles.concat(sheet.slice(1).map((r) => Object({title: r[0]})));\n        } else if (sheet[0]) {\n            titles = titles.concat(sheet[0].slice(1).map((r) => Object({title: r})));\n        }\n    });\n    return titles;\n}\n\nfunction extractDataSets(infographic) {\n    var elements = infographic.get('elements');\n    var dataSets = {};\n    elements && elements.forEach && elements.forEach(function(el) {\n        var objectId = el.object_id;\n        if (el.type !== 'chart') {\n            dataSets[objectId] = [];\n            return;\n        }\n        var chartId = el.chart_id;\n        var type = el.chart_type_nr;\n        var typeMod = `${type}_${el.modifier}`;\n        var data = el.data;\n        el.sheetnames = el.sheetnames || [];\n\n        const custom = cleanupCustomSettings(typeMod, el.custom);\n\n        if (helper.hasMultipleSheets({typeMod, custom, data}) && !custom.useAllColumns) {\n            if (data.length > 1) {\n                dataSets[chartId] = data.map(function(sheet, i) {\n                    return {\n                        title: el.sheetnames[i] || (sheet[0] ? sheet[0][0] : ''),\n                    };\n                });\n            }\n            return;\n        }\n\n        if (data.length) {\n            if (type === 9) { // map\n                dataSets[chartId] = [];\n            } else if (data[0].length && data[0][0]) {\n                dataSets[objectId] = extractTitles(data, custom);\n            }\n        }\n\n        if (chartId in dataSets) {\n            dataSets[objectId] = _.clone(dataSets[chartId]);\n        }\n    });\n    return dataSets;\n}\n\nexport default extractDataSets;\n","module.exports = __webpack_public_path__ + \"2MaPGwHw5PwozPth6YwEVz.svg\";","export default function _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}","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n","'use strict';\nvar global = require('../internals/global');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar fails = require('../internals/fails');\n\nvar Int8Array = global.Int8Array;\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar $toLocaleString = [].toLocaleString;\nvar $slice = [].slice;\n\n// iOS Safari 6.x fails here\nvar TO_LOCALE_STRING_BUG = !!Int8Array && fails(function () {\n  $toLocaleString.call(new Int8Array(1));\n});\n\nvar FORCED = fails(function () {\n  return [1, 2].toLocaleString() != new Int8Array([1, 2]).toLocaleString();\n}) || !fails(function () {\n  Int8Array.prototype.toLocaleString.call([1, 2]);\n});\n\n// `%TypedArray%.prototype.toLocaleString` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.tolocalestring\nArrayBufferViewCore.exportProto('toLocaleString', function toLocaleString() {\n  return $toLocaleString.apply(TO_LOCALE_STRING_BUG ? $slice.call(aTypedArray(this)) : aTypedArray(this), arguments);\n}, FORCED);\n","//------------------------------------------------------------------------------\n//     Do NOT edit this directly.\n//\n//     This code was generated using generation tools.\n//\n//     Changes to this file may cause incorrect behavior and will be lost when\n//     the code is regenerated.\n//------------------------------------------------------------------------------\n\nconst plan = {\n    BUSINESS_SUL_MONTHLY: 'BUSINESS_SUL_MONTHLY',\n    BUSINESS_SUL_YEARLY: 'BUSINESS_SUL_YEARLY',\n    BUSINESS_TEAM_MONTHLY: 'BUSINESS_TEAM_MONTHLY',\n    BUSINESS_TEAM_YEARLY: 'BUSINESS_TEAM_YEARLY',\n    ENTERPRISE: 'ENTERPRISE',\n    FREE: 'FREE',\n    PRO_SUL_MONTHLY: 'PRO_SUL_MONTHLY',\n    PRO_SUL_YEARLY: 'PRO_SUL_YEARLY',\n    PRO_TEAM_MONTHLY: 'PRO_TEAM_MONTHLY',\n    PRO_TEAM_YEARLY: 'PRO_TEAM_YEARLY',\n};\n\nconst organization = {\n    ENTERPRISE: 'ENTERPRISE',\n    GOVERNMENT_NGO: 'GOVERNMENT_NGO',\n    MEDIA: 'MEDIA',\n    SCHOOL_UNIVERSITY: 'SCHOOL_UNIVERSITY',\n    SELF_EMPLOYED: 'SELF_EMPLOYED',\n    SMALL_MED_BUSINESS: 'SMALL_MED_BUSINESS',\n};\n\nconst chosen_plan = {\n    BUSINESS: 'BUSINESS',\n    ENTERPRISE: 'ENTERPRISE',\n    FREE: 'FREE',\n    PRO: 'PRO',\n    TEAM: 'TEAM',\n};\n\nconst role = {\n    CONSULTANT: 'CONSULTANT',\n    DESIGNER: 'DESIGNER',\n    DIRECTOR: 'DIRECTOR',\n    EDITOR_IN_CHIEF: 'EDITOR_IN_CHIEF',\n    EXECUTIVE_DIRECTOR: 'EXECUTIVE_DIRECTOR',\n    HR_LEARNING: 'HR_LEARNING',\n    IT_ENGINEERING: 'IT_ENGINEERING',\n    JOURNALIST_EDITOR: 'JOURNALIST_EDITOR',\n    MARKETER_PR: 'MARKETER_PR',\n    OPERATIONS_FINANCE: 'OPERATIONS_FINANCE',\n    OTHER: 'OTHER',\n    PROGRAM_PROJECT_MANAGER: 'PROGRAM_PROJECT_MANAGER',\n    SALES_CUSTOMER_SERVICE: 'SALES_CUSTOMER_SERVICE',\n    STUDENT: 'STUDENT',\n    TEACHER_PROFESSOR: 'TEACHER_PROFESSOR',\n    WRITER_BLOGGER: 'WRITER_BLOGGER',\n};\n\nconst chart_type = {\n    AREA: 'AREA',\n    AREA_STACKED: 'AREA_STACKED',\n    AREA_STACKED_PERCENT: 'AREA_STACKED_PERCENT',\n    AREA_STEPPED: 'AREA_STEPPED',\n    BAR: 'BAR',\n    BAR_GROUPED: 'BAR_GROUPED',\n    BAR_PROGRESS: 'BAR_PROGRESS',\n    BAR_RACE: 'BAR_RACE',\n    BAR_RADIAL: 'BAR_RADIAL',\n    BAR_STACKED: 'BAR_STACKED',\n    BAR_STACKED_PERCENT: 'BAR_STACKED_PERCENT',\n    BUBBLE: 'BUBBLE',\n    BUBBLE_PLOT: 'BUBBLE_PLOT',\n    CANDLESTICK: 'CANDLESTICK',\n    COLUMN: 'COLUMN',\n    COLUMN_GROUPED: 'COLUMN_GROUPED',\n    COLUMN_LINE: 'COLUMN_LINE',\n    COLUMN_STACKED: 'COLUMN_STACKED',\n    COLUMN_STACKED_PERCENT: 'COLUMN_STACKED_PERCENT',\n    COMBO_GROUPED: 'COMBO_GROUPED',\n    COMBO_STACKED: 'COMBO_STACKED',\n    DOT_PLOT: 'DOT_PLOT',\n    DOUGHNUT: 'DOUGHNUT',\n    FACTS_AND_FIGURES: 'FACTS_AND_FIGURES',\n    FUNNEL: 'FUNNEL',\n    GANTT: 'GANTT',\n    GAUGE: 'GAUGE',\n    LINE: 'LINE',\n    LINE_ERROR_MARGIN: 'LINE_ERROR_MARGIN',\n    LINE_LINE: 'LINE_LINE',\n    PICTORIAL_BAR: 'PICTORIAL_BAR',\n    PICTORIAL_GRID: 'PICTORIAL_GRID',\n    PICTORIAL_SIZE: 'PICTORIAL_SIZE',\n    PIE: 'PIE',\n    PIE_IRREGULAR: 'PIE_IRREGULAR',\n    PYRAMID: 'PYRAMID',\n    SCATTER: 'SCATTER',\n    SCATTER_GROUPED: 'SCATTER_GROUPED',\n    SEMI_CIRCLE: 'SEMI_CIRCLE',\n    STREAM_GRAPH: 'STREAM_GRAPH',\n    TABLE: 'TABLE',\n    TIMER: 'TIMER',\n    TREEMAP: 'TREEMAP',\n    WATERFALL: 'WATERFALL',\n    WORDCLOUD: 'WORDCLOUD',\n};\n\nconst image_type = {\n    BRANDING_IMAGE: 'BRANDING_IMAGE',\n    CUSTOM_ICON: 'CUSTOM_ICON',\n    FLAG: 'FLAG',\n    GIF: 'GIF',\n    ICON: 'ICON',\n    IMAGE: 'IMAGE',\n    STICKER: 'STICKER',\n    USER_IMAGE: 'USER_IMAGE',\n};\n\nconst shape_type = {\n    ARROW: 'ARROW',\n    CALLOUTCIRCLE: 'CALLOUTCIRCLE',\n    CLOUD: 'CLOUD',\n    CYLINDER: 'CYLINDER',\n    ELLIPSE: 'ELLIPSE',\n    HEXAGON: 'HEXAGON',\n    LINE: 'LINE',\n    OVAL: 'OVAL',\n    PARALLELOGRAMLEFT: 'PARALLELOGRAMLEFT',\n    PARALLELOGRAMRIGHT: 'PARALLELOGRAMRIGHT',\n    PATH: 'PATH',\n    POINTER: 'POINTER',\n    POLYGON: 'POLYGON',\n    RECTANGLE: 'RECTANGLE',\n    RHOMBUS: 'RHOMBUS',\n    ROUNDED: 'ROUNDED',\n    TRAPEZIUMDOWN: 'TRAPEZIUMDOWN',\n    TRAPEZIUMUP: 'TRAPEZIUMUP',\n    TRIANGLE: 'TRIANGLE',\n};\n\nconst text_type = {\n    BODYTEXT: 'BODYTEXT',\n    BODYTITLE: 'BODYTITLE',\n    CAPTIONTEXT: 'CAPTIONTEXT',\n    MAINTITLE: 'MAINTITLE',\n};\n\nconst target_project_status = {\n    DRAFT: 'DRAFT',\n    PRIVATE: 'PRIVATE',\n    PUBLIC: 'PUBLIC',\n};\n\nconst create_source = {\n    API: 'API',\n    FRONTPAGE_TEMPLATE_CHOOSER: 'FRONTPAGE_TEMPLATE_CHOOSER',\n    LIBRARY: 'LIBRARY',\n    ONBOARDING: 'ONBOARDING',\n    TEMPLATE_CHOOSER: 'TEMPLATE_CHOOSER',\n};\n\nconst file_format = {\n    HTML: 'HTML',\n    JPG: 'JPG',\n    PDF: 'PDF',\n    PNG: 'PNG',\n};\n\nconst modify_object_action = {\n    ACCESSIBILITY: 'ACCESSIBILITY',\n    ADD_CALLOUT: 'ADD_CALLOUT',\n    ANIMATION: 'ANIMATION',\n    MOVE: 'MOVE',\n    OTHER: 'OTHER',\n    REMOVE_BACKGROUND: 'REMOVE_BACKGROUND',\n    RESIZE: 'RESIZE',\n    ROTATE: 'ROTATE',\n};\n\nconst object_type = {\n    CHART: 'CHART',\n    CONNECTOR: 'CONNECTOR',\n    ELEMENT: 'ELEMENT',\n    GROUP: 'GROUP',\n    IMAGE: 'IMAGE',\n    MAP: 'MAP',\n    MEDIA: 'MEDIA',\n    MULTIPLE: 'MULTIPLE',\n    PAGE: 'PAGE',\n    PATH: 'PATH',\n    SHAPE: 'SHAPE',\n    TEXT: 'TEXT',\n};\n\nconst modify_project_action = {\n    ADD_PAGE: 'ADD_PAGE',\n    BACKGROUND_BLUR: 'BACKGROUND_BLUR',\n    BACKGROUND_COLOR_CHANGE: 'BACKGROUND_COLOR_CHANGE',\n    BACKGROUND_IMAGE_CHANGE: 'BACKGROUND_IMAGE_CHANGE',\n    CHANGE_TRANSITION: 'CHANGE_TRANSITION',\n    PAGE_ORDER_CHANGE: 'PAGE_ORDER_CHANGE',\n    PROJECT_SIZE_CHANGE: 'PROJECT_SIZE_CHANGE',\n    REMOVE_PAGE: 'REMOVE_PAGE',\n    SWITCH_THEME: 'SWITCH_THEME',\n};\n\nconst auth_source = {\n    EMAIL: 'EMAIL',\n    FACEBOOK: 'FACEBOOK',\n    GOOGLE: 'GOOGLE',\n    LINKEDIN: 'LINKEDIN',\n    SSO: 'SSO',\n    TWITTER: 'TWITTER',\n};\n\nconst social_platform = {\n    FACEBOOK: 'FACEBOOK',\n    LINKEDIN: 'LINKEDIN',\n    PINTEREST: 'PINTEREST',\n    REDDIT: 'REDDIT',\n    TUMBLR: 'TUMBLR',\n    TWITTER: 'TWITTER',\n};\n\nconst integration_type = {\n    DROPBOX: 'DROPBOX',\n    GOOGLE_ANALYTICS: 'GOOGLE_ANALYTICS',\n    GOOGLE_DRIVE: 'GOOGLE_DRIVE',\n    JSON: 'JSON',\n    MSSQL: 'MSSQL',\n    MYSQL: 'MYSQL',\n    ORACLE: 'ORACLE',\n    POSTGRESQL: 'POSTGRESQL',\n    REDSHIFT: 'REDSHIFT',\n    UPLOAD: 'UPLOAD',\n};\n\nconst media_type = {\n    FLICKR: 'FLICKR',\n    GIPHY: 'GIPHY',\n    IFRAME: 'IFRAME',\n    SLIDESHARE: 'SLIDESHARE',\n    URL: 'URL',\n    VIDEO: 'VIDEO',\n    VIMEO: 'VIMEO',\n    YOUTUBE: 'YOUTUBE',\n};\n\nconst download_object_format = {\n    GIF: 'GIF',\n    JPG: 'JPG',\n    PDF: 'PDF',\n    PNG: 'PNG',\n};\n\nconst downgrade_reason = {\n    BUGS: 'BUGS',\n    COMPETITOR: 'COMPETITOR',\n    FEATURES: 'FEATURES',\n    OTHER: 'OTHER',\n    PRICING: 'PRICING',\n    SUPPORT: 'SUPPORT',\n    TEMPLATES: 'TEMPLATES',\n    TEMPORARY_USE: 'TEMPORARY_USE',\n    USAGE: 'USAGE',\n};\n\nconst upgrade_trigger = {\n    ANALYTICS: 'ANALYTICS',\n    BRANDING_COLORS: 'BRANDING_COLORS',\n    BRANDING_FAVOURITES: 'BRANDING_FAVOURITES',\n    BRANDING_FONTS: 'BRANDING_FONTS',\n    BRANDING_IMAGES: 'BRANDING_IMAGES',\n    BRANDING_PUBLIC_PROFILE: 'BRANDING_PUBLIC_PROFILE',\n    CALLOUT: 'CALLOUT',\n    COMMENTING: 'COMMENTING',\n    CUSTOM_LINK_LOGO_EMBED: 'CUSTOM_LINK_LOGO_EMBED',\n    CUSTOM_LOGO: 'CUSTOM_LOGO',\n    DOWNLOAD: 'DOWNLOAD',\n    EMBED_BUTTON: 'EMBED_BUTTON',\n    FLEX_PAGES: 'FLEX_PAGES',\n    GALLERY_LIMIT: 'GALLERY_LIMIT',\n    GENERAL: 'GENERAL',\n    GLOBAL_SETTINGS: 'GLOBAL_SETTINGS',\n    GOOGLE_ANALYTICS: 'GOOGLE_ANALYTICS',\n    GROUPED_COMBO: 'GROUPED_COMBO',\n    ICONS: 'ICONS',\n    LIBRARY: 'LIBRARY',\n    LIBRARY_LIMIT: 'LIBRARY_LIMIT',\n    LINKS: 'LINKS',\n    LIVE_DATA: 'LIVE_DATA',\n    PRIVATE_SHARING: 'PRIVATE_SHARING',\n    PRO_THEMES: 'PRO_THEMES',\n    REGION_MAPS: 'REGION_MAPS',\n    REVISIONS: 'REVISIONS',\n    TEAMS: 'TEAMS',\n};\n\nconst collaborator_permission_type = {\n    EDIT: 'EDIT',\n    VIEW: 'VIEW',\n};\n\nconst team_role = {\n    ADMIN: 'ADMIN',\n    EDITOR: 'EDITOR',\n    PUBLISHER: 'PUBLISHER',\n    VIEWER: 'VIEWER',\n};\n\nconst analytics_date_range = {\n    LAST_NINETY: 'LAST_NINETY',\n    LAST_SEVEN: 'LAST_SEVEN',\n    LAST_SIXTY: 'LAST_SIXTY',\n    LAST_THIRTY: 'LAST_THIRTY',\n    TODAY: 'TODAY',\n    YESTERDAY: 'YESTERDAY',\n};\n\nconst analytics_export_type = {\n    ALL: 'ALL',\n    PROJECT: 'PROJECT',\n};\n\nconst account_setting = {\n    EMAIL_INVOICES: 'EMAIL_INVOICES',\n    IMAGE: 'IMAGE',\n    LANGUAGE: 'LANGUAGE',\n    NO_TRACKING: 'NO_TRACKING',\n    PROJECT_LANGUAGE: 'PROJECT_LANGUAGE',\n    PUBLIC_PROFILE: 'PUBLIC_PROFILE',\n    SCROLL_CHART_ANIMATIONS: 'SCROLL_CHART_ANIMATIONS',\n    TRANSPARENT_EMBED: 'TRANSPARENT_EMBED',\n};\n\nconst team_profile_style = {\n    BACKGROUND: 'BACKGROUND',\n    HEADER: 'HEADER',\n    META: 'META',\n};\n\nconst team_profile_type = {\n    HIDDEN: 'HIDDEN',\n    PUBLIC: 'PUBLIC',\n};\n\nconst graphic_format = {\n    JPG: 'JPG',\n    PNG: 'PNG',\n    SVG: 'SVG',\n};\n\nconst payment_step_name = {\n    PAYMENT_FORM: 'PAYMENT_FORM',\n    TEAM: 'TEAM',\n};\n\nconst import_source = {\n    DASHBOARD: 'DASHBOARD',\n    LIBRARY_DRAG: 'LIBRARY_DRAG',\n    ONBOARDING: 'ONBOARDING',\n};\n\nconst upload_error_type = {\n    FORMAT: 'FORMAT',\n    OTHER: 'OTHER',\n    SIZE: 'SIZE',\n};\n\nconst comment_filter = {\n    MENTIONS: 'MENTIONS',\n    RESOLVED: 'RESOLVED',\n    SHOW_ALL: 'SHOW_ALL',\n    UNRESOLVED: 'UNRESOLVED',\n};\n\nconst preview_type = {\n    DESKTOP: 'DESKTOP',\n    MOBILE: 'MOBILE',\n};\n\nconst view_experience_option = {\n    ALLOW_DOWNLOAD: 'ALLOW_DOWNLOAD',\n    ALLOW_FULLSCREEN: 'ALLOW_FULLSCREEN',\n    ALLOW_SHARE: 'ALLOW_SHARE',\n    SHOW_HINTS: 'SHOW_HINTS',\n    TAB_NAME_LINK: 'TAB_NAME_LINK',\n};\n\nconst filter_adjustment = {\n    BLUR: 'BLUR',\n    BRIGHTNESS: 'BRIGHTNESS',\n    CONTRAST: 'CONTRAST',\n    HUE: 'HUE',\n    INTENSITY: 'INTENSITY',\n    SATURATION: 'SATURATION',\n    VIGNETTE: 'VIGNETTE',\n};\n\nconst gallery_image_format = {\n    GIF: 'GIF',\n    JPG: 'JPG',\n    PNG: 'PNG',\n    SVG: 'SVG',\n};\n\nconst gallery_image_sort_options = {\n    RECENTLY_UPLOADED: 'RECENTLY_UPLOADED',\n    RECENTLY_USED: 'RECENTLY_USED',\n};\n\nconst animation_setting = {\n    DELAY: 'DELAY',\n    DISTANCE: 'DISTANCE',\n    DURATION: 'DURATION',\n    NAME: 'NAME',\n};\n\nconst animation_trigger = {\n    ALWAYS: 'ALWAYS',\n    ON_CLICK: 'ON_CLICK',\n    ON_SCROLL: 'ON_SCROLL',\n    ON_VIEW: 'ON_VIEW',\n};\n\nconst callout_behaviour = {\n    CLICK: 'CLICK',\n    HOVER: 'HOVER',\n};\n\nconst modify_callout_action = {\n    ADD_TEXT: 'ADD_TEXT',\n    CHANGE_LAYOUT: 'CHANGE_LAYOUT',\n    PADDINGS: 'PADDINGS',\n    SHADOW: 'SHADOW',\n};\n\nconst callout_position = {\n    BOTTOM: 'BOTTOM',\n    LEFT: 'LEFT',\n    RIGHT: 'RIGHT',\n    TOP: 'TOP',\n};\n\nconst content_entry_action = {\n    DOWNLOAD: 'DOWNLOAD',\n    FAVORITE: 'FAVORITE',\n    USE_IN_PROJECT: 'USE_IN_PROJECT',\n};\n\nconst content_entry_type = {\n    FLAG: 'FLAG',\n    GIF: 'GIF',\n    ICON: 'ICON',\n    IMAGE: 'IMAGE',\n    STICKER: 'STICKER',\n    UPLOAD: 'UPLOAD',\n};\n\nconst content_library_category = {\n    ALL: 'ALL',\n    FAVORITES: 'FAVORITES',\n    FLAGS: 'FLAGS',\n    GIFS: 'GIFS',\n    ICONS: 'ICONS',\n    IMAGES: 'IMAGES',\n    STICKERS: 'STICKERS',\n    UPLOADS: 'UPLOADS',\n};\n\nconst auto_layout_generate_source = {\n    EDITOR: 'EDITOR',\n    PAGE_SETTINGS: 'PAGE_SETTINGS',\n};\n\nmodule.exports = {\n    plan,\n    organization,\n    chosen_plan,\n    role,\n    chart_type,\n    image_type,\n    shape_type,\n    text_type,\n    target_project_status,\n    create_source,\n    file_format,\n    modify_object_action,\n    object_type,\n    modify_project_action,\n    auth_source,\n    social_platform,\n    integration_type,\n    media_type,\n    download_object_format,\n    downgrade_reason,\n    upgrade_trigger,\n    collaborator_permission_type,\n    team_role,\n    analytics_date_range,\n    analytics_export_type,\n    account_setting,\n    team_profile_style,\n    team_profile_type,\n    graphic_format,\n    payment_step_name,\n    import_source,\n    upload_error_type,\n    comment_filter,\n    preview_type,\n    view_experience_option,\n    filter_adjustment,\n    gallery_image_format,\n    gallery_image_sort_options,\n    animation_setting,\n    animation_trigger,\n    callout_behaviour,\n    modify_callout_action,\n    callout_position,\n    content_entry_action,\n    content_entry_type,\n    content_library_category,\n    auto_layout_generate_source,\n};\n","export default {\n    COLLECT_ELEMENTS: 'collect-elements',\n    SET_ELEMENT_VISIBLE: 'set-element-visible',\n    SET_ELEMENT_CHILD_VISIBLE: 'set-element-child-visible',\n    TOGGLE_ALL_ELEMENTS_VISIBLE: 'toggle-all-elements-visible',\n    SETTINGS_LOADED: 'settings-loaded',\n    SETTINGS_SAVED: 'settings-saved',\n    REVEAL_SELECTION_FRAME: 'reveal-selection-frame',\n    HIDE_SELECTION_FRAME: 'hide-selection-frame',\n    SET_SCROLL_POSITION: 'set-scroll-position',\n    DEFAULT_PAGE_ORIENTATION: 'portrait',\n    CHANGE_TAB: 'DOWNLOAD_CHANGE_TAB',\n    CHANGE_CHART_TAB: 'CHANGE_CHART_TAB',\n    SET_VIEWPORT_SIZE: 'SET_VIEWPORT_SIZE',\n    IMAGE_SIZE_CHANGE: 'IMAGE_SIZE_CHANGE',\n    PRINT_SIZE_CHANGE: 'PRINT_SIZE_CHANGE',\n    RESPONSIVE_INFOGRAPHIC_HEIGHT: 'RESPONSIVE_INFOGRAPHIC_HEIGHT',\n    RESET_IMAGE_SIZE: 'RESET_IMAGE_SIZE',\n    UPDATE_TOGGLE_SETTING: 'UPDATE_TOGGLE_SETTING',\n    UPDATE_SIZE_MULTIPLIER: 'UPDATE_SIZE_MULTIPLIER',\n    DEFAULT_MARGIN_MILLIMETERS: 0,\n    TOGGLE_PAGE_SELECTION: 'TOGGLE_PAGE_SELECTION',\n    TOGGLE_ALL_PAGE_SELECTION: 'TOGGLE_ALL_PAGE_SELECTION',\n    UPDATE_PAGE_RESOLUTION_FLAGS: 'UPDATE_PAGE_RESOLUTION_FLAGS',\n    UNLOAD_INFOGRAPHIC: 'UNLOAD_INFOGRAPHIC',\n};\n","'use strict';\nvar classof = require('../internals/classof');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\n// `Object.prototype.toString` method implementation\n// https://tc39.github.io/ecma262/#sec-object.prototype.tostring\nmodule.exports = String(test) !== '[object z]' ? function toString() {\n  return '[object ' + classof(this) + ']';\n} : test.toString;\n","module.exports = function escape(url) {\n    if (typeof url !== 'string') {\n        return url\n    }\n    // If url is already wrapped in quotes, remove them\n    if (/^['\"].*['\"]$/.test(url)) {\n        url = url.slice(1, -1);\n    }\n    // Should url be wrapped?\n    // See https://drafts.csswg.org/css-values-3/#urls\n    if (/[\"'() \\t\\n]/.test(url)) {\n        return '\"' + url.replace(/\"/g, '\\\\\"').replace(/\\n/g, '\\\\n') + '\"'\n    }\n\n    return url\n}\n","import i18n from 'i18next';\nimport React from 'react';\n\nimport {FilterElementPropTypes} from '../types';\nimport IntensityOf from './IntensityOf.react';\nimport {Contrast} from './Contrast.react';\nimport {Saturation} from './Saturation.react';\nimport {Brightness} from './Brightness.react';\n\nconst seventiesColor = 'rgb(243,106,188)';\n\n/**\n * Seventies\n *\n * Old, washed out and slightly decolorized 1970-s photo aesthetic\n *\n * @param {string} in1 pointer to filter's input (same as SVG *in*)\n * @param {string} result pointer to output (same as SVG *result*)\n * @param {number} amount filter intensity (0-1)\n */\nconst Seventies = ({in1, amount, result}) =>\n    <>\n        <feFlood floodColor={seventiesColor} floodOpacity=\"0.1\" result=\"fill\"/>\n        <Contrast in={in1} amount={1.1}/>\n        <Brightness amount={1.1}/>\n        <Saturation amount={1.3} result=\"adjustments\"/>\n        <feBlend in=\"fill\" in2=\"adjustments\" mode=\"screen\" result=\"Seventies\"/>\n        <IntensityOf in1=\"Seventies\" source={in1} amount={amount} result={result}/>\n    </>\n;\n\nSeventies.propTypes = FilterElementPropTypes;\n\nexport default {\n    Component: Seventies,\n    get caption() {\n        return i18n.t('inspector.free.filters.seventies');\n    },\n    default: 0.5,\n    min: 0,\n    max: 1,\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar defineProperty = require('../internals/object-define-property').f;\n\nvar FunctionPrototype = Function.prototype;\nvar FunctionPrototypeToString = FunctionPrototype.toString;\nvar nameRE = /^\\s*function ([^ (]*)/;\nvar NAME = 'name';\n\n// Function instances `.name` property\n// https://tc39.github.io/ecma262/#sec-function-instances-name\nif (DESCRIPTORS && !(NAME in FunctionPrototype)) {\n  defineProperty(FunctionPrototype, NAME, {\n    configurable: true,\n    get: function () {\n      try {\n        return FunctionPrototypeToString.call(this).match(nameRE)[1];\n      } catch (error) {\n        return '';\n      }\n    }\n  });\n}\n","\nimport {ReduceStore} from 'flux/utils';\nimport {Map} from 'immutable';\n\nimport invariant from 'invariant';\n\nimport DownloadConstants from '../constants/DownloadConstants';\n\nimport Dispatcher from '../../dispatcher';\n\nclass ToggleSettingsStore extends ReduceStore {\n    getInitialState() {\n        return Map({\n            transparentBackground: false,\n        });\n    }\n\n    reduce(state, action) {\n        switch (action.type) {\n            case DownloadConstants.UPDATE_TOGGLE_SETTING: {\n                const {\n                    propName,\n                    value,\n                } = action;\n                return state.set(propName, value);\n            }\n            case DownloadConstants.SETTINGS_LOADED: {\n                const {settings} = action;\n                if (!settings) {\n                    return state;\n                }\n                return state.withMutations(mutable => {\n                    state.forEach((value, key) => {\n                        if (key in settings) {\n                            mutable.set(key, settings[key]);\n                        }\n                    });\n                });\n            }\n        }\n        return state;\n    }\n\n    get(propName) {\n        const state = this.getState();\n        invariant(state.has(propName), 'Unknown property %s', propName);\n        return state.get(propName);\n    }\n}\n\nexport default new ToggleSettingsStore(Dispatcher);\n","import PropTypes from 'prop-types';\n\nimport React, {PureComponent} from 'react';\n\nimport hiddenOffScreen from '../AccessibilityDescriptionStyle';\n\nimport {StyledVideo} from '../../../app/freelayout_editor/components/contents/Media/StyledMedia.js';\n\nexport default class Video extends PureComponent {\n    static propTypes = {\n        url: PropTypes.string,\n        width: PropTypes.number,\n        accessibility: PropTypes.object,\n        id: PropTypes.number,\n    };\n\n    render() {\n        const {description, label, enabled: accessible} = this.props.accessibility;\n        const props = {\n            'aria-label': accessible && label,\n        };\n        if (accessible && description) {\n            props['aria-describedby'] = `${this.props.id}_description`;\n            props.tabIndex = -1;\n        }\n\n        const style = {\n            width: this.props.width || '100%',\n        };\n        return (\n            <StyledVideo className=\"moveable\">\n                <iframe {...props} src={this.props.url} style={style} frameBorder=\"0\" referrerPolicy=\"origin\" allowFullScreen aria-label=\"\"/>\n                {accessible && description &&\n                    <p id={`${this.props.id}_description`} style={hiddenOffScreen}>{description}</p>\n                }\n            </StyledVideo>\n        );\n    }\n}\n","module.exports = __webpack_public_path__ + \"3ugQhuPhUCkwsE2rW6nfyQ.svg\";","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = function (METHOD_NAME, argument) {\n  var method = [][METHOD_NAME];\n  return !method || !fails(function () {\n    // eslint-disable-next-line no-useless-call,no-throw-literal\n    method.call(null, argument || function () { throw 1; }, 1);\n  });\n};\n","/*!\n * perfect-scrollbar v1.4.0\n * (c) 2018 Hyunje Jun\n * @license MIT\n */\nfunction get(element) {\n  return getComputedStyle(element);\n}\n\nfunction set(element, obj) {\n  for (var key in obj) {\n    var val = obj[key];\n    if (typeof val === 'number') {\n      val = val + \"px\";\n    }\n    element.style[key] = val;\n  }\n  return element;\n}\n\nfunction div(className) {\n  var div = document.createElement('div');\n  div.className = className;\n  return div;\n}\n\nvar elMatches =\n  typeof Element !== 'undefined' &&\n  (Element.prototype.matches ||\n    Element.prototype.webkitMatchesSelector ||\n    Element.prototype.mozMatchesSelector ||\n    Element.prototype.msMatchesSelector);\n\nfunction matches(element, query) {\n  if (!elMatches) {\n    throw new Error('No element matching method supported');\n  }\n\n  return elMatches.call(element, query);\n}\n\nfunction remove(element) {\n  if (element.remove) {\n    element.remove();\n  } else {\n    if (element.parentNode) {\n      element.parentNode.removeChild(element);\n    }\n  }\n}\n\nfunction queryChildren(element, selector) {\n  return Array.prototype.filter.call(element.children, function (child) { return matches(child, selector); }\n  );\n}\n\nvar cls = {\n  main: 'ps',\n  element: {\n    thumb: function (x) { return (\"ps__thumb-\" + x); },\n    rail: function (x) { return (\"ps__rail-\" + x); },\n    consuming: 'ps__child--consume',\n  },\n  state: {\n    focus: 'ps--focus',\n    clicking: 'ps--clicking',\n    active: function (x) { return (\"ps--active-\" + x); },\n    scrolling: function (x) { return (\"ps--scrolling-\" + x); },\n  },\n};\n\n/*\n * Helper methods\n */\nvar scrollingClassTimeout = { x: null, y: null };\n\nfunction addScrollingClass(i, x) {\n  var classList = i.element.classList;\n  var className = cls.state.scrolling(x);\n\n  if (classList.contains(className)) {\n    clearTimeout(scrollingClassTimeout[x]);\n  } else {\n    classList.add(className);\n  }\n}\n\nfunction removeScrollingClass(i, x) {\n  scrollingClassTimeout[x] = setTimeout(\n    function () { return i.isAlive && i.element.classList.remove(cls.state.scrolling(x)); },\n    i.settings.scrollingThreshold\n  );\n}\n\nfunction setScrollingClassInstantly(i, x) {\n  addScrollingClass(i, x);\n  removeScrollingClass(i, x);\n}\n\nvar EventElement = function EventElement(element) {\n  this.element = element;\n  this.handlers = {};\n};\n\nvar prototypeAccessors = { isEmpty: { configurable: true } };\n\nEventElement.prototype.bind = function bind (eventName, handler) {\n  if (typeof this.handlers[eventName] === 'undefined') {\n    this.handlers[eventName] = [];\n  }\n  this.handlers[eventName].push(handler);\n  this.element.addEventListener(eventName, handler, false);\n};\n\nEventElement.prototype.unbind = function unbind (eventName, target) {\n    var this$1 = this;\n\n  this.handlers[eventName] = this.handlers[eventName].filter(function (handler) {\n    if (target && handler !== target) {\n      return true;\n    }\n    this$1.element.removeEventListener(eventName, handler, false);\n    return false;\n  });\n};\n\nEventElement.prototype.unbindAll = function unbindAll () {\n    var this$1 = this;\n\n  for (var name in this$1.handlers) {\n    this$1.unbind(name);\n  }\n};\n\nprototypeAccessors.isEmpty.get = function () {\n    var this$1 = this;\n\n  return Object.keys(this.handlers).every(\n    function (key) { return this$1.handlers[key].length === 0; }\n  );\n};\n\nObject.defineProperties( EventElement.prototype, prototypeAccessors );\n\nvar EventManager = function EventManager() {\n  this.eventElements = [];\n};\n\nEventManager.prototype.eventElement = function eventElement (element) {\n  var ee = this.eventElements.filter(function (ee) { return ee.element === element; })[0];\n  if (!ee) {\n    ee = new EventElement(element);\n    this.eventElements.push(ee);\n  }\n  return ee;\n};\n\nEventManager.prototype.bind = function bind (element, eventName, handler) {\n  this.eventElement(element).bind(eventName, handler);\n};\n\nEventManager.prototype.unbind = function unbind (element, eventName, handler) {\n  var ee = this.eventElement(element);\n  ee.unbind(eventName, handler);\n\n  if (ee.isEmpty) {\n    // remove\n    this.eventElements.splice(this.eventElements.indexOf(ee), 1);\n  }\n};\n\nEventManager.prototype.unbindAll = function unbindAll () {\n  this.eventElements.forEach(function (e) { return e.unbindAll(); });\n  this.eventElements = [];\n};\n\nEventManager.prototype.once = function once (element, eventName, handler) {\n  var ee = this.eventElement(element);\n  var onceHandler = function (evt) {\n    ee.unbind(eventName, onceHandler);\n    handler(evt);\n  };\n  ee.bind(eventName, onceHandler);\n};\n\nfunction createEvent(name) {\n  if (typeof window.CustomEvent === 'function') {\n    return new CustomEvent(name);\n  } else {\n    var evt = document.createEvent('CustomEvent');\n    evt.initCustomEvent(name, false, false, undefined);\n    return evt;\n  }\n}\n\nvar processScrollDiff = function(\n  i,\n  axis,\n  diff,\n  useScrollingClass,\n  forceFireReachEvent\n) {\n  if ( useScrollingClass === void 0 ) useScrollingClass = true;\n  if ( forceFireReachEvent === void 0 ) forceFireReachEvent = false;\n\n  var fields;\n  if (axis === 'top') {\n    fields = [\n      'contentHeight',\n      'containerHeight',\n      'scrollTop',\n      'y',\n      'up',\n      'down' ];\n  } else if (axis === 'left') {\n    fields = [\n      'contentWidth',\n      'containerWidth',\n      'scrollLeft',\n      'x',\n      'left',\n      'right' ];\n  } else {\n    throw new Error('A proper axis should be provided');\n  }\n\n  processScrollDiff$1(i, diff, fields, useScrollingClass, forceFireReachEvent);\n};\n\nfunction processScrollDiff$1(\n  i,\n  diff,\n  ref,\n  useScrollingClass,\n  forceFireReachEvent\n) {\n  var contentHeight = ref[0];\n  var containerHeight = ref[1];\n  var scrollTop = ref[2];\n  var y = ref[3];\n  var up = ref[4];\n  var down = ref[5];\n  if ( useScrollingClass === void 0 ) useScrollingClass = true;\n  if ( forceFireReachEvent === void 0 ) forceFireReachEvent = false;\n\n  var element = i.element;\n\n  // reset reach\n  i.reach[y] = null;\n\n  // 1 for subpixel rounding\n  if (element[scrollTop] < 1) {\n    i.reach[y] = 'start';\n  }\n\n  // 1 for subpixel rounding\n  if (element[scrollTop] > i[contentHeight] - i[containerHeight] - 1) {\n    i.reach[y] = 'end';\n  }\n\n  if (diff) {\n    element.dispatchEvent(createEvent((\"ps-scroll-\" + y)));\n\n    if (diff < 0) {\n      element.dispatchEvent(createEvent((\"ps-scroll-\" + up)));\n    } else if (diff > 0) {\n      element.dispatchEvent(createEvent((\"ps-scroll-\" + down)));\n    }\n\n    if (useScrollingClass) {\n      setScrollingClassInstantly(i, y);\n    }\n  }\n\n  if (i.reach[y] && (diff || forceFireReachEvent)) {\n    element.dispatchEvent(createEvent((\"ps-\" + y + \"-reach-\" + (i.reach[y]))));\n  }\n}\n\nfunction toInt(x) {\n  return parseInt(x, 10) || 0;\n}\n\nfunction isEditable(el) {\n  return (\n    matches(el, 'input,[contenteditable]') ||\n    matches(el, 'select,[contenteditable]') ||\n    matches(el, 'textarea,[contenteditable]') ||\n    matches(el, 'button,[contenteditable]')\n  );\n}\n\nfunction outerWidth(element) {\n  var styles = get(element);\n  return (\n    toInt(styles.width) +\n    toInt(styles.paddingLeft) +\n    toInt(styles.paddingRight) +\n    toInt(styles.borderLeftWidth) +\n    toInt(styles.borderRightWidth)\n  );\n}\n\nvar env = {\n  isWebKit:\n    typeof document !== 'undefined' &&\n    'WebkitAppearance' in document.documentElement.style,\n  supportsTouch:\n    typeof window !== 'undefined' &&\n    ('ontouchstart' in window ||\n      (window.DocumentTouch && document instanceof window.DocumentTouch)),\n  supportsIePointer:\n    typeof navigator !== 'undefined' && navigator.msMaxTouchPoints,\n  isChrome:\n    typeof navigator !== 'undefined' &&\n    /Chrome/i.test(navigator && navigator.userAgent),\n};\n\nvar updateGeometry = function(i) {\n  var element = i.element;\n  var roundedScrollTop = Math.floor(element.scrollTop);\n\n  i.containerWidth = element.clientWidth;\n  i.containerHeight = element.clientHeight;\n  i.contentWidth = element.scrollWidth;\n  i.contentHeight = element.scrollHeight;\n\n  if (!element.contains(i.scrollbarXRail)) {\n    // clean up and append\n    queryChildren(element, cls.element.rail('x')).forEach(function (el) { return remove(el); }\n    );\n    element.appendChild(i.scrollbarXRail);\n  }\n  if (!element.contains(i.scrollbarYRail)) {\n    // clean up and append\n    queryChildren(element, cls.element.rail('y')).forEach(function (el) { return remove(el); }\n    );\n    element.appendChild(i.scrollbarYRail);\n  }\n\n  if (\n    !i.settings.suppressScrollX &&\n    i.containerWidth + i.settings.scrollXMarginOffset < i.contentWidth\n  ) {\n    i.scrollbarXActive = true;\n    i.railXWidth = i.containerWidth - i.railXMarginWidth;\n    i.railXRatio = i.containerWidth / i.railXWidth;\n    i.scrollbarXWidth = getThumbSize(\n      i,\n      toInt(i.railXWidth * i.containerWidth / i.contentWidth)\n    );\n    i.scrollbarXLeft = toInt(\n      (i.negativeScrollAdjustment + element.scrollLeft) *\n        (i.railXWidth - i.scrollbarXWidth) /\n        (i.contentWidth - i.containerWidth)\n    );\n  } else {\n    i.scrollbarXActive = false;\n  }\n\n  if (\n    !i.settings.suppressScrollY &&\n    i.containerHeight + i.settings.scrollYMarginOffset < i.contentHeight\n  ) {\n    i.scrollbarYActive = true;\n    i.railYHeight = i.containerHeight - i.railYMarginHeight;\n    i.railYRatio = i.containerHeight / i.railYHeight;\n    i.scrollbarYHeight = getThumbSize(\n      i,\n      toInt(i.railYHeight * i.containerHeight / i.contentHeight)\n    );\n    i.scrollbarYTop = toInt(\n      roundedScrollTop *\n        (i.railYHeight - i.scrollbarYHeight) /\n        (i.contentHeight - i.containerHeight)\n    );\n  } else {\n    i.scrollbarYActive = false;\n  }\n\n  if (i.scrollbarXLeft >= i.railXWidth - i.scrollbarXWidth) {\n    i.scrollbarXLeft = i.railXWidth - i.scrollbarXWidth;\n  }\n  if (i.scrollbarYTop >= i.railYHeight - i.scrollbarYHeight) {\n    i.scrollbarYTop = i.railYHeight - i.scrollbarYHeight;\n  }\n\n  updateCss(element, i);\n\n  if (i.scrollbarXActive) {\n    element.classList.add(cls.state.active('x'));\n  } else {\n    element.classList.remove(cls.state.active('x'));\n    i.scrollbarXWidth = 0;\n    i.scrollbarXLeft = 0;\n    element.scrollLeft = 0;\n  }\n  if (i.scrollbarYActive) {\n    element.classList.add(cls.state.active('y'));\n  } else {\n    element.classList.remove(cls.state.active('y'));\n    i.scrollbarYHeight = 0;\n    i.scrollbarYTop = 0;\n    element.scrollTop = 0;\n  }\n};\n\nfunction getThumbSize(i, thumbSize) {\n  if (i.settings.minScrollbarLength) {\n    thumbSize = Math.max(thumbSize, i.settings.minScrollbarLength);\n  }\n  if (i.settings.maxScrollbarLength) {\n    thumbSize = Math.min(thumbSize, i.settings.maxScrollbarLength);\n  }\n  return thumbSize;\n}\n\nfunction updateCss(element, i) {\n  var xRailOffset = { width: i.railXWidth };\n  var roundedScrollTop = Math.floor(element.scrollTop);\n\n  if (i.isRtl) {\n    xRailOffset.left =\n      i.negativeScrollAdjustment +\n      element.scrollLeft +\n      i.containerWidth -\n      i.contentWidth;\n  } else {\n    xRailOffset.left = element.scrollLeft;\n  }\n  if (i.isScrollbarXUsingBottom) {\n    xRailOffset.bottom = i.scrollbarXBottom - roundedScrollTop;\n  } else {\n    xRailOffset.top = i.scrollbarXTop + roundedScrollTop;\n  }\n  set(i.scrollbarXRail, xRailOffset);\n\n  var yRailOffset = { top: roundedScrollTop, height: i.railYHeight };\n  if (i.isScrollbarYUsingRight) {\n    if (i.isRtl) {\n      yRailOffset.right =\n        i.contentWidth -\n        (i.negativeScrollAdjustment + element.scrollLeft) -\n        i.scrollbarYRight -\n        i.scrollbarYOuterWidth;\n    } else {\n      yRailOffset.right = i.scrollbarYRight - element.scrollLeft;\n    }\n  } else {\n    if (i.isRtl) {\n      yRailOffset.left =\n        i.negativeScrollAdjustment +\n        element.scrollLeft +\n        i.containerWidth * 2 -\n        i.contentWidth -\n        i.scrollbarYLeft -\n        i.scrollbarYOuterWidth;\n    } else {\n      yRailOffset.left = i.scrollbarYLeft + element.scrollLeft;\n    }\n  }\n  set(i.scrollbarYRail, yRailOffset);\n\n  set(i.scrollbarX, {\n    left: i.scrollbarXLeft,\n    width: i.scrollbarXWidth - i.railBorderXWidth,\n  });\n  set(i.scrollbarY, {\n    top: i.scrollbarYTop,\n    height: i.scrollbarYHeight - i.railBorderYWidth,\n  });\n}\n\nvar clickRail = function(i) {\n  i.event.bind(i.scrollbarY, 'mousedown', function (e) { return e.stopPropagation(); });\n  i.event.bind(i.scrollbarYRail, 'mousedown', function (e) {\n    var positionTop =\n      e.pageY -\n      window.pageYOffset -\n      i.scrollbarYRail.getBoundingClientRect().top;\n    var direction = positionTop > i.scrollbarYTop ? 1 : -1;\n\n    i.element.scrollTop += direction * i.containerHeight;\n    updateGeometry(i);\n\n    e.stopPropagation();\n  });\n\n  i.event.bind(i.scrollbarX, 'mousedown', function (e) { return e.stopPropagation(); });\n  i.event.bind(i.scrollbarXRail, 'mousedown', function (e) {\n    var positionLeft =\n      e.pageX -\n      window.pageXOffset -\n      i.scrollbarXRail.getBoundingClientRect().left;\n    var direction = positionLeft > i.scrollbarXLeft ? 1 : -1;\n\n    i.element.scrollLeft += direction * i.containerWidth;\n    updateGeometry(i);\n\n    e.stopPropagation();\n  });\n};\n\nvar dragThumb = function(i) {\n  bindMouseScrollHandler(i, [\n    'containerWidth',\n    'contentWidth',\n    'pageX',\n    'railXWidth',\n    'scrollbarX',\n    'scrollbarXWidth',\n    'scrollLeft',\n    'x',\n    'scrollbarXRail' ]);\n  bindMouseScrollHandler(i, [\n    'containerHeight',\n    'contentHeight',\n    'pageY',\n    'railYHeight',\n    'scrollbarY',\n    'scrollbarYHeight',\n    'scrollTop',\n    'y',\n    'scrollbarYRail' ]);\n};\n\nfunction bindMouseScrollHandler(\n  i,\n  ref\n) {\n  var containerHeight = ref[0];\n  var contentHeight = ref[1];\n  var pageY = ref[2];\n  var railYHeight = ref[3];\n  var scrollbarY = ref[4];\n  var scrollbarYHeight = ref[5];\n  var scrollTop = ref[6];\n  var y = ref[7];\n  var scrollbarYRail = ref[8];\n\n  var element = i.element;\n\n  var startingScrollTop = null;\n  var startingMousePageY = null;\n  var scrollBy = null;\n\n  function mouseMoveHandler(e) {\n    element[scrollTop] =\n      startingScrollTop + scrollBy * (e[pageY] - startingMousePageY);\n    addScrollingClass(i, y);\n    updateGeometry(i);\n\n    e.stopPropagation();\n    e.preventDefault();\n  }\n\n  function mouseUpHandler() {\n    removeScrollingClass(i, y);\n    i[scrollbarYRail].classList.remove(cls.state.clicking);\n    i.event.unbind(i.ownerDocument, 'mousemove', mouseMoveHandler);\n  }\n\n  i.event.bind(i[scrollbarY], 'mousedown', function (e) {\n    startingScrollTop = element[scrollTop];\n    startingMousePageY = e[pageY];\n    scrollBy =\n      (i[contentHeight] - i[containerHeight]) /\n      (i[railYHeight] - i[scrollbarYHeight]);\n\n    i.event.bind(i.ownerDocument, 'mousemove', mouseMoveHandler);\n    i.event.once(i.ownerDocument, 'mouseup', mouseUpHandler);\n\n    i[scrollbarYRail].classList.add(cls.state.clicking);\n\n    e.stopPropagation();\n    e.preventDefault();\n  });\n}\n\nvar keyboard = function(i) {\n  var element = i.element;\n\n  var elementHovered = function () { return matches(element, ':hover'); };\n  var scrollbarFocused = function () { return matches(i.scrollbarX, ':focus') || matches(i.scrollbarY, ':focus'); };\n\n  function shouldPreventDefault(deltaX, deltaY) {\n    var scrollTop = Math.floor(element.scrollTop);\n    if (deltaX === 0) {\n      if (!i.scrollbarYActive) {\n        return false;\n      }\n      if (\n        (scrollTop === 0 && deltaY > 0) ||\n        (scrollTop >= i.contentHeight - i.containerHeight && deltaY < 0)\n      ) {\n        return !i.settings.wheelPropagation;\n      }\n    }\n\n    var scrollLeft = element.scrollLeft;\n    if (deltaY === 0) {\n      if (!i.scrollbarXActive) {\n        return false;\n      }\n      if (\n        (scrollLeft === 0 && deltaX < 0) ||\n        (scrollLeft >= i.contentWidth - i.containerWidth && deltaX > 0)\n      ) {\n        return !i.settings.wheelPropagation;\n      }\n    }\n    return true;\n  }\n\n  i.event.bind(i.ownerDocument, 'keydown', function (e) {\n    if (\n      (e.isDefaultPrevented && e.isDefaultPrevented()) ||\n      e.defaultPrevented\n    ) {\n      return;\n    }\n\n    if (!elementHovered() && !scrollbarFocused()) {\n      return;\n    }\n\n    var activeElement = document.activeElement\n      ? document.activeElement\n      : i.ownerDocument.activeElement;\n    if (activeElement) {\n      if (activeElement.tagName === 'IFRAME') {\n        activeElement = activeElement.contentDocument.activeElement;\n      } else {\n        // go deeper if element is a webcomponent\n        while (activeElement.shadowRoot) {\n          activeElement = activeElement.shadowRoot.activeElement;\n        }\n      }\n      if (isEditable(activeElement)) {\n        return;\n      }\n    }\n\n    var deltaX = 0;\n    var deltaY = 0;\n\n    switch (e.which) {\n      case 37: // left\n        if (e.metaKey) {\n          deltaX = -i.contentWidth;\n        } else if (e.altKey) {\n          deltaX = -i.containerWidth;\n        } else {\n          deltaX = -30;\n        }\n        break;\n      case 38: // up\n        if (e.metaKey) {\n          deltaY = i.contentHeight;\n        } else if (e.altKey) {\n          deltaY = i.containerHeight;\n        } else {\n          deltaY = 30;\n        }\n        break;\n      case 39: // right\n        if (e.metaKey) {\n          deltaX = i.contentWidth;\n        } else if (e.altKey) {\n          deltaX = i.containerWidth;\n        } else {\n          deltaX = 30;\n        }\n        break;\n      case 40: // down\n        if (e.metaKey) {\n          deltaY = -i.contentHeight;\n        } else if (e.altKey) {\n          deltaY = -i.containerHeight;\n        } else {\n          deltaY = -30;\n        }\n        break;\n      case 32: // space bar\n        if (e.shiftKey) {\n          deltaY = i.containerHeight;\n        } else {\n          deltaY = -i.containerHeight;\n        }\n        break;\n      case 33: // page up\n        deltaY = i.containerHeight;\n        break;\n      case 34: // page down\n        deltaY = -i.containerHeight;\n        break;\n      case 36: // home\n        deltaY = i.contentHeight;\n        break;\n      case 35: // end\n        deltaY = -i.contentHeight;\n        break;\n      default:\n        return;\n    }\n\n    if (i.settings.suppressScrollX && deltaX !== 0) {\n      return;\n    }\n    if (i.settings.suppressScrollY && deltaY !== 0) {\n      return;\n    }\n\n    element.scrollTop -= deltaY;\n    element.scrollLeft += deltaX;\n    updateGeometry(i);\n\n    if (shouldPreventDefault(deltaX, deltaY)) {\n      e.preventDefault();\n    }\n  });\n};\n\nvar wheel = function(i) {\n  var element = i.element;\n\n  function shouldPreventDefault(deltaX, deltaY) {\n    var roundedScrollTop = Math.floor(element.scrollTop);\n    var isTop = element.scrollTop === 0;\n    var isBottom =\n      roundedScrollTop + element.offsetHeight === element.scrollHeight;\n    var isLeft = element.scrollLeft === 0;\n    var isRight =\n      element.scrollLeft + element.offsetWidth === element.scrollWidth;\n\n    var hitsBound;\n\n    // pick axis with primary direction\n    if (Math.abs(deltaY) > Math.abs(deltaX)) {\n      hitsBound = isTop || isBottom;\n    } else {\n      hitsBound = isLeft || isRight;\n    }\n\n    return hitsBound ? !i.settings.wheelPropagation : true;\n  }\n\n  function getDeltaFromEvent(e) {\n    var deltaX = e.deltaX;\n    var deltaY = -1 * e.deltaY;\n\n    if (typeof deltaX === 'undefined' || typeof deltaY === 'undefined') {\n      // OS X Safari\n      deltaX = -1 * e.wheelDeltaX / 6;\n      deltaY = e.wheelDeltaY / 6;\n    }\n\n    if (e.deltaMode && e.deltaMode === 1) {\n      // Firefox in deltaMode 1: Line scrolling\n      deltaX *= 10;\n      deltaY *= 10;\n    }\n\n    if (deltaX !== deltaX && deltaY !== deltaY /* NaN checks */) {\n      // IE in some mouse drivers\n      deltaX = 0;\n      deltaY = e.wheelDelta;\n    }\n\n    if (e.shiftKey) {\n      // reverse axis with shift key\n      return [-deltaY, -deltaX];\n    }\n    return [deltaX, deltaY];\n  }\n\n  function shouldBeConsumedByChild(target, deltaX, deltaY) {\n    // FIXME: this is a workaround for <select> issue in FF and IE #571\n    if (!env.isWebKit && element.querySelector('select:focus')) {\n      return true;\n    }\n\n    if (!element.contains(target)) {\n      return false;\n    }\n\n    var cursor = target;\n\n    while (cursor && cursor !== element) {\n      if (cursor.classList.contains(cls.element.consuming)) {\n        return true;\n      }\n\n      var style = get(cursor);\n      var overflow = [style.overflow, style.overflowX, style.overflowY].join(\n        ''\n      );\n\n      // if scrollable\n      if (overflow.match(/(scroll|auto)/)) {\n        var maxScrollTop = cursor.scrollHeight - cursor.clientHeight;\n        if (maxScrollTop > 0) {\n          if (\n            !(cursor.scrollTop === 0 && deltaY > 0) &&\n            !(cursor.scrollTop === maxScrollTop && deltaY < 0)\n          ) {\n            return true;\n          }\n        }\n        var maxScrollLeft = cursor.scrollWidth - cursor.clientWidth;\n        if (maxScrollLeft > 0) {\n          if (\n            !(cursor.scrollLeft === 0 && deltaX < 0) &&\n            !(cursor.scrollLeft === maxScrollLeft && deltaX > 0)\n          ) {\n            return true;\n          }\n        }\n      }\n\n      cursor = cursor.parentNode;\n    }\n\n    return false;\n  }\n\n  function mousewheelHandler(e) {\n    var ref = getDeltaFromEvent(e);\n    var deltaX = ref[0];\n    var deltaY = ref[1];\n\n    if (shouldBeConsumedByChild(e.target, deltaX, deltaY)) {\n      return;\n    }\n\n    var shouldPrevent = false;\n    if (!i.settings.useBothWheelAxes) {\n      // deltaX will only be used for horizontal scrolling and deltaY will\n      // only be used for vertical scrolling - this is the default\n      element.scrollTop -= deltaY * i.settings.wheelSpeed;\n      element.scrollLeft += deltaX * i.settings.wheelSpeed;\n    } else if (i.scrollbarYActive && !i.scrollbarXActive) {\n      // only vertical scrollbar is active and useBothWheelAxes option is\n      // active, so let's scroll vertical bar using both mouse wheel axes\n      if (deltaY) {\n        element.scrollTop -= deltaY * i.settings.wheelSpeed;\n      } else {\n        element.scrollTop += deltaX * i.settings.wheelSpeed;\n      }\n      shouldPrevent = true;\n    } else if (i.scrollbarXActive && !i.scrollbarYActive) {\n      // useBothWheelAxes and only horizontal bar is active, so use both\n      // wheel axes for horizontal bar\n      if (deltaX) {\n        element.scrollLeft += deltaX * i.settings.wheelSpeed;\n      } else {\n        element.scrollLeft -= deltaY * i.settings.wheelSpeed;\n      }\n      shouldPrevent = true;\n    }\n\n    updateGeometry(i);\n\n    shouldPrevent = shouldPrevent || shouldPreventDefault(deltaX, deltaY);\n    if (shouldPrevent && !e.ctrlKey) {\n      e.stopPropagation();\n      e.preventDefault();\n    }\n  }\n\n  if (typeof window.onwheel !== 'undefined') {\n    i.event.bind(element, 'wheel', mousewheelHandler);\n  } else if (typeof window.onmousewheel !== 'undefined') {\n    i.event.bind(element, 'mousewheel', mousewheelHandler);\n  }\n};\n\nvar touch = function(i) {\n  if (!env.supportsTouch && !env.supportsIePointer) {\n    return;\n  }\n\n  var element = i.element;\n\n  function shouldPrevent(deltaX, deltaY) {\n    var scrollTop = Math.floor(element.scrollTop);\n    var scrollLeft = element.scrollLeft;\n    var magnitudeX = Math.abs(deltaX);\n    var magnitudeY = Math.abs(deltaY);\n\n    if (magnitudeY > magnitudeX) {\n      // user is perhaps trying to swipe up/down the page\n\n      if (\n        (deltaY < 0 && scrollTop === i.contentHeight - i.containerHeight) ||\n        (deltaY > 0 && scrollTop === 0)\n      ) {\n        // set prevent for mobile Chrome refresh\n        return window.scrollY === 0 && deltaY > 0 && env.isChrome;\n      }\n    } else if (magnitudeX > magnitudeY) {\n      // user is perhaps trying to swipe left/right across the page\n\n      if (\n        (deltaX < 0 && scrollLeft === i.contentWidth - i.containerWidth) ||\n        (deltaX > 0 && scrollLeft === 0)\n      ) {\n        return true;\n      }\n    }\n\n    return true;\n  }\n\n  function applyTouchMove(differenceX, differenceY) {\n    element.scrollTop -= differenceY;\n    element.scrollLeft -= differenceX;\n\n    updateGeometry(i);\n  }\n\n  var startOffset = {};\n  var startTime = 0;\n  var speed = {};\n  var easingLoop = null;\n\n  function getTouch(e) {\n    if (e.targetTouches) {\n      return e.targetTouches[0];\n    } else {\n      // Maybe IE pointer\n      return e;\n    }\n  }\n\n  function shouldHandle(e) {\n    if (e.pointerType && e.pointerType === 'pen' && e.buttons === 0) {\n      return false;\n    }\n    if (e.targetTouches && e.targetTouches.length === 1) {\n      return true;\n    }\n    if (\n      e.pointerType &&\n      e.pointerType !== 'mouse' &&\n      e.pointerType !== e.MSPOINTER_TYPE_MOUSE\n    ) {\n      return true;\n    }\n    return false;\n  }\n\n  function touchStart(e) {\n    if (!shouldHandle(e)) {\n      return;\n    }\n\n    var touch = getTouch(e);\n\n    startOffset.pageX = touch.pageX;\n    startOffset.pageY = touch.pageY;\n\n    startTime = new Date().getTime();\n\n    if (easingLoop !== null) {\n      clearInterval(easingLoop);\n    }\n  }\n\n  function shouldBeConsumedByChild(target, deltaX, deltaY) {\n    if (!element.contains(target)) {\n      return false;\n    }\n\n    var cursor = target;\n\n    while (cursor && cursor !== element) {\n      if (cursor.classList.contains(cls.element.consuming)) {\n        return true;\n      }\n\n      var style = get(cursor);\n      var overflow = [style.overflow, style.overflowX, style.overflowY].join(\n        ''\n      );\n\n      // if scrollable\n      if (overflow.match(/(scroll|auto)/)) {\n        var maxScrollTop = cursor.scrollHeight - cursor.clientHeight;\n        if (maxScrollTop > 0) {\n          if (\n            !(cursor.scrollTop === 0 && deltaY > 0) &&\n            !(cursor.scrollTop === maxScrollTop && deltaY < 0)\n          ) {\n            return true;\n          }\n        }\n        var maxScrollLeft = cursor.scrollLeft - cursor.clientWidth;\n        if (maxScrollLeft > 0) {\n          if (\n            !(cursor.scrollLeft === 0 && deltaX < 0) &&\n            !(cursor.scrollLeft === maxScrollLeft && deltaX > 0)\n          ) {\n            return true;\n          }\n        }\n      }\n\n      cursor = cursor.parentNode;\n    }\n\n    return false;\n  }\n\n  function touchMove(e) {\n    if (shouldHandle(e)) {\n      var touch = getTouch(e);\n\n      var currentOffset = { pageX: touch.pageX, pageY: touch.pageY };\n\n      var differenceX = currentOffset.pageX - startOffset.pageX;\n      var differenceY = currentOffset.pageY - startOffset.pageY;\n\n      if (shouldBeConsumedByChild(e.target, differenceX, differenceY)) {\n        return;\n      }\n\n      applyTouchMove(differenceX, differenceY);\n      startOffset = currentOffset;\n\n      var currentTime = new Date().getTime();\n\n      var timeGap = currentTime - startTime;\n      if (timeGap > 0) {\n        speed.x = differenceX / timeGap;\n        speed.y = differenceY / timeGap;\n        startTime = currentTime;\n      }\n\n      if (shouldPrevent(differenceX, differenceY)) {\n        e.preventDefault();\n      }\n    }\n  }\n  function touchEnd() {\n    if (i.settings.swipeEasing) {\n      clearInterval(easingLoop);\n      easingLoop = setInterval(function() {\n        if (i.isInitialized) {\n          clearInterval(easingLoop);\n          return;\n        }\n\n        if (!speed.x && !speed.y) {\n          clearInterval(easingLoop);\n          return;\n        }\n\n        if (Math.abs(speed.x) < 0.01 && Math.abs(speed.y) < 0.01) {\n          clearInterval(easingLoop);\n          return;\n        }\n\n        applyTouchMove(speed.x * 30, speed.y * 30);\n\n        speed.x *= 0.8;\n        speed.y *= 0.8;\n      }, 10);\n    }\n  }\n\n  if (env.supportsTouch) {\n    i.event.bind(element, 'touchstart', touchStart);\n    i.event.bind(element, 'touchmove', touchMove);\n    i.event.bind(element, 'touchend', touchEnd);\n  } else if (env.supportsIePointer) {\n    if (window.PointerEvent) {\n      i.event.bind(element, 'pointerdown', touchStart);\n      i.event.bind(element, 'pointermove', touchMove);\n      i.event.bind(element, 'pointerup', touchEnd);\n    } else if (window.MSPointerEvent) {\n      i.event.bind(element, 'MSPointerDown', touchStart);\n      i.event.bind(element, 'MSPointerMove', touchMove);\n      i.event.bind(element, 'MSPointerUp', touchEnd);\n    }\n  }\n};\n\nvar defaultSettings = function () { return ({\n  handlers: ['click-rail', 'drag-thumb', 'keyboard', 'wheel', 'touch'],\n  maxScrollbarLength: null,\n  minScrollbarLength: null,\n  scrollingThreshold: 1000,\n  scrollXMarginOffset: 0,\n  scrollYMarginOffset: 0,\n  suppressScrollX: false,\n  suppressScrollY: false,\n  swipeEasing: true,\n  useBothWheelAxes: false,\n  wheelPropagation: true,\n  wheelSpeed: 1,\n}); };\n\nvar handlers = {\n  'click-rail': clickRail,\n  'drag-thumb': dragThumb,\n  keyboard: keyboard,\n  wheel: wheel,\n  touch: touch,\n};\n\nvar PerfectScrollbar = function PerfectScrollbar(element, userSettings) {\n  var this$1 = this;\n  if ( userSettings === void 0 ) userSettings = {};\n\n  if (typeof element === 'string') {\n    element = document.querySelector(element);\n  }\n\n  if (!element || !element.nodeName) {\n    throw new Error('no element is specified to initialize PerfectScrollbar');\n  }\n\n  this.element = element;\n\n  element.classList.add(cls.main);\n\n  this.settings = defaultSettings();\n  for (var key in userSettings) {\n    this$1.settings[key] = userSettings[key];\n  }\n\n  this.containerWidth = null;\n  this.containerHeight = null;\n  this.contentWidth = null;\n  this.contentHeight = null;\n\n  var focus = function () { return element.classList.add(cls.state.focus); };\n  var blur = function () { return element.classList.remove(cls.state.focus); };\n\n  this.isRtl = get(element).direction === 'rtl';\n  this.isNegativeScroll = (function () {\n    var originalScrollLeft = element.scrollLeft;\n    var result = null;\n    element.scrollLeft = -1;\n    result = element.scrollLeft < 0;\n    element.scrollLeft = originalScrollLeft;\n    return result;\n  })();\n  this.negativeScrollAdjustment = this.isNegativeScroll\n    ? element.scrollWidth - element.clientWidth\n    : 0;\n  this.event = new EventManager();\n  this.ownerDocument = element.ownerDocument || document;\n\n  this.scrollbarXRail = div(cls.element.rail('x'));\n  element.appendChild(this.scrollbarXRail);\n  this.scrollbarX = div(cls.element.thumb('x'));\n  this.scrollbarXRail.appendChild(this.scrollbarX);\n  this.scrollbarX.setAttribute('tabindex', 0);\n  this.event.bind(this.scrollbarX, 'focus', focus);\n  this.event.bind(this.scrollbarX, 'blur', blur);\n  this.scrollbarXActive = null;\n  this.scrollbarXWidth = null;\n  this.scrollbarXLeft = null;\n  var railXStyle = get(this.scrollbarXRail);\n  this.scrollbarXBottom = parseInt(railXStyle.bottom, 10);\n  if (isNaN(this.scrollbarXBottom)) {\n    this.isScrollbarXUsingBottom = false;\n    this.scrollbarXTop = toInt(railXStyle.top);\n  } else {\n    this.isScrollbarXUsingBottom = true;\n  }\n  this.railBorderXWidth =\n    toInt(railXStyle.borderLeftWidth) + toInt(railXStyle.borderRightWidth);\n  // Set rail to display:block to calculate margins\n  set(this.scrollbarXRail, { display: 'block' });\n  this.railXMarginWidth =\n    toInt(railXStyle.marginLeft) + toInt(railXStyle.marginRight);\n  set(this.scrollbarXRail, { display: '' });\n  this.railXWidth = null;\n  this.railXRatio = null;\n\n  this.scrollbarYRail = div(cls.element.rail('y'));\n  element.appendChild(this.scrollbarYRail);\n  this.scrollbarY = div(cls.element.thumb('y'));\n  this.scrollbarYRail.appendChild(this.scrollbarY);\n  this.scrollbarY.setAttribute('tabindex', 0);\n  this.event.bind(this.scrollbarY, 'focus', focus);\n  this.event.bind(this.scrollbarY, 'blur', blur);\n  this.scrollbarYActive = null;\n  this.scrollbarYHeight = null;\n  this.scrollbarYTop = null;\n  var railYStyle = get(this.scrollbarYRail);\n  this.scrollbarYRight = parseInt(railYStyle.right, 10);\n  if (isNaN(this.scrollbarYRight)) {\n    this.isScrollbarYUsingRight = false;\n    this.scrollbarYLeft = toInt(railYStyle.left);\n  } else {\n    this.isScrollbarYUsingRight = true;\n  }\n  this.scrollbarYOuterWidth = this.isRtl ? outerWidth(this.scrollbarY) : null;\n  this.railBorderYWidth =\n    toInt(railYStyle.borderTopWidth) + toInt(railYStyle.borderBottomWidth);\n  set(this.scrollbarYRail, { display: 'block' });\n  this.railYMarginHeight =\n    toInt(railYStyle.marginTop) + toInt(railYStyle.marginBottom);\n  set(this.scrollbarYRail, { display: '' });\n  this.railYHeight = null;\n  this.railYRatio = null;\n\n  this.reach = {\n    x:\n      element.scrollLeft <= 0\n        ? 'start'\n        : element.scrollLeft >= this.contentWidth - this.containerWidth\n          ? 'end'\n          : null,\n    y:\n      element.scrollTop <= 0\n        ? 'start'\n        : element.scrollTop >= this.contentHeight - this.containerHeight\n          ? 'end'\n          : null,\n  };\n\n  this.isAlive = true;\n\n  this.settings.handlers.forEach(function (handlerName) { return handlers[handlerName](this$1); });\n\n  this.lastScrollTop = Math.floor(element.scrollTop); // for onScroll only\n  this.lastScrollLeft = element.scrollLeft; // for onScroll only\n  this.event.bind(this.element, 'scroll', function (e) { return this$1.onScroll(e); });\n  updateGeometry(this);\n};\n\nPerfectScrollbar.prototype.update = function update () {\n  if (!this.isAlive) {\n    return;\n  }\n\n  // Recalcuate negative scrollLeft adjustment\n  this.negativeScrollAdjustment = this.isNegativeScroll\n    ? this.element.scrollWidth - this.element.clientWidth\n    : 0;\n\n  // Recalculate rail margins\n  set(this.scrollbarXRail, { display: 'block' });\n  set(this.scrollbarYRail, { display: 'block' });\n  this.railXMarginWidth =\n    toInt(get(this.scrollbarXRail).marginLeft) +\n    toInt(get(this.scrollbarXRail).marginRight);\n  this.railYMarginHeight =\n    toInt(get(this.scrollbarYRail).marginTop) +\n    toInt(get(this.scrollbarYRail).marginBottom);\n\n  // Hide scrollbars not to affect scrollWidth and scrollHeight\n  set(this.scrollbarXRail, { display: 'none' });\n  set(this.scrollbarYRail, { display: 'none' });\n\n  updateGeometry(this);\n\n  processScrollDiff(this, 'top', 0, false, true);\n  processScrollDiff(this, 'left', 0, false, true);\n\n  set(this.scrollbarXRail, { display: '' });\n  set(this.scrollbarYRail, { display: '' });\n};\n\nPerfectScrollbar.prototype.onScroll = function onScroll (e) {\n  if (!this.isAlive) {\n    return;\n  }\n\n  updateGeometry(this);\n  processScrollDiff(this, 'top', this.element.scrollTop - this.lastScrollTop);\n  processScrollDiff(\n    this,\n    'left',\n    this.element.scrollLeft - this.lastScrollLeft\n  );\n\n  this.lastScrollTop = Math.floor(this.element.scrollTop);\n  this.lastScrollLeft = this.element.scrollLeft;\n};\n\nPerfectScrollbar.prototype.destroy = function destroy () {\n  if (!this.isAlive) {\n    return;\n  }\n\n  this.event.unbindAll();\n  remove(this.scrollbarX);\n  remove(this.scrollbarY);\n  remove(this.scrollbarXRail);\n  remove(this.scrollbarYRail);\n  this.removePsClasses();\n\n  // unset elements\n  this.element = null;\n  this.scrollbarX = null;\n  this.scrollbarY = null;\n  this.scrollbarXRail = null;\n  this.scrollbarYRail = null;\n\n  this.isAlive = false;\n};\n\nPerfectScrollbar.prototype.removePsClasses = function removePsClasses () {\n  this.element.className = this.element.className\n    .split(' ')\n    .filter(function (name) { return !name.match(/^ps([-_].+|)$/); })\n    .join(' ');\n};\n\nexport default PerfectScrollbar;\n","var $ = require('../internals/export');\nvar ArrayBufferModule = require('../internals/array-buffer');\nvar NATIVE_ARRAY_BUFFER = require('../internals/array-buffer-view-core').NATIVE_ARRAY_BUFFER;\n\n// `DataView` constructor\n// https://tc39.github.io/ecma262/#sec-dataview-constructor\n$({ global: true, forced: !NATIVE_ARRAY_BUFFER }, {\n  DataView: ArrayBufferModule.DataView\n});\n","import PropTypes from 'prop-types';\nimport React, {PureComponent} from 'react';\n\nconst strokeDasharray = (type, width) => {\n    return {\n        dashed: `${2 * width}, ${width}`,\n        dotted: `${width}, ${width}`,\n    }[type];\n};\n\nexport default class Ellipse extends PureComponent {\n    static propTypes = {\n        entity: PropTypes.shape({\n            getProperty: PropTypes.func.isRequired,\n            width: PropTypes.number.isRequired,\n            height: PropTypes.number.isRequired,\n        }).isRequired,\n        design: PropTypes.any.isRequired,\n    };\n\n    static defaultShapeProps = (({type}, options) => ({\n        lockAspectRatio: true,\n        props: {\n            opacity: 1,\n            stroke: '{{strokeColor|#656565}}',\n            strokeWidth: 0,\n            strokeType: 'solid',\n            fill: '{{fillColor|#656565}}',\n            type,\n        },\n        width: options.elementWidth,\n        height: options.elementWidth,\n    }));\n    render() {\n        const {\n            entity,\n            design,\n        } = this.props;\n        const strokeWidth = entity.getProperty('strokeWidth', design);\n        const sizeAdjustmentX = strokeWidth / 2;\n        const sizeAdjustmentY = strokeWidth / 2;\n        const props = {\n            pointerEvents: 'auto',\n            strokeWidth,\n            fill: entity.getProperty('fill', design),\n            stroke: entity.getProperty('stroke', design),\n            strokeDasharray: strokeDasharray(entity.getProperty('strokeType', design), strokeWidth),\n            rx: entity.width / 2 - sizeAdjustmentX,\n            ry: entity.height / 2 - sizeAdjustmentY,\n            cx: entity.width / 2,\n            cy: entity.height / 2,\n        };\n\n        return (<svg width=\"100%\" height=\"100%\" preserveAspectRatio=\"none\" strokeMiterlimit=\"60\">\n                <ellipse {...props}/>\n            </svg>);\n    }\n}\n","import Dispatcher from '../../dispatcher';\n\nimport {\n    PROGRESS_DIALOG_CRASH_PROGRESS,\n    PROGRESS_DIALOG_FINISH_PROGRESS,\n    PROGRESS_DIALOG_RESET_PROGRESS,\n    PROGRESS_DIALOG_SET_PROGRESS,\n} from '../constants';\n\nconst DEFAULT_DURATION = 2000; // default duration of progress bar animation is 2s\nconst FRAMELENGTH = 100; // each animation frame lasts 100ms\nconst FINISH_ANIMATION_DURATION = 50; // last step of animation when the upload/download/etc. operation is done too soon\n\nlet interval;\n\n// starts progress dialog animation\nexport function startProgress(duration = DEFAULT_DURATION) {\n    clearTimeout(interval);\n    if (duration <= 0) return;\n\n    interval = setInterval(() => {\n        Dispatcher.dispatch({\n            type: PROGRESS_DIALOG_SET_PROGRESS,\n            value: FRAMELENGTH / duration * 100,\n        });\n    }, FRAMELENGTH);\n}\n\n// sets concrete progress value\nexport function setProgress(progress) {\n    Dispatcher.dispatch({\n        type: PROGRESS_DIALOG_SET_PROGRESS,\n        value: progress,\n    });\n}\n\n// resets progress bar to initial state\nexport function resetProgress() {\n    clearTimeout(interval);\n    Dispatcher.dispatch({type: PROGRESS_DIALOG_RESET_PROGRESS});\n}\n\n// increases progress loading speed and fill it almost immediately to 100%\nexport function finishProgress() {\n    clearTimeout(interval);\n    interval = setInterval(() => {\n        Dispatcher.dispatch({\n            type: PROGRESS_DIALOG_SET_PROGRESS,\n            value: FRAMELENGTH / FINISH_ANIMATION_DURATION * 100,\n        });\n    }, FRAMELENGTH);\n\n    Dispatcher.dispatch({\n        type: PROGRESS_DIALOG_FINISH_PROGRESS,\n    });\n}\n\n// stops progress bar and shows error\nexport function crashProgress(message) {\n    clearTimeout(interval);\n    Dispatcher.dispatch({\n        type: PROGRESS_DIALOG_CRASH_PROGRESS,\n        message,\n    });\n}\n\nexport default {\n    crashProgress,\n    finishProgress,\n    resetProgress,\n    startProgress,\n};\n","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!./WebInfographicsGrid.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!./WebInfographicsGrid.css\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!./WebInfographicsGrid.css\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","import {ReduceStore} from 'flux/utils';\nimport {fromJS} from 'immutable';\n\nimport Dispatcher from '../../app/dispatcher';\nimport {\n    RESPONSIVE_FULLSCREEN_ENTER,\n    RESPONSIVE_FULLSCREEN_EXIT,\n} from '../constants';\n\nclass ResponsiveInfographicStore extends ReduceStore {\n    getInitialState() {\n        return fromJS({\n            fullscreen: false,\n        });\n    }\n\n    reduce(state, action) {\n        switch (action.type) {\n            case RESPONSIVE_FULLSCREEN_ENTER:\n                return state.merge({\n                    fullscreen: true,\n                });\n            case RESPONSIVE_FULLSCREEN_EXIT:\n                return state.merge({\n                    fullscreen: false,\n                });\n            default:\n                return state;\n        }\n    }\n\n    get isFullscreen() {\n        return this.getState().get('fullscreen');\n    }\n}\n\nexport default new ResponsiveInfographicStore(Dispatcher);\n","import React, {PureComponent} from 'react';\nimport PropTypes from 'prop-types';\nimport _ from 'lodash';\nimport ReactDOMServer from 'react-dom/server';\n\nimport style from './Grid.css';\nimport {GridSettings} from '../../../common/GridHelpers';\n\nconst makeGridSVG = (height) => ('data:image/svg+xml;base64,' + btoa(ReactDOMServer.renderToStaticMarkup(\n    <svg width=\"100%\" height=\"100%\" xmlns=\"http://www.w3.org/2000/svg\" shapeRendering=\"crispEdges\">\n        <defs>\n            <pattern id=\"grid\" x={0} y={0} width={100} height={height} patternUnits=\"userSpaceOnUse\">\n                <path\n                    d={`M 0 ${height-0.5} L 100 ${height-0.5}`}\n                    fill=\"none\"\n                    stroke=\"#f617e2\"\n                    strokeOpacity=\"0.4\"\n                    strokeWidth=\"1\"\n                    vectorEffect=\"non-scaling-stroke\"\n                />\n            </pattern>\n        </defs>\n        <rect width=\"100%\" height=\"100%\" fill=\"url(#grid)\"/>\n    </svg>\n)));\n\n// Since grid will have a lot of lines and each page will have a grid,\n// it will be more performant to generate an SVG and save it once.\nlet globalGridSVG, globalGridSVGHeight;\n\nexport default class Grid extends PureComponent {\n    static propTypes = {\n        whitespacePercent: PropTypes.number.isRequired,\n        columnCount: PropTypes.number.isRequired,\n        rowSpacing: PropTypes.number.isRequired,\n        width: PropTypes.number.isRequired,\n        height: PropTypes.number.isRequired,\n        scaleY: PropTypes.number.isRequired,\n        scaleX: PropTypes.number.isRequired,\n    };\n\n    static getDerivedStateFromProps(props) {\n        const scaledRowSpacing = props.scaleX * props.rowSpacing;\n        if (globalGridSVGHeight !== scaledRowSpacing) {\n            globalGridSVG = makeGridSVG(scaledRowSpacing);\n        }\n        return {\n            gridSVG: globalGridSVG,\n        };\n    }\n\n    state = {}\n\n    render() {\n        const scaledRowSpacing = this.props.scaleX * this.props.rowSpacing;\n        const {width, height, whitespacePercent, columnCount} = this.props;\n        const gridSettings = new GridSettings(width, height, columnCount, whitespacePercent, scaledRowSpacing);\n        const multiplier = gridSettings.columnWidth + gridSettings.spacing;\n\n        return (\n            <div className={style.grid}>\n                {_.times(columnCount, i => (\n                    <div\n                        key={i}\n                        className={style.gridItem}\n                        style={{\n                            top: gridSettings.padding,\n                            left: gridSettings.padding + multiplier * i,\n                            bottom: gridSettings.padding,\n                            width: gridSettings.columnWidth - 1,\n                            background: `url(\"${this.state.gridSVG}\")`,\n                        }}\n                    />\n                ))}\n            </div>\n        );\n    }\n}\n","'use strict';\nvar isObject = require('../internals/is-object');\nvar definePropertyModule = require('../internals/object-define-property');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar HAS_INSTANCE = wellKnownSymbol('hasInstance');\nvar FunctionPrototype = Function.prototype;\n\n// `Function.prototype[@@hasInstance]` method\n// https://tc39.github.io/ecma262/#sec-function.prototype-@@hasinstance\nif (!(HAS_INSTANCE in FunctionPrototype)) {\n  definePropertyModule.f(FunctionPrototype, HAS_INSTANCE, { value: function (O) {\n    if (typeof this != 'function' || !isObject(O)) return false;\n    if (!isObject(this.prototype)) return O instanceof this;\n    // for environment w/o native `@@hasInstance` logic enough `instanceof`, but add this:\n    while (O = getPrototypeOf(O)) if (this.prototype === O) return true;\n    return false;\n  } });\n}\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar classof = require('../internals/classof-raw');\nvar macrotask = require('../internals/task').set;\nvar userAgent = require('../internals/user-agent');\n\nvar MutationObserver = global.MutationObserver || global.WebKitMutationObserver;\nvar process = global.process;\nvar Promise = global.Promise;\nvar IS_NODE = classof(process) == 'process';\n// Node.js 11 shows ExperimentalWarning on getting `queueMicrotask`\nvar queueMicrotaskDescriptor = getOwnPropertyDescriptor(global, 'queueMicrotask');\nvar queueMicrotask = queueMicrotaskDescriptor && queueMicrotaskDescriptor.value;\n\nvar flush, head, last, notify, toggle, node, promise;\n\n// modern engines have queueMicrotask method\nif (!queueMicrotask) {\n  flush = function () {\n    var parent, fn;\n    if (IS_NODE && (parent = process.domain)) parent.exit();\n    while (head) {\n      fn = head.fn;\n      head = head.next;\n      try {\n        fn();\n      } catch (error) {\n        if (head) notify();\n        else last = undefined;\n        throw error;\n      }\n    } last = undefined;\n    if (parent) parent.enter();\n  };\n\n  // Node.js\n  if (IS_NODE) {\n    notify = function () {\n      process.nextTick(flush);\n    };\n  // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339\n  } else if (MutationObserver && !/(iphone|ipod|ipad).*applewebkit/i.test(userAgent)) {\n    toggle = true;\n    node = document.createTextNode('');\n    new MutationObserver(flush).observe(node, { characterData: true }); // eslint-disable-line no-new\n    notify = function () {\n      node.data = toggle = !toggle;\n    };\n  // environments with maybe non-completely correct, but existent Promise\n  } else if (Promise && Promise.resolve) {\n    // Promise.resolve without an argument throws an error in LG WebOS 2\n    promise = Promise.resolve(undefined);\n    notify = function () {\n      promise.then(flush);\n    };\n  // for other environments - macrotask based on:\n  // - setImmediate\n  // - MessageChannel\n  // - window.postMessag\n  // - onreadystatechange\n  // - setTimeout\n  } else {\n    notify = function () {\n      // strange IE + webpack dev server bug - use .call(global)\n      macrotask.call(global, flush);\n    };\n  }\n}\n\nmodule.exports = queueMicrotask || function (fn) {\n  var task = { fn: fn, next: undefined };\n  if (last) last.next = task;\n  if (!head) {\n    head = task;\n    notify();\n  } last = task;\n};\n","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!./style.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!./style.css\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!./style.css\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\n\nvar Symbol = global.Symbol;\nvar store = shared('wks');\n\nmodule.exports = function (name) {\n  return store[name] || (store[name] = NATIVE_SYMBOL && Symbol[name]\n    || (NATIVE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.asyncIterator` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.asynciterator\ndefineWellKnownSymbol('asyncIterator');\n","var $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar nativeKeys = require('../internals/object-keys');\nvar fails = require('../internals/fails');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeKeys(1); });\n\n// `Object.keys` method\n// https://tc39.github.io/ecma262/#sec-object.keys\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, {\n  keys: function keys(it) {\n    return nativeKeys(toObject(it));\n  }\n});\n","var $ = require('../internals/export');\n\nvar ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `Math.trunc` method\n// https://tc39.github.io/ecma262/#sec-math.trunc\n$({ target: 'Math', stat: true }, {\n  trunc: function trunc(it) {\n    return (it > 0 ? floor : ceil)(it);\n  }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar toInteger = require('../internals/to-integer');\nvar thisNumberValue = require('../internals/this-number-value');\nvar repeat = require('../internals/string-repeat');\nvar fails = require('../internals/fails');\n\nvar nativeToFixed = 1.0.toFixed;\nvar floor = Math.floor;\n\nvar pow = function (x, n, acc) {\n  return n === 0 ? acc : n % 2 === 1 ? pow(x, n - 1, acc * x) : pow(x * x, n / 2, acc);\n};\n\nvar log = function (x) {\n  var n = 0;\n  var x2 = x;\n  while (x2 >= 4096) {\n    n += 12;\n    x2 /= 4096;\n  }\n  while (x2 >= 2) {\n    n += 1;\n    x2 /= 2;\n  } return n;\n};\n\nvar FORCED = nativeToFixed && (\n  0.00008.toFixed(3) !== '0.000' ||\n  0.9.toFixed(0) !== '1' ||\n  1.255.toFixed(2) !== '1.25' ||\n  1000000000000000128.0.toFixed(0) !== '1000000000000000128'\n) || !fails(function () {\n  // V8 ~ Android 4.3-\n  nativeToFixed.call({});\n});\n\n// `Number.prototype.toFixed` method\n// https://tc39.github.io/ecma262/#sec-number.prototype.tofixed\n$({ target: 'Number', proto: true, forced: FORCED }, {\n  // eslint-disable-next-line max-statements\n  toFixed: function toFixed(fractionDigits) {\n    var number = thisNumberValue(this);\n    var fractDigits = toInteger(fractionDigits);\n    var data = [0, 0, 0, 0, 0, 0];\n    var sign = '';\n    var result = '0';\n    var e, z, j, k;\n\n    var multiply = function (n, c) {\n      var index = -1;\n      var c2 = c;\n      while (++index < 6) {\n        c2 += n * data[index];\n        data[index] = c2 % 1e7;\n        c2 = floor(c2 / 1e7);\n      }\n    };\n\n    var divide = function (n) {\n      var index = 6;\n      var c = 0;\n      while (--index >= 0) {\n        c += data[index];\n        data[index] = floor(c / n);\n        c = (c % n) * 1e7;\n      }\n    };\n\n    var dataToString = function () {\n      var index = 6;\n      var s = '';\n      while (--index >= 0) {\n        if (s !== '' || index === 0 || data[index] !== 0) {\n          var t = String(data[index]);\n          s = s === '' ? t : s + repeat.call('0', 7 - t.length) + t;\n        }\n      } return s;\n    };\n\n    if (fractDigits < 0 || fractDigits > 20) throw RangeError('Incorrect fraction digits');\n    // eslint-disable-next-line no-self-compare\n    if (number != number) return 'NaN';\n    if (number <= -1e21 || number >= 1e21) return String(number);\n    if (number < 0) {\n      sign = '-';\n      number = -number;\n    }\n    if (number > 1e-21) {\n      e = log(number * pow(2, 69, 1)) - 69;\n      z = e < 0 ? number * pow(2, -e, 1) : number / pow(2, e, 1);\n      z *= 0x10000000000000;\n      e = 52 - e;\n      if (e > 0) {\n        multiply(0, z);\n        j = fractDigits;\n        while (j >= 7) {\n          multiply(1e7, 0);\n          j -= 7;\n        }\n        multiply(pow(10, j, 1), 0);\n        j = e - 1;\n        while (j >= 23) {\n          divide(1 << 23);\n          j -= 23;\n        }\n        divide(1 << j);\n        multiply(1, 1);\n        divide(2);\n        result = dataToString();\n      } else {\n        multiply(0, z);\n        multiply(1 << -e, 0);\n        result = dataToString() + repeat.call('0', fractDigits);\n      }\n    }\n    if (fractDigits > 0) {\n      k = result.length;\n      result = sign + (k <= fractDigits\n        ? '0.' + repeat.call('0', fractDigits - k) + result\n        : result.slice(0, k - fractDigits) + '.' + result.slice(k - fractDigits));\n    } else {\n      result = sign + result;\n    } return result;\n  }\n});\n","import screenfull from 'screenfull';\n\nimport Dispatcher from '../../app/dispatcher';\n\nimport {\n    RESPONSIVE_FULLSCREEN_ENTER,\n    RESPONSIVE_FULLSCREEN_EXIT,\n} from '../constants';\n\nexport function enterFullscreen() {\n    Dispatcher.dispatch({\n        type: RESPONSIVE_FULLSCREEN_ENTER,\n    });\n\n    if (screenfull.enabled) {\n        screenfull.request();\n    }\n}\n\nexport function exitFullscreen() {\n    Dispatcher.dispatch({\n        type: RESPONSIVE_FULLSCREEN_EXIT,\n    });\n\n    screenfull.exit();\n}\n","import EditorState from '../immutable/EditorState';\n\nexport default function removeCallout(editorState, entityKey, options) {\n    return removeCalloutEntity(editorState, editorState.getEntity(entityKey), options);\n}\n\nexport function removeCalloutEntity(editorState, calloutEntity, {pushToUndoStack=false} = {}) {\n    let updatedState = editorState.setEntity(calloutEntity.getKey(), {props: {callout: undefined}}, {pushToUndoStack});\n    const block = updatedState.getCurrentContent().getBlock(calloutEntity.getBlockKey());\n    const keysToDelete = block.getEntities().reduce((keys, entity) => {\n        if (entity.getCalloutKey() === calloutEntity.getKey()) {\n            keys.push(entity.getKey());\n        }\n        return keys;\n    }, []);\n    if (!keysToDelete.length) {\n        return editorState;\n    }\n    updatedState = EditorState.set(updatedState, {\n        currentContent: updatedState.getCurrentContent().removeEntities(...keysToDelete),\n    });\n\n    return updatedState;\n}\n","var bind = require('../internals/bind-context');\nvar IndexedObject = require('../internals/indexed-object');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\nvar push = [].push;\n\n// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex }` methods implementation\nvar createMethod = function (TYPE) {\n  var IS_MAP = TYPE == 1;\n  var IS_FILTER = TYPE == 2;\n  var IS_SOME = TYPE == 3;\n  var IS_EVERY = TYPE == 4;\n  var IS_FIND_INDEX = TYPE == 6;\n  var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n  return function ($this, callbackfn, that, specificCreate) {\n    var O = toObject($this);\n    var self = IndexedObject(O);\n    var boundFunction = bind(callbackfn, that, 3);\n    var length = toLength(self.length);\n    var index = 0;\n    var create = specificCreate || arraySpeciesCreate;\n    var target = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;\n    var value, result;\n    for (;length > index; index++) if (NO_HOLES || index in self) {\n      value = self[index];\n      result = boundFunction(value, index, O);\n      if (TYPE) {\n        if (IS_MAP) target[index] = result; // map\n        else if (result) switch (TYPE) {\n          case 3: return true;              // some\n          case 5: return value;             // find\n          case 6: return index;             // findIndex\n          case 2: push.call(target, value); // filter\n        } else if (IS_EVERY) return false;  // every\n      }\n    }\n    return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;\n  };\n};\n\nmodule.exports = {\n  // `Array.prototype.forEach` method\n  // https://tc39.github.io/ecma262/#sec-array.prototype.foreach\n  forEach: createMethod(0),\n  // `Array.prototype.map` method\n  // https://tc39.github.io/ecma262/#sec-array.prototype.map\n  map: createMethod(1),\n  // `Array.prototype.filter` method\n  // https://tc39.github.io/ecma262/#sec-array.prototype.filter\n  filter: createMethod(2),\n  // `Array.prototype.some` method\n  // https://tc39.github.io/ecma262/#sec-array.prototype.some\n  some: createMethod(3),\n  // `Array.prototype.every` method\n  // https://tc39.github.io/ecma262/#sec-array.prototype.every\n  every: createMethod(4),\n  // `Array.prototype.find` method\n  // https://tc39.github.io/ecma262/#sec-array.prototype.find\n  find: createMethod(5),\n  // `Array.prototype.findIndex` method\n  // https://tc39.github.io/ecma262/#sec-array.prototype.findIndex\n  findIndex: createMethod(6)\n};\n","module.exports = __webpack_public_path__ + \"15e2CuRhW7zMFwlI26AXiu.svg\";","import PropTypes from 'prop-types';\nimport React, {PureComponent} from 'react';\nimport cx from 'classnames';\n\nimport loadImage from '../../../loadImage';\nimport {VIDEO_PLAYBACK_LOOP} from '../../../../../components/InspectorPanel/panels/Entity/Video/constants';\n\nimport Spinner from '../../../../../widgets/spinner';\n\nimport style from './style.css';\n\nexport const initialPropsForVideoData = async(data, options) => {\n    const image = await loadImage(data.image);\n    const elementWidth = options.elementWidth || image.width;\n    const elementHeight = image.height / image.width * elementWidth;\n\n    return ({\n        width: elementWidth,\n        height: elementHeight,\n        props: {\n            opacity: 1,\n            playback: VIDEO_PLAYBACK_LOOP,\n        },\n    });\n};\n\nexport default class Video extends PureComponent {\n    static propTypes = {\n        inEditMode: PropTypes.bool,\n        assetId: PropTypes.string,\n        playback: PropTypes.string.isRequired,\n        opacity: PropTypes.number.isRequired,\n        renderThumbnail: PropTypes.bool,\n        imageAssetId: PropTypes.string,\n        scaleX: PropTypes.number.isRequired,\n        scaleY: PropTypes.number.isRequired,\n        width: PropTypes.oneOfType([\n            PropTypes.number.isRequired,\n            PropTypes.string.isRequired,\n        ]),\n        height: PropTypes.oneOfType([\n            PropTypes.number.isRequired,\n            PropTypes.string.isRequired,\n        ]),\n        assets: PropTypes.shape({getURL: PropTypes.func.isRequired}),\n    };\n\n    constructor(props) {\n        super(props);\n\n        this.videoElement = React.createRef();\n        this.state = {\n            isLoading: true,\n            url: props.assets.getURL(props.assetId),\n        };\n    }\n\n    static initialPropsForData = initialPropsForVideoData\n\n    static getDerivedStateFromProps(props, state) {\n        if (!props.assetId || state.url !== props.assets.getURL(props.assetId)) {\n            return {\n                isLoading: true,\n                url: props.assets.getURL(props.assetId),\n            };\n        }\n\n        return null;\n    }\n\n    componentDidUpdate(prevProps) {\n        if (prevProps.playback !== VIDEO_PLAYBACK_LOOP && this.props.playback === VIDEO_PLAYBACK_LOOP) {\n            this.videoElement.current.play();\n        }\n    }\n\n    onLoaded = () => {\n        this.setState({isLoading: false});\n    }\n\n    render() {\n        const {renderThumbnail} = this.props;\n        const image = this.props.assets.getURL(this.props.imageAssetId);\n\n        return (\n            <div className={cx(style.mediaEntity, {[style.loadingWrapper]: this.state.isLoading && !renderThumbnail})}>\n                {this.state.isLoading && !renderThumbnail && <Spinner/>}\n                {renderThumbnail && (\n                    <div className={style.videoThumbnail}\n                        style={{\n                            backgroundImage: `url('${image}')`,\n                            width: this.props.width * this.props.scaleX,\n                            height: this.props.height * this.props.scaleY,\n                        }}\n                    />\n                )}\n                {!renderThumbnail && (\n                    <video\n                        style={{opacity: this.props.opacity}}\n                        src={this.state.url}\n                        ref={this.videoElement}\n                        className={style.video}\n                        controls={false}\n                        onLoadedData={this.onLoaded}\n                        loop={this.props.playback === VIDEO_PLAYBACK_LOOP}\n                        autoPlay\n                        poster={image}\n                        playsInline\n                        muted\n                    />\n                )}\n            </div>\n        );\n    }\n}\n","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!./BaseImage.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!./BaseImage.css\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js??ref--5-1!./BaseImage.css\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","var $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar create = require('../internals/object-create');\n\n// `Object.create` method\n// https://tc39.github.io/ecma262/#sec-object.create\n$({ target: 'Object', stat: true, sham: !DESCRIPTORS }, {\n  create: create\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 ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","import Dispatcher from '../../app/dispatcher';\nimport {\n    INSPECTOR_PANEL_PUSH,\n    INSPECTOR_PANEL_POP,\n    INSPECTOR_OPEN_PAGE_SETTINGS,\n    INSPECTOR_OPEN_PAGE_AUTO_LAYOUT,\n} from './constants';\n\nimport {\n    ELEMENT_MENU_CLOSE,\n} from '../ElementMenu/constants/ElementMenuConstants';\n\nimport {\n    ELEMENT_SELECTED_NONE,\n} from '../../app/constants';\n\nexport function resetPanel() {\n    Dispatcher.dispatch({\n        type: ELEMENT_SELECTED_NONE,\n    });\n}\n\nexport function pushInspectorPanel(component, props) {\n    Dispatcher.dispatch({\n        type: ELEMENT_MENU_CLOSE,\n    });\n    Dispatcher.dispatch({\n        type: INSPECTOR_PANEL_PUSH,\n        component,\n        props,\n    });\n}\n\nexport function popInspectorPanel() {\n    Dispatcher.dispatch({\n        type: INSPECTOR_PANEL_POP,\n    });\n}\n\nexport function openAutoLayout(pageId) {\n    Dispatcher.dispatch({\n        type: INSPECTOR_OPEN_PAGE_AUTO_LAYOUT,\n        pageId,\n    });\n}\n\nexport function openPageSettings(pageId) {\n    Dispatcher.dispatch({\n        type: INSPECTOR_OPEN_PAGE_SETTINGS,\n        pageId,\n    });\n}\n","import i18n from 'i18next';\nimport PropTypes from 'prop-types';\nimport React, {PureComponent} from 'react';\nimport _ from 'lodash';\nimport classNames from 'classnames';\n\nimport {SELECTOR_HORIZONTAL_PADDING} from '../../../../../components/TextEditor/constants/TextEditorConstants';\n\nimport EditorStateStore from '../../../stores/EditorStateStore';\n\nimport 'style-loader!css-loader?modules=false!draft-js/dist/Draft.css';\n\nexport default function createTextComponent(renderTextContents) {\n    class TextContents extends PureComponent {\n        static propTypes = {\n            design: PropTypes.any.isRequired,\n            entity: PropTypes.shape({\n                getKey: PropTypes.func.isRequired,\n                getWidth: PropTypes.func.isRequired,\n                getHeight: PropTypes.func.isRequired,\n                getType: PropTypes.func.isRequired,\n                getProperty: PropTypes.func.isRequired,\n            }).isRequired,\n            scaleX: PropTypes.number.isRequired,\n            scaleY: PropTypes.number.isRequired,\n        };\n\n        static initialPropsForData = async({offscreenContainer, template, text, design}, options) => {\n            const {\n                createEditableEditorState,\n                renderDraftContentToString,\n                measureText,\n                createContentForType,\n                createStyleFunctions,\n                selectAll,\n                draftConvertToRaw: convertToRaw,\n                draftConvertFromRaw: convertFromRaw,\n                DraftModifier: Modifier,\n            } = await import('./textUtils');\n\n            let content = createContentForType(template, text || i18n.t('app.edit.text_element_initial_contents'));\n            const draftEditorState = createEditableEditorState(content);\n            let width;\n            let height;\n\n            const styleFunctions = createStyleFunctions(template, design);\n            if (options.width && options.height) {\n                /* for text components inside of shapes dimensions are passed */\n                width = options.width;\n                height = options.height;\n            } else {\n                const textDimensions = await measureText(offscreenContainer, draftEditorState, styleFunctions);\n                width = textDimensions.width;\n                height = textDimensions.height;\n            }\n            if (options.align) {\n                const selection = selectAll(draftEditorState);\n                content = Modifier.mergeBlockData(content, selection, {\n                    align: options.align,\n                });\n            }\n            if (options.color) {\n                const selection = selectAll(draftEditorState);\n                content = Modifier.applyInlineStyle(content, selection, `ig:color:${options.color}`);\n            }\n            const rawContent = convertToRaw(content);\n            const contentHTML = renderDraftContentToString(convertFromRaw(rawContent), template, design, EditorStateStore.editorState);\n            const finalWidth = Math.max(width, options.elementWidth || 0);\n            return {\n                width: finalWidth + SELECTOR_HORIZONTAL_PADDING * 2,\n                height,\n                props: {\n                    opacity: 1,\n                    verticalAlign: 'top',\n                    content: rawContent,\n                    contentHTML,\n                    template,\n                    resetFontKerning: true,\n                    overflow: true,\n                    scaleX: 1,\n                    scaleY: 1,\n                    scaleWidth: finalWidth,\n                    scaleHeight: height,\n                },\n            };\n        };\n\n        render() {\n            const {\n                entity,\n                design,\n            } = this.props;\n            let margin = '0px';\n\n            let style = {\n                width: entity.getWidth(),\n                height: entity.getHeight(),\n            };\n\n            if (entity.getType() === 'SHAPE') {\n                const text = entity.getProperty('text');\n                if (text === null) {\n                    return null;\n                }\n                const textDimensions = text.toJS();\n                style = textDimensions.dimensions;\n                margin = textDimensions.marginString;\n            }\n\n            let {scaleX, scaleY} = this.props;\n            if (entity.getType() === 'TEXT') {\n                scaleX *= entity.getProperty('scaleX');\n                scaleY *= entity.getProperty('scaleY');\n                style.width = _.isNil(entity.getProperty('scaleWidth')) ? entity.getWidth() : entity.getProperty('scaleWidth');\n                style.height = _.isNil(entity.getProperty('scaleHeight')) ? entity.getHeight() : entity.getProperty('scaleHeight');\n            }\n\n            const translate = entity.getType() === 'TEXT' ? `translate(${SELECTOR_HORIZONTAL_PADDING}px, 0)` : '';\n\n            const containerStyle = {\n                ...style,\n                opacity: entity.getProperty('opacity', design),\n                margin,\n                transform: `${translate} scale(${scaleX}, ${scaleY})`,\n                transformOrigin: '0 0',\n            };\n\n            const cellStyle = {\n                verticalAlign: entity.getProperty('verticalAlign', design),\n            };\n\n            const className = classNames('ItemContent-text', {\n                '__no-font-kerning': entity.getProperty('resetFontKerning'),\n                '__with-overflow': entity.getProperty('overflow'),\n            });\n\n            const contents = renderTextContents(entity, design, entity.getWidth());\n\n            return (\n                <div className={className}\n                    style={containerStyle}\n                    onDoubleClick={this._handleDoubleClick}\n                    onClick={this._handleClick}\n                >\n                    <div className=\"ItemContent-text-outer_container\" style={style}>\n                        <div className=\"ItemContent-text-inner_container\" style={cellStyle}>\n                            <div style={{width: style.width}}>{contents}</div>\n                        </div>\n                    </div>\n                </div>\n            );\n        }\n    }\n\n    return TextContents;\n}\n","var $ = require('../internals/export');\nvar lastIndexOf = require('../internals/array-last-index-of');\n\n// `Array.prototype.lastIndexOf` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.lastindexof\n$({ target: 'Array', proto: true, forced: lastIndexOf !== [].lastIndexOf }, {\n  lastIndexOf: lastIndexOf\n});\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n  return Object.isExtensible(Object.preventExtensions({}));\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar FORCED = require('../internals/forced-object-prototype-accessors-methods');\nvar toObject = require('../internals/to-object');\nvar toPrimitive = require('../internals/to-primitive');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\n\n// `Object.prototype.__lookupGetter__` method\n// https://tc39.github.io/ecma262/#sec-object.prototype.__lookupGetter__\nif (DESCRIPTORS) {\n  $({ target: 'Object', proto: true, forced: FORCED }, {\n    __lookupGetter__: function __lookupGetter__(P) {\n      var O = toObject(this);\n      var key = toPrimitive(P, true);\n      var desc;\n      do {\n        if (desc = getOwnPropertyDescriptor(O, key)) return desc.get;\n      } while (O = getPrototypeOf(O));\n    }\n  });\n}\n","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"._1vzOi_YYfQ8lHQ2PGEd4oj {\\n    display: inline-block;\\n    position: relative;\\n}\\n\\n._35yTenkUA6tkT7h1KeQ109 {\\n    cursor: pointer;\\n    -moz-user-select: none;\\n    -webkit-user-select: none;\\n    -ms-user-select: none;\\n    user-select: none;\\n}\\n\\n._31cLw2mkkEEuldlsXwIQEk {\\n    position: absolute;\\n}\\n\\n.aj95r_gDpqDKbrdBOWXy8 {\\n    position: fixed;\\n}\\n\\n._31cLw2mkkEEuldlsXwIQEk._1YX6tavAzWfuDTza-MG1xt {\\n    right: 0;\\n}\\n\\n\", \"\"]);\n\n// exports\nexports.locals = {\n\t\"root\": \"_1vzOi_YYfQ8lHQ2PGEd4oj\",\n\t\"button\": \"_35yTenkUA6tkT7h1KeQ109\",\n\t\"container\": \"_31cLw2mkkEEuldlsXwIQEk\",\n\t\"innerContainer\": \"aj95r_gDpqDKbrdBOWXy8\",\n\t\"alignRight\": \"_1YX6tavAzWfuDTza-MG1xt\"\n};","import {SET_CONNECTOR_TARGET_ENTITY} from '../constants';\nimport Dispatcher from '../../../../app/dispatcher';\n\nexport default function setConnectorTargetEntity(entity) {\n    Dispatcher.dispatch({\n        type: SET_CONNECTOR_TARGET_ENTITY,\n        entity,\n    });\n}\n","var $ = require('../internals/export');\nvar fails = require('../internals/fails');\n\nvar nativeImul = Math.imul;\n\nvar FORCED = fails(function () {\n  return nativeImul(0xFFFFFFFF, 5) != -5 || nativeImul.length != 2;\n});\n\n// `Math.imul` method\n// https://tc39.github.io/ecma262/#sec-math.imul\n// some WebKit versions fails with big numbers, some has wrong arity\n$({ target: 'Math', stat: true, forced: FORCED }, {\n  imul: function imul(x, y) {\n    var UINT16 = 0xFFFF;\n    var xn = +x;\n    var yn = +y;\n    var xl = UINT16 & xn;\n    var yl = UINT16 & yn;\n    return 0 | xl * yl + ((UINT16 & xn >>> 16) * yl + xl * (UINT16 & yn >>> 16) << 16 >>> 0);\n  }\n});\n","var sign = require('../internals/math-sign');\n\nvar abs = Math.abs;\nvar pow = Math.pow;\nvar EPSILON = pow(2, -52);\nvar EPSILON32 = pow(2, -23);\nvar MAX32 = pow(2, 127) * (2 - EPSILON32);\nvar MIN32 = pow(2, -126);\n\nvar roundTiesToEven = function (n) {\n  return n + 1 / EPSILON - 1 / EPSILON;\n};\n\n// `Math.fround` method implementation\n// https://tc39.github.io/ecma262/#sec-math.fround\nmodule.exports = Math.fround || function fround(x) {\n  var $abs = abs(x);\n  var $sign = sign(x);\n  var a, result;\n  if ($abs < MIN32) return $sign * roundTiesToEven($abs / MIN32 / EPSILON32) * MIN32 * EPSILON32;\n  a = (1 + EPSILON32 / EPSILON) * $abs;\n  result = a - (a - $abs);\n  // eslint-disable-next-line no-self-compare\n  if (result > MAX32 || result != result) return $sign * Infinity;\n  return $sign * result;\n};\n","import defineProperty from \"./defineProperty\";\nexport default function _objectSpread(target) {\n  for (var i = 1; i < arguments.length; i++) {\n    var source = arguments[i] != null ? arguments[i] : {};\n    var ownKeys = Object.keys(Object(source));\n\n    if (typeof Object.getOwnPropertySymbols === 'function') {\n      ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n        return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n      }));\n    }\n\n    ownKeys.forEach(function (key) {\n      defineProperty(target, key, source[key]);\n    });\n  }\n\n  return target;\n}","\nvar content = require(\"!!../../../../../node_modules/css-loader/index.js??ref--5-1!./ContentItem.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../../node_modules/css-loader/index.js??ref--5-1!./ContentItem.css\", function() {\n\t\tvar newContent = require(\"!!../../../../../node_modules/css-loader/index.js??ref--5-1!./ContentItem.css\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\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\nexport default function _createClass(Constructor, protoProps, staticProps) {\n  if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n  if (staticProps) _defineProperties(Constructor, staticProps);\n  return Constructor;\n}","'use strict';\nvar $ = require('../internals/export');\n\n// `URL.prototype.toJSON` method\n// https://url.spec.whatwg.org/#dom-url-tojson\n$({ target: 'URL', proto: true, enumerable: true }, {\n  toJSON: function toJSON() {\n    return URL.prototype.toString.call(this);\n  }\n});\n","import PropTypes from 'prop-types';\nimport ImmutablePropTypes from 'react-immutable-proptypes';\n\nexport const Preview = ImmutablePropTypes.recordOf({\n    animation: PropTypes.shape({\n        name: PropTypes.string,\n        regime: PropTypes.string,\n        duration: PropTypes.number,\n        delay: PropTypes.number,\n        startAt: PropTypes.number,\n        endAt: PropTypes.number,\n    }),\n    highlight: PropTypes.bool,\n});\n\nexport const Previews = ImmutablePropTypes.mapOf(\n    Preview, PropTypes.string\n);\n","var $ = require('../internals/export');\nvar parseFloat = require('../internals/parse-float');\n\n// `Number.parseFloat` method\n// https://tc39.github.io/ecma262/#sec-number.parseFloat\n$({ target: 'Number', stat: true, forced: Number.parseFloat != parseFloat }, {\n  parseFloat: parseFloat\n});\n","\nvar content = require(\"!!../../../../../../../node_modules/css-loader/index.js??ref--5-1!./style.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../../../../node_modules/css-loader/index.js??ref--5-1!./style.css\", function() {\n\t\tvar newContent = require(\"!!../../../../../../../node_modules/css-loader/index.js??ref--5-1!./style.css\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","import PropTypes from 'prop-types';\nimport React, {PureComponent} from 'react';\n\nimport {StyledButton, Icon, IconSvg} from './StyledButton.js';\n\nexport default class Button extends PureComponent {\n    static propTypes = {\n        className: PropTypes.string,\n        disabled: PropTypes.bool,\n        href: PropTypes.string,\n        onClick: PropTypes.func,\n        children: PropTypes.oneOfType([\n            PropTypes.node,\n            PropTypes.arrayOf(PropTypes.node),\n        ]),\n        type: PropTypes.string,\n        role: PropTypes.string,\n        useButtonTag: PropTypes.bool,\n        icon: PropTypes.string,\n        iconSVG: PropTypes.string,\n        gray: PropTypes.bool,\n        grayBorder: PropTypes.bool,\n        green: PropTypes.bool,\n        small: PropTypes.bool,\n        standard: PropTypes.bool,\n        wide: PropTypes.bool,\n        blue: PropTypes.bool,\n        red: PropTypes.bool,\n        cancel: PropTypes.bool,\n        center: PropTypes.bool,\n        tooltip: PropTypes.string,\n        tooltipPosition: PropTypes.string,\n        customCss: PropTypes.string,\n        customIconCss: PropTypes.string,\n    }\n\n    render() {\n        let onClick;\n\n        if (!this.props.disabled) {\n            onClick = this.props.onClick;\n        }\n\n        let icon;\n\n        if (this.props.iconSVG) {\n            icon = (<IconSvg css={this.props.customIconCss} src={this.props.iconSVG}/>);\n        } else if (this.props.icon) {\n            icon = (<Icon css={this.props.customIconCss} className={`icon-${this.props.icon}`}/>);\n        }\n\n        return (\n            <StyledButton\n                className={this.props.className}\n                href={this.props.href}\n                onClick={onClick}\n                type={this.props.type}\n                role={this.props.role}\n                data-tooltip={this.props.tooltip}\n                data-tooltip-position={this.props.tooltipPosition || 'bottom'}\n\n                disabled={this.props.disabled}\n                gray={this.props.gray}\n                grayBorder={this.props.grayBorder}\n                green={this.props.green}\n                standard={this.props.standard}\n                wide={this.props.wide}\n                small={this.props.small}\n                icon={!!this.props.icon || !!this.props.iconSVG}\n                blue={this.props.blue}\n                red={this.props.red}\n                cancel={this.props.cancel}\n                center={this.props.center}\n                css={this.props.customCss}\n                as={this.props.useButtonTag ? 'button' : 'a'}\n            >\n                {icon}\n                {this.props.children}\n            </StyledButton>\n        );\n    }\n}\n","module.exports = __webpack_public_path__ + \"2ihmA1j7MQGKiO4s3veIP8.svg\";","import PropTypes from 'prop-types';\nimport ImmutablePropTypes from 'react-immutable-proptypes';\nimport React, {PureComponent} from 'react';\n\nimport loadImage from '../../../loadImage';\n\nimport {startImageClipEditing} from '../../../actions/imageClipping';\n\nimport {MaskPropShape} from '../../../../../components/FreeLayoutEditor/immutable/Mask';\nimport ClippedImage from './ClippedImage.react';\nimport AccessibleWrapper from '../AccessibleWrapper';\nimport SelectionStateStore from '../../../stores/SelectionStateStore';\nimport EditorStateStore from '../../../stores/EditorStateStore';\nimport isPartOfGroup from '../../contents/Group/utils/isPartOfGroup';\nimport {FiltersPropTypes} from '../../../../../components/filters/types';\nimport BaseImage from '../../../../../components/BaseImage/BaseImage.react';\nimport TooltipWrapper from '../TooltipWrapper.react';\n\nconst convertUrl = (url) =>\n    url.replace(/_q\\.(jpg|jpeg|png|svg|gif)$/, '.$1');\n\nexport async function initialPropsForData(data, options) {\n    const {url} = data;\n    return loadImage(\n        convertUrl(url)\n    ).then(({height, width}) => {\n        const elementWidth = options.elementWidth || width;\n        const elementHeight = height / width * elementWidth;\n        return {\n            props: {\n                opacity: 1,\n                mask: null,\n                crop: null,\n            },\n            width: elementWidth,\n            height: elementHeight,\n        };\n    });\n}\n\nexport default class Image extends PureComponent {\n    static propTypes = {\n        id: PropTypes.string.isRequired,\n        readOnly: PropTypes.bool,\n        url: PropTypes.string.isRequired,\n        scaleX: PropTypes.number.isRequired,\n        scaleY: PropTypes.number.isRequired,\n        width: PropTypes.number.isRequired,\n        height: PropTypes.number.isRequired,\n        opacity: PropTypes.number,\n        tooltipText: PropTypes.string,\n        mask: MaskPropShape,\n        crop: ImmutablePropTypes.contains({\n            top: PropTypes.number,\n            right: PropTypes.number,\n            bottom: PropTypes.number,\n            left: PropTypes.number,\n        }),\n        transform: ImmutablePropTypes.contains({\n            rotate: PropTypes.number,\n        }),\n        accessibility: ImmutablePropTypes.record,\n        filters: FiltersPropTypes.Filters,\n        callout: ImmutablePropTypes.map,\n    };\n\n    constructor(props) {\n        super(props);\n        this._onDoubleClick = this._onDoubleClick.bind(this);\n    }\n\n    render() {\n        const {id, url, height, width, scaleX, scaleY, mask, crop, callout} = this.props;\n        let {opacity} = this.props;\n        if (typeof opacity !== 'number') {\n            opacity = 1;\n        }\n\n        const scaledWidth = width * scaleX;\n        const scaledHeight = height * scaleY;\n\n        let graphic = null;\n        if (mask || crop) {\n            const clip = mask || crop;\n            const type = mask ? 'mask' : 'crop';\n            graphic = (\n                <ClippedImage\n                    id={id}\n                    clip={clip}\n                    type={type}\n                    src={convertUrl(url)}\n                    width={scaledWidth}\n                    height={scaledHeight}\n                    opacity={opacity}\n                    onDoubleClick={this._onDoubleClick}\n                    accessibility={this.props.accessibility}\n                    filters={this.props.filters}\n                    callout={this.props.callout}\n                />\n            );\n        } else {\n            const style = {\n                pointerEvents: 'auto',\n                opacity: opacity,\n                width: scaledWidth,\n                height: scaledHeight,\n                verticalAlign: 'top',\n            };\n            if (callout && callout.get('behaviour') === 'click') {\n                style.cursor = 'pointer';\n            }\n            graphic = (\n                <BaseImage\n                    className=\"ItemContent-image\"\n                    src={convertUrl(url)}\n                    style={style}\n                    width={width}\n                    height={height}\n                    onDoubleClick={this._onDoubleClick}\n                    alt={this.props.accessibility && this.props.accessibility.label || ''}\n                    filters={this.props.filters}\n                />\n            );\n        }\n\n        if (this.props.tooltipText) {\n            graphic = <TooltipWrapper text={this.props.tooltipText} entityKey={this.props.id}>{graphic}</TooltipWrapper>;\n        }\n\n        if (this.props.accessibility && this.props.accessibility.enabled) {\n            const role = this.props.callout ? 'button' : 'img';\n            graphic = (<AccessibleWrapper id={id} role={role} accessibility={this.props.accessibility}>\n                {graphic}\n            </AccessibleWrapper>);\n        }\n\n        return graphic;\n    }\n\n    _onDoubleClick() {\n        if (this.props.readOnly) {\n            return;\n        }\n        const isAllowed = SelectionStateStore.groupsInEditMode.isEmpty() ||\n            isPartOfGroup(EditorStateStore.editorState, SelectionStateStore.groupsInEditMode.first(), this.props.id);\n        if (isAllowed) {\n            const entity = EditorStateStore.editorState.getEntity(this.props.id);\n            startImageClipEditing(entity);\n        }\n    }\n}\n","exports.f = require('../internals/well-known-symbol');\n","var isObject = require('../internals/is-object');\n\n// `ToPrimitive` abstract operation\n// https://tc39.github.io/ecma262/#sec-toprimitive\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (input, PREFERRED_STRING) {\n  if (!isObject(input)) return input;\n  var fn, val;\n  if (PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n  if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) return val;\n  if (!PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n  throw TypeError(\"Can't convert object to primitive value\");\n};\n","var $ = require('../internals/export');\nvar bind = require('../internals/function-bind');\n\n// `Function.prototype.bind` method\n// https://tc39.github.io/ecma262/#sec-function.prototype.bind\n$({ target: 'Function', proto: true }, {\n  bind: bind\n});\n","import PropTypes from 'prop-types';\nimport React, {Component} from 'react';\nimport {Container} from 'flux/utils';\n\nimport styled from 'styled-components';\n\nimport {scrollOrNavigateToPage} from '../../../Scroll/actions';\nimport EditorStateStore from '../../../stores/EditorStateStore';\nimport linkIsSafe from '../linkIsSafe';\nimport {pageNumberByKey} from '../pageNumberByKey';\n\n/** STYLES */\nconst ItemContentLink = styled.a`\n    cursor: pointer;\n`;\n\n/** COMPONENT */\nclass Link extends Component {\n    static propTypes = {\n        children: PropTypes.any,\n        className: PropTypes.string,\n        url: PropTypes.string.isRequired,\n        onClick: PropTypes.func.isRequired,\n        width: PropTypes.number,\n        height: PropTypes.number,\n    };\n\n    static getStores() {\n        return [\n            EditorStateStore,\n        ];\n    }\n\n    static calculateState(prevState, props) {\n        let {url} = props;\n        const pageNumber = pageNumberByKey(url, EditorStateStore.editorState);\n        const linkToPage = pageNumber !== undefined && pageNumber !== -1;\n        if (pageNumber === -1 || !linkIsSafe(url)) {\n            // display no link if it is to a non-existing page or not a valid link\n            url = null;\n        }\n        return {\n            linkToPage,\n            pageNumber,\n            url,\n        };\n    }\n\n    _click = (e) => {\n        this.props.onClick();\n        e.preventDefault();\n        const {pageNumber} = this.state;\n        scrollOrNavigateToPage(pageNumber);\n        return false;\n    }\n\n    render() {\n        const {children, className, onClick, width, height} = this.props;\n        const {linkToPage, url} = this.state;\n\n        const linkProps = {\n            href: url,\n            onClick,\n        };\n        if (width && height) {\n            // This is needed for PDF downloads, as the link component has to have an explicit size itself,\n            // as an absolutely positioned container causes no link to be output to PDF.\n            linkProps.style = {\n                display: 'block',\n                height,\n                width,\n            };\n        }\n\n        if (linkToPage) {\n            return (\n                <ItemContentLink {...linkProps} className={className} onClick={this._click}>\n                    {children}\n                </ItemContentLink>\n            );\n        } else if (url) {\n            return (\n                <ItemContentLink {...linkProps} className={className} rel=\"nofollow noopener noreferrer\" target=\"_blank\">\n                    {children}\n                </ItemContentLink>\n            );\n        }\n        return (children);\n    }\n}\n\nexport default Container.create(Link, {withProps: true});\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar arrayBufferModule = require('../internals/array-buffer');\nvar setSpecies = require('../internals/set-species');\n\nvar ARRAY_BUFFER = 'ArrayBuffer';\nvar ArrayBuffer = arrayBufferModule[ARRAY_BUFFER];\nvar NativeArrayBuffer = global[ARRAY_BUFFER];\n\n// `ArrayBuffer` constructor\n// https://tc39.github.io/ecma262/#sec-arraybuffer-constructor\n$({ global: true, forced: NativeArrayBuffer !== ArrayBuffer }, {\n  ArrayBuffer: ArrayBuffer\n});\n\nsetSpecies(ARRAY_BUFFER);\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $filter = require('../internals/array-iteration').filter;\nvar speciesConstructor = require('../internals/species-constructor');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;\n\n// `%TypedArray%.prototype.filter` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.filter\nArrayBufferViewCore.exportProto('filter', function filter(callbackfn /* , thisArg */) {\n  var list = $filter(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n  var C = speciesConstructor(this, this.constructor);\n  var index = 0;\n  var length = list.length;\n  var result = new (aTypedArrayConstructor(C))(length);\n  while (length > index) result[index] = list[index++];\n  return result;\n});\n","var $ = require('../internals/export');\nvar iterate = require('../internals/iterate');\nvar createProperty = require('../internals/create-property');\n\n// `Object.fromEntries` method\n// https://github.com/tc39/proposal-object-from-entries\n$({ target: 'Object', stat: true }, {\n  fromEntries: function fromEntries(iterable) {\n    var obj = {};\n    iterate(iterable, function (k, v) {\n      createProperty(obj, k, v);\n    }, undefined, true);\n    return obj;\n  }\n});\n","exports = module.exports = require(\"../../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"._1xLtlnvdKi3vnu5kdKz4kp {\\n    pointer-events: none;\\n    -webkit-user-select: none;\\n    -moz-user-select: none;\\n    -ms-user-select: none;\\n    user-select: none;\\n}\\n\\n._1nypWmIEPmSMjiz6pM0uiA, ._2aUll4btBPJFEB-fGOk70J {\\n    margin-top: 5000%;\\n}\\n\\n._2dtvD9NgXB3_r7HGu2cAxd {\\n    margin-top: 0;\\n}\\n\\n._27PSOJfBgZLXBPKya_b1Pl ._1nypWmIEPmSMjiz6pM0uiA {\\n    transition: margin-left .5s .3s, transform .5s, opacity .3s .5s, margin-top .0s .8s;\\n    margin-left: -200%;\\n    transform: scale(.84);\\n    opacity: .1;\\n}\\n._27PSOJfBgZLXBPKya_b1Pl ._2aUll4btBPJFEB-fGOk70J {\\n    transition: margin-left .5s .3s, transform .5s, opacity .3s .5s, margin-top .0s .8s;\\n    margin-left: 200%;\\n    transform: scale(.84);\\n    opacity: .1;\\n}\\n._27PSOJfBgZLXBPKya_b1Pl ._2dtvD9NgXB3_r7HGu2cAxd {\\n    transition: margin-left .5s .3s, transform .3s .8s, margin-top .0s .0s;\\n    margin-left: 0;\\n    transform:scale(1);\\n    opacity: 1;\\n    margin-top:0;\\n}\\n\\n._2l7Zd9BBX6f3r8YLwVVbvY ._1nypWmIEPmSMjiz6pM0uiA {\\n    transition: all .8s, opacity .3s .5s, margin-top .0s .8s;\\n    transform: translateZ(0);\\n    margin-left: -200%;\\n    opacity: 0;\\n}\\n._2l7Zd9BBX6f3r8YLwVVbvY ._2aUll4btBPJFEB-fGOk70J {\\n    transition: all .8s, opacity .3s .5s, margin-top .0s .8s;\\n    transform: translateZ(0);\\n    margin-left: 200%;\\n    opacity: 0;\\n}\\n._2l7Zd9BBX6f3r8YLwVVbvY ._2dtvD9NgXB3_r7HGu2cAxd  {\\n    transition: all .8s, margin-top .0s .8s, margin-top .0s .0s;\\n    transform: translateZ(0);\\n    margin-left:0;\\n    opacity: 1;\\n    z-index: 1;\\n    margin-top:0;\\n}\\n\\n._1glo_ZnUdSAiXsmSoI_StQ {\\n    perspective: 1000px;\\n}\\n._1glo_ZnUdSAiXsmSoI_StQ ._1nypWmIEPmSMjiz6pM0uiA {\\n    backface-visibility: hidden;\\n    transition: all .5s ease-in, opacity .5s .4s, margin-top .0s .8s;\\n    transform:  rotateY(-90deg) scale(.3);\\n    margin-left: -100%;\\n    opacity:0.1;\\n    border-radius: 5%;\\n}\\n._1glo_ZnUdSAiXsmSoI_StQ ._2aUll4btBPJFEB-fGOk70J {\\n    backface-visibility: hidden;\\n    transition: all .5s ease-in, opacity .5s .4s, margin-top .0s .8s;\\n    transform:rotateY(90deg) scale(.3);\\n    margin-left: 100%;\\n    opacity:0.1;\\n    border-radius: 5%;\\n}\\n._1glo_ZnUdSAiXsmSoI_StQ ._2dtvD9NgXB3_r7HGu2cAxd {\\n    backface-visibility: hidden;\\n    transition: all .5s ease-in, margin-left .6s,opacity .3s, margin-top .0s .0s;\\n    transform: scale(1) rotateY(0);\\n    margin-left: 0;\\n    z-index: 1;\\n    opacity: 1;\\n    border-radius: 0;\\n    margin-top:0;\\n}\\n\\n._2vwrSxHk4ElGPCioSh4Y-a ._1nypWmIEPmSMjiz6pM0uiA {\\n    transition: all .8s, margin-top .0s .8s;\\n    opacity: 0;\\n    transform:scale(1.5);\\n}\\n._2vwrSxHk4ElGPCioSh4Y-a ._2aUll4btBPJFEB-fGOk70J {\\n    transition: all .8s, margin-top .0s .8s;\\n    opacity: 0;\\n    transform:scale(1.5);\\n}\\n._2vwrSxHk4ElGPCioSh4Y-a ._2dtvD9NgXB3_r7HGu2cAxd {\\n    transition: all .8s, margin-top 0s 0s;\\n    opacity: 1;\\n    transform:scale(1);\\n    z-index: 1;\\n    margin-top:0;\\n}\\n\\n.qjEW7VUIWsp7lzAGg0y0J ._1nypWmIEPmSMjiz6pM0uiA {\\n    opacity: 0;\\n}\\n.qjEW7VUIWsp7lzAGg0y0J ._2aUll4btBPJFEB-fGOk70J {\\n    opacity: 0;\\n}\\n.qjEW7VUIWsp7lzAGg0y0J ._2dtvD9NgXB3_r7HGu2cAxd {\\n    opacity: 1;\\n    z-index: 1;\\n    margin-top:0;\\n}\\n\\n._2pdqmUgISJiqOf62ChilsX ._1nypWmIEPmSMjiz6pM0uiA {\\n    transition: all .8s, opacity .3s .5s, margin-top .0s .8s;\\n    transform: translateZ(0) translateY(-200%);\\n    opacity: 0;\\n}\\n._2pdqmUgISJiqOf62ChilsX ._2aUll4btBPJFEB-fGOk70J {\\n    transition: all .8s, opacity .3s .5s, margin-top .0s .8s;\\n    transform: translateZ(0) translateY(200%);\\n    opacity: 0;\\n}\\n._2pdqmUgISJiqOf62ChilsX ._2dtvD9NgXB3_r7HGu2cAxd  {\\n    transition: all .8s, margin-top .0s .0s;\\n    transform: translateZ(0) translateY(0);\\n    opacity: 1;\\n    z-index: 1;\\n}\", \"\"]);\n\n// exports\nexports.locals = {\n\t\"inactive\": \"_1xLtlnvdKi3vnu5kdKz4kp\",\n\t\"pageBefore\": \"_1nypWmIEPmSMjiz6pM0uiA\",\n\t\"pageAfter\": \"_2aUll4btBPJFEB-fGOk70J\",\n\t\"currentPage\": \"_2dtvD9NgXB3_r7HGu2cAxd\",\n\t\"animationScaleSlide\": \"_27PSOJfBgZLXBPKya_b1Pl\",\n\t\"animationSlide\": \"_2l7Zd9BBX6f3r8YLwVVbvY\",\n\t\"animationRotate\": \"_1glo_ZnUdSAiXsmSoI_StQ\",\n\t\"animationFade\": \"_2vwrSxHk4ElGPCioSh4Y-a\",\n\t\"animationNoAnimation\": \"qjEW7VUIWsp7lzAGg0y0J\",\n\t\"animationVerticalSlide\": \"_2pdqmUgISJiqOf62ChilsX\"\n};","'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar mergeConfig = require('./core/mergeConfig');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n  var context = new Axios(defaultConfig);\n  var instance = bind(Axios.prototype.request, context);\n\n  // Copy axios.prototype to instance\n  utils.extend(instance, Axios.prototype, context);\n\n  // Copy context to instance\n  utils.extend(instance, context);\n\n  return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Factory for creating new instances\naxios.create = function create(instanceConfig) {\n  return createInstance(mergeConfig(axios.defaults, instanceConfig));\n};\n\n// Expose Cancel & CancelToken\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\n\n// Expose all/spread\naxios.all = function all(promises) {\n  return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n","import PropTypes from 'prop-types';\n\nimport React, {PureComponent} from 'react';\n\nimport hiddenOffScreen from '../AccessibilityDescriptionStyle';\n\nimport {StyledLink} from '../../../app/freelayout_editor/components/contents/Media/StyledMedia.js';\n\nexport default class Url extends PureComponent {\n    static propTypes = {\n        description: PropTypes.string,\n        target: PropTypes.string,\n        title: PropTypes.string,\n        url: PropTypes.string,\n        width: PropTypes.number,\n        accessibility: PropTypes.object,\n        id: PropTypes.number,\n    };\n\n    render() {\n        const {description, label, enabled: accessible} = this.props.accessibility;\n        const props = {\n            'aria-label': accessible && label,\n        };\n        if (accessible && description) {\n            props['aria-describedby'] = `${this.props.id}_description`;\n            props.tabIndex = -1;\n        }\n\n        return (\n            <StyledLink className=\"moveable\">\n                <div {...props} className=\"text\">\n                    <h2>{this.props.title}</h2>\n                    <p>{this.props.description}</p>\n                    <a href={this.props.url} title={this.props.url} target={this.props.target} rel=\"nofollow noopener noreferrer\">{this.props.url}</a>\n                </div>\n                {accessible && description &&\n                    <p id={`${this.props.id}_description`} style={hiddenOffScreen}>{description}</p>\n                }\n            </StyledLink>\n        );\n    }\n}\n","import PropTypes from 'prop-types';\nimport React, {PureComponent} from 'react';\n\nimport loadImage from '../../../loadImage';\nimport Iframe from './Iframe.react';\n\nexport default class Vimeo extends PureComponent {\n    static propTypes = {\n        inEditMode: PropTypes.bool,\n        url: PropTypes.string.isRequired,\n    };\n\n    static initialPropsForData = (data, options) => {\n        return loadImage(\n            data.image\n        ).then(({height, width}) => {\n            const elementWidth = options.elementWidth;\n            const elementHeight = height / width * elementWidth;\n            return ({width: elementWidth, height: elementHeight});\n        });\n    }\n\n    render() {\n        const {inEditMode, url} = this.props;\n        const src = url.replace(/^\\/videos\\//, '');\n\n        return (\n            <Iframe\n                inEditMode={inEditMode}\n                url={`https://player.vimeo.com/video/${src}`}\n            />\n        );\n    }\n}\n","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}","exports = module.exports = require(\"../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"._1JPZE6sRUfqmUd6mQ2dsHo {\\n    position: absolute;\\n    background: rgba(49, 149, 203, 0.05);\\n    border: 1px solid #3195cb;\\n    pointer-events: none;\\n    z-index: 10;\\n}\\n\", \"\"]);\n\n// exports\nexports.locals = {\n\t\"overlay\": \"_1JPZE6sRUfqmUd6mQ2dsHo\"\n};","'use strict';\nvar $ = require('../internals/export');\nvar $findIndex = require('../internals/array-iteration').findIndex;\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\nvar FIND_INDEX = 'findIndex';\nvar SKIPS_HOLES = true;\n\n// Shouldn't skip holes\nif (FIND_INDEX in []) Array(1)[FIND_INDEX](function () { SKIPS_HOLES = false; });\n\n// `Array.prototype.findIndex` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.findindex\n$({ target: 'Array', proto: true, forced: SKIPS_HOLES }, {\n  findIndex: function findIndex(callbackfn /* , that = undefined */) {\n    return $findIndex(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n  }\n});\n\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables(FIND_INDEX);\n","var $ = require('../internals/export');\n\n// `Reflect.has` method\n// https://tc39.github.io/ecma262/#sec-reflect.has\n$({ target: 'Reflect', stat: true }, {\n  has: function has(target, propertyKey) {\n    return propertyKey in target;\n  }\n});\n","import {ReduceStore} from 'flux/utils';\nimport {Map, fromJS} from 'immutable';\n\nimport Dispatcher from '../../dispatcher';\nimport Constants from '../../constants';\n\nclass PalettesStore extends ReduceStore {\n    getInitialState() {\n        return Map({\n            loading: false,\n            loaded: false,\n            palettes: Map(),\n        });\n    }\n\n    get loaded() {\n        return this.getState().get('loaded');\n    }\n\n    get isLoading() {\n        return this.getState().get('loading');\n    }\n\n    get palettes() {\n        return this.getState().get('palettes');\n    }\n\n    reduce(state, action) {\n        switch (action.type) {\n            case Constants.PALETTES_LOADING_FAILED: {\n                return state.merge({\n                    loading: false,\n                });\n            }\n            case Constants.PALETTES_LOADED: {\n                const palettes = Object.keys(action.data).map(key => ({\n                    ...action.data[key],\n                }));\n\n                return state.merge({\n                    palettes: fromJS(palettes),\n                    loaded: true,\n                    loading: false,\n                });\n            }\n            case Constants.PALETTES_LOADING:\n                return state.merge({\n                    loading: true,\n                });\n            default:\n                return state;\n        }\n    }\n}\n\nexport default new PalettesStore(Dispatcher);\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/forced-string-html-method');\n\n// `String.prototype.fixed` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.fixed\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('fixed') }, {\n  fixed: function fixed() {\n    return createHTML(this, 'tt', '', '');\n  }\n});\n","module.exports = false;\n","var rng = require('./lib/rng');\nvar bytesToUuid = require('./lib/bytesToUuid');\n\n// **`v1()` - Generate time-based UUID**\n//\n// Inspired by https://github.com/LiosK/UUID.js\n// and http://docs.python.org/library/uuid.html\n\nvar _nodeId;\nvar _clockseq;\n\n// Previous uuid creation time\nvar _lastMSecs = 0;\nvar _lastNSecs = 0;\n\n// See https://github.com/broofa/node-uuid for API details\nfunction v1(options, buf, offset) {\n  var i = buf && offset || 0;\n  var b = buf || [];\n\n  options = options || {};\n  var node = options.node || _nodeId;\n  var clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq;\n\n  // node and clockseq need to be initialized to random values if they're not\n  // specified.  We do this lazily to minimize issues related to insufficient\n  // system entropy.  See #189\n  if (node == null || clockseq == null) {\n    var seedBytes = rng();\n    if (node == null) {\n      // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1)\n      node = _nodeId = [\n        seedBytes[0] | 0x01,\n        seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]\n      ];\n    }\n    if (clockseq == null) {\n      // Per 4.2.2, randomize (14 bit) clockseq\n      clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff;\n    }\n  }\n\n  // UUID timestamps are 100 nano-second units since the Gregorian epoch,\n  // (1582-10-15 00:00).  JSNumbers aren't precise enough for this, so\n  // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs'\n  // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00.\n  var msecs = options.msecs !== undefined ? options.msecs : new Date().getTime();\n\n  // Per 4.2.1.2, use count of uuid's generated during the current clock\n  // cycle to simulate higher resolution clock\n  var nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1;\n\n  // Time since last uuid creation (in msecs)\n  var dt = (msecs - _lastMSecs) + (nsecs - _lastNSecs)/10000;\n\n  // Per 4.2.1.2, Bump clockseq on clock regression\n  if (dt < 0 && options.clockseq === undefined) {\n    clockseq = clockseq + 1 & 0x3fff;\n  }\n\n  // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new\n  // time interval\n  if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) {\n    nsecs = 0;\n  }\n\n  // Per 4.2.1.2 Throw error if too many uuids are requested\n  if (nsecs >= 10000) {\n    throw new Error('uuid.v1(): Can\\'t create more than 10M uuids/sec');\n  }\n\n  _lastMSecs = msecs;\n  _lastNSecs = nsecs;\n  _clockseq = clockseq;\n\n  // Per 4.1.4 - Convert from unix epoch to Gregorian epoch\n  msecs += 12219292800000;\n\n  // `time_low`\n  var tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000;\n  b[i++] = tl >>> 24 & 0xff;\n  b[i++] = tl >>> 16 & 0xff;\n  b[i++] = tl >>> 8 & 0xff;\n  b[i++] = tl & 0xff;\n\n  // `time_mid`\n  var tmh = (msecs / 0x100000000 * 10000) & 0xfffffff;\n  b[i++] = tmh >>> 8 & 0xff;\n  b[i++] = tmh & 0xff;\n\n  // `time_high_and_version`\n  b[i++] = tmh >>> 24 & 0xf | 0x10; // include version\n  b[i++] = tmh >>> 16 & 0xff;\n\n  // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant)\n  b[i++] = clockseq >>> 8 | 0x80;\n\n  // `clock_seq_low`\n  b[i++] = clockseq & 0xff;\n\n  // `node`\n  for (var n = 0; n < 6; ++n) {\n    b[i + n] = node[n];\n  }\n\n  return buf ? buf : bytesToUuid(b);\n}\n\nmodule.exports = v1;\n","var now = require('performance-now')\n  , root = typeof window === 'undefined' ? global : window\n  , vendors = ['moz', 'webkit']\n  , suffix = 'AnimationFrame'\n  , raf = root['request' + suffix]\n  , caf = root['cancel' + suffix] || root['cancelRequest' + suffix]\n\nfor(var i = 0; !raf && i < vendors.length; i++) {\n  raf = root[vendors[i] + 'Request' + suffix]\n  caf = root[vendors[i] + 'Cancel' + suffix]\n      || root[vendors[i] + 'CancelRequest' + suffix]\n}\n\n// Some versions of FF have rAF but not cAF\nif(!raf || !caf) {\n  var last = 0\n    , id = 0\n    , queue = []\n    , frameDuration = 1000 / 60\n\n  raf = function(callback) {\n    if(queue.length === 0) {\n      var _now = now()\n        , next = Math.max(0, frameDuration - (_now - last))\n      last = next + _now\n      setTimeout(function() {\n        var cp = queue.slice(0)\n        // Clear queue here to prevent\n        // callbacks from appending listeners\n        // to the current frame's queue\n        queue.length = 0\n        for(var i = 0; i < cp.length; i++) {\n          if(!cp[i].cancelled) {\n            try{\n              cp[i].callback(last)\n            } catch(e) {\n              setTimeout(function() { throw e }, 0)\n            }\n          }\n        }\n      }, Math.round(next))\n    }\n    queue.push({\n      handle: ++id,\n      callback: callback,\n      cancelled: false\n    })\n    return id\n  }\n\n  caf = function(handle) {\n    for(var i = 0; i < queue.length; i++) {\n      if(queue[i].handle === handle) {\n        queue[i].cancelled = true\n      }\n    }\n  }\n}\n\nmodule.exports = function(fn) {\n  // Wrap in a new function to prevent\n  // `cancel` potentially being assigned\n  // to the native rAF function\n  return raf.call(root, fn)\n}\nmodule.exports.cancel = function() {\n  caf.apply(root, arguments)\n}\nmodule.exports.polyfill = function(object) {\n  if (!object) {\n    object = root;\n  }\n  object.requestAnimationFrame = raf\n  object.cancelAnimationFrame = caf\n}\n","import * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nexport const createPortalNode = () => {\n    let initialProps = {};\n    return Object.assign(document.createElement('div'), {\n        setPortalProps: (props) => {\n            initialProps = props;\n        },\n        getInitialPortalProps: () => {\n            return initialProps;\n        }\n    });\n};\nexport class InPortal extends React.PureComponent {\n    constructor(props) {\n        super(props);\n        this.addPropsChannel = () => {\n            Object.assign(this.props.node, {\n                setPortalProps: (props) => {\n                    // Rerender the child node here if/when the out portal props change\n                    this.setState({ nodeProps: props });\n                }\n            });\n        };\n        this.state = {\n            nodeProps: this.props.node.getInitialPortalProps()\n        };\n    }\n    componentDidMount() {\n        this.addPropsChannel();\n    }\n    componentDidUpdate() {\n        this.addPropsChannel();\n    }\n    render() {\n        const { children, node } = this.props;\n        return ReactDOM.createPortal(React.Children.map(children, (child) => {\n            if (!React.isValidElement(child))\n                return child;\n            return React.cloneElement(child, this.state.nodeProps);\n        }), node);\n    }\n}\nexport class OutPortal extends React.PureComponent {\n    constructor(props) {\n        super(props);\n        this.placeholderNode = React.createRef();\n        this.passPropsThroughPortal();\n    }\n    passPropsThroughPortal() {\n        const propsForTarget = Object.assign({}, this.props, { node: undefined });\n        this.props.node.setPortalProps(propsForTarget);\n    }\n    componentDidMount() {\n        const placeholder = this.placeholderNode.current;\n        placeholder.parentNode.replaceChild(this.props.node, placeholder);\n        this.passPropsThroughPortal();\n    }\n    componentDidUpdate() {\n        this.passPropsThroughPortal();\n    }\n    componentWillUnmount() {\n        const { node } = this.props;\n        node.parentNode.replaceChild(this.placeholderNode.current, node);\n        this.props.node.setPortalProps({});\n    }\n    render() {\n        // Render a placeholder to the DOM, so we can get a reference into\n        // our location in the DOM, and swap it out for the portaled node.\n        return React.createElement(\"div\", { ref: this.placeholderNode });\n    }\n}\n//# sourceMappingURL=index.js.map","import {ReduceStore} from 'flux/utils';\nimport {List, Record, Map} from 'immutable';\n\nimport Dispatcher from '../../../app/dispatcher';\nimport {\n    SET_VISIBLE_GUIDES,\n    RESET_HANDLE,\n    SET_ACTIVE_HANDLE,\n    START_DRAGGING,\n    START_RESIZING,\n    START_NAVIGATING,\n    UPDATE_ACTIVE_HANDLE,\n    SET_CONNECTOR_TARGET_ENTITY,\n    SET_CREATED_CONNECTOR,\n} from './constants';\nimport {EDITOR_STATE_CHANGE} from '../../../app/freelayout_editor/constants/EditorConstants';\n\nimport {UPDATE_TEXT_ELEMENT_SIZE} from '../../TextEditor/constants/TextEditorConstants';\n\nclass HandlersStore extends ReduceStore {\n    getInitialState() {\n        return new Record({\n            dragging: false,\n            resizing: false,\n            navigating: false,\n            pointerDownX: null,\n            pointerDownY: null,\n            visibleGuides: List(),\n            activeHandle: null,\n            initialEntityPositions: null,\n            entityOverrides: Map(),\n            pointerMovedX: null,\n            pointerMovedY: null,\n            connectorTargetEntity: null,\n            createdConnectorKey: null,\n        })();\n    }\n\n    reduce(state, action) {\n        switch (action.type) {\n            case SET_CREATED_CONNECTOR: {\n                const {entityKey} = action;\n                return state.merge({\n                    createdConnectorKey: entityKey,\n                });\n            }\n            case SET_CONNECTOR_TARGET_ENTITY: {\n                const {entity} = action;\n                return state.merge({\n                    connectorTargetEntity: entity,\n                });\n            }\n            case UPDATE_ACTIVE_HANDLE: {\n                const {pointerLocation} = action;\n                return state.merge({\n                    pointerMovedX: pointerLocation ? pointerLocation.x : null,\n                    pointerMovedY: pointerLocation ? pointerLocation.y : null,\n                });\n            }\n            case SET_VISIBLE_GUIDES:\n                return state.set('visibleGuides', action.visibleGuides);\n            case SET_ACTIVE_HANDLE: {\n                const {activeHandle, entities, pointerLocation} = action;\n                return state.merge({\n                    activeHandle,\n                    initialEntityPositions: entities,\n                    pointerDownX: pointerLocation ? pointerLocation.x : null,\n                    pointerDownY: pointerLocation ? pointerLocation.y : null,\n                });\n            }\n            case EDITOR_STATE_CHANGE: {\n                if (action.entityOverrides) {\n                    return state.set('entityOverrides', Map(action.entityOverrides));\n                }\n                return state;\n            }\n            case START_DRAGGING:\n                return state.set('dragging', true);\n            case START_RESIZING:\n                return state.set('resizing', true);\n            case START_NAVIGATING:\n                return state.set('navigating', true);\n            case RESET_HANDLE:\n                return this.getInitialState();\n            case UPDATE_TEXT_ELEMENT_SIZE: {\n                const {entityKey, props: {top, left, height}} = action;\n                return state.set('entityOverrides', Map({\n                    [entityKey]: {top, left, height},\n                }));\n            }\n            default:\n                return state;\n        }\n    }\n\n    get dragging() {\n        return this.getState().get('dragging');\n    }\n\n    get resizing() {\n        return this.getState().get('resizing');\n    }\n\n    get navigating() {\n        return this.getState().get('navigating');\n    }\n\n    get pointerMovedX() {\n        return this.getState().get('pointerMovedX');\n    }\n\n    get pointerMovedY() {\n        return this.getState().get('pointerMovedY');\n    }\n\n    get pointerDownX() {\n        return this.getState().get('pointerDownX');\n    }\n\n    get pointerDownY() {\n        return this.getState().get('pointerDownY');\n    }\n\n    get pointerDown() {\n        return !!this.getState().get('pointerDownX');\n    }\n\n    get visibleGuides() {\n        return this.getState().get('visibleGuides');\n    }\n\n    get activeHandle() {\n        return this.getState().get('activeHandle');\n    }\n\n    get connectorTargetEntity() {\n        return this.getState().get('connectorTargetEntity');\n    }\n\n    get createdConnectorKey() {\n        return this.getState().get('createdConnectorKey');\n    }\n\n    get initialEntityPositions() {\n        return this.getState().get('initialEntityPositions');\n    }\n\n    get entityOverrides() {\n        return this.getState().get('entityOverrides');\n    }\n}\n\nexport default new HandlersStore(Dispatcher);\n","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"._2_U9INsoNKfhW1VD6kfvHG {\\n    display: flex;\\n    flex-direction: row;\\n    flex-wrap: wrap;\\n    justify-content: center;\\n    padding: 0 20px;\\n    max-width: 1200px;\\n    margin: 0 auto;\\n}\\n._13T68FrwjDTXZE7aRPcyoi {\\n    width: 220px;\\n    margin: 0 10px;\\n    height: 0;\\n    border: none;\\n}\\n@media screen and (max-width: 960px) {\\n    ._13T68FrwjDTXZE7aRPcyoi {\\n        width: calc((100% - 40px) / 2);\\n    }\\n}\\n\", \"\"]);\n\n// exports\nexports.locals = {\n\t\"container\": \"_2_U9INsoNKfhW1VD6kfvHG\",\n\t\"lastRowPadding\": \"_13T68FrwjDTXZE7aRPcyoi\"\n};","/* global document window */\nimport _ from 'lodash';\n\nimport PerfectScrollbar from 'perfect-scrollbar';\n\nimport scroll from 'scroll';\n\nimport {getTooltip} from '../../../../../client/components/charts/tooltip';\n\nimport Dispatcher from '../../dispatcher';\n\nimport AccountLogic from '../../../views/account_logic';\nimport ScrollStore from './store';\nimport EditorStateStore from '../stores/EditorStateStore';\nimport PresentationStore from '../components/Presentation/store';\nimport {navigate} from '../components/Presentation/actions';\nimport store from '../../../store';\n\nimport {\n    FREELAYOUT_ACTIVE_PAGE_CHANGED,\n    FREELAYOUT_SCROLL_START,\n    FREELAYOUT_SCROLL_END,\n    FREELAYOUT_SCROLL_START_PROCESSING_EVENTS,\n    FREELAYOUT_SCROLL_STOP_PROCESSING_EVENTS,\n} from './constants';\nimport {ZOOM_SWITCH_TO_THUMBS_VIEW} from '../../../components/SideMenuSettings/constants';\n\n\nconst PAGE_SCROLL_OFFSET = 40;\nlet _scrollContainer = window.document.documentElement;\nlet _ps;\n\nexport const onScroll = _.throttle(_onScroll, 100);\n\nconst _scrollEnd = _.debounce(() => {\n    Dispatcher.dispatch({\n        type: FREELAYOUT_SCROLL_END,\n    });\n}, 150);\n\nfunction getBlockBoundingRect(blocks, index) {\n    const block = blocks.get(index);\n    const blockKey = !!block && block.getKey();\n    if (!blockKey) return;\n\n    const pageWrapperId = `wrap-${blockKey}`;\n    const pageWrapper = document.getElementById(pageWrapperId);\n    if (!pageWrapper) return;\n\n    return pageWrapper.getBoundingClientRect();\n}\n\nfunction getPageIndex(position, blockHeight, pageCount) {\n    return Math.min(pageCount - 1, Math.max(0, Math.ceil(position / blockHeight) - 1));\n}\n\nfunction getPageIndicesBasedOnScroll(blocks, scrollContainer) {\n    let pageCount = blocks.size;\n    if (pageCount === 1) {\n        return {active: 0, first: 0, last: 0};\n    }\n\n    const firstBlockRect = getBlockBoundingRect(blocks, 0);\n    let lastBlockRect = getBlockBoundingRect(blocks, pageCount - 1);\n    if (!lastBlockRect) {\n        // We could not find last block in dom. Maybe it is because it is not available\n        // to the user. Try to get last available block instead.\n        pageCount = AccountLogic.avalablePagesInFlex;\n        lastBlockRect = getBlockBoundingRect(blocks, pageCount - 1);\n    }\n    const scrollContainerRect = scrollContainer.getBoundingClientRect();\n    if (!firstBlockRect || !lastBlockRect || !scrollContainerRect) {\n        return {active: 0, first: 0, last: 0};\n    }\n\n    let topPadding = firstBlockRect.top + scrollContainer.scrollTop;\n    if (scrollContainer !== window.document.documentElement) {\n        topPadding -= scrollContainerRect.top;\n    }\n    const blockHeight = (lastBlockRect.bottom - firstBlockRect.top) / pageCount;\n\n    let active = getPageIndex(scrollContainer.scrollTop - topPadding + scrollContainer.clientHeight / 2, blockHeight, pageCount);\n    let first = getPageIndex(scrollContainer.scrollTop - topPadding, blockHeight, pageCount);\n    let last = getPageIndex(scrollContainer.scrollTop - topPadding + scrollContainer.clientHeight, blockHeight, pageCount);\n\n    if (scrollContainer.scrollTop === 0) {\n        active = 0;\n        first = 0;\n    }\n    if (scrollContainer.scrollTop === scrollContainer.scrollHeight - scrollContainer.clientHeight) {\n        active = pageCount - 1;\n        last = pageCount - 1;\n    }\n\n    return {active, first, last};\n}\n\nfunction changeActivePage(activePageId, activePageIndex, firstVisiblePageIndex, lastVisiblePageIndex) {\n    Dispatcher.dispatch({\n        type: FREELAYOUT_ACTIVE_PAGE_CHANGED,\n        activePageId,\n        activePageIndex,\n        firstVisiblePageIndex,\n        lastVisiblePageIndex,\n    });\n}\n\nfunction stopProcessingScrollEvents() {\n    Dispatcher.dispatch({\n        type: FREELAYOUT_SCROLL_STOP_PROCESSING_EVENTS,\n    });\n}\n\nfunction startProcessingScrollEvents() {\n    Dispatcher.dispatch({\n        type: FREELAYOUT_SCROLL_START_PROCESSING_EVENTS,\n    });\n}\n\nfunction _onScroll(e) {\n    if (!ScrollStore.processingEvents) {\n        return;\n    }\n\n    const reduxState = store.getState();\n    if (reduxState.getIn(['editorZoom', 'thumbsView'])) {\n        // In thumbnails overview mode this doesn't make any sense\n        return;\n    }\n\n    _scrollContainer = !e.target.scrollTop && e.target.documentElement ? e.target.documentElement : e.target;\n    getTooltip().hide();\n\n    const firstBlock = EditorStateStore.editorState.getCurrentContent().getBlocks().get(0);\n    if (!firstBlock) return;\n\n    if (!ScrollStore.scrolling) {\n        Dispatcher.dispatch({\n            type: FREELAYOUT_SCROLL_START,\n        });\n    }\n    _scrollEnd();\n\n    const blocks = EditorStateStore.editorState.getCurrentContent().getBlocks();\n    const indices = getPageIndicesBasedOnScroll(blocks, _scrollContainer);\n    const block = blocks.get(indices.active);\n    const activePageId = block && block.getKey() || ScrollStore.activePageId;\n    changeActivePage(activePageId, indices.active, indices.first, indices.last);\n}\n\nexport async function scrollToPage(pageIndex, duration = 500, positionInPage = 0) {\n    const reduxState = store.getState();\n    if (reduxState.getIn(['editorZoom', 'thumbsView'])) {\n        Dispatcher.dispatch({\n            type: ZOOM_SWITCH_TO_THUMBS_VIEW,\n        });\n    }\n\n    if (PresentationStore.isFullscreen) {\n        _scrollContainer = document.getElementsByClassName('fullScreenScrollTarget')[0];\n    }\n    const block = EditorStateStore.editorState.getCurrentContent().getBlocks().get(pageIndex);\n    if (!block) return;\n\n    const pageWrapperId = `wrap-${block.getKey()}`;\n    const pageWrapper = document.getElementById(pageWrapperId);\n    if (!pageWrapper) return;\n    const pageWrapperRect = pageWrapper.getBoundingClientRect();\n\n    if (_scrollContainer === window.document.documentElement) {\n        if (window.__viewMode !== 'embed') {\n            const bodyRect = document.body.getBoundingClientRect();\n            const pos = pageWrapperRect.top - bodyRect.top - PAGE_SCROLL_OFFSET + positionInPage;\n            window.scrollTo(0, pos);\n        } else {\n            pageWrapper.scrollIntoView();\n        }\n    } else {\n        const isPerfectScrollbarObject = 'element' in _scrollContainer;\n        const scrollContainerNode = isPerfectScrollbarObject ? _scrollContainer.element : _scrollContainer;\n        const bodyRect = scrollContainerNode.getBoundingClientRect();\n        const pos = pageWrapperRect.top - bodyRect.top - PAGE_SCROLL_OFFSET + positionInPage;\n\n        stopProcessingScrollEvents();\n        if (ScrollStore.activePageId !== block.getKey()) {\n            changeActivePage(block.getKey(), pageIndex);\n        }\n\n        if (duration === 0) {\n            scrollContainerNode.scrollTop = scrollContainerNode.scrollTop + pos;\n            startProcessingScrollEvents();\n            isPerfectScrollbarObject && _scrollContainer.update();\n            return;\n        }\n\n        return new Promise((resolve) => {\n            scroll.top(scrollContainerNode, scrollContainerNode.scrollTop + pos, {duration}, () => {\n                // do not process scroll events during animated scroll-to-page\n                startProcessingScrollEvents();\n                resolve();\n            });\n            isPerfectScrollbarObject && _scrollContainer.update();\n        });\n    }\n}\n\nexport function getScrollContainerTop() {\n    let node;\n    if (_scrollContainer === window.document.documentElement) {\n        node = document.body;\n    } else {\n        const isPerfectScrollbarObject = 'element' in _scrollContainer;\n        node = isPerfectScrollbarObject ? _scrollContainer.element : _scrollContainer;\n    }\n    return node.getBoundingClientRect().top;\n}\n\nexport function scrollOrNavigateToPage(pageIndex) {\n    //TODO honestly a quick fix for client but this is a tech dept, we rather need a state flag if we are in slides mode or not\n    //See Presentation.react.js where in case of mobile webview it switches in to scroll mode without leaving a mark in EditorState or anywhere else\n    const isMobileWebView = window.__viewMode !== 'embed' && window.matchMedia('(max-width: 960px)').matches;\n\n    if (isMobileWebView || EditorStateStore.presentationTransition === 'none') {\n        scrollToPage(pageIndex);\n    } else {\n        navigate(pageIndex);\n    }\n}\n\nexport function initFreelayoutScroll(scrollContainer) {\n    _ps = new PerfectScrollbar(scrollContainer, {\n        handlers: ['click-rail', 'drag-thumb', 'wheel', 'touch'],\n    });\n    _scrollContainer = _ps;\n    requestAnimationFrame(() => {\n        if (ScrollStore.activePageIndex >= 0) {\n            scrollToPage(ScrollStore.activePageIndex, 0);\n        } else {\n            _onScroll({target: scrollContainer});\n        }\n    });\n    return _ps;\n}\n\nexport function getEditorScroll() {\n    return _ps;\n}\n\nexport function updateEditorScroll(props = {}) {\n    _ps && _ps.update();\n    for (const p in props) {\n        _scrollContainer[p] = props[p];\n    }\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/forced-string-html-method');\n\n// `String.prototype.italics` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.italics\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('italics') }, {\n  italics: function italics() {\n    return createHTML(this, 'i', '', '');\n  }\n});\n","import i18n from 'i18next';\nimport React, {PureComponent} from 'react';\nimport PropTypes from 'prop-types';\nimport cx from 'classnames';\n\nimport {saveCopyright} from './actions';\n\nexport default class Copyright extends PureComponent {\n    static propTypes = {\n        text: PropTypes.string.isRequired,\n        style: PropTypes.object,\n        editable: PropTypes.bool.isRequired, // edit mode means infographic in editor\n    };\n\n    constructor(props) {\n        super(props);\n        this.state = {\n            editing: false, // true when user is typing content\n        };\n\n        this.onBlur = this.onBlur.bind(this);\n        this.onClick = this.onClick.bind(this);\n        this.onKeyDown = this.onKeyDown.bind(this);\n        this.placeCaretAtEnd = this.placeCaretAtEnd.bind(this);\n        this.save = this.save.bind(this);\n\n        this.contentRef = React.createRef();\n    }\n\n    render() {\n        const {editable} = this.props;\n\n        if (!editable) {\n            if (!this.props.text) return null;\n\n            return (\n                <div className=\"ig-copyright\">{this.props.text}</div>\n            );\n        }\n\n        return (\n            <div\n                className={cx('ig-copyright', {editMode: editable && !this.state.editing})}\n                contentEditable={this.state.editing}\n                suppressContentEditableWarning\n                data-placeholder={i18n.t('app.infographic.copyright_notice')}\n                onBlur={this.onBlur}\n                onClick={this.onClick}\n                onKeyDown={this.onKeyDown}\n                ref={this.contentRef}\n                style={this.props.style}\n            >\n                {this.props.text}\n            </div>\n        );\n    }\n\n    onClick() {\n        if (!this.props.editable || this.state.editing) return;\n\n        this.setState({\n            editing: true,\n        }, this.placeCaretAtEnd);\n    }\n\n    onBlur() {\n        this.save();\n    }\n\n    onKeyDown(e) {\n        if (e.key === 'Enter') {\n            this.save();\n        }\n    }\n\n    save() {\n        saveCopyright(this.contentRef.current.textContent);\n        this.setState({\n            editing: false,\n        });\n    }\n\n    placeCaretAtEnd() {\n        const el = this.contentRef.current;\n        el.focus();\n\n        if (el.innerHTML === '') return;\n\n        if (window.getSelection && document.createRange) {\n            var range = document.createRange();\n            var selection = window.getSelection();\n            range.selectNodeContents(el);\n            range.collapse(false);\n            selection.removeAllRanges();\n            selection.addRange(range);\n        } else if (document.body.createTextRange) {\n            var textRange = document.body.createTextRange();\n            textRange.moveToElementText(el);\n            textRange.collapse(false);\n            textRange.select();\n        }\n    }\n}\n","var rng = require('./lib/rng');\nvar bytesToUuid = require('./lib/bytesToUuid');\n\nfunction v4(options, buf, offset) {\n  var i = buf && offset || 0;\n\n  if (typeof(options) == 'string') {\n    buf = options === 'binary' ? new Array(16) : null;\n    options = null;\n  }\n  options = options || {};\n\n  var rnds = options.random || (options.rng || rng)();\n\n  // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n  rnds[6] = (rnds[6] & 0x0f) | 0x40;\n  rnds[8] = (rnds[8] & 0x3f) | 0x80;\n\n  // Copy bytes to buffer, if provided\n  if (buf) {\n    for (var ii = 0; ii < 16; ++ii) {\n      buf[i + ii] = rnds[ii];\n    }\n  }\n\n  return buf || bytesToUuid(rnds);\n}\n\nmodule.exports = v4;\n","/* global PREZIGRAM */\nimport i18n from 'i18next';\nimport PropTypes from 'prop-types';\nimport React, {PureComponent} from 'react';\nimport {connect} from 'react-redux';\n\nimport updateEntity from '../../../actions/updateEntity';\nimport Dispatcher from '../../../../dispatcher';\nimport config from '../../../../../config';\n\nimport Video, {initialPropsForVideoData} from './Video.react';\nimport updateEditorState from '../../../actions/updateEditorState';\nimport EditorStateStore from '../../../stores/EditorStateStore';\nimport {PREZIGRAM_UPLOAD_MEDIA} from '../../../../../prezigram/upload/constants/action-types';\nimport {generateAssetId} from '../../../../../shared/mediaAssets';\n\nconst props = (state, ownProps) => {\n    const prezigramUploads = state.get('prezigramUploads');\n    const uploading = !!prezigramUploads && prezigramUploads.has(ownProps.entityKey);\n    return {\n        uploading,\n    };\n};\n\nconst actions = (dispatch) => ({\n    onUploadMedia(payload) {\n        dispatch({\n            type: PREZIGRAM_UPLOAD_MEDIA,\n            payload,\n        });\n    },\n});\n\nconst areStatesEqual = (next, prev) => {\n    return next.get('prezigramUploads') === prev.get('prezigramUploads');\n};\n\nconst areStatePropsEqual = (next, prev) => {\n    return next.uploading === prev.uploading;\n};\n\n@connect(props, actions, null, {areStatesEqual, areStatePropsEqual})\nexport default class EditableVideo extends PureComponent {\n    static propTypes = {\n        entityKey: PropTypes.string.isRequired,\n        id: PropTypes.any.isRequired,\n        assetId: PropTypes.string,\n        uploading: PropTypes.bool.isRequired,\n        onUploadMedia: PropTypes.func.isRequired,\n    };\n\n    static initialPropsForData = initialPropsForVideoData\n\n    getVideo = async() => {\n        const entityKey = this.props.entityKey;\n        try {\n            const res = await fetch(`${config.atlas.url}/api/videoblocks`, {\n                method: 'POST',\n                headers: {\n                    'Content-Type': 'application/json',\n                },\n                body: JSON.stringify({\n                    videoId: this.props.id,\n                }),\n            });\n\n            if (!res.ok) throw new Error('Could not upload a videoblock');\n\n            const url = await res.text();\n            const assetId = generateAssetId();\n            let editorState = EditorStateStore.editorState;\n            editorState = editorState.setEntity(entityKey, {\n                props: {\n                    data: {\n                        assetId,\n                    },\n                },\n            });\n            editorState = editorState.addAsset(assetId, url);\n            if (PREZIGRAM) {\n                this.props.onUploadMedia({\n                    entityKey,\n                    assets: {[assetId]: url},\n                });\n            }\n            updateEditorState(editorState);\n        } catch (error) {\n            updateEntity(entityKey, {\n                props: {\n                    data: {\n                        assetId: undefined,\n                    },\n                },\n            });\n            Dispatcher.dispatch({\n                type: 'show-message',\n                params: {\n                    error: true,\n                    head: i18n.t('app.errors.adding_video_cover'),\n                    htmlMode: true,\n                },\n            });\n        }\n    }\n\n    componentDidMount() {\n        if (\n            !this.props.uploading\n            && !this.props.assetId\n        ) {\n            this.getVideo();\n        }\n    }\n\n    componentDidUpdate(prevProps) {\n        if (\n            !this.props.uploading\n            && !this.props.assetId\n            && (prevProps.assetId || prevProps.uploading)\n        ) {\n            this.getVideo();\n        }\n    }\n\n    render() {\n        return (\n            <Video {...this.props}/>\n        );\n    }\n}\n","var noop = {value: function() {}};\n\nfunction dispatch() {\n  for (var i = 0, n = arguments.length, _ = {}, t; i < n; ++i) {\n    if (!(t = arguments[i] + \"\") || (t in _)) throw new Error(\"illegal type: \" + t);\n    _[t] = [];\n  }\n  return new Dispatch(_);\n}\n\nfunction Dispatch(_) {\n  this._ = _;\n}\n\nfunction parseTypenames(typenames, types) {\n  return typenames.trim().split(/^|\\s+/).map(function(t) {\n    var name = \"\", i = t.indexOf(\".\");\n    if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n    if (t && !types.hasOwnProperty(t)) throw new Error(\"unknown type: \" + t);\n    return {type: t, name: name};\n  });\n}\n\nDispatch.prototype = dispatch.prototype = {\n  constructor: Dispatch,\n  on: function(typename, callback) {\n    var _ = this._,\n        T = parseTypenames(typename + \"\", _),\n        t,\n        i = -1,\n        n = T.length;\n\n    // If no callback was specified, return the callback of the given type and name.\n    if (arguments.length < 2) {\n      while (++i < n) if ((t = (typename = T[i]).type) && (t = get(_[t], typename.name))) return t;\n      return;\n    }\n\n    // If a type was specified, set the callback for the given type and name.\n    // Otherwise, if a null callback was specified, remove callbacks of the given name.\n    if (callback != null && typeof callback !== \"function\") throw new Error(\"invalid callback: \" + callback);\n    while (++i < n) {\n      if (t = (typename = T[i]).type) _[t] = set(_[t], typename.name, callback);\n      else if (callback == null) for (t in _) _[t] = set(_[t], typename.name, null);\n    }\n\n    return this;\n  },\n  copy: function() {\n    var copy = {}, _ = this._;\n    for (var t in _) copy[t] = _[t].slice();\n    return new Dispatch(copy);\n  },\n  call: function(type, that) {\n    if ((n = arguments.length - 2) > 0) for (var args = new Array(n), i = 0, n, t; i < n; ++i) args[i] = arguments[i + 2];\n    if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n    for (t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n  },\n  apply: function(type, that, args) {\n    if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n    for (var t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n  }\n};\n\nfunction get(type, name) {\n  for (var i = 0, n = type.length, c; i < n; ++i) {\n    if ((c = type[i]).name === name) {\n      return c.value;\n    }\n  }\n}\n\nfunction set(type, name, callback) {\n  for (var i = 0, n = type.length; i < n; ++i) {\n    if (type[i].name === name) {\n      type[i] = noop, type = type.slice(0, i).concat(type.slice(i + 1));\n      break;\n    }\n  }\n  if (callback != null) type.push({name: name, value: callback});\n  return type;\n}\n\nexport default dispatch;\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n  return toString.call(it).slice(8, -1);\n};\n","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".pYKWTB8_BUTzVA9JywHuP {\\n    position: absolute;\\n    top: 0;\\n    left: 0;\\n    width: 100%;\\n    height: 100%;\\n    /* For safari to display clipPath */\\n    transform: translateZ(0);\\n}\\n\\n.YCcPGnS5dPOBZH7uB0ZNs {\\n    position: absolute;\\n    top: 0;\\n    left: 0;\\n    width: 100%;\\n    height: 100%;\\n    pointer-events: none;\\n}\\n\\n._1QSQ8BLzEZEMbNQhfTWqx {\\n    position: absolute;\\n    top: 0;\\n    left: 0;\\n    pointer-events: none;\\n}\\n\\n.vqJWH1CjPtZhIcDqqOG5R, ._3OpaSBA_YyiaBAg2dgGzVs {\\n    position: absolute;\\n    top: 0;\\n    left: 0;\\n    width: 100%;\\n    height: 100%;\\n}\\n\\n._15-dt45B9fQ6qS50S8BVze {\\n    /**\\n     * Needed for IE to display crop mask\\n     * But it crops the masks, if they are rotated\\n    */\\n    overflow: hidden;\\n}\\n\\n._3MERHCv6A9VD5JPKy4DGow {\\n    /**\\n     * Fix crop mask jumps on deselect bug\\n     * N.B. Not needed and do not apply on Safari 11 - causes issues!\\n     */\\n    transform: translateZ(0);\\n}\\n\", \"\"]);\n\n// exports\nexports.locals = {\n\t\"baseImage\": \"pYKWTB8_BUTzVA9JywHuP\",\n\t\"imageBlock\": \"YCcPGnS5dPOBZH7uB0ZNs\",\n\t\"svgBlock\": \"_1QSQ8BLzEZEMbNQhfTWqx\",\n\t\"vignetteContainer\": \"vqJWH1CjPtZhIcDqqOG5R\",\n\t\"imageContainer\": \"_3OpaSBA_YyiaBAg2dgGzVs\",\n\t\"fixCropNotVisibleOnIE\": \"_15-dt45B9fQ6qS50S8BVze\",\n\t\"fixDeselectJump\": \"_3MERHCv6A9VD5JPKy4DGow\"\n};","function createPropsCache(propsToCache, props) {\n    return propsToCache.reduce((cache, key) => {\n        cache[key] = props[key];\n        return cache;\n    }, {});\n}\n\nexport function constructDerivedState(nextProps, prevState, propsToCache, subStateCreators) {\n    const firstStateOrPropsChanged = !prevState || propsToCache.find(key => {\n        return prevState[key] !== nextProps[key];\n    });\n\n    if (firstStateOrPropsChanged) {\n        return subStateCreators.reduce((state, subStateCreator) => {\n            return {\n                ...state,\n                ...subStateCreator(prevState, nextProps, state),\n            };\n        }, createPropsCache(propsToCache, nextProps));\n    }\n\n    return null;\n}\n\nexport function wrapAndOrderEntities(entities, getBounds) {\n    return entities.map((entity, index) => {\n        const wrapper = Object.create(entity);\n        wrapper.stackingOrder = index;\n        wrapper.originalBounds = getBounds(entity);\n        return wrapper;\n    }).sort((item1, item2) => {\n        const bounds1 = item1.originalBounds;\n        const bounds2 = item2.originalBounds;\n        let diff = bounds1.top - bounds2.top;\n        if (diff === 0) {\n            diff = bounds1.left - bounds2.left;\n        }\n        if (diff === 0) {\n            diff = item2.stackingOrder - item1.stackingOrder;\n        }\n        return diff;\n    });\n}\n","import Dispatcher from '../app/dispatcher';\n\nimport {\n    DISPLAY_HEADER,\n    RELATED_INFOGRAPHICS_RECEIVED,\n} from './constants';\n\nexport function getRelatedInfographics(term, block_id) {\n    fetch(`/api/mlt/?term=${term}`, {\n        credentials: 'same-origin',\n    }).then(response => {\n        if (response.status !== 200) {\n            throw new Error('Related infographics fetch failed');\n        }\n\n        return response.json();\n    }).then(data => {\n        let infographics = data.hits || [];\n        infographics = infographics.filter(item => item.block_id !== block_id);\n\n        Dispatcher.dispatch({\n            data: infographics,\n            type: RELATED_INFOGRAPHICS_RECEIVED,\n        });\n    }).catch();\n}\n\nexport function showHeader() {\n    Dispatcher.dispatch({\n        type: DISPLAY_HEADER,\n        displayHeader: true,\n    });\n}\n\nexport function hideHeader() {\n    Dispatcher.dispatch({\n        type: DISPLAY_HEADER,\n        displayHeader: false,\n    });\n}\n","import AccountLogic from '../../../../../views/account_logic.js';\nimport {runIgnoringErrors} from '../../../../../shared/runIgnoringErrors';\n\nexport const autoLayoutAdminEnabled = () => runIgnoringErrors(() => AccountLogic.getCurrentProfile().settings.beta_features.autoLayoutAdmin) || false;\n\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","const blocksByKey = {};\nconst entitiesByKey = {};\nconst calloutsByKeys = {};\n\nexport function getElementForBlock(key) {\n    return blocksByKey[key];\n}\nexport function getElementForEntity(key) {\n    return entitiesByKey[key];\n}\nexport function getElementForCallout(key) {\n    return calloutsByKeys[key];\n}\n\nexport function setElementForBlock(key, element) {\n    blocksByKey[key] = element;\n}\nexport function setElementForEntity(key, element) {\n    entitiesByKey[key] = element;\n}\nexport function setElementForCallout(key, element) {\n    calloutsByKeys[key] = element;\n}\n\nexport function removeElementForBlock(key) {\n    delete blocksByKey[key];\n}\nexport function removeElementForEntity(key) {\n    delete entitiesByKey[key];\n}\nexport function removeElementForCallout(key) {\n    delete calloutsByKeys[key];\n}\n\nexport function iterateOverAllBlockElements(callback) {\n    for (const key in blocksByKey) {\n        if (callback(blocksByKey[key], key) === false) {\n            return;\n        }\n    }\n}\nexport function iterateOverAllEntityElements(callback) {\n    for (const key in entitiesByKey) {\n        if (callback(entitiesByKey[key], key) === false) {\n            return;\n        }\n    }\n}\n\nexport function getRelativeBlockRect(entity) {\n    if (entity.getCalloutKey()) {\n        return getElementForCallout(entity.getCalloutKey()).getBoundingClientRect();\n    }\n    return getElementForBlock(entity.getBlockKey()).getBoundingClientRect();\n}\n","var $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar isObject = require('../internals/is-object');\n\nvar nativeIsExtensible = Object.isExtensible;\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeIsExtensible(1); });\n\n// `Object.isExtensible` method\n// https://tc39.github.io/ecma262/#sec-object.isextensible\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, {\n  isExtensible: function isExtensible(it) {\n    return isObject(it) ? nativeIsExtensible ? nativeIsExtensible(it) : true : false;\n  }\n});\n","import React, {PureComponent} from 'react';\nimport PropTypes from 'prop-types';\nimport cx from 'classnames';\n\nimport style from './SearchForm.css';\n\nexport default class SearchForm extends PureComponent {\n    static propTypes = {\n        defaultValue: PropTypes.string,\n        onSubmitForm: PropTypes.func.isRequired,\n    }\n\n    constructor(props) {\n        super(props);\n\n        this.state = {\n            searchInputValue: this.props.defaultValue || '',\n        };\n    }\n\n    render() {\n        return (\n            <form\n                className={style.searchForm}\n            >\n                <input\n                    className={style.searchInput}\n                    onChange={this.onSearchInputChange}\n                    onKeyDown={this.onSearchInputKeydown}\n                    type=\"text\"\n                    value={this.state.searchInputValue}\n                />\n                <a\n                    className={cx('icon-search', style.searchIcon)}\n                    onClick={this.onSubmitForm}\n                />\n            </form>\n        );\n    }\n\n    onSearchInputChange = e => {\n        this.setState({\n            searchInputValue: e.target.value,\n        });\n    }\n\n    onSearchInputKeydown = e => {\n        if (e.key === 'Enter') {\n            e.preventDefault();\n            this.props.onSubmitForm(this.state.searchInputValue);\n        }\n    }\n\n    onSubmitForm = () => {\n        this.props.onSubmitForm(this.state.searchInputValue);\n    }\n}\n","export const INSPECTOR_PANEL_PUSH = 'INSPECTOR_PANEL_PUSH';\nexport const INSPECTOR_PANEL_POP = 'INSPECTOR_PANEL_POP';\nexport const INSPECTOR_OPEN_PAGE_SETTINGS = 'INSPECTOR_OPEN_PAGE_SETTINGS';\nexport const INSPECTOR_OPEN_PAGE_AUTO_LAYOUT = 'INSPECTOR_OPEN_PAGE_AUTO_LAYOUT';\n","import i18n from 'i18next';\n\nimport _ from 'lodash';\n\nimport {backLink} from '../utils/backlink';\n\nconst BUTTON_HEIGHT = 22;\nconst FULL_WIDTH_BUTTON_LIMIT = 280;\n\nexport default function getFooter(model, viewMode) {\n    const theme = model.get('theme');\n    const properties = model.get('properties') || {};\n\n    // Add footer bottom\n    const footerStyle = {};\n    const footerOptions = theme.get('footerOptions');\n    if (_.has(footerOptions, 'common.borderWidth')) {\n        footerStyle.borderTopStyle = 'solid';\n        footerStyle.borderTopColor = footerOptions.common.borderColor;\n        footerStyle.borderTopWidth = `${footerOptions.common.borderWidth}px`;\n    }\n\n    const data = {\n        copyright: _.escape(model.get('copyright')) || _.get(footerOptions, 'copyrightNotice.text', ''),\n    };\n\n    let button;\n    const backgroundColor = _.get(footerOptions, 'shareButton.background', '#d51a1a');\n\n    let logo;\n    let url;\n\n    const showDefaultLogo = properties.custom_logo === 'infogram';\n    const showLogo = properties.custom_logo !== 'none' || !properties.whitelabel;\n    const showShareButton = properties.embed_button === 'enabled' && viewMode !== 'download' && viewMode !== 'capture' && _.get(footerOptions, 'shareButton.enabled') !== false;\n\n    if (showLogo) {\n        const themeImages = theme.get('logoImages');\n        // Logo logic: custom = uploaded, infogram = theme default, none = no logo at all\n        url = ((properties.custom_logo === 'custom' && properties.custom_logo_value) ||\n            (showDefaultLogo && themeImages.indexOf(properties.custom_logo_value)) !== -1) ? properties.custom_logo_value : themeImages[0];\n        if (!url && properties.custom_logo === 'custom') {\n            url = themeImages[0];\n        }\n\n        // in case = infogram, as there can be multiple logos available in a theme, if such is set, the select logo is shown, otherwise - the first from the logos\n        if (url && properties.title_link === 'infogram') {\n            properties.title_link = 'custom';\n        }\n        let link;\n        link = properties.custom_link_url || theme.get('logoUrl'); // the link can be either set in infographic or come from the theme\n        if (!link && properties.custom_link_status !== 'none' && !properties.whitelabel) {\n            const medium = (viewMode === 'embed') ? 'embed' : 'webview';\n            const campaign = 'embed_logo_resp';\n\n            link = backLink(model.get('path'), medium, campaign);\n        }\n        if (link && !link.match(/^[a-zA-Z]+:\\/\\//)) {\n            link = 'https://' + link;\n        }\n\n        const text = showDefaultLogo && !url ? i18n.t('app.infographic.made_with') : '';\n        logo = {\n            url,\n            link,\n            background: _.get(footerOptions, 'logo.background', '#d51a1a'),\n            style: {\n                float: _.get(footerOptions, 'logo.position', 'right'),\n            },\n            text,\n            logoName: properties.logoName,\n            height: (showDefaultLogo && _.get(footerOptions, 'logo.height')) || undefined,\n            width: (showDefaultLogo && _.get(footerOptions, 'logo.width')) || undefined,\n        };\n        if (showDefaultLogo && showShareButton && logo.height && logo.height < BUTTON_HEIGHT) {\n            logo.style.marginTop = (BUTTON_HEIGHT - logo.height) / 2;\n        }\n    }\n\n    if (showShareButton) { // Share button\n        const containerWidth = (viewMode === 'embed') ? window.innerWidth : model.get('width');\n        const fullWidth = (containerWidth > FULL_WIDTH_BUTTON_LIMIT);\n        const text = properties.embed_button_text || _.get(footerOptions, 'shareButton.text', i18n.t('app.share.share'));\n        // Contents from share button come either from infographic settings, theme or have the default \"Share\" text. In narrow infographics text is not shown at all.\n        let background = properties.embed_button_color || backgroundColor;\n        if (background[0] !== '#') {\n            background = `#${background}`;\n        }\n        const style = _.clone(_.get(footerOptions, 'shareButton', {}));\n        style.background = background;\n        style.float = _.get(footerOptions, 'shareButton.position', 'left');\n        const logoHeight = _.get(logo, 'height');\n        if (showDefaultLogo && !url) {\n            style.marginTop = '10px';\n        } else if (showDefaultLogo && logoHeight && logoHeight > BUTTON_HEIGHT) {\n            style.marginTop = (logoHeight - BUTTON_HEIGHT) / 2;\n        }\n        button = {\n            fullWidth,\n            style,\n            text,\n        };\n    }\n\n    let copyrightNotice;\n    if (_.get(footerOptions, 'copyrightNotice.enabled')) {\n        copyrightNotice = {\n            editable: viewMode === 'edit',\n            style: footerOptions.copyrightNotice,\n            text: data.copyright,\n        };\n    }\n\n    return {\n        copyrightNotice,\n        button,\n        logo,\n        footerStyle,\n    };\n}\n","import {ReduceStore} from 'flux/utils';\nimport {Map, List, fromJS} from 'immutable';\nimport _ from 'lodash';\n\nimport Dispatcher from '../../dispatcher';\n\nimport {\n    TEMPLATE_PREVIEW_CLOSED,\n    TEMPLATE_PREVIEW_LOADED,\n    PREZIGRAM_TEMPLATE_PREVIEW_LOADED,\n} from '../../../store/constants/template-preview';\nimport Constants, {isFlex, isResponsive} from '../../constants';\nimport {EXTERNAL_EDITOR_STATE_CHANGE} from '../../freelayout_editor/constants/EditorConstants';\nimport LibraryConstants from '../../library/constants/LibraryConstants';\nimport {FLEX_EDITOR_OPEN_PROJECT} from '../../../store/constants/action-types';\nimport EditorStateStore from '../../freelayout_editor/stores/EditorStateStore';\nimport InterlinkedCharts from '../../../common/helpers/InterlinkedCharts';\nimport PaletteStore from './PaletteStore';\nimport createBackboneModelFromJSON from '../utils/createBackboneModelFromJSON';\n\nimport {backLink} from '../../../utils/backlink';\n\nfunction getFlexDesignProperty(prop, defaultValue, editorState) {\n    if (!editorState) return defaultValue;\n    const design = editorState.getCurrentContent().getDesign();\n    return design.getIn(prop, defaultValue);\n}\n\nfunction getPalette() {\n    const paletteId = EditorStateStore?.themeId;\n    const palettes = PaletteStore.palettes;\n    const palette = palettes?.filter(d => d.get('id') === paletteId)?.get(0);\n    return palette ?? Map({title: '', picture: '', id: 215});\n}\n\nexport class FlexInfographicModel {\n    constructor(projectId, editorState) {\n        this.block_id = projectId;\n        this.title = '';\n        this.type = Constants.INFOGRAPHIC_TYPE_FREE_LAYOUT;\n        const currentEditorState = () => editorState || EditorStateStore.editorState;\n\n        // Charts and settings panel sometimes queries the model to get colors.\n        // Just proxy the calls to EditorStateStore to get real flex colors.\n        const flexTheme = {\n            get id() {\n                return getPalette().get('id');\n            },\n            get picture() {\n                return getPalette().get('picture');\n            },\n            get title() {\n                return getPalette().get('title');\n            },\n            get chartDefaults() {\n                return getPalette().get('chartDefaults');\n            },\n            get charts() {\n                const out = getFlexDesignProperty(\n                    ['elements', 'CHART', 'options'],\n                    fromJS({\n                        table: {\n                            cellBackground: getFlexDesignProperty(['defaults', 'backgroundColor'], '#000000', currentEditorState()),\n                            headerBackground: getFlexDesignProperty(['defaults', 'foregroundColor'], '#000000', currentEditorState()),\n                            cellColor: getFlexDesignProperty(['defaults', 'foregroundColor'], '#000000', currentEditorState()),\n                            headerColor: getFlexDesignProperty(['colors', '0'], '#ffffff', currentEditorState()),\n                            shapeFill: getFlexDesignProperty(['colors', '0'], '#ffffff', currentEditorState()),\n                        },\n                    }),\n                    currentEditorState()\n                );\n                return out.toJS();\n            },\n\n            get font() { // it is called font only for fonts params to be passed in chart_factory because of old themes\n                const out = getFlexDesignProperty(\n                    ['elements', 'CHART', 'font'],\n                    fromJS({\n                        common: {\n                            fontFamily: getFlexDesignProperty(['defaults', 'fontFamily'], 'RalewayBold', currentEditorState()),\n                            fontSize: getFlexDesignProperty(['defaults', 'fontSize'], 13, currentEditorState()),\n                            fontWeight: 500,\n                            fontStyle: 'normal',\n                            textAlign: 'initial',\n                        },\n                    }),\n                    currentEditorState()\n                );\n                return out.toJS();\n            },\n\n            get fonts() {\n                const out = getFlexDesignProperty(\n                    ['fonts'],\n                    fromJS({}),\n                    currentEditorState()\n                );\n                return out.toJS();\n            },\n\n            get fontFamilies() {\n                const fontFamilies = Object.values(getFlexDesignProperty(['fontFamilies'], Map(), currentEditorState()).toJS());\n                const fontFamiliesVisible = getFlexDesignProperty(['fontFamiliesVisible'], List(), currentEditorState()).toJS();\n                return [...fontFamilies, ...fontFamiliesVisible];\n            },\n\n            get color() {\n                const bg = getFlexDesignProperty(['defaults', 'backgroundColor'], '#ffffff', currentEditorState());\n                const text = getFlexDesignProperty(['defaults', 'foregroundColor'], '#000000', currentEditorState());\n                return {bg, text, chart: {bg: 'transparent', text}, element: {bg: 'transparent', text}};\n            },\n            get colors() {\n                return [...getFlexDesignProperty(['colors'], [], currentEditorState())];\n            },\n            get: (prop) => flexTheme[prop],\n        };\n        flexTheme.attributes = {...flexTheme};\n        this.theme = flexTheme;\n    }\n\n    get attributes() {\n        return this;\n    }\n\n    get(prop) {\n        return this[prop];\n    }\n}\n\nclass CurrentInfographicStore extends ReduceStore {\n    getInitialState() {\n        return Map({\n            loading: false,\n            loadingFromCache: false,\n            error: false,\n            dirty: false,\n            model: null,\n            status: 'draft',\n            infographicId: null,\n            errorMessage: null,\n            projectTags: null,\n        });\n    }\n\n    get(propName) {\n        const model = this.getState().get('model');\n        return model && model.get(propName);\n    }\n\n    get isEmpty() {\n        return !this.getState().get('model');\n    }\n\n    get isLoading() {\n        return this.getState().get('loading');\n    }\n\n    get isDirty() {\n        return this.getState().get('dirty');\n    }\n\n    get hasError() {\n        return this.getState().get('error');\n    }\n\n    get errorMessage() {\n        return this.getState().get('errorMessage');\n    }\n\n    get infographicId() {\n        return this.getState().get('infographicId');\n    }\n\n    get model() {\n        return this.getState().get('model');\n    }\n\n    get status() {\n        return this.getState().get('status');\n    }\n\n    get isFreeLayout() {\n        return isFlex(this.get('type'));\n    }\n\n    get flexTemplateId() {\n        return this.model && this.model.get && this.model.get('properties') && this.model.get('properties').flexTemplateId;\n    }\n\n    get isResponsive() {\n        return isResponsive(this.get('type'));\n    }\n\n    get usingBackboneModel() {\n        return !(this.model instanceof FlexInfographicModel);\n    }\n\n    get projectTags() {\n        return this.getState().get('projectTags');\n    }\n\n    getLogoLink(embed) {\n        if (!this.model || !this.model.get || !this.model.get('properties') || !this.model.get('properties').whitelabel) {\n            const campaign = this.isFreeLayout ? 'logo_flex' : 'logo_resp';\n            const medium = embed ? 'embed' : 'webview';\n\n            return backLink(this.infographicId, medium, campaign);\n        }\n        return null;\n    }\n\n    get showShareButton() {\n        return this.model && this.model.get('properties').embed_button === 'enabled';\n    }\n\n    get transparent() {\n        return this.model && this.model.get('properties') && this.model.get('properties').transparent;\n    }\n\n    reduce(state, action) {\n        switch (action.type) {\n            case Constants.INFOGRAPHIC_LOADING: {\n                return state.merge({\n                    infographicId: action.id,\n                    loading: true,\n                    loadingFromCache: !!action.cached,\n                });\n            }\n            case PREZIGRAM_TEMPLATE_PREVIEW_LOADED:\n            case FLEX_EDITOR_OPEN_PROJECT: {\n                // For infogram editor loaded using api and has backbone model with theme details - we use that.\n                // For preziGram we do not have backbone model, so we create a proxy class that simulates\n                // values (e.g. colors) from the actual flex data json.\n                if (action.useBackboneModel) return state;\n                return state.merge({\n                    infographicId: action.projectId,\n                    loading: true,\n                    loadingFromCache: false,\n                    model: new FlexInfographicModel(action.projectId),\n                });\n            }\n            case EXTERNAL_EDITOR_STATE_CHANGE:\n                return state.set('loading', false);\n            case TEMPLATE_PREVIEW_LOADED:\n            case Constants.INFOGRAPHIC_LOADED: {\n                const model = action.data || state.get('model');\n                const put = {\n                    loadingFromCache: false,\n                };\n                put.dirty = false;\n                if (model) {\n                    put.model = model;\n                    put.infographicId = model.get('block_id');\n                    put.status = model.publishedStatus();\n                    put.projectTags = model.get('projectTags');\n                }\n                put.loading = false;\n                put.error = false;\n                put.errorMessage = null;\n\n                // fire event, that Duckbase catches and populates zopim chat with project type tag. @maksim\n                document.dispatchEvent(new CustomEvent('INFOGRAPHIC_LOADED', {\n                    detail: model.get('type'),\n                }));\n                const isFlex = _.has(model.get('elements'), 'content.interlinkedCharts');\n                const hasInterlinkedCharts = isFlex ?\n                    _.get(model.get('elements'), 'content.interlinkedCharts') :\n                    model.get('properties').interlinked_charts;\n\n                InterlinkedCharts.reset(hasInterlinkedCharts);\n\n                // this variable only exists when graphic rendered for capture in freelayout\n                if (isFlex) {\n                    const sheetName = model.get('sheetName');\n                    InterlinkedCharts.sheetName = sheetName;\n                }\n                return state.merge(put);\n            }\n            case Constants.INFOGRAPHIC_LOAD_ERROR: {\n                const {message} = action;\n                return state.merge({\n                    loading: false,\n                    loadingFromCache: false,\n                    error: true,\n                    errorMessage: message,\n                });\n            }\n            case Constants.INFOGRAPHIC_CREATED: {\n                return state.set('model', createBackboneModelFromJSON(action.data));\n            }\n            case Constants.INFOGRAPHIC_INVALIDATE: {\n                return state.set('dirty', true);\n            }\n            case Constants.INFOGRAPHIC_THEME_CHANGE: {\n                const model = state.get('model');\n                model.set({\n                    theme: action.theme,\n                    theme_id: action.id,\n                });\n                //This shouldn't cause ReduceStore to emit a change event,\n                //however this is not needed for now. Chart.react.js reads\n                //this independently from changes in the store\n                return state.set('model', model);\n            }\n            case LibraryConstants.INFOGRAPHIC_PUBLISH_STATUS_CHANGE: {\n                return state.set('status', action.status);\n            }\n            case Constants.INFOGRAPHIC_PUBLISHED: {\n                return state.set('status', 'public');\n            }\n            case TEMPLATE_PREVIEW_CLOSED: {\n                return state.set('model', null);\n            }\n\n            case LibraryConstants.ADD_TAG: {\n                const infographic = state.get('model');\n                if (infographic && infographic.get('block_id') === action.payload.infographicId) {\n                    const tags = state.get('projectTags');\n                    return state.merge({\n                        projectTags: tags.push(action.payload.tagId),\n                    });\n                }\n                break;\n            }\n\n            case LibraryConstants.REMOVE_TAG: {\n                const infographic = state.get('model');\n                if (infographic && infographic.get('block_id') === action.payload.infographicId) {\n                    const tags = state.get('projectTags');\n                    return state.merge({\n                        projectTags: tags.filter(i => i !== action.payload.tagId),\n                    });\n                }\n                break;\n            }\n            case Constants.RESPONSIVE_SET_INTERLINKED_CHARTS:\n            case Constants.FREELAYOUT_SET_INTERLINKED_CHARTS:\n                InterlinkedCharts.toggle(action.value);\n                return state;\n            case Constants.RECEIVE_EXTRA_DATA:\n                InterlinkedCharts.toggle(action.payload.interlinkedCharts);\n                return state;\n        }\n        return state;\n    }\n}\n\nexport default new CurrentInfographicStore(Dispatcher);\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/forced-string-html-method');\n\n// `String.prototype.small` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.small\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('small') }, {\n  small: function small() {\n    return createHTML(this, 'small', '', '');\n  }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $indexOf = require('../internals/array-includes').indexOf;\nvar sloppyArrayMethod = require('../internals/sloppy-array-method');\n\nvar nativeIndexOf = [].indexOf;\n\nvar NEGATIVE_ZERO = !!nativeIndexOf && 1 / [1].indexOf(1, -0) < 0;\nvar SLOPPY_METHOD = sloppyArrayMethod('indexOf');\n\n// `Array.prototype.indexOf` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.indexof\n$({ target: 'Array', proto: true, forced: NEGATIVE_ZERO || SLOPPY_METHOD }, {\n  indexOf: function indexOf(searchElement /* , fromIndex = 0 */) {\n    return NEGATIVE_ZERO\n      // convert -0 to +0\n      ? nativeIndexOf.apply(this, arguments) || 0\n      : $indexOf(this, searchElement, arguments.length > 1 ? arguments[1] : undefined);\n  }\n});\n","'use strict';\n// based on https://github.com/bestiejs/punycode.js/blob/master/punycode.js\nvar maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1\nvar base = 36;\nvar tMin = 1;\nvar tMax = 26;\nvar skew = 38;\nvar damp = 700;\nvar initialBias = 72;\nvar initialN = 128; // 0x80\nvar delimiter = '-'; // '\\x2D'\nvar regexNonASCII = /[^\\0-\\u007E]/; // non-ASCII chars\nvar regexSeparators = /[.\\u3002\\uFF0E\\uFF61]/g; // RFC 3490 separators\nvar OVERFLOW_ERROR = 'Overflow: input needs wider integers to process';\nvar baseMinusTMin = base - tMin;\nvar floor = Math.floor;\nvar stringFromCharCode = String.fromCharCode;\n\n/**\n * Creates an array containing the numeric code points of each Unicode\n * character in the string. While JavaScript uses UCS-2 internally,\n * this function will convert a pair of surrogate halves (each of which\n * UCS-2 exposes as separate characters) into a single code point,\n * matching UTF-16.\n */\nvar ucs2decode = function (string) {\n  var output = [];\n  var counter = 0;\n  var length = string.length;\n  while (counter < length) {\n    var value = string.charCodeAt(counter++);\n    if (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n      // It's a high surrogate, and there is a next character.\n      var extra = string.charCodeAt(counter++);\n      if ((extra & 0xFC00) == 0xDC00) { // Low surrogate.\n        output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n      } else {\n        // It's an unmatched surrogate; only append this code unit, in case the\n        // next code unit is the high surrogate of a surrogate pair.\n        output.push(value);\n        counter--;\n      }\n    } else {\n      output.push(value);\n    }\n  }\n  return output;\n};\n\n/**\n * Converts a digit/integer into a basic code point.\n */\nvar digitToBasic = function (digit) {\n  //  0..25 map to ASCII a..z or A..Z\n  // 26..35 map to ASCII 0..9\n  return digit + 22 + 75 * (digit < 26);\n};\n\n/**\n * Bias adaptation function as per section 3.4 of RFC 3492.\n * https://tools.ietf.org/html/rfc3492#section-3.4\n */\nvar adapt = function (delta, numPoints, firstTime) {\n  var k = 0;\n  delta = firstTime ? floor(delta / damp) : delta >> 1;\n  delta += floor(delta / numPoints);\n  for (; delta > baseMinusTMin * tMax >> 1; k += base) {\n    delta = floor(delta / baseMinusTMin);\n  }\n  return floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n};\n\n/**\n * Converts a string of Unicode symbols (e.g. a domain name label) to a\n * Punycode string of ASCII-only symbols.\n */\n// eslint-disable-next-line  max-statements\nvar encode = function (input) {\n  var output = [];\n\n  // Convert the input in UCS-2 to an array of Unicode code points.\n  input = ucs2decode(input);\n\n  // Cache the length.\n  var inputLength = input.length;\n\n  // Initialize the state.\n  var n = initialN;\n  var delta = 0;\n  var bias = initialBias;\n  var i, currentValue;\n\n  // Handle the basic code points.\n  for (i = 0; i < input.length; i++) {\n    currentValue = input[i];\n    if (currentValue < 0x80) {\n      output.push(stringFromCharCode(currentValue));\n    }\n  }\n\n  var basicLength = output.length; // number of basic code points.\n  var handledCPCount = basicLength; // number of code points that have been handled;\n\n  // Finish the basic string with a delimiter unless it's empty.\n  if (basicLength) {\n    output.push(delimiter);\n  }\n\n  // Main encoding loop:\n  while (handledCPCount < inputLength) {\n    // All non-basic code points < n have been handled already. Find the next larger one:\n    var m = maxInt;\n    for (i = 0; i < input.length; i++) {\n      currentValue = input[i];\n      if (currentValue >= n && currentValue < m) {\n        m = currentValue;\n      }\n    }\n\n    // Increase `delta` enough to advance the decoder's <n,i> state to <m,0>, but guard against overflow.\n    var handledCPCountPlusOne = handledCPCount + 1;\n    if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n      throw RangeError(OVERFLOW_ERROR);\n    }\n\n    delta += (m - n) * handledCPCountPlusOne;\n    n = m;\n\n    for (i = 0; i < input.length; i++) {\n      currentValue = input[i];\n      if (currentValue < n && ++delta > maxInt) {\n        throw RangeError(OVERFLOW_ERROR);\n      }\n      if (currentValue == n) {\n        // Represent delta as a generalized variable-length integer.\n        var q = delta;\n        for (var k = base; /* no condition */; k += base) {\n          var t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n          if (q < t) break;\n          var qMinusT = q - t;\n          var baseMinusT = base - t;\n          output.push(stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT)));\n          q = floor(qMinusT / baseMinusT);\n        }\n\n        output.push(stringFromCharCode(digitToBasic(q)));\n        bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n        delta = 0;\n        ++handledCPCount;\n      }\n    }\n\n    ++delta;\n    ++n;\n  }\n  return output.join('');\n};\n\nmodule.exports = function (input) {\n  var encoded = [];\n  var labels = input.toLowerCase().replace(regexSeparators, '\\u002E').split('.');\n  var i, label;\n  for (i = 0; i < labels.length; i++) {\n    label = labels[i];\n    encoded.push(regexNonASCII.test(label) ? 'xn--' + encode(label) : label);\n  }\n  return encoded.join('.');\n};\n","/**\n * This is a straight rip-off of the React.js ReactPropTypes.js proptype validators,\n * modified to make it possible to validate Immutable.js data.\n *     ImmutableTypes.listOf is patterned after React.PropTypes.arrayOf, but for Immutable.List\n *     ImmutableTypes.shape  is based on React.PropTypes.shape, but for any Immutable.Iterable\n */\n\"use strict\";\n\nvar Immutable = require(\"immutable\");\n\nvar ANONYMOUS = \"<<anonymous>>\";\n\nvar ImmutablePropTypes = {\n  listOf: createListOfTypeChecker,\n  mapOf: createMapOfTypeChecker,\n  orderedMapOf: createOrderedMapOfTypeChecker,\n  setOf: createSetOfTypeChecker,\n  orderedSetOf: createOrderedSetOfTypeChecker,\n  stackOf: createStackOfTypeChecker,\n  iterableOf: createIterableOfTypeChecker,\n  recordOf: createRecordOfTypeChecker,\n  shape: createShapeChecker,\n  contains: createShapeChecker,\n  mapContains: createMapContainsChecker,\n  // Primitive Types\n  list: createImmutableTypeChecker(\"List\", Immutable.List.isList),\n  map: createImmutableTypeChecker(\"Map\", Immutable.Map.isMap),\n  orderedMap: createImmutableTypeChecker(\"OrderedMap\", Immutable.OrderedMap.isOrderedMap),\n  set: createImmutableTypeChecker(\"Set\", Immutable.Set.isSet),\n  orderedSet: createImmutableTypeChecker(\"OrderedSet\", Immutable.OrderedSet.isOrderedSet),\n  stack: createImmutableTypeChecker(\"Stack\", Immutable.Stack.isStack),\n  seq: createImmutableTypeChecker(\"Seq\", Immutable.Seq.isSeq),\n  record: createImmutableTypeChecker(\"Record\", function (isRecord) {\n    return isRecord instanceof Immutable.Record;\n  }),\n  iterable: createImmutableTypeChecker(\"Iterable\", Immutable.Iterable.isIterable)\n};\n\nfunction getPropType(propValue) {\n  var propType = typeof propValue;\n  if (Array.isArray(propValue)) {\n    return \"array\";\n  }\n  if (propValue instanceof RegExp) {\n    // Old webkits (at least until Android 4.0) return 'function' rather than\n    // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n    // passes PropTypes.object.\n    return \"object\";\n  }\n  if (propValue instanceof Immutable.Iterable) {\n    return \"Immutable.\" + propValue.toSource().split(\" \")[0];\n  }\n  return propType;\n}\n\nfunction createChainableTypeChecker(validate) {\n  function checkType(isRequired, props, propName, componentName, location, propFullName) {\n    for (var _len = arguments.length, rest = Array(_len > 6 ? _len - 6 : 0), _key = 6; _key < _len; _key++) {\n      rest[_key - 6] = arguments[_key];\n    }\n\n    propFullName = propFullName || propName;\n    componentName = componentName || ANONYMOUS;\n    if (props[propName] == null) {\n      var locationName = location;\n      if (isRequired) {\n        return new Error(\"Required \" + locationName + \" `\" + propFullName + \"` was not specified in \" + (\"`\" + componentName + \"`.\"));\n      }\n    } else {\n      return validate.apply(undefined, [props, propName, componentName, location, propFullName].concat(rest));\n    }\n  }\n\n  var chainedCheckType = checkType.bind(null, false);\n  chainedCheckType.isRequired = checkType.bind(null, true);\n\n  return chainedCheckType;\n}\n\nfunction createImmutableTypeChecker(immutableClassName, immutableClassTypeValidator) {\n  function validate(props, propName, componentName, location, propFullName) {\n    var propValue = props[propName];\n    if (!immutableClassTypeValidator(propValue)) {\n      var propType = getPropType(propValue);\n      return new Error(\"Invalid \" + location + \" `\" + propFullName + \"` of type `\" + propType + \"` \" + (\"supplied to `\" + componentName + \"`, expected `\" + immutableClassName + \"`.\"));\n    }\n    return null;\n  }\n  return createChainableTypeChecker(validate);\n}\n\nfunction createIterableTypeChecker(typeChecker, immutableClassName, immutableClassTypeValidator) {\n\n  function validate(props, propName, componentName, location, propFullName) {\n    for (var _len = arguments.length, rest = Array(_len > 5 ? _len - 5 : 0), _key = 5; _key < _len; _key++) {\n      rest[_key - 5] = arguments[_key];\n    }\n\n    var propValue = props[propName];\n    if (!immutableClassTypeValidator(propValue)) {\n      var locationName = location;\n      var propType = getPropType(propValue);\n      return new Error(\"Invalid \" + locationName + \" `\" + propFullName + \"` of type \" + (\"`\" + propType + \"` supplied to `\" + componentName + \"`, expected an Immutable.js \" + immutableClassName + \".\"));\n    }\n\n    if (typeof typeChecker !== \"function\") {\n      return new Error(\"Invalid typeChecker supplied to `\" + componentName + \"` \" + (\"for propType `\" + propFullName + \"`, expected a function.\"));\n    }\n\n    var propValues = propValue.toArray();\n    for (var i = 0, len = propValues.length; i < len; i++) {\n      var error = typeChecker.apply(undefined, [propValues, i, componentName, location, \"\" + propFullName + \"[\" + i + \"]\"].concat(rest));\n      if (error instanceof Error) {\n        return error;\n      }\n    }\n  }\n  return createChainableTypeChecker(validate);\n}\n\nfunction createKeysTypeChecker(typeChecker) {\n\n  function validate(props, propName, componentName, location, propFullName) {\n    for (var _len = arguments.length, rest = Array(_len > 5 ? _len - 5 : 0), _key = 5; _key < _len; _key++) {\n      rest[_key - 5] = arguments[_key];\n    }\n\n    var propValue = props[propName];\n    if (typeof typeChecker !== \"function\") {\n      return new Error(\"Invalid keysTypeChecker (optional second argument) supplied to `\" + componentName + \"` \" + (\"for propType `\" + propFullName + \"`, expected a function.\"));\n    }\n\n    var keys = propValue.keySeq().toArray();\n    for (var i = 0, len = keys.length; i < len; i++) {\n      var error = typeChecker.apply(undefined, [keys, i, componentName, location, \"\" + propFullName + \" -> key(\" + keys[i] + \")\"].concat(rest));\n      if (error instanceof Error) {\n        return error;\n      }\n    }\n  }\n  return createChainableTypeChecker(validate);\n}\n\nfunction createListOfTypeChecker(typeChecker) {\n  return createIterableTypeChecker(typeChecker, \"List\", Immutable.List.isList);\n}\n\nfunction createMapOfTypeCheckerFactory(valuesTypeChecker, keysTypeChecker, immutableClassName, immutableClassTypeValidator) {\n  function validate() {\n    for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    return createIterableTypeChecker(valuesTypeChecker, immutableClassName, immutableClassTypeValidator).apply(undefined, args) || keysTypeChecker && createKeysTypeChecker(keysTypeChecker).apply(undefined, args);\n  }\n\n  return createChainableTypeChecker(validate);\n}\n\nfunction createMapOfTypeChecker(valuesTypeChecker, keysTypeChecker) {\n  return createMapOfTypeCheckerFactory(valuesTypeChecker, keysTypeChecker, \"Map\", Immutable.Map.isMap);\n}\n\nfunction createOrderedMapOfTypeChecker(valuesTypeChecker, keysTypeChecker) {\n  return createMapOfTypeCheckerFactory(valuesTypeChecker, keysTypeChecker, \"OrderedMap\", Immutable.OrderedMap.isOrderedMap);\n}\n\nfunction createSetOfTypeChecker(typeChecker) {\n  return createIterableTypeChecker(typeChecker, \"Set\", Immutable.Set.isSet);\n}\n\nfunction createOrderedSetOfTypeChecker(typeChecker) {\n  return createIterableTypeChecker(typeChecker, \"OrderedSet\", Immutable.OrderedSet.isOrderedSet);\n}\n\nfunction createStackOfTypeChecker(typeChecker) {\n  return createIterableTypeChecker(typeChecker, \"Stack\", Immutable.Stack.isStack);\n}\n\nfunction createIterableOfTypeChecker(typeChecker) {\n  return createIterableTypeChecker(typeChecker, \"Iterable\", Immutable.Iterable.isIterable);\n}\n\nfunction createRecordOfTypeChecker(recordKeys) {\n  function validate(props, propName, componentName, location, propFullName) {\n    for (var _len = arguments.length, rest = Array(_len > 5 ? _len - 5 : 0), _key = 5; _key < _len; _key++) {\n      rest[_key - 5] = arguments[_key];\n    }\n\n    var propValue = props[propName];\n    if (!(propValue instanceof Immutable.Record)) {\n      var propType = getPropType(propValue);\n      var locationName = location;\n      return new Error(\"Invalid \" + locationName + \" `\" + propFullName + \"` of type `\" + propType + \"` \" + (\"supplied to `\" + componentName + \"`, expected an Immutable.js Record.\"));\n    }\n    for (var key in recordKeys) {\n      var checker = recordKeys[key];\n      if (!checker) {\n        continue;\n      }\n      var mutablePropValue = propValue.toObject();\n      var error = checker.apply(undefined, [mutablePropValue, key, componentName, location, \"\" + propFullName + \".\" + key].concat(rest));\n      if (error) {\n        return error;\n      }\n    }\n  }\n  return createChainableTypeChecker(validate);\n}\n\n// there is some irony in the fact that shapeTypes is a standard hash and not an immutable collection\nfunction createShapeTypeChecker(shapeTypes) {\n  var immutableClassName = arguments[1] === undefined ? \"Iterable\" : arguments[1];\n  var immutableClassTypeValidator = arguments[2] === undefined ? Immutable.Iterable.isIterable : arguments[2];\n\n  function validate(props, propName, componentName, location, propFullName) {\n    for (var _len = arguments.length, rest = Array(_len > 5 ? _len - 5 : 0), _key = 5; _key < _len; _key++) {\n      rest[_key - 5] = arguments[_key];\n    }\n\n    var propValue = props[propName];\n    if (!immutableClassTypeValidator(propValue)) {\n      var propType = getPropType(propValue);\n      var locationName = location;\n      return new Error(\"Invalid \" + locationName + \" `\" + propFullName + \"` of type `\" + propType + \"` \" + (\"supplied to `\" + componentName + \"`, expected an Immutable.js \" + immutableClassName + \".\"));\n    }\n    var mutablePropValue = propValue.toObject();\n    for (var key in shapeTypes) {\n      var checker = shapeTypes[key];\n      if (!checker) {\n        continue;\n      }\n      var error = checker.apply(undefined, [mutablePropValue, key, componentName, location, \"\" + propFullName + \".\" + key].concat(rest));\n      if (error) {\n        return error;\n      }\n    }\n  }\n  return createChainableTypeChecker(validate);\n}\n\nfunction createShapeChecker(shapeTypes) {\n  return createShapeTypeChecker(shapeTypes);\n}\n\nfunction createMapContainsChecker(shapeTypes) {\n  return createShapeTypeChecker(shapeTypes, \"Map\", Immutable.Map.isMap);\n}\n\nmodule.exports = ImmutablePropTypes;","'use strict';\n\nvar d        = require('d')\n  , callable = require('es5-ext/object/valid-callable')\n\n  , apply = Function.prototype.apply, call = Function.prototype.call\n  , create = Object.create, defineProperty = Object.defineProperty\n  , defineProperties = Object.defineProperties\n  , hasOwnProperty = Object.prototype.hasOwnProperty\n  , descriptor = { configurable: true, enumerable: false, writable: true }\n\n  , on, once, off, emit, methods, descriptors, base;\n\non = function (type, listener) {\n\tvar data;\n\n\tcallable(listener);\n\n\tif (!hasOwnProperty.call(this, '__ee__')) {\n\t\tdata = descriptor.value = create(null);\n\t\tdefineProperty(this, '__ee__', descriptor);\n\t\tdescriptor.value = null;\n\t} else {\n\t\tdata = this.__ee__;\n\t}\n\tif (!data[type]) data[type] = listener;\n\telse if (typeof data[type] === 'object') data[type].push(listener);\n\telse data[type] = [data[type], listener];\n\n\treturn this;\n};\n\nonce = function (type, listener) {\n\tvar once, self;\n\n\tcallable(listener);\n\tself = this;\n\ton.call(this, type, once = function () {\n\t\toff.call(self, type, once);\n\t\tapply.call(listener, this, arguments);\n\t});\n\n\tonce.__eeOnceListener__ = listener;\n\treturn this;\n};\n\noff = function (type, listener) {\n\tvar data, listeners, candidate, i;\n\n\tcallable(listener);\n\n\tif (!hasOwnProperty.call(this, '__ee__')) return this;\n\tdata = this.__ee__;\n\tif (!data[type]) return this;\n\tlisteners = data[type];\n\n\tif (typeof listeners === 'object') {\n\t\tfor (i = 0; (candidate = listeners[i]); ++i) {\n\t\t\tif ((candidate === listener) ||\n\t\t\t\t\t(candidate.__eeOnceListener__ === listener)) {\n\t\t\t\tif (listeners.length === 2) data[type] = listeners[i ? 0 : 1];\n\t\t\t\telse listeners.splice(i, 1);\n\t\t\t}\n\t\t}\n\t} else {\n\t\tif ((listeners === listener) ||\n\t\t\t\t(listeners.__eeOnceListener__ === listener)) {\n\t\t\tdelete data[type];\n\t\t}\n\t}\n\n\treturn this;\n};\n\nemit = function (type) {\n\tvar i, l, listener, listeners, args;\n\n\tif (!hasOwnProperty.call(this, '__ee__')) return;\n\tlisteners = this.__ee__[type];\n\tif (!listeners) return;\n\n\tif (typeof listeners === 'object') {\n\t\tl = arguments.length;\n\t\targs = new Array(l - 1);\n\t\tfor (i = 1; i < l; ++i) args[i - 1] = arguments[i];\n\n\t\tlisteners = listeners.slice();\n\t\tfor (i = 0; (listener = listeners[i]); ++i) {\n\t\t\tapply.call(listener, this, args);\n\t\t}\n\t} else {\n\t\tswitch (arguments.length) {\n\t\tcase 1:\n\t\t\tcall.call(listeners, this);\n\t\t\tbreak;\n\t\tcase 2:\n\t\t\tcall.call(listeners, this, arguments[1]);\n\t\t\tbreak;\n\t\tcase 3:\n\t\t\tcall.call(listeners, this, arguments[1], arguments[2]);\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tl = arguments.length;\n\t\t\targs = new Array(l - 1);\n\t\t\tfor (i = 1; i < l; ++i) {\n\t\t\t\targs[i - 1] = arguments[i];\n\t\t\t}\n\t\t\tapply.call(listeners, this, args);\n\t\t}\n\t}\n};\n\nmethods = {\n\ton: on,\n\tonce: once,\n\toff: off,\n\temit: emit\n};\n\ndescriptors = {\n\ton: d(on),\n\tonce: d(once),\n\toff: d(off),\n\temit: d(emit)\n};\n\nbase = defineProperties({}, descriptors);\n\nmodule.exports = exports = function (o) {\n\treturn (o == null) ? create(base) : defineProperties(Object(o), descriptors);\n};\nexports.methods = methods;\n","var $ = require('../internals/export');\nvar log1p = require('../internals/math-log1p');\n\n// `Math.log1p` method\n// https://tc39.github.io/ecma262/#sec-math.log1p\n$({ target: 'Math', stat: true }, { log1p: log1p });\n","var has = require('../internals/has');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nmodule.exports = function (object, names) {\n  var O = toIndexedObject(object);\n  var i = 0;\n  var result = [];\n  var key;\n  for (key in O) !has(hiddenKeys, key) && has(O, key) && result.push(key);\n  // Don't enum bug & hidden keys\n  while (names.length > i) if (has(O, key = names[i++])) {\n    ~indexOf(result, key) || result.push(key);\n  }\n  return result;\n};\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $reduce = require('../internals/array-reduce').left;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\n\n// `%TypedArray%.prototype.reduce` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.reduce\nArrayBufferViewCore.exportProto('reduce', function reduce(callbackfn /* , initialValue */) {\n  return $reduce(aTypedArray(this), callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $includes = require('../internals/array-includes').includes;\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// `Array.prototype.includes` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.includes\n$({ target: 'Array', proto: true }, {\n  includes: function includes(el /* , fromIndex = 0 */) {\n    return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n  }\n});\n\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('includes');\n","import {selectionMouseUp} from '../../MouseSelection/actions';\nimport MouseSelectionStore from '../../MouseSelection/store';\nimport HandlersStore from '../store';\nimport resetHandle from '../actions/resetHandle';\nimport allHandlers from '../allHandlers';\nimport {openPageSettings} from '../../../InspectorPanel/actions';\nimport {exitGroupEditMode} from '../../../../app/freelayout_editor/actions/groupEditMode';\n\nexport default function editOnMouseUp(e) {\n    if ('button' in e && e.button !== 0) {\n        return;\n    }\n\n    const handler = allHandlers.handlerForElement(e.target);\n    const editorState = this.props.editorState;\n    let currentSelection = this.props.currentSelection;\n    const commenting = this.props.commenting;\n\n    const entity = handler && editorState.getEntity(handler.key);\n    const isTargetLocked = entity && entity.getLocked();\n    const hasOnlyLockedEntities = currentSelection.getEntities().every(eKey => editorState.getEntity(eKey).getLocked());\n    const groupsInEditMode = this.props.groupsInEditMode;\n\n    if (HandlersStore.activeHandle && HandlersStore.activeHandle.get('type') === 'selectMarker') {\n        const commentKey = HandlersStore.activeHandle.get('key');\n        const comment = this.props.comments && this.props.comments.find(c => c.key === commentKey);\n        if (comment) {\n            this.props.onToggleComment(comment);\n        }\n    } else if (!MouseSelectionStore.rectangle && e.target === this._element && HandlersStore.pointerDown) {\n        // Click outside\n        currentSelection = currentSelection.clear();\n    } else if (!MouseSelectionStore.rectangle && handler && handler.type === 'select_entity') {\n        const groupBeingEdited = groupsInEditMode && groupsInEditMode.size;\n        //we don't want users to multi select entity outside its group.\n        if (e.shiftKey && !currentSelection.isEmpty() && groupBeingEdited && groupsInEditMode.first() !== entity.getGroupKey()) {\n            return;\n        }\n\n        if (entity.getGroupKey() && groupsInEditMode.first() !== entity.getGroupKey()) {\n            exitGroupEditMode(entity.getGroupKey());\n        }\n\n        if (!entity.getGroupKey() && groupBeingEdited) {\n            exitGroupEditMode(null);\n        }\n        //We do not want to have locked and unlocked elements in the same selection.\n        if (currentSelection.isEmpty() || isTargetLocked && hasOnlyLockedEntities || !isTargetLocked && !hasOnlyLockedEntities) {\n            if (commenting) {\n                e.preventDefault();\n                const entity = editorState.getEntity(handler.key);\n                currentSelection = currentSelection.clear().addEntities(handler.key);\n                // it is important to update selection before adding marker\n                // to avoid draft-js errors when adding comment to text elements\n                this.updateSelection(currentSelection);\n                this.props.onAddComment(entity.getBlockKey(), entity, {\n                    scaleX: this.props.scaleX,\n                    scaleY: this.props.scaleY,\n                    mouseX: e.clientX,\n                    mouseY: e.clientY,\n                });\n                return;\n            } else if (currentSelection.getEntities().includes(handler.key)) {\n                // Allow to deselect by shift-clicking the selected object.\n                if (e.shiftKey) {\n                    currentSelection = currentSelection.removeEntities(handler.key);\n                } else if (currentSelection.getEntities().size === 1 && entity.getCallout()) {\n                    this.props.onToggleCallout(entity);\n                }\n            } else {\n                let firstEntity = !currentSelection.isEmpty() && editorState.getEntity(currentSelection.getEntities().first());\n\n                if (!e.shiftKey || firstEntity && firstEntity.getCalloutKey() || entity && entity.getCalloutKey()) {\n                    // callout entities in multi-select are not allowed\n                    currentSelection = currentSelection.clear();\n                    firstEntity = null;\n                }\n\n                if (!currentSelection.hasNoBlocks()) {\n                    currentSelection = currentSelection.clearBlocks();\n                }\n                //We don't want users to add entity from different block to current selection.\n                const currentBlockKey = firstEntity && firstEntity.getBlockKey();\n                const targetBlockKey = entity && entity.getBlockKey();\n                const isOnCurrentBlock = currentBlockKey === targetBlockKey;\n                if (isOnCurrentBlock || currentSelection.isEmpty()) {\n                    currentSelection = currentSelection.addEntities(handler.key);\n                }\n            }\n        } else {\n            currentSelection = currentSelection.clear().addEntities(handler.key);\n        }\n        this.props.onCloseConversations();\n    } else if (!MouseSelectionStore.rectangle && handler && handler.type === 'select_block') {\n        e.preventDefault();\n        if (commenting) {\n            this.props.onAddComment(handler.key, null, {\n                scaleX: this.props.scaleX,\n                scaleY: this.props.scaleY,\n                mouseX: e.clientX,\n                mouseY: e.clientY,\n            });\n            return;\n        }\n        currentSelection = currentSelection.clear().addBlocks(handler.key);\n\n        this.props.onCloseConversations();\n    } else {\n        e.preventDefault();\n    }\n\n    if (currentSelection !== this.props.currentSelection) {\n        this.updateSelection(currentSelection);\n    }\n\n    if (currentSelection.isEmpty() && currentSelection.getBlocks().size === 1) {\n        openPageSettings(currentSelection.getBlocks().first());\n    }\n\n    resetHandle();\n    if (this.updateLoop.running) {\n        this.updateLoop.stop();\n    }\n    selectionMouseUp();\n}\n","var $ = require('../internals/export');\nvar fill = require('../internals/array-fill');\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// `Array.prototype.fill` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.fill\n$({ target: 'Array', proto: true }, {\n  fill: fill\n});\n\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('fill');\n","'use strict';\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n  this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n  return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n","var typedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Float32Array` constructor\n// https://tc39.github.io/ecma262/#sec-typedarray-objects\ntypedArrayConstructor('Float32', 4, function (init) {\n  return function Float32Array(data, byteOffset, length) {\n    return init(this, data, byteOffset, length);\n  };\n});\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n  return EXISTS ? document.createElement(it) : {};\n};\n","import PropTypes from 'prop-types';\nimport React, {PureComponent} from 'react';\n\nimport {\n    ROUNDED_SHAPE_DEFAULT_RADIUS,\n} from './constants';\n\n\nconst strokeDasharray = (type, width) => {\n    return {\n        dashed: `${2 * width}, ${width}`,\n        dotted: `${width}, ${width}`,\n    }[type];\n};\n\nconst defaultSize = {\n    rectangle: {width: 200, height: 200},\n    rounded: {width: 200, height: 200},\n    oval: {width: 200, height: 100},\n};\n\nexport default class Rectangle extends PureComponent {\n    static propTypes = {\n        entity: PropTypes.shape({\n            getProperty: PropTypes.func.isRequired,\n            width: PropTypes.number.isRequired,\n            height: PropTypes.number.isRequired,\n        }).isRequired,\n        design: PropTypes.any.isRequired,\n    };\n\n    static defaultShapeProps = (({type}, options) => {\n        const size = defaultSize[type];\n        const width = options.elementWidth || size.width;\n        const height = width * size.height / size.width;\n\n        return {\n            props: {\n                opacity: 1,\n                rx: type === 'rounded' ? ROUNDED_SHAPE_DEFAULT_RADIUS : 0,\n                ry: type === 'rounded' ? ROUNDED_SHAPE_DEFAULT_RADIUS : 0,\n                stroke: '{{strokeColor|#656565}}',\n                strokeWidth: 0,\n                strokeType: 'solid',\n                fill: '{{fillColor|#656565}}',\n                type: type === 'oval' ? 'oval' : 'rectangle',\n            },\n            width,\n            height,\n        };\n    });\n\n    render() {\n        const {\n            entity,\n            design,\n        } = this.props;\n\n        const type = entity.getProperty('type');\n        const strokeWidth = entity.getProperty('strokeWidth', design);\n        const sizeAdjustment = strokeWidth / 2;\n        const staticR = type === 'oval' && (entity.height / 2) - sizeAdjustment;\n        const props = {\n            pointerEvents: 'auto',\n            rx: staticR || entity.getProperty('rx', design) || 0,\n            ry: staticR || entity.getProperty('ry', design) || 0,\n            strokeWidth,\n            fill: entity.getProperty('fill', design),\n            stroke: entity.getProperty('stroke', design),\n            strokeDasharray: strokeDasharray(entity.getProperty('strokeType', design), strokeWidth),\n            x: sizeAdjustment,\n            y: sizeAdjustment,\n            width: entity.width - sizeAdjustment * 2,\n            height: entity.height - sizeAdjustment * 2,\n        };\n        return (\n            <svg width=\"100%\" height=\"100%\" preserveAspectRatio=\"none\" strokeMiterlimit=\"60\">\n                <rect {...props}/>\n            </svg>\n        );\n    }\n}\n","var E_NOSCROLL = new Error('Element already at target scroll position')\nvar E_CANCELLED = new Error('Scroll cancelled')\nvar min = Math.min\nvar ms = Date.now\n\nmodule.exports = {\n  left: make('scrollLeft'),\n  top: make('scrollTop')\n}\n\nfunction make (prop) {\n  return function scroll (el, to, opts, cb) {\n    opts = opts || {}\n\n    if (typeof opts == 'function') cb = opts, opts = {}\n    if (typeof cb != 'function') cb = noop\n\n    var start = ms()\n    var from = el[prop]\n    var ease = opts.ease || inOutSine\n    var duration = !isNaN(opts.duration) ? +opts.duration : 350\n    var cancelled = false\n\n    return from === to ?\n      cb(E_NOSCROLL, el[prop]) :\n      requestAnimationFrame(animate), cancel\n\n    function cancel () {\n      cancelled = true\n    }\n\n    function animate (timestamp) {\n      if (cancelled) return cb(E_CANCELLED, el[prop])\n\n      var now = ms()\n      var time = min(1, ((now - start) / duration))\n      var eased = ease(time)\n\n      el[prop] = (eased * (to - from)) + from\n\n      time < 1 ?\n        requestAnimationFrame(animate) :\n        requestAnimationFrame(function () {\n          cb(null, el[prop])\n        })\n    }\n  }\n}\n\nfunction inOutSine (n) {\n  return 0.5 * (1 - Math.cos(Math.PI * n))\n}\n\nfunction noop () {}\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/forced-string-html-method');\n\n// `String.prototype.bold` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.bold\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('bold') }, {\n  bold: function bold() {\n    return createHTML(this, 'b', '', '');\n  }\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Cookies = require(\"es-cookie\");\nvar uuidv4 = require(\"uuid/v4\");\nvar SINGLE_PAGE_SESSION_ID = uuidv4();\nfunction getSinglePageSessionId() {\n    return SINGLE_PAGE_SESSION_ID;\n}\nexports.getSinglePageSessionId = getSinglePageSessionId;\nvar THIRTY_MIN_IN_MILLISEC = 30 * 60 * 1000;\nvar setNewSessionId = function (sessionId) {\n    var now = Date.now();\n    var expiryDate = new Date(now + THIRTY_MIN_IN_MILLISEC);\n    var newCookie = { session_id: sessionId, timestamp: now };\n    Cookies.set('glassbox-session-id', btoa(JSON.stringify(newCookie)), {\n        expires: expiryDate,\n    });\n    return newCookie.session_id;\n};\nexports.getSessionId = function () {\n    var sessionIdCookie = Cookies.get('glassbox-session-id');\n    var sessionId;\n    if (sessionIdCookie == null) {\n        sessionId = uuidv4();\n    }\n    else {\n        var sessionCookie = JSON.parse(atob(sessionIdCookie));\n        var earliestValidTime = Date.now() - THIRTY_MIN_IN_MILLISEC;\n        sessionId = sessionCookie.timestamp >= earliestValidTime ? sessionCookie.session_id : uuidv4();\n    }\n    return setNewSessionId(sessionId);\n};\nexports.getReferrerUrl = function () {\n    return document.referrer;\n};\n","var $ = require('../internals/export');\nvar assign = require('../internals/object-assign');\n\n// `Object.assign` method\n// https://tc39.github.io/ecma262/#sec-object.assign\n$({ target: 'Object', stat: true, forced: Object.assign !== assign }, {\n  assign: assign\n});\n","export default 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}","import {scrollOrNavigateToPage} from './actions';\n\nimport EditorStateStore from '../stores/EditorStateStore';\n\nexport function navigateToPageLinkHandler(e) {\n    const {target} = e;\n    if (target.nodeType !== 1) { //ELEMENT_NODE\n        return;\n    }\n    const link = target.closest('[data-block-key]');\n    if (!link) {\n        return;\n    }\n    const key = link.getAttribute('data-block-key');\n    const pageNumber = EditorStateStore.editorState.getCurrentContent().getBlockIndex(key);\n    if (pageNumber === -1) {\n        return;\n    }\n    e.preventDefault();\n    scrollOrNavigateToPage(pageNumber);\n}\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar floor = Math.floor;\n\n// `%TypedArray%.prototype.reverse` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.reverse\nArrayBufferViewCore.exportProto('reverse', function reverse() {\n  var that = this;\n  var length = aTypedArray(that).length;\n  var middle = floor(length / 2);\n  var index = 0;\n  var value;\n  while (index < middle) {\n    value = that[index];\n    that[index++] = that[--length];\n    that[length] = value;\n  } return that;\n});\n","/* global window, fetch */\nconst EventEmitter = require('events');\n\nmodule.exports = class TaskProgressMonitor extends EventEmitter {\n    constructor(taskId) {\n        super();\n        this.taskId = taskId;\n\n        this.progress = null;\n        this.status = 'init';\n        this.result = {};\n\n        if (typeof window.EventSource !== 'undefined') {\n            this.startEventSourceListener();\n        } else {\n            this.startPollingListener();\n        }\n    }\n\n    startEventSourceListener() {\n        this._es = new window.EventSource(`/api/tasks/${this.taskId}`);\n        this._es.onmessage = (message) => {\n            const abort = this.handleResult(JSON.parse(message.data));\n            if (abort) {\n                this._es.close();\n            }\n        };\n        this._es.onerror = () => {\n            this._es.close();\n            this.handleResult({progress: null, status: 'failure', result: null});\n        };\n    }\n\n    // Mostly for IE\n    startPollingListener() {\n        const checkStatus = async () => {\n            let abort = false;\n            let data = undefined;\n            try {\n                const res = await fetch(`/api/tasks/${this.taskId}`);\n                data = await res.json();\n            } catch (e) {\n                abort = true;\n            }\n\n            if (abort) {\n                this.handleResult({progress: null, status: 'failure', result: null});\n                return;\n            }\n\n            if (!this.handleResult(data)) {\n                setTimeout(checkStatus, 1000);\n            }\n        };\n        checkStatus();\n    }\n\n    handleResult({progress, status, result}) {\n        let abort = false;\n        switch (status) {\n            case 'executing':\n                if (this.progress !== progress) {\n                    this.emit('progress', progress);\n                }\n                break;\n            case 'success':\n                this.emit('complete', result);\n                abort = true;\n                break;\n            case 'failure':\n                this.emit('error', result);\n                abort = true;\n                break;\n            default:\n                console.error(`Unknown event status '${status}'`);\n        }\n        this.progress = progress;\n        this.status = status;\n        this.result = result;\n        return abort;\n    }\n};\n","import PropTypes from 'prop-types';\nimport ImmutablePropTypes from 'react-immutable-proptypes';\n\nexport const FiltersPropTypes = {\n    Filters: ImmutablePropTypes.mapOf(\n        PropTypes.oneOfType([PropTypes.number, PropTypes.string]), PropTypes.string\n    ),\n};\n\nexport const FilterElementPropTypes = {\n    amount: PropTypes.number,\n    in1: PropTypes.string,\n    result: PropTypes.string,\n};\n\nexport default FiltersPropTypes;\n","var anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar newPromiseCapability = require('../internals/new-promise-capability');\n\nmodule.exports = function (C, x) {\n  anObject(C);\n  if (isObject(x) && x.constructor === C) return x;\n  var promiseCapability = newPromiseCapability.f(C);\n  var resolve = promiseCapability.resolve;\n  resolve(x);\n  return promiseCapability.promise;\n};\n","var global = require('../internals/global');\nvar hide = require('../internals/hide');\n\nmodule.exports = function (key, value) {\n  try {\n    hide(global, key, value);\n  } catch (error) {\n    global[key] = value;\n  } return value;\n};\n","/* global */\nimport React, {Component} from 'react';\nimport {connect} from 'react-redux';\nimport PropTypes from 'prop-types';\nimport _ from 'lodash';\n\nimport cx from 'classnames';\n\nimport CurrentInfographicStore from '../app/main/stores/CurrentInfographicStore';\nimport Url from '../shared/url';\nimport Header from './Header';\nimport Footer from './Footer';\nimport PasswordPrompt from './PasswordPrompt';\nimport RelatedInfographics from './RelatedInfographics';\nimport EditorStateStore from '../app/freelayout_editor/stores/EditorStateStore';\nimport Presentation from '../app/freelayout_editor/components/Presentation';\nimport PresentationStore from '../app/freelayout_editor/components/Presentation/store';\nimport ProjectSettingsStore from '../components/InspectorPanel/panels/ProjectSettings/store';\nimport ResponsiveInfographic from '../web/ResponsiveInfographic';\nimport ResponsiveInfographicStore from './ResponsiveInfographic/ResponsiveInfographic.store';\nimport SharePlaceholder from './SharePlaceholder';\nimport WebViewStore from './WebView.store';\nimport {loadInfographicFromRawData} from '../app/main/actions/loadInfographic';\nimport {engagementInscreen} from '../components/EngagementAnalytics/EngagementAnalytics.actions';\nimport fluxContainer from '../fluxContainer';\n\nimport {\n    enterFullscreen as enterResponsiveInfographicFullscreen,\n} from './ResponsiveInfographic/ResponsiveInfographic.actions';\nimport {\n    enterFullscreen as enterPresentationFullscreen,\n} from '../app/freelayout_editor/components/Presentation/actions';\nimport {\n    getRelatedInfographics,\n} from './WebView.actions.js';\nimport {\n    isFlex,\n} from '../app/constants';\n\nimport responsiveFooter from '../common/responsiveFooter';\n\nimport style from './WebInfographicView.css';\nimport Avatar from '../components/Avatar';\n\nconst MAX_CONTAINER_WIDTH = 940;\nconst TOOLBAR_HEIGHT_WITH_MARGIN = 131;\nconst viewMode = 'web';\n\nconst urlObject = Url(document.location.href);\n\n@connect(state => ({\n    branding: state.get('branding'),\n}))\n@fluxContainer({withProps: true})\nexport default class WebInfographicView extends Component {\n    static getStores() {\n        return [\n            CurrentInfographicStore,\n            EditorStateStore,\n            PresentationStore,\n            ProjectSettingsStore,\n            ResponsiveInfographicStore,\n            WebViewStore,\n        ];\n    }\n\n    static calculateState(prevState) {\n        const model = CurrentInfographicStore.model;\n        let allowFullscreen = EditorStateStore.allowFullscreen;\n        let allowToShare = EditorStateStore.allowToShare;\n        let publicDownloads;\n        if (model && isFlex(model.get('type'))) {\n            publicDownloads = model.attributes.properties.publicDownloads;\n        }\n        if (model && !isFlex(model.get('type'))) {\n            allowFullscreen = model.get('properties').allowFullscreen === undefined || model.get('properties').allowFullscreen;\n            allowToShare = model.get('properties').allowToShare === undefined || model.get('properties').allowToShare;\n        }\n\n        const branding = {\n            webView: {\n                headerBackground: _.get(window, 'author.colors[1]'),\n                metaBackground: _.get(window, 'author.colors[2]'),\n                pageBackground: _.get(window, 'author.colors[0]'),\n                logoImage: _.get(window, 'author.profileLogo'),\n            },\n        };\n\n        return {\n            displayHeader: WebViewStore.displayHeader,\n            editorState: EditorStateStore.editorState,\n            fontsLoaded: prevState && prevState.fontsLoaded,\n            isFreeLayout: isFlex(model?.get('type')),\n            isFullscreen: PresentationStore.isFullscreen || ResponsiveInfographicStore.isFullscreen,\n            relatedInfographics: WebViewStore.relatedInfographics,\n            model,\n            transition: EditorStateStore.presentationTransition,\n            interlinkedCharts: EditorStateStore.interlinkedChartsEnabled,\n            allowFullscreen,\n            allowToShare,\n            publicDownloads,\n            pageStyle: {\n                background: branding.webView.pageBackground,\n            },\n            headerStyle: {\n                background: branding.webView.headerBackground,\n            },\n            metaStyle: {\n                background: branding.webView.metaBackground,\n            },\n            logoImage: branding.webView.logoImage,\n        };\n    }\n\n    constructor(props) {\n        super(props);\n\n        !window.passwordProtected && loadInfographicFromRawData(window.infographicData);\n    }\n\n    static propTypes = {\n        branding: PropTypes.shape({\n            webView: PropTypes.shape({\n                headerBackground: PropTypes.string,\n                metaBackground: PropTypes.string,\n                pageBackground: PropTypes.string,\n                logoImage: PropTypes.string,\n            }),\n        }),\n    }\n\n    render() {\n        if (window.passwordProtected) {\n            return <PasswordPrompt/>;\n        }\n\n        if (!this.state.model) return null;\n        const {model} = this.state;\n        const modelProperties = model.get('properties');\n\n        let authorInfo;\n        let containerStyle;\n        let infographicWidth;\n        let relatedInfographics;\n        let dimensions = {};\n\n        const {isAuthenticated} = window.user;\n        const documentHeight = document.documentElement.clientHeight;\n        const infographicClassName = cx({\n            [style.infographic]: !this.state.isFullscreen,\n            [style.infographicFullscreen]: this.state.isFullscreen,\n        });\n\n        if (!window.author.pro && WebViewStore.relatedInfographics.size) {\n            relatedInfographics = (\n                <RelatedInfographics items={WebViewStore.relatedInfographics}/>\n            );\n        }\n\n        if (!this.state.isFullscreen && this.state.transition !== 'none') {\n            dimensions = Object.assign(dimensions, {\n                maxHeight: documentHeight - TOOLBAR_HEIGHT_WITH_MARGIN,\n            });\n        }\n\n        if (this.state.isFreeLayout && !this.state.isFullscreen && this.state.transition === 'none') {\n            const sizePreset = ProjectSettingsStore.presetName;\n            if (sizePreset.match(/^(a4|us_letter)/)) {\n                dimensions = Object.assign(dimensions, {\n                    width: MAX_CONTAINER_WIDTH,\n                });\n            }\n        }\n\n        const documentWidth = document.documentElement.clientWidth;\n        infographicWidth = this.state.isFreeLayout ?\n                            Math.min(documentWidth, dimensions.width || this.state.editorState.getPageSize().width) :\n                            Math.min(documentWidth, this.state.model.get('width'), MAX_CONTAINER_WIDTH),\n        containerStyle = {\n            style: {\n                width: infographicWidth,\n            },\n        };\n\n        const infographic = this.state.isFreeLayout ? (\n            <Presentation\n                allowFullscreen={this.state.allowFullscreen}\n                allowToShare={this.state.allowToShare}\n                {...dimensions}\n                forcedLiveDataInit={!!urlObject.getParam('live')}\n                showBorder={!this.state.isFullscreen}\n                showChartsOnScroll={this.state.model.get('properties').showChartsOnScroll}\n                publicDownloads={this.state.publicDownloads}\n            />\n            ) :(\n                <ResponsiveInfographic\n                    footer={responsiveFooter(model, viewMode)}\n                    viewMode={viewMode}\n                    showChartsOnScroll={modelProperties.showChartsOnScroll}\n                    publicDownloads={modelProperties.publicDownloads}\n                    allowFullscreen={modelProperties.allowFullscreen !== false}\n                    allowToShare={modelProperties.allowToShare !== false}\n                    zeroPadding={false}\n                    transparent={false}\n                    rtl={modelProperties.rtl}\n                    shrinkMargin={model.get('theme').get('shrinkMargin')}\n                    elements={model.get('elements')}\n                    forcedLiveDataInit={!!urlObject.getParam('live')}\n                    width={infographicWidth}\n                    fullscreen={this.state.isFullscreen}\n                    interactivityHintEnabled={modelProperties.interactivity_hint}\n                />\n            );\n\n        if (!window.author.publicProfileHidden) {\n            authorInfo = (\n                <div className={style.authorInfo}>\n                    <a\n                        className={style.authorImage}\n                        href={`/${window.author.name}`}\n                    >\n                        <Avatar\n                            avatarClass={style.infographicViewAvatar}\n                            avatarImage={window.author.avatar}\n                            fullName={window.author.fullName}\n                        />\n                    </a>\n                    <h2 className={style.authorName}>\n                        <a className={style.authorLink} href={`/${window.author.name}`}>\n                            {window.author.fullName}\n                        </a>\n                    </h2>\n                </div>\n            );\n        }\n\n        return (\n            <div className={style.container} style={this.state.pageStyle}>\n                {!this.state.isFullscreen && (\n                    <Header\n                        avatarURL={window.user.avatar}\n                        avatarFullName={window.user.name}\n                        className={style.header}\n                        onPresentationButtonClick={this._onPresentationButtonClick}\n                        hide={!this.state.displayHeader}\n                        showAvatar={isAuthenticated}\n                        showPresentationButton={this.state.allowFullscreen}\n                        showRegisterButton={!(window.author.business || window.author.enterprise)}\n                        showShareButton={this.state.allowToShare}\n                        showDownloadButton={this.state.model.get('properties').publicDownloads}\n                        style={this.state.headerStyle}\n                        logoImage={this.state.logoImage}\n                    />\n                )}\n\n                <div className={style.center}>\n                    <div\n                        className={style.infographicContainer}\n                        {...containerStyle}\n                    >\n                        <div\n                            className={infographicClassName}\n                        >\n                            { infographic }\n\n                        </div>\n\n                        <SharePlaceholder/>\n\n                        <div className={style.infographicMeta} style={this.state.metaStyle}>\n                            <div className={style.infographicInfo}>\n                                <h1 className={cx('icon-portrait', style.infographicTitle)}>\n                                    {this.state.model.get('title')}\n                                </h1>\n                                {Boolean(this.state.model.get('description').length) && <p className={style.infographicDescription}>{this.state.model.get('description')}</p>}\n                            </div>\n\n                            { authorInfo }\n                        </div>\n                    </div>\n\n                </div>\n\n                {relatedInfographics}\n\n                <Footer style={this.state.headerStyle}/>\n            </div>\n        );\n    }\n\n    componentDidMount() {\n        window.addEventListener('resize', this._rerender);\n        document.body.className += ' loaded';\n    }\n\n    componentDidUpdate() {\n        if (this.modelLoaded) return;\n\n        const model = this.state.model;\n        if (!model) return;\n\n        const title = model.get('title');\n        if (!window.author.pro && title) {\n            getRelatedInfographics(title, model.get('block_id'));\n        }\n\n        if (!window.noTrack) {\n            setTimeout(() => {\n                engagementInscreen();\n            });\n        }\n        this.modelLoaded = true;\n    }\n\n    componentWillUnmount() {\n        window.removeEventListener('resize', this._rerender);\n    }\n\n    _rerender = () => {\n        this.forceUpdate();\n    }\n\n    _onPresentationButtonClick = () => {\n        if (this.state.isFreeLayout) {\n            enterPresentationFullscreen();\n        } else {\n            enterResponsiveInfographicFullscreen();\n        }\n    }\n}\n","var $ = require('../internals/export');\nvar isObject = require('../internals/is-object');\nvar onFreeze = require('../internals/internal-metadata').onFreeze;\nvar FREEZING = require('../internals/freezing');\nvar fails = require('../internals/fails');\n\nvar nativePreventExtensions = Object.preventExtensions;\nvar FAILS_ON_PRIMITIVES = fails(function () { nativePreventExtensions(1); });\n\n// `Object.preventExtensions` method\n// https://tc39.github.io/ecma262/#sec-object.preventextensions\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !FREEZING }, {\n  preventExtensions: function preventExtensions(it) {\n    return nativePreventExtensions && isObject(it) ? nativePreventExtensions(onFreeze(it)) : it;\n  }\n});\n","const IMG_ASSET_ID = /^\\[img=([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})]$/; // [img={uuid_v4}]\nconst IMG = /\\[img=((https?:)?\\/\\/[-a-zA-Z0-9@:%._\\+~#=]{2,256}\\.[a-z]{2,16}\\b[-a-zA-Z0-9@:%_\\+.~#?&//=]*)]/g;\nconst SVG = /\\[svg=([^]*)]/g;\nconst IMG_CONTENT = /^\\[img=(.+)]$/;\n\nmodule.exports = {\n    IMG_ASSET_ID,\n    IMG,\n    SVG,\n    IMG_CONTENT,\n};\n","exports = module.exports = require(\"../../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"._3y7-fPPUP_TSojVVs-ZG7C {\\n    position: absolute;\\n    top: 0;\\n    left: 0;\\n    right: 0;\\n    bottom: 0;\\n    pointer-events: none;\\n}\\n\\n._1D4-tcBfYiYM1YhWWqCKg0 {\\n    position: absolute;\\n    border-left: 1px solid magenta;\\n    border-top: 1px solid magenta;\\n}\\n\\n._4H9LUv9ps7swbo0OTshUL {\\n    position: absolute;\\n    border-left: 1px dashed magenta;\\n    border-top: 1px dashed magenta;\\n}\\n\\n._1GBlkJBYqiNibpG0ma64BO {\\n    position: absolute;\\n    background-color: magenta;\\n}\\n\", \"\"]);\n\n// exports\nexports.locals = {\n\t\"container\": \"_3y7-fPPUP_TSojVVs-ZG7C\",\n\t\"line\": \"_1D4-tcBfYiYM1YhWWqCKg0\",\n\t\"dashedLine\": \"_4H9LUv9ps7swbo0OTshUL\",\n\t\"mark\": \"_1GBlkJBYqiNibpG0ma64BO\"\n};"],"sourceRoot":""}