@micromag/viewer-build 0.2.395 → 0.2.396
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/asset-manifest.json +36 -36
- package/build/index.html +1 -1
- package/build/static/js/{0.738d262a.chunk.js → 0.69a41d35.chunk.js} +2 -2
- package/build/static/js/{0.738d262a.chunk.js.map → 0.69a41d35.chunk.js.map} +1 -1
- package/build/static/js/{1.8b3ff205.chunk.js → 1.8749f3d7.chunk.js} +2 -2
- package/build/static/js/{1.8b3ff205.chunk.js.map → 1.8749f3d7.chunk.js.map} +1 -1
- package/build/static/js/{10.1cb3daca.chunk.js → 10.5548eab7.chunk.js} +2 -2
- package/build/static/js/{10.1cb3daca.chunk.js.map → 10.5548eab7.chunk.js.map} +1 -1
- package/build/static/js/{11.e5cda4e3.chunk.js → 11.5c58bd92.chunk.js} +2 -2
- package/build/static/js/{11.e5cda4e3.chunk.js.map → 11.5c58bd92.chunk.js.map} +1 -1
- package/build/static/js/{12.06c49e96.chunk.js → 12.703b846d.chunk.js} +2 -2
- package/build/static/js/{12.06c49e96.chunk.js.map → 12.703b846d.chunk.js.map} +1 -1
- package/build/static/js/{13.6888ee8a.chunk.js → 13.e2bba628.chunk.js} +2 -2
- package/build/static/js/{13.6888ee8a.chunk.js.map → 13.e2bba628.chunk.js.map} +1 -1
- package/build/static/js/{14.06a09227.chunk.js → 14.95f5da64.chunk.js} +2 -2
- package/build/static/js/{14.06a09227.chunk.js.map → 14.95f5da64.chunk.js.map} +1 -1
- package/build/static/js/{15.be60e44e.chunk.js → 15.f1290dcc.chunk.js} +2 -2
- package/build/static/js/{15.be60e44e.chunk.js.map → 15.f1290dcc.chunk.js.map} +1 -1
- package/build/static/js/4.03dcd345.chunk.js +3 -0
- package/build/static/js/{4.96c340f4.chunk.js.LICENSE.txt → 4.03dcd345.chunk.js.LICENSE.txt} +0 -0
- package/build/static/js/4.03dcd345.chunk.js.map +1 -0
- package/build/static/js/{5.5555a5fa.chunk.js → 5.2ea912f0.chunk.js} +2 -2
- package/build/static/js/{5.5555a5fa.chunk.js.map → 5.2ea912f0.chunk.js.map} +1 -1
- package/build/static/js/{6.4ca96426.chunk.js → 6.517fcd7a.chunk.js} +2 -2
- package/build/static/js/{6.4ca96426.chunk.js.map → 6.517fcd7a.chunk.js.map} +1 -1
- package/build/static/js/{7.f9e2e742.chunk.js → 7.5a52b215.chunk.js} +2 -2
- package/build/static/js/{7.f9e2e742.chunk.js.map → 7.5a52b215.chunk.js.map} +1 -1
- package/build/static/js/{8.e3121c5a.chunk.js → 8.c57879b2.chunk.js} +2 -2
- package/build/static/js/{8.e3121c5a.chunk.js.map → 8.c57879b2.chunk.js.map} +1 -1
- package/build/static/js/{9.d9e4ad43.chunk.js → 9.8eb300f6.chunk.js} +2 -2
- package/build/static/js/{9.d9e4ad43.chunk.js.map → 9.8eb300f6.chunk.js.map} +1 -1
- package/build/static/js/{main.c42fa4c9.chunk.js → main.33657a37.chunk.js} +2 -2
- package/build/static/js/main.33657a37.chunk.js.map +1 -0
- package/build/static/js/{runtime-main.f4f072c5.js → runtime-main.35b56a39.js} +2 -2
- package/build/static/js/{runtime-main.f4f072c5.js.map → runtime-main.35b56a39.js.map} +1 -1
- package/package.json +7 -7
- package/build/static/js/4.96c340f4.chunk.js +0 -3
- package/build/static/js/4.96c340f4.chunk.js.map +0 -1
- package/build/static/js/main.c42fa4c9.chunk.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["public-path.js","../../core/es/index.js","../../core/es/utils.js","../../core/es/contexts.js","../../core/es/hooks.js","../../core/es/components.js","../../../elements/audio/es/index.js","../../../elements/closed-captions/es/index.js","../../../elements/media-controls/es/index.js","../../../elements/video/es/index.js","../../../elements/background/es/index.js","../../../elements/container/es/index.js","../../../elements/stack/es/index.js","../../../elements/layout/es/index.js","../../../elements/text/es/index.js","../../../elements/call-to-action/es/index.js","../../transforms/es/utils.js","../../transforms/es/apple-news.js","../../../screens/audio/es/index.js","../../data/es/index.js","../../../elements/button/es/index.js","../../../elements/heading/es/index.js","../../../elements/scroll/es/index.js","../../../elements/text-input/es/index.js","../../../screens/contribution/es/index.js","../../../elements/image/es/index.js","../../../elements/visual/es/index.js","../../../screens/conversation/es/index.js","../../../elements/grid/es/index.js","../../../screens/gallery/es/index.js","../../../screens/gallery-feed/es/index.js","../../../screens/image/es/index.js","../../../elements/map/es/index.js","../../../screens/map/es/index.js","../../../screens/quiz/es/index.js","../../../elements/quote/es/index.js","../../../screens/quote/es/index.js","../../../screens/ranking/es/index.js","../../../screens/survey/es/index.js","../../../screens/text/es/index.js","../../../screens/timeline/es/index.js","../../../screens/title/es/index.js","../../../screens/video/es/index.js","../../../screens/video-360/es/index.js","../../screens/es/index.js","../../intl/es/index.js","../../fields/es/manager.js","../../viewer/es/index.js","index.js"],"names":["__webpack_public_path__","window","MICROMAG_PUBLIC_PATH","history","PropTypes$1","shape","listen","func","isRequired","push","location","pathname","string","search","intl","locale","formatMessage","defaultMessageContent","type","number","value","defaultMessage","oneOfType","arrayOf","message","id","description","text","label","node","statusCode","oneOf","ref","current","any","target","interaction","interactions","trackingVariables","objectOf","array","user","firstname","lastname","email","gender","birthdate","menuItem","url","external","bool","active","menuItems","breadcrumb","breadcrumbs","device","devices","modal","modals","panel","panels","button","onClick","buttons","bootstrapThemeStrings","bootstrapThemes","buttonTheme","concat","buttonSize","formControlSize","dropdownAlign","component","object","components","errors","formErrors","selectOption","selectOptions","formField","name","formFields","mediaMetadataShape","filename","size","mime","mediaFile","handle","mediaShape","thumbnail_url","metadata","_objectSpread","files","media","medias","mediaTypes","imageMedia","width","height","imageMedias","fontMedia","fontMedias","videoMedia","duration","videoMedias","audioMedia","audioMedias","closedCaptionsMedia","font","fonts","textAlign","color","alpha","textStyle","fontFamily","fontSize","fontStyle","bold","italic","underline","upperCase","align","letterSpacing","lineHeight","borderTypes","borderStyle","style","radius","buttonStyle","backgroundColor","borderRadius","borderWidth","borderColor","margin","top","bottom","gridLayout","rows","columns","objectFitSize","objectFit","fit","horizontalPosition","verticalPosition","textElement","body","headingElement","inputElement","imageElement","imageElements","videoElement","autoPlay","loop","closedCaptions","withSeekBar","withPlayPause","audioElement","closedCaptionsElement","backgroundElement","image","video","imageElementWithCaption","caption","imageElementsWithCaption","stackDirection","stackAlign","stackSpacing","stackElement","direction","spacing","reverse","gridElement","layout","geoPosition","lat","lng","markerShape","title","subtitle","marker","markers","markerWithImage","markersWithImage","answerShape","answer","quizAnswer","good","answers","quizAnswers","callToActionTypes","callToAction","speaker","avatar","side","speakers","conversationMessage","conversationMessages","conversation","messages","fieldShape","field","isSection","fields","screenDefinition","layouts","screenDefinitions","fieldDefinition","fieldDefinitions","storyComponentShape","storyComponent","storyComponents","screenComponent","screenComponents","screen","theme","textStyles","background","colors","viewerTheme","logo","shareUrl","shareImage","favIcon","story","deviceScreen","mediaQuery","deviceScreens","screenSize","screens","renderContext","adFormats","adFormat","iframe","audioComponent","src","track","trackLng","controls","slide","slides","containerStyle","transitionName","transitionParams","easing","transition","transitions","out","searchFilter","searchFilters","paymentItem","date","invoice_link","amount","paymentItems","pageMetadata","canonical","keywords","favicon","rssUrl","atomUrl","microformats","PropTypes","Object","freeze","__proto__","componentNames","Components","keys","map","it","snakeCase","sortedColors","sortBy","uniqueColors","uniqWith","colorA","colorB","ColorsParser","_ref","fieldsManager","screensManager","_classCallCheck","this","_createClass","key","_this","_ref2","_ref2$theme","_ref2$components","reduce","_ref3","_ref3$colors","currentColors","_ref4$fields","getDefinition","fieldsPattern","getColorFieldPatterns","newColors","getColorsFromPath","_toConsumableArray","themeColors","parse","_this2","namePrefix","arguments","length","undefined","patterns","_field$name","_field$type","path","filter","join","_fieldDefinition$fiel","subFields","_fieldDefinition$item","itemsField","_fieldDefinition$sett","settings","fieldIsColor","RegExp","_ref5","_ref5$id","data","keyPrefix","dataIsArray","isArray","_ref6","currentData","_ref6$colors","patternMatch","found","pattern","test","newValue","subColors","isObject","innerColor","split","hex","i","toUpperCase","subReturn","_defineProperty","getComponentFromName","defaultComponent","pascalName","pascalCase","ComponentsManager","_EventEmitter","_inherits","_super","_createSuper","call","namespace","addComponents","newComponents","componentsMaps","emit","manager","getComponents","componentsMap","_this3","matches","exec","EventEmitter","DefinitionsManager","definitions","definition","addDefinitions","uniqBy","getDefinitions","find","_ref$component","allComponents","_ref2$component","EventsManager","element","events","listeners","event","callback","on","addEventListener","off","newEvents","eventName","newListeners","listener","removeEventListener","_len","args","Array","_key","apply","FieldsManager","_DefinitionsManager","_excluded$2","MediasParser","fieldsPatternCache","_ref2$fields","getMediaFieldsPattern","_ref3$theme","_ref3$components","_components$reduce","_ref4","previousComponents","currentMedias","getFieldsPatternByScreen","_MediasParser$replace","replaceMediasWithPaths","newScreen","newMedias","_this$toPath","toPath","themeMedias","newTheme","_objectWithoutProperties","defaultMedias","_ref5$theme","_ref5$components","_ref5$medias","componentsPattern","getMediaPatternsFromData","replacePathsWithMedias","fromPath","fieldIsMedia","fieldIsFontFamily","_ref6$media","_ref7","_ref7$id","newData","_ref8","_ref8$id","_ref9","subMedias","mediaPath","getMediaPath","obj","dotObj","dot","isString","match","acc","_typeof","flattenedChild","childAcc","childKey","ScreensManager","_ref$fields","_ref2$layouts","ThemeParser","definitionCache","themeComponents","themeScreen","_theme$components","_theme$background","themeBackground","_theme$colors","_theme$textStyles","themeTextStyles","currentComponents","index","_this$getDefinitionBy","getDefinitionByScreen","parseScreen","slice","themeValue","themeTextSyle","_definition$fields","newThemeValue","newScreenValue","currentValue","fieldValue","fieldThemeValue","newFieldValue","parseField","_definition$theme","fieldTheme","innerField","newInnerField","innerFieldName","_ref3$textStyle","innerFieldTextStyle","_ref3$color","innerFieldColor","colorValue","textStyleValue","_ref4$textStyle","fieldTextStyleName","_ref4$color","fieldColorName","fieldColor","fieldTextStyle","fieldThemeComponentTextStyle","_excluded$1","FontsParser","getFieldsPattern","uniq","currentFonts","newFonts","extractFontsWithPaths","_this$parse","_this$parse$fonts","themeFonts","_ref4$id","_ref5$type","subFonts","valueIsFont","StoryParser","themeParser","mediasParser","fontsParser","_ref2$withTheme","withTheme","_ref2$withMedias","withMedias","_ref2$withFonts","withFonts","parsers","newStory","parsedStory","_slicedToArray","enabled","_excluded","_excluded2","Tracking","_BaseTracking","opts","_this$options$variabl","options","variables","screensViewed","setVariables","screenIndex","_ref$screensCount","screensCount","_ref2$id","screenId","_ref2$type","screenType","_ref2$metadata","screenTitle","indexOf","screenProgress","screensViewedProgress","category","action","_ref4$value","eventCategory","eventAction","eventLabel","eventValue","_ref5$value","_ref5$currentTime","currentTime","optsCurrentTime","_ref6$id","mediaId","_ref6$name","_ref6$duration","rootDuration","_ref6$currentTime","_ref6$metadata","_ref7$duration","mediaCurrentTime","Math","round","mediaProgress","Tracking$1","convertStyleToString","paramCase","isNumber","createUseEvent","eventsManager","useEffect","subscribe","unsubscribe","getColorAsString","overideAlpha","_ref$color","_ref$alpha","tinycolor","setAlpha","toRgbString","getDisplayName","_ref$displayName","displayName","_ref$name","getFieldByName","foundField","_it$name","fieldName","_it$fields","getFontFamily","_ref$fallback","fallback","getRemainder","floor","toFixed","getOptimalImageUrl","containerWidth","containerHeight","maxDiff","_ref$sizes","sizes","_ref$url","defaultUrl","_ref$metadata","imgWidth","imgHeight","finalSizes","original","_Object$keys$reduce","currentDiff","diff","currentIsLarger","isLarger","currentSize","_finalSizes$key","_finalSizes$key$width","_finalSizes$key$heigh","diffWidth","diffHeight","total","abs","Infinity","sizeIsLarger","finalUrl","getStyleFromColor","property","getStyleFromButton","_value$backgroundColo","_value$borderRadius","_value$borderWidth","_value$borderStyle","_value$borderColor","border","_value$width","_value$style","_value$color","getStyleFromBorder","getStyleFromHighlight","_value$textColor","textColor","colorString","boxShadow","mozBoxShadow","msBoxShadow","webkitBoxShadow","getStyleFromLink","_ref$italic","_ref$bold","_ref$underline","fontWeight","textDecoration","getStyleFromText","_value$fontFamily","_value$fontSize","_value$fontStyle","_value$lineHeight","_value$letterSpacing","_value$align","textTransform","transform","_ref$outline","outline","WebkitTextStroke","getStyleFromMargin","_value$top","marginTop","_value$bottom","marginBottom","isIos","includes","navigator","platform","userAgent","document","isImageFilled","_ref$media","isTextFilled$1","_ref$label","_ref2$length","isTextFilled","_ref$body","setValue","keyParts","shift","parseInt","newArrayValue","validateFields","val","required","FIELDS_NAMESPACE","SCREENS_NAMESPACE","ComponentsContext","React","createContext","useComponentsManager","useContext","finalManager","useMemo","useComponent","getComponent","useFieldComponent","propTypes$i","children","instanceOf","ComponentsProvider","previousManager","addNamespace","createElement","Provider","propTypes","defaultProps","FieldsContext","useFieldsManager","propTypes$h","FieldsProvider","newFields","ScreensContext","useScreensManager","propTypes$g","ScreensProvider","newManager","merge","initialComponents","_useState","useState","_useState2","setComponents","onChange","StoryContext","useStory","propTypes$f","StoryProvider","EditorContext","propTypes$e","EditorProvider","parser","useCallback","currentStory","getColors","FieldContext","propTypes$d","context","FieldContextProvider","GoogleKeysContext","apiKey","useGoogleKeys","propTypes$c","GoogleKeysProvider","previousApiKey","FontsContext","systemFonts","googleFonts","customFonts","useGoogleFonts","_ref$disabled","disabled","_ref$setFonts","setFonts","_useGoogleKeys","setGoogleFonts","canceled","getJSON","then","_ref2$items","items","family","variants","propTypes$b","FontsProvider","_useFonts","_ref3$withoutGoogleFo","withoutGoogleFonts","_useContext","_useContext$setGoogle","_useContext$systemFon","_useContext$googleFon","_useContext$customFon","useFonts","_useFonts$systemFonts","previousSystemFonts","_useFonts$googleFonts","previousGoogleFonts","previousCustomFonts","_useState3","_useState4","GoogleApiClientContext","propTypes$a","GoogleApiClientProvider","client","setClient","loadGoogleApi","gapi","init","GoogleMapsClientContext","useGoogleMapsClient","propTypes$9","libraries","GoogleMapsClientProvider","exisitingClient","loadGoogleMaps","newClient","ModalsContext","container","propTypes$8","ModalsProvider","initialContainer","setContainer","setModals","modalsRef","useRef","register","currentModals","newModals","unregister","findIndex","PanelsContext","propTypes$7","PanelsProvider","setPanels","panelsRef","currentPanels","newPanels","RoutesContext","useUrlGenerator","_useContext2","routes","basePath","generatePath","replace","propTypes$6","RoutesProvider","ScreenContext","useScreen","useScreenRenderContext","_ref4$renderContext","isStatic","isCapture","isPlaceholder","isPreview","isEdit","isView","propTypes$5","ScreenProvider","_ref6$data","previousData","_ref6$definition","previousDefinition","_ref6$renderContext","previousContext","finalData","_ref7$type","contextDefinition","finalDefinition","finalRenderContext","ScreenSizeContext","landscape","useScreenSize","propTypes$4","ScreenSizeProvider","setSize","prevWidth","prevHeight","nextWidth","nextHeight","useTracking","TrackingContext","propTypes$3","TrackingProvider","contextTracking","tracking","getVariables","TrackingContainer","packageCache","packagesCache$2","defaultPackagesMap$2","fr","en","packagesCache$1","defaultPackagesMap$1","transloadit","tus","xhr","packagesCache","defaultPackagesMap","webcam","facebook","instagram","dropbox","getTransloaditMediasFromResponse","response","successful","subIt","assembly_id","assembly","results","resultKey","result","itResult","thumbnail","meta","ssl_url","convertToMedia","UppyContext","propTypes$2","transport","sources","templateId","waitForEncoding","companion","allowedHosts","endpoint","UppyProvider","providedTransport","providedLocale","providedSources","providedTransloadit","providedCompanion","providedTus","providedXhr","intlLocale","useIntl","_ref6$transport","contextTransport","_ref6$locale","contextLocale","_ref6$sources","contextSources","_ref6$transloadit","contextTransloadit","_ref6$companion","contextCompanion","_ref6$tus","contextTus","_ref6$xhr","Uppy","loadedPackage","setLoadedPackage","useUppyCore","uppyTransport","_ref$packagesMap","packagesMap","packageLoader","pack","others","dep","useUppyTransport","uppySources","packages","source","sourcePackage","loadedPackages","setLoadedPackages","sourcesToLoad","sourcesLoaded","Promise","all","promise","packagesLoaded","newLoadedPackages","_packagesLoaded$index","otherMap","useUppySources","uppyLocale","useUppyLocale","buildUppy","_ref7$sources","customSources","uppyOpts","newUppy","_transloadit$waitForE","transloaditOpts","use","params","auth","template_id","resume","retryDelays","currentUppy","sourceId","COMPANION","COMPANION_PATTERN","companionUrl","companionAllowedHosts","defaultValue$1","userInteracted","UserInteractionContext","useUserInteracted","propTypes$1","UserInteractionProvider","setUserInteracted","setted","set","defaultValue","menuVisible","menuSize","ViewerContext","useViewer","ViewerProvider","useDocumentEvent","observersCache","Map","getOptionsKey","_ref$root","root","rootMargin","_ref$threshold","threshold","createObserver","Observer","subscribers","addSubscriber","callbacks","removeSubscriber","subCallback","onUpdate","entries","forEach","entry","observer","unobserve","disconnect","subscriber","observe","currentSubscriber","getObserver","observerKey","has","observers","get","useObserver","initialEntry","_opts$root","_opts$rootMargin","_opts$threshold","_opts$disabled","setEntry","nodeRef","currentElement","elementChanged","nodeElement","newEntry","newOpts","_getObserver","localUnsubscribe","thresholdArray","intersectionObserverInitialEntry","time","isVisible","isIntersecting","intersectionRatio","intersectionRect","boundingClientRect","rootBounds","useIntersectionObserver","_ref3$root","_ref3$rootMargin","_ref3$threshold","_ref3$disabled","IntersectionObserver","resizeObserverInitialEntry","contentRect","contentBoxSize","borderBoxSize","useResizeObserver","_ref4$disabled","ResizeObserver","fontsMap","loading","useLoadedFonts","loaded","setLoaded","config","newConfig","isFontLoading","isFontActive","families","load","timeout","fontloading","addFontLoading","fontactive","addFontActive","fontinactive","removeFontLoading","preventDefault","isTouchEvent","touches","preventClickDefault","e","stopPropagation","useLongPress","_ref$onLongPress","onLongPress","_ref$onClick","_ref$shouldPreventDef","shouldPreventDefault","_ref$delay","delay","longPressTriggered","setLongPressTriggered","start","setTimeout","passive","clear","shouldTriggerClick","clearTimeout","onMouseDown","onTouchStart","onMouseUp","onMouseLeave","onTouchEnd","progressSteps","useMediaApi","_ref$initialMuted","initialMuted","_ref$onTimeUpdate","onTimeUpdate","_ref$onProgressStep","onProgressStep","_ref$onDurationChange","onDurationChanged","_ref$onVolumeChanged","onVolumeChanged","_ref$onPlay","onPlay","_ref$onPause","onPause","_ref$onEnded","onEnded","_ref$onSeeked","onSeeked","_ref$onLoadStart","onLoadStart","_ref$onCanPlayThough","onCanPlayThough","_ref$onCanPlay","onCanPlay","_ref$onLoadedData","onLoadedData","_ref$onLoadedMetadata","onLoadedMetadata","muted","setMuted","setCurrentTime","_useState5","_useState6","setDuration","_useState7","_useState8","playing","setPlaying","_useState9","_useState10","ready","setReady","_useState11","_useState12","dataReady","setDataReady","_useState13","_useState14","initialPlay","setInitialPlay","progressStepsReached","paused","play","pause","togglePlay","stop","seek","mute","unMute","toggleMute","onCustomPlay","initial","onCustomPause","midway","onCustomEnded","onCustomTimeUpdate","progress","currentSteps","step","onCustomDurationChange","onCustomSeeked","onCustomVolumeChange","volume","onCustomLoadStart","onCustomCanPlayThrough","onCustomCanPlay","onCustomLoadedMetadata","onCustomLoadedData","_ref$current","readyState","_ref$width","_ref$height","_ref$landscape","_ref$menuOverScreen","menuOverScreen","_ref$screens","_ref$mediaType","mediaType","providedMedia","matchingScreens","_ref2$mediaQuery","getScreenOptions","screenContext","_ref$data","ctxScreenId","ctxScreenType","_ref3$screenId","optsScreenId","_ref3$screenType","hasTracking","useTrackScreenEvent","trackEvent","useTrackScreenMedia","trackMedia","propTypes$J","isHtml","values","Label","Message","FormattedMessage","assign","styles$s","_excluded$8","propTypes$I","href","direct","focusable","icon","iconPosition","disableOnLoading","small","big","withShadow","withoutStyle","withoutTheme","asLink","className","iconClassName","labelClassName","refButton","Button$1","props","finalLabel","hasChildren","hasIcon","hasInlineIcon","hasIconColumns","content","Fragment","classNames","left","center","right","withStyle","buttonClassNames","btn","withIcon","withIconColumns","withText","isSmall","isBig","isLink","isDisabled","isLoading","linkClassNames","linkDisabled","tabIndex","Link$1","to","styles$r","_excluded$7","propTypes$H","renderButton","onClickButton","buttonClassName","defaultProps$H","Buttons","role","_button$className","customClassName","_button$onClick","_onClick","_button$theme","buttonProps","fixedProps","_excluded$6","propTypes$G","BackButton","FontAwesomeIcon","faAngleLeft","_excluded$5","propTypes$F","form","formComponents","gotoFieldForm","closeFieldForm","fieldContext","FieldForm","fieldManager","_foundField$type","_foundField$fields","fieldFields","_foundField$field","finalType","_ref$settings","_ref$itemsField","listItems","getFieldFromPath","fieldProps","_ref3$component","fieldComponent","definitionProps","FieldComponent","onFieldChange","setFieldValue","closeForm","formProps","FormComponent","isForm","styles$q","propTypes$E","method","initialValue","postForm","submitButtonLabel","submitButtonLoadingLabel","actionsAlign","withoutActions","withoutComplete","withoutBackButton","onComplete","onResponse","onMessage","onCancel","onCancelHref","onOpenFieldForm","onCloseFieldForm","fieldsClassName","actionsClassName","cancelClassName","defaultProps$E","Form","initialFields","complete","setComplete","_useForm","providedFields","_ref$injectInFields","injectInFields","fieldsNames","_useBaseForm","useForm$1","useForm","onSubmit","status","generalError","FieldsComponent","canSave","fieldPaths","setFieldPaths","formName","fieldKey","pop","fieldParams","actions","styles$p","_excluded$4","propTypes$D","rel","Link","_excluded$3","propTypes$C","header","imageAlt","imageOverlay","beforeBody","afterBody","links","linksInSameBody","footer","imageClassName","headerClassName","titleClassName","subtitleClassName","bodyClassName","footerClassName","onClickBody","onClickFooter","Card","_ref10","linksElements","_ref2$className","linkClassName","linkProps","bodyInner","cardInner","alt","cardClassName","propTypes$B","animated","Spinner","viewBox","xmlns","x1","y1","x2","y2","stopColor","stopOpacity","offset","fill","fillRule","d","stroke","strokeWidth","attributeName","from","dur","repeatCount","cx","cy","r","styles$o","propTypes$A","FormPanel","styles$n","propTypes$z","separator","withoutBar","noWrap","Breadcrumb","_ref2$active","_ref2$onClick","propTypes$y","visible","itemClassName","onClickItem","onClickOutside","Dropdown","refContainer","onDocumentClick","contains","currentTarget","_it$type","_it$className","_it$label","_it$children","itemChildren","_it$onClick","customOnClick","_it$active","itemProps","ItemComponent","finalOnClickItem","propTypes$x","tagName","itemTagName","linkAsItem","hasSubMenuClassName","subMenuClassName","subMenuItemClassName","subMenuLinkClassName","hasDropdownClassName","dropdownClassName","dropdownItemClassName","dropdownLinkClassName","Menu","dropdownsVisible","setDropdownsVisible","ListComponent","_classNames","_classNames2","_classNames3","_classNames4","_classNames5","_classNames6","_classNames7","_classNames8","_it$linkClassName","customLinkClassName","_it$href","_it$external","_it$items","subItems","_it$dropdown","dropdown","closeDropdown","propTypes$w","brand","brandLink","compact","withoutCollapse","brandClassName","breadCrumbsClassName","Navbar","setMenuVisible","onClickMenu","show","styles$m","defineMessages","previous","next","propTypes$v","page","withPreviousNext","paginationClassName","onClickPage","PaginationMenu","getUrl","currentPage","pages","pageNumber","styles$l","propTypes$u","renderItemButton","TabsMenu","styles$k","propTypes$t","setModalsContainer","ModalsContainer","containerRef","WrappedComponent","WithModalsComponent","Consumer","modalsContainer","registerModal","unregisterModal","withModals","propTypes$s","ElementPortal","finalId","Date","getTime","ReactDOM","createPortal","propTypes$r","ModalPortal","_useModals","_useModals$register","_useModals$unregister","styles$j","propTypes$q","position","Modal","inner","styles$i","propTypes$p","onClickClose","ModalDialog","propTypes$o","opened","onUploaded","onRequestClose","UploadModal","onUpppyComplete","fileTypes","t","uppy","_ref$onComplete","_ref$onFail","onFail","_ref$getFileName","getFileName","_ref2$extension","extension","v1","_ref$meta","_ref$maxNumberOfFiles","maxNumberOfFiles","_ref$allowedFileTypes","allowedFileTypes","_ref$autoProceed","autoProceed","restrictions","onUppyComplete","_response$successful","_response$failed","failed","finalSuccessful","onUpload","_ref4$fileIDs","fileIDs","file","getFile","newName","setFileMeta","close","useUppy","reset","DashboardModal","open","closeAfterFinish","plugins","styles$h","propTypes$n","setPanelsContainer","PanelsContainer","hasPanels","WithPanelsComponent","panelsContainer","registerPanel","unregisterPanel","withPanels","propTypes$m","PanelPortal","_usePanels","_usePanels$panels","_usePanels$register","_usePanels$unregister","styles$g","propTypes$l","Panel","styles$f","propTypes$k","topClassName","contentClassName","openedClassName","CollapsablePanel","setOpened","isOpened","faAngleUp","faAngleDown","propTypes$j","withTime","timeSeparator","Date$1","dateObject","dayjs","toDate","FormattedDate","year","month","day","FormattedTime","throttleDelay","onEnter","onLeave","defaultProps$i","Detector","_useIntersectionObser","enteredRef","triggerChange","intersecting","entered","throttle","trailing","leading","cancel","styles$e","boxClassName","PlaceholderBlock","placeholderProps","ElementComponent","RealComponent","styles$d","withoutBorder","light","Empty","middle","formats","format","FontFaces","fontFaces","_ref2$name","_ref2$media","_ref3$files","urls","currentUrls","finalFormat","formatExtension","styles$c","thumbnailAlign","thumbnailClassName","Media","fullTitle","suffix","Meta","_ref2$canonical","_ref2$description","_ref2$keywords","_ref2$image","_ref2$favicon","_ref2$rssUrl","_ref2$atomUrl","_ref2$microformats","_ref2$language","language","realTitle","_ref3$url","imageUrl","_ref3$metadata","_ref4$width","imageWidth","_ref4$height","imageHeight","_ref5$url","faviconUrl","Helmet","identifier","JSON","stringify","styles$b","auto","Slideshow","setIndex","styles$a","styles$9","lines","lineMargin","PlaceholderText","oddWidth","styles$8","withImages","faImage","faMapMarkerAlt","Video","faVideo","styles$7","Video360","onPrevious","onNext","onEnableInteraction","onDisableInteraction","getMediaRef","Screen","CustomScreenComponent","ContextScreenComponent","useScreenComponent","ScreenComponent","Screen$1","memo","styles$6","defaultProps$8","ScreenPlaceholder","styles$5","ScreenPreview","Preview","styles$4","styles$3","styles$2","Placeholders","AdFrame","faAd","AdImage","Audio","faMusic","Button","line","Conversation","idx","faCommentDots","Image","InputText","Line","shortText","MapPath","mapPath","faMapMarkedAlt","QuizAnswer","_ref$good","faCheck","faTimes","Quote","ShortText","Subtitle","SurveyAnswer","faPercent","Text","_props$height","_props$lines","_props$lineMargin","Timeline","timeline","Title","VideoLoop","faPlay","faRedo","placeholder","preview","empty","emptyLabel","isEmpty","emptyClassName","ScreenElement","_useScreenRenderConte","PlaceholderComponent","styles$1","Screens","styles","fullscreen","onStart","defaultProps$4","Transition","_useSpring","useSpring","_useSpring2","springProps","setSpringProps","immediate","onRest","div","TransitionComponents","Fade","opacity","Scale","Transitions","_useScreenSize$landsc","finalPlaying","finalTransitions","transitionsObject","transitionKey","currentTransition","_finalTransitions$in","transitionIn","_finalTransitions$out","transitionOut","finalTransitionIn","finalTransitionOut","transitionInName","_ref3$name","transitionOutName","sameTransitionInOut","TransitionIn","TransitionOut","transitionInProps","transitionOutProps","renderTransitionOut","stagger","TransitionsStagger","validIndex","Children","child","_child$type","_ref2$withoutTransiti","withoutTransitionsWrapper","el","selector","highlightSelector","HighlightStyle","linkSelector","LinkStyle","sampleWidth","sampleMargin","minSampleHeight","progressColor","audioLevels","onSeek","onResume","onReady","AudioWave","canvasBackgroundRef","canvasProgressRef","_useResizeObserver","elRef","_ref2$width","elWidth","elHeight","x","sampleOuterWidth","samplesCount","levelsBySamples","amplitudes","newAmplitudes","levelStartIndex","levelEndIndex","newValues","minAmplitude","min","delta","max","normalizedAmplitudes","n","canvasBg","canvasProgress","scale","devicePixelRatio","ctxBG","getContext","ctxProgress","clearRect","fillStyle","offsetLeft","amplitude","amplitudeI","sampleHeight","sampleX","sampleY","fillRect","seekFromX","elX","getBoundingClientRect","bind","useGesture","onDrag","xy","elapsedTime","drag","axis","filterTaps","canvas","clipPath","apiRef","waveFake","waveProps","reduceBufferFactor","_ref2$url","_ref3$waveform","waveform","_useMediaApi","api","mediaRef","audioReady","setAudioLevels","blobUrl","setBlobUrl","AudioContext","webkitAudioContext","random","fetch","mode","Error","arrayBuffer","URL","createObjectURL","Blob","decodeAudioData","buffer","numberOfChannels","leftChannelData","getChannelData","newArray","level","levelIndex","crossOrigin","preload","Audio$1","forwardRef","timeOffset","ClosedCaptions","setLines","lineIndex","setLineIndex","startOffset","startSeconds","s","parseFloat","getSecondsFromTime","srt","parseSRT","parsed","console","error","getLineIndexFromTime","currentLineIndex","end","nextLineIndex","dangerouslySetInnerHTML","__html","SeekBar","onSeekClick","currentTargetRect","seekProgress","pageX","onTogglePlay","onToggleMute","MediaControls","faPause","faVolumeUp","playsInline","withoutCors","supportedMimes","mediaUrl","_ref2$files","_ref3$description","_ref3$mime","mediaMime","filesArray","newFiles","getMediaFilesAsArray","sourceFiles","supportVideo","finalSupportedMimes","canPlayType","_file$mime","_ref4$type","originalType","_ref4$mime","originalMime","isImageWithoutSourceFile","withSize","sourceUrl","sourceMime","Video$1","horizontalAlign","verticalAlign","repeat","Background","mediaMetadata","mediaThumbnailUrl","_ref3$width","mediaWidth","_ref3$height","mediaHeight","isVideo","isImage","backgroundImage","backgroundRepeat","backgroundPosition","backgroundSize","videoContainerStyle","_getSizeWithinBounds","getSizeWithinBounds","cover","_getSizeWithinBounds$","videoWidth","_getSizeWithinBounds$2","videoHeight","videoContainer","BackgroundLayers","hasSize","layers","_ref$image","_ref$video","getLayersFromBackground","maxZIndex","_ref3$horizontalAlign","_ref3$verticalAlign","layer","zIndex","Container","StackContext","StackProvider","minSize","maxSize","Spacer","minWidth","maxWidth","minHeight","maxHeight","Stack","flexDirection","alignItems","justifyContent","space","lastIndex","toArray","allChildren","HStack","VStack","distribution","Layout","finalStyle","linksStyle","lineClamp","showEmpty","inline","_ref2$link","link","linkStyle","_ref2$highlight","highlight","highlightStyle","finalLinkStyle","finalHighlightStyle","WebkitLineClamp","needsId","tagProps","Tag","animationDisabled","dragAmount","CallToAction","_ref2$label","swipeUpEnabled","validUrl","_","protocol","isValidUrl","buttonRef","_ref3$textStyle$fontS","_ref3$textStyle$color","arrowStyle","selfTargetLinkRef","leaving","setLeaving","onDragEnd","movement","click","onPageHide","faChevronUp","CallToAction$1","validate","validated","properties","prop","isValid","isInteger","log","stripTags","str","TextStyleDefinition","version","from_class","typed","enum_values","TextStyle","_ref$fontFamily","_ref$fontSize","_ref$lineHeight","validate$1","AudioDefinition","read_only","MediaElement","_story$componentLayou","componentLayouts","TextDefinition","TextElement","_ref$textStyle","styleName","hash","hasStyle","componentStyles","ContainerDefinition","GalleryDefinition","GalleryElement","gallery","_ref$images","images","galleryImages","_ref2$caption","hasUrl","imageCaption","HeadingDefinition","Heading1","heading","ImageDefinition","ImageElement","MapDefinition","_ref$latitude","latitude","_ref$longitude","longitude","MapElement","MosaicDefinition","QuoteDefinition","VideoDefinition","audio","AudioScreen","trackScreenMedia","_useScreenSize","hasCallToAction","backgroundPlaying","transitionPlaying","transitionDisabled","hasAudio","_ref2$autoPlay","_ref2$closedCaptions","_ref2$withPlayPause","hasAudioUrl","finalAudio","hasClosedCaptions","onAudioReady","_ref4$mediaRef","apiMediaRef","isIOS","isMuted","longPressBind","elements","bottomContent","mediaControls","padding","paddingTop","AudioScreen$1","transforms","appleNews","_Audio","titleStory","titleComponent","_Container","Container$1","containerStory","containerComponent","group","defineMessage","order","Base","baseUrl","query","queryString","arrayFormat","getFullUrl","credentials","headers","getCSRFHeaders","postJSON","_method","requestPost","_route","ContributionsApi","_Base","store","update","count","finalQuery","requestGet","route","MediasApi","tags","authors","requestPut","requestDelete","QuizApi","Api","contributions","quiz","ApiContext","useApi","defaultProps$1","ApiProvider","initialApi","previousApi","apiBaseUrl","DataProvider","useData","loadData","_ref$initialData","initialData","_ref$autoload","autoload","setLoading","setError","setData","newError","loader","useQuizCreate","_ref$onSuccess","onSuccess","creating","setCreating","create","screen_id","Heading","HeadingComponent","onScrolledBottom","onScrolledNotBottom","contain","scrollContainerRef","Scroll","withArrow","setWithArrow","scrollableRef","scrollableHeight","_useResizeObserver2","scrolleeRef","scrolleeHeight","scrolledBottomOnce","scrolledNotBottomOnce","reachedBottom","useScroll","scrollY","newWithArrow","nowReachedBottom","maxScrollAmount","scrollTop","withScroll","containOverscroll","scrollable","scrollee","arrowContainer","arrow","faArrowDown","Scroll$1","labelOutside","labelOutsideStyle","multiline","onFocus","onBlur","TextInput","labelStyle","elementStyle","containerProps","elementProps","submit","nameStyle","messageStyle","transitionStagger","resizeTransitionDuration","ContributionScreen","trackScreenEvent","scrollingDisabled","hasTitle","hasNameLabel","isLabelFilled","hasMessageLabel","hasSubmit","contributionsRef","formRef","interactiveContainerHeight","setInteractiveContainerHeight","userName","setUserName","userMessage","setUserMessage","submitState","setSubmitState","onContributionSubmitted","_useContributionCreat","useContributionCreate","submitContribution","_useContributions","_ref$opts","defaultContributions","request","useContributions","onNameChange","onMessageChange","nameFilled","onNameBlur","messageFilled","onMessageBlur","scrolledBottom","setScrolledBottom","swipeUpLinkActive","callToActionRef","_ref2$height","callToActionHeight","offsetHeight","emptyTitle","allContributions","interactiveContainer","transitionDuration","formContent","emptyInputName","inputName","emptyInputMessage","inputMessage","emptySubmit","buttonSubmit","formLoading","loadingIcon","faSpinner","contributionsContainer","contributionsContent","contribution","contributionIndex","nameInnerStyle","messageInnerStyle","contributionName","contributionMessage","submitting","submitted","showContributions","imageStyle","onLoaded","loadingMode","finalContainerStyle","finalImageStyle","mediaRatio","realSize","setRealSize","_ref4$realWidth","realWidth","_ref4$realHeight","realHeight","onImageLoaded","_e$target","_e$target$naturalWidt","naturalWidth","_e$target$naturalHeig","naturalHeight","finalMediaWidth","finalMediaHeight","mediaHasSize","imageTop","imageLeft","imageObjectFit","imageObjectPosition","_ref5$fit","_ref5$horizontalPosit","_ref5$verticalPositio","resizedImageWidth","resizedImageHeight","objectPosition","_finalWidth","_finalHeight","_finalImageStyle","_finalImageStyle$widt","finalWidth","_finalImageStyle$heig","img","onLoad","videoLoop","videoInitialMuted","videoClassName","Visual","_ref2$thumbnail_url","thumbnailUrl","isGIF","elProps","imageElProps","tmpProps","_ref4$fit","_ref5$metadata","_ref6$width","_ref6$height","resizedVideoWidth","resizedVideoHeight","previousMessage","nextMessage","nextMessageState","currentSpeaker","conversationTiming","typingTiming","withAnimation","isPlaying","speakerStyle","ConversationMessage","messageBody","_ref3$avatar","_ref3$avatar$url","avatarUrl","speakerName","_ref3$side","currentSpeakerId","isPrevSpeakerTheSame","isNextSpeakerTheSame","messageState","setMessageState","pauseBeforeTyping","typingDuration","betweenStyle","messageContainer","loadingContainer","loadingSpeakerName","normalRight","nextTheSame","inBetweenRight","normalLeft","inBetweenLeft","last","speakerDetails","avatarContainer","imageContainer","timing","ConversationScreen","timingMode","_ref2$speakers","_ref2$messages","conversationState","setConversationState","chatBottomRef","contentRef","scrollHeight","scrollRef","scrollTo","behavior","animationFinished","conversationStateChange","state","newConversationState","filteredMessages","m","timings","_ref4$timing","_ref4$message","messageI","finalTime","hesitationTimings","_ref5$hesitation","hesitation","messagesUniqueId","viewCTA","shouldPlay","pauseTiming","ConversationScreen$1","vertical","axisClassName","crossClassName","Grid","itemIndex","finalLayout","crossTotal","_ref2$rows","_ref2$columns","crossIndex","crossSize","axisItems","finalAxisItems","axisTotal","axisItem","axisIndex","axisSize","item","layoutProps","withCaptions","captionMaxLines","GalleryScreen","finalSpacing","grid","isPlainObject","_grid$layout","_grid$vertical","gridSpaces","imagesLoaded","setImagesLoaded","imagesCount","imagesEl","imagesSizes","setImagesSizes","contentWidth","contentHeight","imageEl","offsetWidth","itemI","imageSize","finalImage","_ref5$caption","hasImage","hasCaption","gridItem","emptyImage","emptyCaption","captionText","paddingBottom","GalleryScreen$1","_Mosaic","_extends","GalleryFeedScreen","isReversed","editImages","finalImages","firstImageRef","firstImageRefWidth","_ref3$caption","captionElement","GalleryFeedScreen$1","_Gallery","imageFit","defaultImageFit","legend","withTitle","withLegend","ImageScreen","finalImageFit","hasText","hasLegend","isTitleTop","isCard","isCardReverse","isFullscreen","imageCntRef","cardImageMargin","imageMargin","placeholderImage","emptyText","emptyLegend","splice","ImageScreen$1","_Image","imageStory","imageComponent","_Heading","_Text","Text$1","textStory","textComponent","isHorizontal","elementType","stylers","visibility","featureType","eventsMapping","getCenter","onCenterChanged","onBoundsChanged","getBounds","onTilesLoaded","zoom","maxZoom","bounds","draggable","fitBounds","zoomControl","mapTypeControl","scaleControl","streetViewControl","rotateControl","fullscreenControl","Map$1","_useGoogleMap","_ref$maxZoom","_ref$center","_ref$withoutStyle","_ref$fitBounds","_ref$bounds","_ref$draggable","mapRef","resizeRef","_ref3$lat","_ref3$lng","panTo","setZoom","updateBounds","newBounds","equals","getZoom","panToBounds","setOptions","scrollWheel","disableDoubleClickZoom","gestureHandling","maps","addListener","useGoogleMap","cloneElement","eventMapping","onDoubleClick","iconSize","Marker","_ref$position","_ref$icon","_ref$iconSize","markerRef","setPosition","updateIcon","newIcon","iconUrl","setIcon","scaledSize","Size","clearInstanceListeners","setMap","useGoogleMapMarker","onClickMap","onClickMarker","_ref2$geoPosition","extend","LatLng","LatLngBounds","_ref5$active","_ref5$geoPosition","_ref5$image","_ref5$title","defaultCenter","openedMarkerSpacerHeight","withMarkerImages","MapScreen","_ref13","_useGoogleKeys$apiKey","selectedMarkerIndex","setSelectedMarkerIndex","hasSelectedMarker","lastRenderedMarker","markerOverlayContentStyle","onMapReady","finalMarkers","markerI","closeMarker","lastMarker","markerIndex","onButtonClick","onCloseClick","onMapDragEnd","coords","toJSON","selectedMarker","markerOverContentInnerRef","markerOverContentInnerWidth","markerImagesLoaded","setMarkerImagesLoaded","allMarkersImagesLoaded","finalReady","imgs","_ref6$url","onload","PlaceholderMap","staticUrl","_ref7$lat","_ref7$lng","_ref8$geoPosition","_ref9$lat","_ref9$lng","_ref10$image","_ref11$url","_ref12","_ref12$title","markerTitle","_ref12$subtitle","markerSubtitle","_ref12$description","markerDescription","_ref12$image","markerImage","hasMarkerTitle","hasMarkerSubtitle","hasMarkerDescription","hasMarkerImage","hasDescription","hasButton","markerOverlayContainer","markerOverlayScrollable","markerOverlaySafe","markerOverlay","markerOverlayContent","swipeIndicator","markerOverlayContentInner","splash","emptyDescription","emptyButton","ButtonElement","splashButton","closeButton","_ref3$geoPosition","_ref4$lat","_ref4$lng","_Map","question","buttonsStyle","goodAnswerColor","badAnswerColor","showResultsDelay","resultsTransitionDuration","QuizScreen","hasQuestion","hasResult","showInstantAnswer","goodAnswerIndex","userAnswerIndex","setUserAnswerIndex","showResults","setShowResults","answerTransitionComplete","setAnswerTransitionComplete","answered","_ref2$good","hasUserAnsweredRight","isSplitted","submitQuiz","onAnswerClick","answerI","answerIndex","answerRef","answerHeight","_useResizeObserver3","rightAnswerRef","rightAnswerHeight","_useResizeObserver4","resultRef","resultHeight","rightAnswerTop","setRightAnswerTop","offsetTop","_ref7$good","isGood","_ref7$label","_ref8$body","choice","userAnswer","_ref9$good","rightAnswer","_ref9$label","_ref9$buttonStyle","answerButtonStyle","_ref10$textStyle","hasAnswer","itemContent","emptyAnswer","resultIcon","faIcon","optionLabel","resultContent","emptyResult","resultText","isList","noValueLabel","quote","author","QuoteScreen","hasQuote","hasAuthor","isTopLayout","isMiddleLayout","quoteWithMargin","emptyQuote","withMargin","emptyAuthor","QuoteScreen$1","_Quote","Quote$1","quoteStory","quoteComponent","_Author","authorStory","authorComponent","fieldType","numbersStyle","ascending","RankingScreen","finalItems","itemsCount","_ref2$title","titleElement","descriptionElement","rankText","rank","scroll","_ref$items","_ref$ascending","allItems","_Text2","descriptionStory","descriptionComponent","reducedStory","_Container2","bigContainerStory","bigContainerComponent","resultsStyle","barColor","withPercentLabels","resultTransitionDuration","SurveyScreen","_ref14","_useQuiz","useQuiz","_useQuiz$quiz","quizAnswersComputed","points","_ref2$count","computed","answersTotal","ans","_ref3$label","_ref4$body","_ref5$count","qa","countWithUser","percent","evenlySplit","numbers","desiredTotal","remainder","sort","a","b","sum","res","getLargestRemainderRound","emptyQuestion","buttonsRefs","labelsRefs","buttonMaxWidth","setButtonMaxWidth","finalTransitionDuration","currentMaxWidth","totalWidth","clientWidth","_ref6$barColor","resultsBarColor","_ref6$textColor","resultsTextColor","_ref7$buttonStyle","_ref7$resultStyle","resultStyle","_ref8$barColor","answerResultBarColor","answerResultTextColor","_ref9$body","_ref10$percent","_ref11$textStyle","_ref12$color","labelColor","hasAnswerLabel","placeholderAnswer","itemInner","itemLabel","itemText","resultContainer","transitionDelay","resultLabel","TextScreen","titleWithMargin","TextScreen$1","bulletColor","lineColor","bulletShape","bulletFilled","illustrated","curr","transitionsPlaying","firstLineRef","firstContentRef","setImageWidth","timelineElements","_ref3$title","_ref3$image","elementsTypes","titleIndex","imageIndex","typesCount","typeI","elementContent","hasElement","firstItem","lastItem","lastType","topLineHidden","bottomLineHidden","hidden","bullet","lastContent","_ref7$height","withoutLines","withSubtitle","withDescription","descriptionEmptyLabel","TitleScreen","hasSubtitle","layoutParts","subtitleWithMargin","TitleScreen$1","credits","TitleSubtitleCreditsScreen","_Heading2","subtitleStory","subtitleComponent","creditsStory","creditsComponent","VideoScreen","_ref2$mediaRef","hasVideo","_ref5$autoPlay","_ref5$media","_ref5$closedCaptions","_ref5$withSeekBar","_ref5$withPlayPause","finalVideo","videoMetadata","videoUrl","_ref6$thumbnail_url","hasVideoUrl","_ref7$width","resizedVideoLeft","resizedVideoTop","onVideoReady","PlaceholderVideo","emptyContainer","VideoScreen$1","_Video","Video360Screen","THREE","Scene","PerspectiveCamera","SphereBufferGeometry","VideoTexture","MeshBasicMaterial","Mesh","WebGLRenderer","MathUtils","useThree","videoContainerRef","hasThumbnail","posterReady","setPosterReady","withVideoSphere","onPosterLoaded","canvasRef","camera","scene","renderer","lon","phi","theta","distance","pointerDown","pointerDownX","pointerDownY","pointerLon","pointerLat","render3D","degToRad","sin","cos","y","z","lookAt","render","_canvasRef$current","canvasWidth","canvasHeight","geometry","_ref8$mediaRef","_ref9$current","mesh","add","setPixelRatio","onFrame","requestRef","startTimeRef","requestAnimationFrame","cancelAnimationFrame","useAnimationFrame","aspect","updateProjectionMatrix","togglePlayTimeout","onPointerDown","clientX","clientY","pixelsMoved","lastPointerClient","pixelsMovedTracked","onPointerMove","_ref10$clientX","_ref10$clientY","downDeltaX","downDeltaY","_ref11","_ref11$x","lastX","_ref11$y","lastY","deltaX","deltaY","onPointerUp","distX","distY","_videoContainer$getBo","_videoContainer$getBo2","containerX","PlaceholderVideo360","canvasButton","showVideo","Video360Screen$1","manager$1","addDefinition","galleryFeed","ranking","survey","video360","ScreensProvider$1","IntlManager","locales","currentLocale","getLocale","localeObj","intlManager","defaultLocales","LocalesContext","useLocales","extraMessages","IntlProvider","previousLocales","IntlContext","_ref2$locale","previousLocale","previousMessages","currentMessages","getMessages","IntlProvider$1","labelPath","noItemLabel","addItemLabel","breadcrumbLabel","dataList","firstOptionAsDefault","textOnly","entriesWithImage","entriesWithVisual","entryWithImage","entryWithVisual","graphBarStyle","imageWithCaption","thumbnailPath","imagesWithCaption","parameters","getDefaultValue","fontStyleName","alignName","transformName","visualWithCaption","visualsWithCaption","visuals","buttonElement","checkboxes","fieldWithForm","itemTextStyle","iconName","prefix","iconRotation","mapZoom","password","radios","screenLayout","select","toggle","tokens","visual","allFields","home","MenuIcon","squareSize","square","squareI","primary","secondary","closeable","onClose","ViewerMenuDots","_ref2$primary","_ref2$secondary","menu","menuIcon","menuButton","onShare","ShareModal","onShareButtonClick","shareButtonProps","onShareWindowClose","shareIconProps","FacebookShareButton","beforeOnClick","resolve","FacebookIcon","TwitterShareButton","TwitterIcon","EmailShareButton","subject","EmailIcon","ShareButton","storyShareModalOpened","setStoryShareModalOpened","onShareIconClick","onStoryShared","onStoryShareCanceled","screenWidth","thumbsPerLine","toggleFullscreen","fullscreenActive","fullscreenEnabled","ViewerMenuPreview","screenSizeRatio","screenRatioHeight","hasItems","thumbSize","setThumbSize","firstScreenContainerRef","_firstScreenContainer","_ref2$colors","_ref2$background","_ref2$textStyles","_ref2$logo","brandLogo","brandTextStyle","_ref4$primary","brandPrimaryColor","_ref4$secondary","brandSecondaryColor","_ref5$color","brandBackgroundColor","brandImageUrl","borderPrimaryColorStyle","colorSecondaryColorStyle","backgroundColorStyle","_ref7$url","brandLogoUrl","brandImageStyle","titleStyle","dragBind","useDrag","dy","tap","eventOptions","capture","faShare","faCompress","faExpand","screenAriaLabel","onKeyUp","ViewerScreen","onScreenChange","tapNextScreenWidthPercent","neighborScreensActive","storyIsParsed","landscapeScreenMargin","withMetadata","withoutMenu","withoutFullscreen","onInteraction","onEnd","onViewModeChange","currentScreenMedia","screensMedias","screenSizeOptions","withoutMaxSize","desktopHeightRatio","screenRatio","defaultProps$2","Viewer","_ref15","_ref$withTheme","_ref$withMedias","_ref$withFonts","useParsedStory","_parsedStory$componen","_parsedStory$title","_parsedStory$metadata","_parsedStory$fonts","_ref4$fontFamily","themeFont","finalFonts","origin","withoutScreensTransforms","trackScreenView","useTrackScreenView","useTrackEvent","_useScreenSizeFromEle","_ref5$width","calculatedWidth","_ref5$height","calculatedHeight","fullWidth","fullHeight","_ref6$withoutMaxSize","_ref6$desktopHeightTh","desktopHeightThreshold","_ref6$desktopHeightRa","_ref6$screenRatio","finalHeight","useScreenSizeFromElement","screenHeight","_ref5$landscape","_ref5$menuOverScreen","menuDotsContainerRef","menuDotsContainerHeight","menuPreviewContainerRef","menuPreviewContainerHeight","screensMediasRef","String","changeIndex","trackingEnabled","currentScreen","_ref8$type","currentScreenRef","onScreenPrevious","focus","onScreenNext","screensInteractionEnabled","setScreensInteractionEnabled","currentScreenInteractionEnabled","onInteractionPrivate","onScreenClick","tappedCurrent","checkClickable","maxDistance","_ref9$tagName","_ref9$parentNode","parentNode","interactionEnabled","nextIndex","_e$currentTarget$getB2","contentX","tapX","menuOpened","previewMenuOpen","setPreviewMenuOpen","stiff","clamp","menuY","setMenuSpring","menuPreviewStyle","menuDragBind","my","first","isMenuOpened","yProgress","menuNowOpened","setPreviewMenu","openPreviewMenu","closePreviewMenu","onClickDotsMenuItem","clickedOnDot","goToScreen","trackAction","trackLabel","onClickPreviewMenuItem","onClickPreviewMenuClose","onClickShare","onContextMenu","overscrollStyle","_useFullscreen","screenfull","isEnabled","setActive","unFullscreen","exit","useFullscreen","onKey","foundMatch","toLowerCase","_ref13$title","_ref13$description","screenDescription","finalTitle","finalMetadata","_ref14$menuTheme","menuTheme","screenName","scr","viewerScreen","screenTransform","ViewerRoutes","otherProps","useHistory","_ref$pathname","_ref$search","useRoutePush","finalOnScreenChange","Switch","Route","exact","defaultRoutes","memoryRouter","withoutRouter","googleApiKey","translations","ViewerContainer","Router","MemoryRouter","BrowserRouter","finalTrackingVariables","_story$id","_story$slug","slug","_story$title","_story$components","storyId","storySlug","storyTitle","_ref3$language","finalLocale","basename","initialStory","MICROMAG_STORY","initialProps","MICROMAG_VIEWER_PROPS","rootElementId","MICROMAG_ROOT_ELEMENT_ID","defaultRootElement","MICROMAG_ROOT_ELEMENT","getElementById","renderStoryFnc","MICROMAG_RENDER_STORY_FNC","renderStory"],"mappings":"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","file":"static/js/main.c42fa4c9.chunk.js","sourcesContent":["/* eslint-disable */\n__webpack_public_path__ =\n typeof window.MICROMAG_PUBLIC_PATH !== 'undefined' ? window.MICROMAG_PUBLIC_PATH : '/';\n","import _objectSpread from '@babel/runtime/helpers/objectSpread2';\nimport PropTypes$1 from 'prop-types';\nimport { snakeCase } from 'snake-case';\nimport _defineProperty from '@babel/runtime/helpers/defineProperty';\nimport _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';\nimport _classCallCheck from '@babel/runtime/helpers/classCallCheck';\nimport _createClass from '@babel/runtime/helpers/createClass';\nimport isArray from 'lodash/isArray';\nimport isObject from 'lodash/isObject';\nimport uniqWith from 'lodash/uniqWith';\nimport sortBy from 'lodash/sortBy';\nimport _inherits from '@babel/runtime/helpers/inherits';\nimport _createSuper from '@babel/runtime/helpers/createSuper';\nimport EventEmitter from 'wolfy87-eventemitter';\nimport 'lodash/isNumber';\nimport 'param-case';\nimport 'react';\nimport isString from 'lodash/isString';\nimport 'tinycolor2';\nimport { pascalCase } from 'change-case';\nimport _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';\nimport _slicedToArray from '@babel/runtime/helpers/slicedToArray';\nimport 'slugify';\nimport uniqBy from 'lodash/uniqBy';\nimport _typeof from '@babel/runtime/helpers/typeof';\nimport uniq from 'lodash/uniq';\nimport { Tracking as Tracking$1 } from '@folklore/tracking';\n\n/**\n * Core\n */\n\nvar history = PropTypes$1.shape({\n listen: PropTypes$1.func.isRequired,\n push: PropTypes$1.func.isRequired\n});\nvar location = PropTypes$1.shape({\n pathname: PropTypes$1.string,\n search: PropTypes$1.string\n});\nvar intl = PropTypes$1.shape({\n locale: PropTypes$1.string.isRequired,\n formatMessage: PropTypes$1.func.isRequired\n});\nvar defaultMessageContent = PropTypes$1.shape({\n type: PropTypes$1.number,\n value: PropTypes$1.string\n});\nvar defaultMessage = PropTypes$1.oneOfType([PropTypes$1.string, PropTypes$1.arrayOf(defaultMessageContent)]);\nvar message = PropTypes$1.shape({\n id: PropTypes$1.string,\n defaultMessage: defaultMessage.isRequired,\n description: PropTypes$1.string\n});\nvar text = PropTypes$1.oneOfType([message, PropTypes$1.string]);\nvar label = PropTypes$1.oneOfType([message, PropTypes$1.node]);\nvar statusCode = PropTypes$1.oneOf([401, 403, 404, 500]);\nvar ref = PropTypes$1.oneOfType([PropTypes$1.shape({\n current: PropTypes$1.any // eslint-disable-line react/forbid-prop-types\n\n}), PropTypes$1.func]);\nvar target = PropTypes$1.oneOf(['_blank', '_self', '_parent']);\nvar interaction = PropTypes$1.oneOf(['tap', 'swipe']);\nvar interactions = PropTypes$1.arrayOf(interaction);\nvar trackingVariables = PropTypes$1.objectOf(PropTypes$1.oneOfType([PropTypes$1.string, PropTypes$1.number, PropTypes$1.array]));\n/**\n * Site\n */\n\nvar user = PropTypes$1.shape({\n id: PropTypes$1.number,\n firstname: PropTypes$1.string,\n lastname: PropTypes$1.string,\n email: PropTypes$1.string,\n gender: PropTypes$1.string,\n birthdate: PropTypes$1.string\n});\nvar menuItem = PropTypes$1.shape({\n id: PropTypes$1.oneOfType([PropTypes$1.number, PropTypes$1.string]),\n label: label,\n url: PropTypes$1.string,\n external: PropTypes$1.bool,\n active: PropTypes$1.bool\n});\nvar menuItems = PropTypes$1.arrayOf(menuItem);\nvar breadcrumb = PropTypes$1.shape({\n label: label,\n url: PropTypes$1.string\n});\nvar breadcrumbs = PropTypes$1.arrayOf(breadcrumb);\nvar device = PropTypes$1.shape({\n id: PropTypes$1.string.isRequired\n});\nvar devices = PropTypes$1.arrayOf(device);\nvar modal = PropTypes$1.shape({\n id: PropTypes$1.string.isRequired\n});\nvar modals = PropTypes$1.arrayOf(modal);\nvar panel = PropTypes$1.shape({\n id: PropTypes$1.string.isRequired\n});\nvar panels = PropTypes$1.arrayOf(panel);\nvar button = PropTypes$1.shape({\n label: label,\n onClick: PropTypes$1.func\n});\nvar buttons = PropTypes$1.arrayOf(button);\nvar bootstrapThemeStrings = ['primary', 'secondary', 'success', 'danger', 'warning', 'info', 'light', 'dark'];\nvar bootstrapThemes = PropTypes$1.oneOf(bootstrapThemeStrings);\nvar buttonTheme = PropTypes$1.oneOf([].concat(bootstrapThemeStrings, ['outline-primary', 'outline-secondary', 'outline-success', 'outline-danger', 'outline-warning', 'outline-info', 'outline-light', 'outline-dark', 'outline-link', null]));\nvar buttonSize = PropTypes$1.oneOf(['lg', 'sm', null]);\nvar formControlSize = PropTypes$1.oneOf(['lg', 'sm', null]);\nvar dropdownAlign = PropTypes$1.oneOf(['left', 'right']);\nvar componentNames = function componentNames(Components) {\n return PropTypes$1.oneOf(Object.keys(Components).map(function (it) {\n return snakeCase(it);\n }));\n};\nvar component = PropTypes$1.oneOfType([PropTypes$1.object, PropTypes$1.func]);\nvar components = PropTypes$1.objectOf(component);\n/**\n * Forms\n */\n\nvar errors = PropTypes$1.oneOfType([PropTypes$1.string, PropTypes$1.arrayOf(PropTypes$1.string)]);\nvar formErrors = PropTypes$1.objectOf(errors);\nvar selectOption = PropTypes$1.oneOfType([PropTypes$1.string, PropTypes$1.shape({\n value: PropTypes$1.any,\n // eslint-disable-line\n label: label\n})]);\nvar selectOptions = PropTypes$1.arrayOf(selectOption);\nvar formField = PropTypes$1.shape({\n name: PropTypes$1.string,\n component: component\n});\nvar formFields = PropTypes$1.arrayOf(formField);\n/**\n * Medias\n */\n\nvar mediaMetadataShape = {\n filename: PropTypes$1.string,\n size: PropTypes$1.number,\n mime: PropTypes$1.string\n};\nvar mediaFile = PropTypes$1.shape({\n id: PropTypes$1.string,\n handle: PropTypes$1.string,\n type: PropTypes$1.string,\n mime: PropTypes$1.string,\n url: PropTypes$1.string\n});\nvar mediaShape = {\n id: PropTypes$1.string,\n type: PropTypes$1.string.isRequired,\n url: PropTypes$1.string,\n // .isRequired,\n thumbnail_url: PropTypes$1.string,\n name: PropTypes$1.string,\n metadata: PropTypes$1.shape(_objectSpread({}, mediaMetadataShape)),\n files: PropTypes$1.objectOf(mediaFile)\n};\nvar media = PropTypes$1.shape(mediaShape);\nvar medias = PropTypes$1.arrayOf(media);\nvar mediaTypes = PropTypes$1.oneOf(['image', 'video', 'audio', 'closed-captions', 'font']);\nvar imageMedia = PropTypes$1.shape(_objectSpread(_objectSpread({}, mediaShape), {}, {\n type: PropTypes$1.oneOf(['image', 'video']),\n metadata: PropTypes$1.shape(_objectSpread(_objectSpread({}, mediaMetadataShape), {}, {\n width: PropTypes$1.number,\n height: PropTypes$1.number\n }))\n}));\nvar imageMedias = PropTypes$1.arrayOf(imageMedia);\nvar fontMedia = PropTypes$1.shape(_objectSpread(_objectSpread({}, mediaShape), {}, {\n type: PropTypes$1.oneOf(['font']),\n metadata: PropTypes$1.shape(_objectSpread({}, mediaMetadataShape))\n}));\nvar fontMedias = PropTypes$1.arrayOf(fontMedia);\nvar videoMedia = PropTypes$1.shape(_objectSpread(_objectSpread({}, mediaShape), {}, {\n type: PropTypes$1.oneOf(['video']),\n metadata: PropTypes$1.shape(_objectSpread(_objectSpread({}, mediaMetadataShape), {}, {\n width: PropTypes$1.number,\n height: PropTypes$1.number,\n duration: PropTypes$1.number\n }))\n}));\nvar videoMedias = PropTypes$1.arrayOf(videoMedia);\nvar audioMedia = PropTypes$1.shape(_objectSpread(_objectSpread({}, mediaShape), {}, {\n type: PropTypes$1.oneOf(['audio']),\n metadata: PropTypes$1.shape(_objectSpread(_objectSpread({}, mediaMetadataShape), {}, {\n duration: PropTypes$1.number\n }))\n}));\nvar audioMedias = PropTypes$1.arrayOf(audioMedia);\nvar closedCaptionsMedia = PropTypes$1.shape(_objectSpread(_objectSpread({}, mediaShape), {}, {\n type: PropTypes$1.oneOf(['closed-captions'])\n}));\n/**\n * Style\n */\n\nvar font = PropTypes$1.oneOfType([PropTypes$1.string, PropTypes$1.shape({\n type: PropTypes$1.oneOf(['system', 'google', 'custom']),\n name: PropTypes$1.string,\n media: fontMedia\n})]);\nvar fonts = PropTypes$1.arrayOf(font);\nvar textAlign = PropTypes$1.oneOf(['left', 'right', 'center']);\nvar color = PropTypes$1.shape({\n color: PropTypes$1.string,\n alpha: PropTypes$1.number\n});\nvar textStyle = PropTypes$1.shape({\n fontFamily: font,\n fontSize: PropTypes$1.number,\n fontStyle: PropTypes$1.shape({\n bold: PropTypes$1.bool,\n italic: PropTypes$1.bool,\n underline: PropTypes$1.bool,\n upperCase: PropTypes$1.bool\n }),\n align: textAlign,\n color: color,\n letterSpacing: PropTypes$1.number,\n lineHeight: PropTypes$1.number\n});\nvar borderTypes = PropTypes$1.oneOf(['dotted', 'dashed', 'solid', 'double', 'groove', 'ridge', 'inset', 'outset', 'hidden']);\nvar borderStyle = PropTypes$1.shape({\n width: PropTypes$1.number,\n style: borderTypes,\n radius: PropTypes$1.number,\n color: color\n});\nvar buttonStyle = PropTypes$1.shape({\n backgroundColor: color,\n borderRadius: PropTypes$1.number,\n borderWidth: PropTypes$1.number,\n borderColor: color,\n borderStyle: borderTypes\n});\nvar margin = PropTypes$1.shape({\n top: PropTypes$1.number,\n bottom: PropTypes$1.number\n});\nvar gridLayout = PropTypes$1.arrayOf(PropTypes$1.shape({\n rows: PropTypes$1.oneOfType([PropTypes$1.number, PropTypes$1.arrayOf(PropTypes$1.number)]),\n columns: PropTypes$1.oneOfType([PropTypes$1.number, PropTypes$1.arrayOf(PropTypes$1.number)])\n}));\nvar objectFitSize = PropTypes$1.oneOf(['cover', 'contain', null]);\nvar objectFit = PropTypes$1.shape({\n fit: objectFitSize,\n horizontalPosition: PropTypes$1.oneOf(['left', 'center', 'right']),\n verticalPosition: PropTypes$1.oneOf(['top', 'center', 'bottom'])\n});\n/**\n * Elements\n */\n\nvar textElement = PropTypes$1.shape({\n body: PropTypes$1.string,\n textStyle: textStyle\n});\nvar headingElement = textElement;\nvar inputElement = PropTypes$1.shape({\n label: PropTypes$1.string,\n textStyle: textStyle\n});\nvar imageElement = PropTypes$1.shape({\n media: imageMedia\n});\nvar imageElements = PropTypes$1.arrayOf(imageElement);\nvar videoElement = PropTypes$1.shape({\n media: videoMedia,\n autoPlay: PropTypes$1.bool,\n loop: PropTypes$1.bool,\n closedCaptions: closedCaptionsMedia,\n withSeekBar: PropTypes$1.bool,\n withPlayPause: PropTypes$1.bool\n});\nvar audioElement = PropTypes$1.shape({\n media: audioMedia,\n autoPlay: PropTypes$1.bool,\n loop: PropTypes$1.bool,\n closedCaptions: closedCaptionsMedia,\n withPlayPause: PropTypes$1.bool\n});\nvar closedCaptionsElement = PropTypes$1.shape({\n media: closedCaptionsMedia\n});\nvar backgroundElement = PropTypes$1.shape({\n color: color,\n image: imageMedia,\n video: videoMedia\n});\nvar imageElementWithCaption = PropTypes$1.shape({\n image: imageMedia,\n caption: textElement\n});\nvar imageElementsWithCaption = PropTypes$1.arrayOf(imageElementWithCaption);\nvar stackDirection = PropTypes$1.oneOf(['horizontal', 'vertical']);\nvar stackAlign = PropTypes$1.oneOf(['start', 'center', 'end']);\nvar stackSpacing = PropTypes$1.oneOfType([PropTypes$1.number, PropTypes$1.oneOf(['between', 'evenly', 'around'])]);\nvar stackElement = PropTypes$1.shape({\n direction: stackDirection,\n align: stackAlign,\n width: PropTypes$1.number,\n height: PropTypes$1.number,\n spacing: stackSpacing,\n reverse: PropTypes$1.bool\n});\nvar gridElement = PropTypes$1.shape({\n layout: PropTypes$1.arrayOf(PropTypes$1.string),\n spacing: PropTypes$1.number\n});\nvar geoPosition = PropTypes$1.shape({\n lat: PropTypes$1.number,\n lng: PropTypes$1.number\n});\nvar markerShape = {\n id: PropTypes$1.number,\n geoPosition: geoPosition,\n title: headingElement,\n subtitle: headingElement,\n description: textElement\n};\nvar marker = PropTypes$1.shape(_objectSpread({}, markerShape));\nvar markers = PropTypes$1.arrayOf(marker);\nvar markerWithImage = PropTypes$1.shape(_objectSpread(_objectSpread({}, markerShape), {}, {\n image: imageMedia\n}));\nvar markersWithImage = PropTypes$1.arrayOf(markerWithImage);\nvar answerShape = {\n id: PropTypes$1.string,\n label: textElement\n};\nvar answer = PropTypes$1.shape(_objectSpread({}, answerShape));\nvar quizAnswer = PropTypes$1.shape(_objectSpread(_objectSpread({}, answerShape), {}, {\n good: PropTypes$1.bool\n}));\nvar answers = PropTypes$1.arrayOf(answer);\nvar quizAnswers = PropTypes$1.arrayOf(quizAnswer);\nvar callToActionTypes = PropTypes$1.oneOf(['swipe-up', 'button']);\nvar callToAction = PropTypes$1.shape({\n active: PropTypes$1.bool,\n type: callToActionTypes,\n url: PropTypes$1.string,\n label: textElement\n});\nvar speaker = PropTypes$1.shape({\n id: PropTypes$1.string,\n name: PropTypes$1.string,\n avatar: imageMedia,\n side: PropTypes$1.oneOf(['left', 'right']),\n color: color\n});\nvar speakers = PropTypes$1.arrayOf(speaker);\nvar conversationMessage = PropTypes$1.shape({\n speaker: PropTypes$1.string,\n message: PropTypes$1.string,\n image: imageMedia\n});\nvar conversationMessages = PropTypes$1.arrayOf(conversationMessage);\nvar conversation = PropTypes$1.shape({\n speakers: speakers,\n textStyle: textStyle,\n messages: conversationMessages\n});\n/**\n * Definitions\n */\n\nvar fieldShape = {\n name: PropTypes$1.string,\n type: PropTypes$1.string.isRequired,\n label: text\n};\nvar field = PropTypes$1.shape(_objectSpread(_objectSpread({}, fieldShape), {}, {\n isSection: PropTypes$1.bool,\n fields: PropTypes$1.arrayOf(PropTypes$1.shape(fieldShape))\n}));\nvar fields = PropTypes$1.arrayOf(field);\nvar screenDefinition = PropTypes$1.shape({\n id: PropTypes$1.string.isRequired,\n type: PropTypes$1.oneOf(['screen']).isRequired,\n title: text.isRequired,\n layouts: PropTypes$1.arrayOf(PropTypes$1.string),\n fields: fields\n});\nvar screenDefinitions = PropTypes$1.arrayOf(screenDefinition);\nvar fieldDefinition = PropTypes$1.shape({\n id: PropTypes$1.string.isRequired,\n type: PropTypes$1.oneOf(['field']).isRequired,\n title: text.isRequired,\n fields: fields\n});\nvar fieldDefinitions = PropTypes$1.arrayOf(fieldDefinition);\n/**\n * Components\n */\n\nvar storyComponentShape = {\n type: PropTypes$1.string.isRequired\n};\nvar storyComponent = PropTypes$1.shape(_objectSpread({}, storyComponentShape));\nvar storyComponents = PropTypes$1.arrayOf(storyComponent);\nvar screenComponent = PropTypes$1.shape(_objectSpread({}, storyComponentShape));\nvar screenComponents = PropTypes$1.arrayOf(screenComponent);\nvar screen = screenComponent; // @NOTE should be removed\n\n/**\n * Theme\n */\n\nvar theme = PropTypes$1.shape({\n id: PropTypes$1.string,\n textStyles: PropTypes$1.objectOf(textStyle),\n // renamed to textstyles\n background: backgroundElement,\n colors: PropTypes$1.objectOf(color),\n components: screenComponents\n});\nvar viewerTheme = PropTypes$1.shape(_objectSpread({\n logo: imageMedia\n}, theme));\n/**\n * Branding\n */\n// export const branding = PropTypes.shape({\n// logo: imageMedia,\n// primaryColor: color,\n// secondaryColor: color,\n// backgroundColor: color,\n// textStyle,\n// });\n\n/**\n * Metadata\n */\n\nvar metadata = PropTypes$1.shape({\n description: PropTypes$1.string,\n shareUrl: PropTypes$1.string,\n shareImage: imageMedia,\n favIcon: imageMedia\n});\n/**\n * Story\n */\n\nvar story = PropTypes$1.shape({\n id: PropTypes$1.string,\n theme: theme,\n components: screenComponents,\n metadata: metadata\n});\n/**\n * Render\n */\n\nvar deviceScreen = PropTypes$1.shape({\n name: PropTypes$1.string.isRequired,\n mediaQuery: PropTypes$1.string\n});\nvar deviceScreens = PropTypes$1.arrayOf(deviceScreen);\nvar screenSize = PropTypes$1.shape({\n screen: PropTypes$1.string,\n screens: PropTypes$1.arrayOf(PropTypes$1.string),\n width: PropTypes$1.number,\n height: PropTypes$1.number\n});\nvar renderContext = PropTypes$1.oneOf(['view', 'placeholder', 'edit', 'preview', 'static', 'capture']);\n/**\n * Screens\n */\n\nvar adFormats = PropTypes$1.shape({\n width: PropTypes$1.number,\n height: PropTypes$1.number\n});\nvar adFormat = PropTypes$1.shape({\n width: PropTypes$1.number,\n height: PropTypes$1.number,\n url: PropTypes$1.string,\n target: target,\n iframe: PropTypes$1.string,\n image: imageMedia\n});\nvar audioComponent = PropTypes$1.shape({\n src: PropTypes$1.string,\n track: PropTypes$1.string,\n trackLng: PropTypes$1.number,\n controls: PropTypes$1.bool\n});\nvar slide = PropTypes$1.shape({\n image: imageMedia,\n text: PropTypes$1.string\n});\nvar slides = PropTypes$1.arrayOf(slide); // export const imageStyle = PropTypes.shape({\n// alt: PropTypes.string,\n// fit: PropTypes.object,\n// });\n\nvar containerStyle = PropTypes$1.shape({});\n/**\n * Transitions\n */\n\nvar transitionName = PropTypes$1.oneOf(['fade', 'scale', 'slide']);\nvar transitionParams = {\n duration: PropTypes$1.number,\n easing: PropTypes$1.oneOf(['ease', 'ease-in', 'ease-out', 'ease-in-out', 'linear'])\n};\nvar transition = PropTypes$1.oneOfType([transitionName.isRequired, PropTypes$1.shape(_objectSpread({\n name: transitionName.isRequired\n}, transitionParams))]);\nvar transitions = PropTypes$1.shape({\n \"in\": transition,\n out: transition\n});\n/**\n * Search\n */\n\nvar searchFilter = PropTypes$1.shape({\n type: PropTypes$1.string,\n value: PropTypes$1.oneOf([PropTypes$1.string, PropTypes$1.number])\n});\nvar searchFilters = PropTypes$1.arrayOf(searchFilter);\n/**\n * Payments\n */\n\nvar paymentItem = PropTypes$1.shape({\n id: PropTypes$1.oneOfType([PropTypes$1.string, PropTypes$1.number]),\n date: PropTypes$1.string,\n type: PropTypes$1.string,\n invoice_link: PropTypes$1.string,\n amount: PropTypes$1.oneOfType([PropTypes$1.string, PropTypes$1.number])\n});\nvar paymentItems = PropTypes$1.arrayOf(paymentItem);\n/**\n * Page Metadada\n */\n\nvar pageMetadata = PropTypes$1.shape({\n canonical: PropTypes$1.string,\n description: PropTypes$1.string,\n keywords: PropTypes$1.oneOfType([PropTypes$1.string, PropTypes$1.array]),\n image: PropTypes$1.shape({\n url: PropTypes$1.string\n }),\n favicon: PropTypes$1.shape({\n url: PropTypes$1.string\n }),\n rssUrl: PropTypes$1.string,\n atomUrl: PropTypes$1.string,\n microformats: PropTypes$1.arrayOf(PropTypes$1.shape({}))\n});\n\nvar PropTypes = /*#__PURE__*/Object.freeze({\n __proto__: null,\n history: history,\n location: location,\n intl: intl,\n defaultMessageContent: defaultMessageContent,\n defaultMessage: defaultMessage,\n message: message,\n text: text,\n label: label,\n statusCode: statusCode,\n ref: ref,\n target: target,\n interaction: interaction,\n interactions: interactions,\n trackingVariables: trackingVariables,\n user: user,\n menuItem: menuItem,\n menuItems: menuItems,\n breadcrumb: breadcrumb,\n breadcrumbs: breadcrumbs,\n device: device,\n devices: devices,\n modal: modal,\n modals: modals,\n panel: panel,\n panels: panels,\n button: button,\n buttons: buttons,\n bootstrapThemes: bootstrapThemes,\n buttonTheme: buttonTheme,\n buttonSize: buttonSize,\n formControlSize: formControlSize,\n dropdownAlign: dropdownAlign,\n componentNames: componentNames,\n component: component,\n components: components,\n errors: errors,\n formErrors: formErrors,\n selectOption: selectOption,\n selectOptions: selectOptions,\n formField: formField,\n formFields: formFields,\n mediaFile: mediaFile,\n media: media,\n medias: medias,\n mediaTypes: mediaTypes,\n imageMedia: imageMedia,\n imageMedias: imageMedias,\n fontMedia: fontMedia,\n fontMedias: fontMedias,\n videoMedia: videoMedia,\n videoMedias: videoMedias,\n audioMedia: audioMedia,\n audioMedias: audioMedias,\n closedCaptionsMedia: closedCaptionsMedia,\n font: font,\n fonts: fonts,\n textAlign: textAlign,\n color: color,\n textStyle: textStyle,\n borderTypes: borderTypes,\n borderStyle: borderStyle,\n buttonStyle: buttonStyle,\n margin: margin,\n gridLayout: gridLayout,\n objectFitSize: objectFitSize,\n objectFit: objectFit,\n textElement: textElement,\n headingElement: headingElement,\n inputElement: inputElement,\n imageElement: imageElement,\n imageElements: imageElements,\n videoElement: videoElement,\n audioElement: audioElement,\n closedCaptionsElement: closedCaptionsElement,\n backgroundElement: backgroundElement,\n imageElementWithCaption: imageElementWithCaption,\n imageElementsWithCaption: imageElementsWithCaption,\n stackDirection: stackDirection,\n stackAlign: stackAlign,\n stackSpacing: stackSpacing,\n stackElement: stackElement,\n gridElement: gridElement,\n geoPosition: geoPosition,\n marker: marker,\n markers: markers,\n markerWithImage: markerWithImage,\n markersWithImage: markersWithImage,\n answerShape: answerShape,\n answer: answer,\n quizAnswer: quizAnswer,\n answers: answers,\n quizAnswers: quizAnswers,\n callToActionTypes: callToActionTypes,\n callToAction: callToAction,\n speaker: speaker,\n speakers: speakers,\n conversationMessage: conversationMessage,\n conversationMessages: conversationMessages,\n conversation: conversation,\n field: field,\n fields: fields,\n screenDefinition: screenDefinition,\n screenDefinitions: screenDefinitions,\n fieldDefinition: fieldDefinition,\n fieldDefinitions: fieldDefinitions,\n storyComponent: storyComponent,\n storyComponents: storyComponents,\n screenComponent: screenComponent,\n screenComponents: screenComponents,\n screen: screen,\n theme: theme,\n viewerTheme: viewerTheme,\n metadata: metadata,\n story: story,\n deviceScreen: deviceScreen,\n deviceScreens: deviceScreens,\n screenSize: screenSize,\n renderContext: renderContext,\n adFormats: adFormats,\n adFormat: adFormat,\n audioComponent: audioComponent,\n slide: slide,\n slides: slides,\n containerStyle: containerStyle,\n transitionName: transitionName,\n transition: transition,\n transitions: transitions,\n searchFilter: searchFilter,\n searchFilters: searchFilters,\n paymentItem: paymentItem,\n paymentItems: paymentItems,\n pageMetadata: pageMetadata\n});\n\nvar sortedColors = function sortedColors(colors) {\n return sortBy(colors, ['color', 'alpha']);\n};\n\nvar uniqueColors = function uniqueColors(colors) {\n return uniqWith(colors, function (colorA, colorB) {\n return colorA.alpha === colorB.alpha && colorA.color === colorB.color;\n });\n};\n\nvar ColorsParser = /*#__PURE__*/function () {\n function ColorsParser(_ref) {\n var fieldsManager = _ref.fieldsManager,\n screensManager = _ref.screensManager;\n\n _classCallCheck(this, ColorsParser);\n\n this.fieldsManager = fieldsManager;\n this.screensManager = screensManager;\n } // Convert medias object to path\n\n\n _createClass(ColorsParser, [{\n key: \"parse\",\n value: function parse(story) {\n var _this = this;\n\n if (story === null) {\n return story;\n }\n\n var _ref2 = story || {},\n _ref2$theme = _ref2.theme,\n theme = _ref2$theme === void 0 ? null : _ref2$theme,\n _ref2$components = _ref2.components,\n components = _ref2$components === void 0 ? [] : _ref2$components;\n\n var _components$reduce = components.reduce(function (_ref3, screen) {\n var _ref3$colors = _ref3.colors,\n currentColors = _ref3$colors === void 0 ? null : _ref3$colors;\n var type = screen.type;\n\n var _ref4 = _this.screensManager.getDefinition(type) || {},\n _ref4$fields = _ref4.fields,\n fields = _ref4$fields === void 0 ? [] : _ref4$fields;\n\n var fieldsPattern = _this.getColorFieldPatterns(fields);\n\n var _ColorsParser$getColo = ColorsParser.getColorsFromPath(screen, fieldsPattern),\n newColors = _ColorsParser$getColo.colors;\n\n return {\n colors: [].concat(_toConsumableArray(currentColors), _toConsumableArray(newColors))\n };\n }, {\n colors: []\n }),\n colors = _components$reduce.colors;\n\n if (theme !== null) {\n var themeColors = this.parse(theme);\n return colors !== null || themeColors !== null ? uniqueColors([].concat(_toConsumableArray(sortedColors(themeColors || [])), _toConsumableArray(sortedColors(colors || [])))) : [];\n }\n\n return colors !== null ? sortedColors(uniqueColors(colors || [])) : [];\n }\n }, {\n key: \"getColorFieldPatterns\",\n value: function getColorFieldPatterns(fields) {\n var _this2 = this;\n\n var namePrefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n return fields.reduce(function (patterns, field) {\n var _field$name = field.name,\n name = _field$name === void 0 ? null : _field$name,\n _field$type = field.type,\n type = _field$type === void 0 ? null : _field$type;\n var path = [namePrefix, name].filter(function (it) {\n return it !== null;\n }).join('\\\\.');\n\n var fieldDefinition = _objectSpread(_objectSpread({}, type !== null ? _this2.fieldsManager.getDefinition(type) : null), field); // also check settings fields\n\n\n var _fieldDefinition$fiel = fieldDefinition.fields,\n subFields = _fieldDefinition$fiel === void 0 ? [] : _fieldDefinition$fiel,\n _fieldDefinition$item = fieldDefinition.itemsField,\n itemsField = _fieldDefinition$item === void 0 ? null : _fieldDefinition$item,\n _fieldDefinition$sett = fieldDefinition.settings,\n settings = _fieldDefinition$sett === void 0 ? [] : _fieldDefinition$sett;\n return [].concat(_toConsumableArray(patterns), _toConsumableArray(ColorsParser.fieldIsColor(fieldDefinition) ? [new RegExp(\"^\".concat(path, \"$\"))] : []), _toConsumableArray(_this2.getColorFieldPatterns(subFields, path)), _toConsumableArray(_this2.getColorFieldPatterns(settings, path)), _toConsumableArray(itemsField !== null ? _this2.getColorFieldPatterns([itemsField], \"\".concat(path, \"\\\\.[0-9]+\")) : []));\n }, []);\n }\n }], [{\n key: \"fieldIsColor\",\n value: function fieldIsColor(_ref5) {\n var _ref5$id = _ref5.id,\n id = _ref5$id === void 0 ? null : _ref5$id;\n return id === 'color';\n }\n }, {\n key: \"getColorsFromPath\",\n value: function getColorsFromPath(data, patterns) {\n var colors = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var keyPrefix = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n var dataIsArray = isArray(data);\n var keys = dataIsArray ? _toConsumableArray(data.keys()) : Object.keys(data);\n return keys.reduce(function (_ref6, key) {\n var currentData = _ref6.data,\n _ref6$colors = _ref6.colors,\n currentColors = _ref6$colors === void 0 ? null : _ref6$colors;\n var path = [keyPrefix, key].filter(function (it) {\n return it !== null;\n }).join('.');\n var patternMatch = patterns.reduce(function (found, pattern) {\n return found || pattern.test(path);\n }, false);\n var value = data[key];\n var color = null;\n var newValue = null;\n var subColors = null;\n\n if (patternMatch && isObject(value)) {\n if (value.color && value.color.length === 4) {\n var innerColor = value.color.split('').map(function (hex, i) {\n return i > 0 ? hex + hex : hex;\n }).join('').toUpperCase();\n color = {\n alpha: value.alpha || 1,\n color: innerColor\n };\n } else if (value.color) {\n color = {\n alpha: value.alpha,\n color: value.color.toUpperCase()\n };\n }\n } else if (isObject(value) || isArray(value)) {\n var subReturn = ColorsParser.getColorsFromPath(value, patterns, colors, path);\n newValue = subReturn.data;\n subColors = subReturn.colors;\n } else {\n newValue = value;\n }\n\n return {\n data: dataIsArray ? [].concat(_toConsumableArray(currentData || []), [newValue]) : _objectSpread(_objectSpread({}, currentData), {}, _defineProperty({}, key, newValue)),\n colors: color !== null ? [].concat(_toConsumableArray(currentColors || []), _toConsumableArray(subColors || []), [color]) : [].concat(_toConsumableArray(currentColors || []), _toConsumableArray(subColors || []))\n };\n }, {\n data: null,\n colors: colors\n });\n }\n }]);\n\n return ColorsParser;\n}();\n\nvar getComponentFromName = function getComponentFromName() {\n var name = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n var components = arguments.length > 1 ? arguments[1] : undefined;\n var defaultComponent = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n\n if (components === null || name === null) {\n return defaultComponent;\n }\n\n var pascalName = pascalCase(name);\n return components[pascalName] || components[name] || defaultComponent;\n};\n\nvar ComponentsManager = /*#__PURE__*/function (_EventEmitter) {\n _inherits(ComponentsManager, _EventEmitter);\n\n var _super = _createSuper(ComponentsManager);\n\n function ComponentsManager() {\n var _this;\n\n var components = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, ComponentsManager);\n\n _this = _super.call(this);\n _this.components = components;\n return _this;\n }\n\n _createClass(ComponentsManager, [{\n key: \"addComponent\",\n value: function addComponent(name, component) {\n var namespace = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n return this.addComponents(_defineProperty({}, name, component), namespace);\n }\n }, {\n key: \"addComponents\",\n value: function addComponents(components) {\n var namespace = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var newComponents = namespace !== null ? Object.keys(components).reduce(function (componentsMaps, name) {\n return _objectSpread(_objectSpread({}, componentsMaps), {}, _defineProperty({}, \"\".concat(namespace, \".\").concat(name), components[name]));\n }, {}) : components;\n this.components = _objectSpread(_objectSpread({}, this.components), newComponents);\n this.emit('change');\n return this;\n }\n }, {\n key: \"merge\",\n value: function merge(manager) {\n var namespace = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n return this.addComponents(manager.getComponents(), namespace);\n }\n }, {\n key: \"addNamespace\",\n value: function addNamespace(namespace) {\n var _this2 = this;\n\n if (namespace === null) {\n return this;\n }\n\n this.components = Object.keys(this.components).reduce(function (componentsMap, name) {\n return _objectSpread(_objectSpread({}, componentsMap), {}, _defineProperty({}, \"\".concat(namespace, \".\").concat(name), _this2.components[name]));\n }, {});\n return this;\n }\n }, {\n key: \"getComponent\",\n value: function getComponent(name) {\n var namespace = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var components = this.getComponents(namespace);\n return getComponentFromName(name, components);\n }\n }, {\n key: \"getComponents\",\n value: function getComponents() {\n var _this3 = this;\n\n var namespace = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n return namespace !== null ? Object.keys(this.components || {}).reduce(function (componentsMap, name) {\n var pattern = new RegExp(\"^\".concat(namespace, \"\\\\.(.*)$\"));\n var matches = pattern.exec(name);\n return matches !== null ? _objectSpread(_objectSpread({}, componentsMap), {}, _defineProperty({}, matches[1], _this3.components[name])) : componentsMap;\n }, null) : this.components;\n }\n }, {\n key: \"hasComponent\",\n value: function hasComponent(name) {\n var namespace = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n return this.components !== null && typeof this.components[namespace !== null ? \"\".concat(namespace, \".\").concat(name) : name] !== 'undefined';\n }\n }]);\n\n return ComponentsManager;\n}(EventEmitter);\n\nvar DefinitionsManager = /*#__PURE__*/function (_EventEmitter) {\n _inherits(DefinitionsManager, _EventEmitter);\n\n var _super = _createSuper(DefinitionsManager);\n\n function DefinitionsManager() {\n var _this;\n\n var definitions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n\n _classCallCheck(this, DefinitionsManager);\n\n _this = _super.call(this);\n _this.definitions = definitions || [];\n return _this;\n }\n\n _createClass(DefinitionsManager, [{\n key: \"addDefinition\",\n value: function addDefinition(definition) {\n this.addDefinitions(isArray(definition) ? definition : [definition]);\n return this;\n }\n }, {\n key: \"addDefinitions\",\n value: function addDefinitions(definitions) {\n this.definitions = uniqBy([].concat(_toConsumableArray(definitions), _toConsumableArray(this.definitions)), function (it) {\n return it.id;\n });\n this.emit('change');\n return this;\n }\n }, {\n key: \"merge\",\n value: function merge(manager) {\n return this.addDefinitions(manager.getDefinitions());\n }\n }, {\n key: \"getDefinition\",\n value: function getDefinition(id) {\n if (id === null) {\n return null;\n }\n\n return this.definitions.find(function (it) {\n return it.id === id;\n }) || null;\n }\n }, {\n key: \"getDefinitions\",\n value: function getDefinitions() {\n return this.definitions;\n }\n }, {\n key: \"hasDefinition\",\n value: function hasDefinition(id) {\n return this.getDefinition(id) !== null;\n }\n }, {\n key: \"getComponent\",\n value: function getComponent(id) {\n var _ref = this.getDefinition(id) || {},\n _ref$component = _ref.component,\n component = _ref$component === void 0 ? null : _ref$component;\n\n return component;\n }\n }, {\n key: \"getComponents\",\n value: function getComponents() {\n return this.definitions.reduce(function (allComponents, _ref2) {\n var id = _ref2.id,\n _ref2$component = _ref2.component,\n component = _ref2$component === void 0 ? null : _ref2$component;\n return component !== null ? _objectSpread(_objectSpread({}, allComponents), {}, _defineProperty({}, id, component)) : allComponents;\n }, {});\n }\n }]);\n\n return DefinitionsManager;\n}(EventEmitter);\n\nvar EventsManager = /*#__PURE__*/function (_EventEmitter) {\n _inherits(EventsManager, _EventEmitter);\n\n var _super = _createSuper(EventsManager);\n\n function EventsManager(element) {\n var _this;\n\n _classCallCheck(this, EventsManager);\n\n _this = _super.call(this);\n _this.element = element;\n _this.events = {};\n _this.listeners = {};\n return _this;\n }\n\n _createClass(EventsManager, [{\n key: \"subscribe\",\n value: function subscribe(event, callback) {\n this.on(event, callback);\n this.events = _objectSpread(_objectSpread({}, this.events), {}, _defineProperty({}, event, [].concat(_toConsumableArray(this.events[event] || []), [callback])));\n\n if (this.events[event].length === 1) {\n this.addEventListener(event);\n }\n }\n }, {\n key: \"unsubscribe\",\n value: function unsubscribe(event, callback) {\n var _this2 = this;\n\n this.off(event, callback);\n this.events = Object.keys(this.events).reduce(function (newEvents, eventName) {\n if (eventName !== event) {\n return _objectSpread(_objectSpread({}, newEvents), {}, _defineProperty({}, eventName, _this2.events[eventName]));\n }\n\n var newListeners = _this2.events[eventName].filter(function (listener) {\n return listener !== callback;\n });\n\n return newListeners.length > 0 ? _objectSpread(_objectSpread({}, newEvents), {}, _defineProperty({}, eventName, newListeners)) : newEvents;\n }, {});\n\n if (typeof this.events[event] === 'undefined') {\n this.removeEventListener(event);\n }\n }\n }, {\n key: \"addEventListener\",\n value: function addEventListener(event) {\n var _this3 = this;\n\n if (typeof this.listeners[event] === 'undefined') {\n this.listeners[event] = function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _this3.emit.apply(_this3, [event].concat(args));\n };\n }\n\n this.element.addEventListener(event, this.listeners[event]);\n }\n }, {\n key: \"removeEventListener\",\n value: function removeEventListener(event) {\n this.element.removeEventListener(event, this.listeners[event]);\n }\n }]);\n\n return EventsManager;\n}(EventEmitter);\n\nvar FieldsManager = /*#__PURE__*/function (_DefinitionsManager) {\n _inherits(FieldsManager, _DefinitionsManager);\n\n var _super = _createSuper(FieldsManager);\n\n function FieldsManager() {\n _classCallCheck(this, FieldsManager);\n\n return _super.apply(this, arguments);\n }\n\n return _createClass(FieldsManager);\n}(DefinitionsManager);\n\nvar _excluded$2 = [\"medias\"];\n\nvar MediasParser = /*#__PURE__*/function () {\n function MediasParser(_ref) {\n var fieldsManager = _ref.fieldsManager,\n screensManager = _ref.screensManager;\n\n _classCallCheck(this, MediasParser);\n\n this.fieldsManager = fieldsManager;\n this.screensManager = screensManager;\n this.fieldsPatternCache = {};\n }\n\n _createClass(MediasParser, [{\n key: \"getFieldsPatternByScreen\",\n value: function getFieldsPatternByScreen(type) {\n if (typeof this.fieldsPatternCache[type] === 'undefined') {\n var _ref2 = this.screensManager.getDefinition(type) || {},\n _ref2$fields = _ref2.fields,\n fields = _ref2$fields === void 0 ? [] : _ref2$fields;\n\n this.fieldsPatternCache[type] = this.getMediaFieldsPattern(fields);\n }\n\n return this.fieldsPatternCache[type];\n } // Convert medias object to path\n\n }, {\n key: \"toPath\",\n value: function toPath(story) {\n var _this = this;\n\n if (story === null) {\n return story;\n }\n\n var _ref3 = story || {},\n _ref3$theme = _ref3.theme,\n theme = _ref3$theme === void 0 ? null : _ref3$theme,\n _ref3$components = _ref3.components,\n components = _ref3$components === void 0 ? [] : _ref3$components;\n\n var _components$reduce = components.reduce(function (_ref4, screen) {\n var previousComponents = _ref4.components,\n currentMedias = _ref4.medias;\n var type = screen.type;\n\n var fieldsPattern = _this.getFieldsPatternByScreen(type);\n\n var _MediasParser$replace = MediasParser.replaceMediasWithPaths(screen, fieldsPattern),\n newScreen = _MediasParser$replace.data,\n newMedias = _MediasParser$replace.medias;\n\n return {\n components: [].concat(_toConsumableArray(previousComponents), [newScreen]),\n medias: _objectSpread(_objectSpread({}, currentMedias), newMedias)\n };\n }, {\n components: [],\n medias: null\n }),\n newComponents = _components$reduce.components,\n medias = _components$reduce.medias;\n\n if (theme !== null) {\n var _this$toPath = this.toPath(theme),\n themeMedias = _this$toPath.medias,\n newTheme = _objectWithoutProperties(_this$toPath, _excluded$2);\n\n return medias !== null || themeMedias !== null ? _objectSpread(_objectSpread({}, story), {}, {\n theme: newTheme,\n components: newComponents,\n medias: _objectSpread(_objectSpread({}, themeMedias), medias)\n }) : story;\n }\n\n return medias !== null ? _objectSpread(_objectSpread({}, story), {}, {\n components: newComponents,\n medias: medias\n }) : story;\n } // Convert path to medias object\n\n }, {\n key: \"fromPath\",\n value: function fromPath(story) {\n var defaultMedias = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n if (story === null) {\n return story;\n }\n\n var _ref5 = story || {},\n _ref5$theme = _ref5.theme,\n theme = _ref5$theme === void 0 ? null : _ref5$theme,\n _ref5$components = _ref5.components,\n components = _ref5$components === void 0 ? [] : _ref5$components,\n _ref5$medias = _ref5.medias,\n medias = _ref5$medias === void 0 ? defaultMedias : _ref5$medias;\n\n if (medias === null && theme === null) {\n return story;\n } // Replace path with medias objects\n // const newComponents =\n // medias !== null\n // ? components.map((screen) => {\n // const { type } = screen;\n // const fieldsPattern = this.getFieldsPatternByScreen(type);\n // return MediasParser.replacePathsWithMedias(screen, medias, fieldsPattern);\n // })\n // : components;\n // Faster parsing with data only\n\n\n var componentsPattern = MediasParser.getMediaPatternsFromData(components);\n var newComponents = medias !== null && componentsPattern.length > 0 ? MediasParser.replacePathsWithMedias(components, medias, componentsPattern) : components; // Replace path with medias object in theme\n\n if (theme !== null) {\n var newTheme = this.fromPath(theme, medias);\n return newTheme !== theme || newComponents !== components ? _objectSpread(_objectSpread({}, story), {}, {\n theme: newTheme,\n components: newComponents\n }) : story;\n }\n\n return newComponents !== components ? _objectSpread(_objectSpread({}, story), {}, {\n components: newComponents\n }) : story;\n }\n }, {\n key: \"getMediaFieldsPattern\",\n value: function getMediaFieldsPattern(fields) {\n var _this2 = this;\n\n var namePrefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n return fields.reduce(function (patterns, field) {\n var _field$name = field.name,\n name = _field$name === void 0 ? null : _field$name,\n _field$type = field.type,\n type = _field$type === void 0 ? null : _field$type;\n var path = [namePrefix, name].filter(function (it) {\n return it !== null;\n }).join('\\\\.');\n\n var fieldDefinition = _objectSpread(_objectSpread({}, type !== null ? _this2.fieldsManager.getDefinition(type) : null), field); // also check settings fields\n\n\n var _fieldDefinition$fiel = fieldDefinition.fields,\n subFields = _fieldDefinition$fiel === void 0 ? [] : _fieldDefinition$fiel,\n _fieldDefinition$item = fieldDefinition.itemsField,\n itemsField = _fieldDefinition$item === void 0 ? null : _fieldDefinition$item,\n _fieldDefinition$sett = fieldDefinition.settings,\n settings = _fieldDefinition$sett === void 0 ? [] : _fieldDefinition$sett;\n return [].concat(_toConsumableArray(patterns), _toConsumableArray(MediasParser.fieldIsMedia(fieldDefinition) ? [new RegExp(\"^\".concat(path, \"$\"))] : []), _toConsumableArray(MediasParser.fieldIsFontFamily(fieldDefinition) ? [new RegExp(\"^\".concat(path, \"\\\\.media$\"))] : []), _toConsumableArray(_this2.getMediaFieldsPattern(subFields, path)), _toConsumableArray(_this2.getMediaFieldsPattern(settings, path)), _toConsumableArray(itemsField !== null ? _this2.getMediaFieldsPattern([itemsField], \"\".concat(path, \"\\\\.[0-9]+\")) : []));\n }, []);\n }\n }], [{\n key: \"fieldIsMedia\",\n value: function fieldIsMedia(_ref6) {\n var _ref6$media = _ref6.media,\n media = _ref6$media === void 0 ? false : _ref6$media;\n return media;\n }\n }, {\n key: \"fieldIsFontFamily\",\n value: function fieldIsFontFamily(_ref7) {\n var _ref7$id = _ref7.id,\n id = _ref7$id === void 0 ? null : _ref7$id;\n return id === 'font-family';\n }\n }, {\n key: \"replacePathsWithMedias\",\n value: function replacePathsWithMedias(data, medias, patterns) {\n var keyPrefix = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n var dataIsArray = isArray(data);\n return MediasParser.keys(data).reduce(function (newData, key) {\n var path = [keyPrefix, key].filter(function (it) {\n return it !== null;\n }).join('.');\n var patternMatch = patterns.reduce(function (found, pattern) {\n return found || pattern.test(path);\n }, false);\n var value = data[key];\n var newValue;\n\n if (patternMatch) {\n newValue = isObject(value) ? value : medias[value] || null;\n } else {\n newValue = isObject(value) || isArray(value) ? MediasParser.replacePathsWithMedias(value, medias, patterns, path) : value;\n }\n\n return dataIsArray ? [].concat(_toConsumableArray(newData), [newValue]) : _objectSpread(_objectSpread({}, newData), {}, _defineProperty({}, key, newValue));\n }, dataIsArray ? [] : {});\n }\n }, {\n key: \"getMediaPath\",\n value: function getMediaPath(_ref8) {\n var _ref8$id = _ref8.id,\n id = _ref8$id === void 0 ? null : _ref8$id;\n return id !== null ? \"media://\".concat(id) : null;\n }\n }, {\n key: \"replaceMediasWithPaths\",\n value: function replaceMediasWithPaths(data, patterns) {\n var medias = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var keyPrefix = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n var dataIsArray = isArray(data);\n return MediasParser.keys(data).reduce(function (_ref9, key) {\n var currentData = _ref9.data,\n currentMedias = _ref9.medias;\n var path = [keyPrefix, key].filter(function (it) {\n return it !== null;\n }).join('.');\n var patternMatch = patterns.reduce(function (found, pattern) {\n return found || pattern.test(path);\n }, false);\n var value = data[key];\n var newValue;\n var media = null;\n var subMedias = null;\n\n if (patternMatch && isObject(value)) {\n var mediaPath = MediasParser.getMediaPath(value);\n newValue = mediaPath !== null ? mediaPath : value;\n media = mediaPath !== null ? value : null;\n } else if (isObject(value) || isArray(value)) {\n var subReturn = MediasParser.replaceMediasWithPaths(value, patterns, medias, path);\n newValue = subReturn.data;\n subMedias = subReturn.medias;\n } else {\n newValue = value;\n }\n\n return {\n data: dataIsArray ? [].concat(_toConsumableArray(currentData || []), [newValue]) : _objectSpread(_objectSpread({}, currentData), {}, _defineProperty({}, key, newValue)),\n medias: media !== null ? _objectSpread(_objectSpread(_objectSpread({}, currentMedias), subMedias), {}, _defineProperty({}, newValue, media)) : _objectSpread(_objectSpread({}, currentMedias), subMedias)\n };\n }, {\n data: null,\n medias: medias\n });\n }\n }, {\n key: \"getMediaPatternsFromData\",\n value: function getMediaPatternsFromData(obj) {\n var dotObj = MediasParser.dot(obj);\n return Object.keys(dotObj).filter(function (key) {\n return isString(dotObj[key]) && dotObj[key].match(/^media:\\/\\/([^/]+)$/) !== null;\n }).map(function (it) {\n return new RegExp(\"^\".concat(it, \"$\"));\n });\n }\n }, {\n key: \"dot\",\n value: function dot(obj) {\n return MediasParser.keys(obj).reduce(function (acc, key) {\n if (_typeof(obj[key]) !== 'object' || !obj[key]) {\n return _objectSpread(_objectSpread({}, acc), {}, _defineProperty({}, key, obj[key]));\n }\n\n var flattenedChild = MediasParser.dot(obj[key]);\n return _objectSpread(_objectSpread({}, acc), MediasParser.keys(flattenedChild).reduce(function (childAcc, childKey) {\n return _objectSpread(_objectSpread({}, childAcc), {}, _defineProperty({}, \"\".concat(key, \".\").concat(childKey), flattenedChild[childKey]));\n }, {}));\n }, {});\n }\n }, {\n key: \"keys\",\n value: function keys(obj) {\n return isArray(obj) ? _toConsumableArray(obj.keys()) : Object.keys(obj);\n }\n }]);\n\n return MediasParser;\n}();\n\nvar ScreensManager = /*#__PURE__*/function (_DefinitionsManager) {\n _inherits(ScreensManager, _DefinitionsManager);\n\n var _super = _createSuper(ScreensManager);\n\n function ScreensManager() {\n _classCallCheck(this, ScreensManager);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(ScreensManager, [{\n key: \"getFields\",\n value: function getFields(id) {\n var _ref = this.getDefinition(id) || {},\n _ref$fields = _ref.fields,\n fields = _ref$fields === void 0 ? null : _ref$fields;\n\n return fields;\n }\n }, {\n key: \"getLayouts\",\n value: function getLayouts(id) {\n var _ref2 = this.getDefinition(id) || {},\n _ref2$layouts = _ref2.layouts,\n layouts = _ref2$layouts === void 0 ? null : _ref2$layouts;\n\n return layouts;\n }\n }]);\n\n return ScreensManager;\n}(DefinitionsManager);\n\nvar ThemeParser = /*#__PURE__*/function () {\n function ThemeParser(_ref) {\n var screensManager = _ref.screensManager;\n\n _classCallCheck(this, ThemeParser);\n\n this.screensManager = screensManager;\n this.definitionCache = {};\n }\n\n _createClass(ThemeParser, [{\n key: \"getDefinitionByScreen\",\n value: function getDefinitionByScreen(type, themeComponents) {\n if (typeof this.definitionCache[type] === 'undefined') {\n var definition = this.screensManager.getDefinition(type) || {};\n var themeScreen = themeComponents.find(function (it) {\n return it.type === type;\n }) || null;\n this.definitionCache[type] = {\n definition: definition,\n themeScreen: themeScreen\n };\n }\n\n return this.definitionCache[type];\n }\n }, {\n key: \"parse\",\n value: function parse(story) {\n var _this = this;\n\n if (story === null) {\n return story;\n }\n\n var _ref2 = story || {},\n _ref2$theme = _ref2.theme,\n theme = _ref2$theme === void 0 ? null : _ref2$theme,\n _ref2$components = _ref2.components,\n components = _ref2$components === void 0 ? null : _ref2$components;\n\n if (theme === null || components === null) {\n return story;\n }\n\n var _theme$components = theme.components,\n themeComponents = _theme$components === void 0 ? [] : _theme$components,\n _theme$background = theme.background,\n themeBackground = _theme$background === void 0 ? null : _theme$background,\n _theme$colors = theme.colors,\n themeColors = _theme$colors === void 0 ? {} : _theme$colors,\n _theme$textStyles = theme.textStyles,\n themeTextStyles = _theme$textStyles === void 0 ? null : _theme$textStyles;\n var newComponents = components.reduce(function (currentComponents, screen, index) {\n var type = screen.type;\n\n var _this$getDefinitionBy = _this.getDefinitionByScreen(type, themeComponents),\n definition = _this$getDefinitionBy.definition,\n themeScreen = _this$getDefinitionBy.themeScreen;\n\n var newScreen = _this.parseScreen(definition, screen, themeScreen, themeBackground, themeColors, themeTextStyles); // Only switch screen if it has changed\n\n\n return newScreen !== screen || themeScreen !== null ? [].concat(_toConsumableArray(currentComponents.slice(0, index)), [_objectSpread(_objectSpread({}, themeScreen), newScreen)], _toConsumableArray(currentComponents.slice(index + 1))) : currentComponents;\n }, components);\n return newComponents !== components ? _objectSpread(_objectSpread({}, story), {}, {\n components: newComponents\n }) : story;\n }\n }, {\n key: \"parseScreen\",\n value: function parseScreen(definition, value, themeValue, themeBackground, themeColors, themeTextSyle) {\n var _this2 = this;\n\n var _definition$fields = definition.fields,\n fields = _definition$fields === void 0 ? [] : _definition$fields;\n var newThemeValue = themeValue === null && themeBackground !== null ? {} : themeValue;\n\n if (themeBackground !== null && typeof newThemeValue.background !== 'undefined') {\n newThemeValue.background = _objectSpread(_objectSpread({}, themeBackground), newThemeValue.background);\n } else if (themeBackground !== null) {\n newThemeValue.background = themeBackground;\n }\n\n var newScreenValue = Object.keys(value).reduce(function (currentValue, key) {\n var fieldDefinition = fields.find(function (it) {\n return it.name === key;\n }) || {};\n var fieldValue = value[key];\n var fieldThemeValue = newThemeValue !== null ? newThemeValue[key] || null : null;\n\n var newFieldValue = _this2.parseField(key, fieldDefinition, fieldValue, fieldThemeValue, themeColors, themeTextSyle); // Only switch field if it has changed\n\n\n return newFieldValue !== fieldValue ? _objectSpread(_objectSpread({}, currentValue), {}, _defineProperty({}, key, newFieldValue)) : currentValue;\n }, value);\n return newThemeValue !== null ? _objectSpread(_objectSpread({}, newThemeValue), newScreenValue) : newScreenValue;\n } // eslint-disable-next-line class-methods-use-this\n\n }, {\n key: \"parseField\",\n value: function parseField(key, definition, value, themeValue, themeColors, themeTextStyles) {\n var _definition$theme = definition.theme,\n fieldTheme = _definition$theme === void 0 ? {} : _definition$theme; // @TODO very sloow\n\n if (isArray(value)) {\n var newFieldValue = value.map(function (innerField) {\n return innerField !== null ? Object.keys(innerField).reduce(function (newInnerField, innerFieldName) {\n var _ref3 = fieldTheme[innerFieldName] || {},\n _ref3$textStyle = _ref3.textStyle,\n innerFieldTextStyle = _ref3$textStyle === void 0 ? null : _ref3$textStyle,\n _ref3$color = _ref3.color,\n innerFieldColor = _ref3$color === void 0 ? null : _ref3$color; // Early return\n\n\n if (!isObject(innerField[innerFieldName])) {\n return newInnerField;\n } // Color\n\n\n var colorValue = innerFieldColor !== null ? {\n color: innerFieldColor !== null && themeColors !== null ? themeColors[innerFieldColor] || null : null\n } : null; // Text style\n\n var textStyleValue = innerFieldTextStyle !== null ? {\n textStyle: _objectSpread(_objectSpread({}, innerFieldTextStyle !== null && themeTextStyles !== null ? themeTextStyles[innerFieldTextStyle] || null : null), innerField[innerFieldName].textStyle || null)\n } : null;\n\n if (colorValue === null && textStyleValue === null) {\n return newInnerField;\n }\n\n return _objectSpread(_objectSpread({}, newInnerField), {}, _defineProperty({}, innerFieldName, _objectSpread(_objectSpread(_objectSpread({}, colorValue), innerField[innerFieldName]), textStyleValue)));\n }, innerField) : innerField;\n });\n return newFieldValue;\n }\n\n if (isObject(value) && !isArray(value)) {\n var _ref4 = fieldTheme || {},\n _ref4$textStyle = _ref4.textStyle,\n fieldTextStyleName = _ref4$textStyle === void 0 ? null : _ref4$textStyle,\n _ref4$color = _ref4.color,\n fieldColorName = _ref4$color === void 0 ? null : _ref4$color; // Color\n\n\n var fieldColor = fieldColorName !== null && themeColors !== null ? themeColors[fieldColorName] || null : null;\n var colorValue = fieldColor !== null ? {\n color: fieldColor\n } : null; // Text style\n\n var fieldTextStyle = fieldTextStyleName !== null && themeTextStyles !== null ? themeTextStyles[fieldTextStyleName] || null : null;\n var fieldThemeComponentTextStyle = themeValue !== null ? themeValue.textStyle || null : null;\n var textStyleValue = fieldTextStyle !== null || fieldThemeComponentTextStyle !== null ? {\n textStyle: _objectSpread(_objectSpread(_objectSpread({}, fieldTextStyle), fieldThemeComponentTextStyle), value.textStyle || null)\n } : null; // Only change value if something is overrided\n\n return colorValue !== null || themeValue !== null || textStyleValue !== null ? _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, colorValue), themeValue), value), textStyleValue) : value;\n }\n\n return value;\n }\n }]);\n\n return ThemeParser;\n}();\n\nvar _excluded$1 = [\"fonts\"];\n\nvar FontsParser = /*#__PURE__*/function () {\n function FontsParser(_ref) {\n var fieldsManager = _ref.fieldsManager,\n screensManager = _ref.screensManager;\n\n _classCallCheck(this, FontsParser);\n\n this.fieldsManager = fieldsManager;\n this.screensManager = screensManager;\n this.fieldsPatternCache = {};\n }\n\n _createClass(FontsParser, [{\n key: \"getFieldsPatternByScreen\",\n value: function getFieldsPatternByScreen(type) {\n if (typeof this.fieldsPatternCache[type] === 'undefined') {\n var _ref2 = this.screensManager.getDefinition(type) || {},\n _ref2$fields = _ref2.fields,\n fields = _ref2$fields === void 0 ? [] : _ref2$fields;\n\n this.fieldsPatternCache[type] = this.getFieldsPattern(fields);\n }\n\n return this.fieldsPatternCache[type];\n } // Extract fonts\n\n }, {\n key: \"parse\",\n value: function parse(story) {\n var _this = this;\n\n if (story === null) {\n return story;\n } // Extract fonts from screen\n\n\n var _ref3 = story || {},\n _ref3$theme = _ref3.theme,\n theme = _ref3$theme === void 0 ? null : _ref3$theme,\n _ref3$components = _ref3.components,\n components = _ref3$components === void 0 ? [] : _ref3$components;\n\n var fonts = uniq(components.reduce(function (currentFonts, screen) {\n var type = screen.type;\n\n var fieldsPattern = _this.getFieldsPatternByScreen(type);\n\n var newFonts = FontsParser.extractFontsWithPaths(screen, fieldsPattern);\n return newFonts.length > 0 ? [].concat(_toConsumableArray(currentFonts), _toConsumableArray(newFonts)) : currentFonts;\n }, []), 'name'); // Extract fonts from theme\n\n if (theme !== null) {\n var _this$parse = this.parse(theme),\n _this$parse$fonts = _this$parse.fonts,\n themeFonts = _this$parse$fonts === void 0 ? [] : _this$parse$fonts,\n newTheme = _objectWithoutProperties(_this$parse, _excluded$1);\n\n return fonts.length > 0 || themeFonts.length > 0 ? _objectSpread(_objectSpread({}, story), {}, {\n theme: newTheme,\n fonts: uniq([].concat(_toConsumableArray(themeFonts), _toConsumableArray(fonts)), 'name')\n }) : story;\n }\n\n return fonts.length > 0 ? _objectSpread(_objectSpread({}, story), {}, {\n fonts: fonts\n }) : story;\n }\n }, {\n key: \"getFieldsPattern\",\n value: function getFieldsPattern(fields) {\n var _this2 = this;\n\n var namePrefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n return fields.reduce(function (patterns, field) {\n var _field$name = field.name,\n name = _field$name === void 0 ? null : _field$name,\n _field$type = field.type,\n type = _field$type === void 0 ? null : _field$type;\n var path = [namePrefix, name].filter(function (it) {\n return it !== null;\n }).join('\\\\.');\n\n var fieldDefinition = _objectSpread(_objectSpread({}, type !== null ? _this2.fieldsManager.getDefinition(type) : null), field); // also check settings fields\n\n\n var _fieldDefinition$fiel = fieldDefinition.fields,\n subFields = _fieldDefinition$fiel === void 0 ? [] : _fieldDefinition$fiel,\n _fieldDefinition$item = fieldDefinition.itemsField,\n itemsField = _fieldDefinition$item === void 0 ? null : _fieldDefinition$item,\n _fieldDefinition$sett = fieldDefinition.settings,\n settings = _fieldDefinition$sett === void 0 ? [] : _fieldDefinition$sett;\n return [].concat(_toConsumableArray(patterns), _toConsumableArray(FontsParser.fieldIsFontFamily(fieldDefinition) ? [new RegExp(\"^\".concat(path, \"$\"))] : []), _toConsumableArray(_this2.getFieldsPattern(subFields, path)), _toConsumableArray(_this2.getFieldsPattern(settings, path)), _toConsumableArray(itemsField !== null ? _this2.getFieldsPattern([itemsField], \"\".concat(path, \"\\\\.[0-9]+\")) : []));\n }, []);\n }\n }], [{\n key: \"fieldIsFontFamily\",\n value: function fieldIsFontFamily(_ref4) {\n var _ref4$id = _ref4.id,\n id = _ref4$id === void 0 ? null : _ref4$id;\n return id === 'font-family';\n }\n }, {\n key: \"valueIsFont\",\n value: function valueIsFont(_ref5) {\n var _ref5$type = _ref5.type,\n type = _ref5$type === void 0 ? null : _ref5$type;\n return type === 'custom' || type === 'google';\n }\n }, {\n key: \"extractFontsWithPaths\",\n value: function extractFontsWithPaths(data, patterns) {\n var keyPrefix = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var dataIsArray = isArray(data);\n var keys = dataIsArray ? _toConsumableArray(data.keys()) : Object.keys(data);\n return keys.reduce(function (currentFonts, key) {\n var path = [keyPrefix, key].filter(function (it) {\n return it !== null;\n }).join('.');\n var patternMatch = patterns.reduce(function (found, pattern) {\n return found || pattern.test(path);\n }, false);\n var value = data[key];\n var font = null;\n var subFonts = null;\n\n if (patternMatch && isObject(value) && FontsParser.valueIsFont(value)) {\n font = value;\n } else if (isObject(value) || isArray(value)) {\n subFonts = FontsParser.extractFontsWithPaths(value, patterns, path);\n }\n\n return subFonts !== null || font !== null ? [].concat(_toConsumableArray(currentFonts), _toConsumableArray(subFonts || []), _toConsumableArray(font !== null ? [font] : [])) : currentFonts;\n }, []);\n }\n }]);\n\n return FontsParser;\n}();\n\nvar StoryParser = /*#__PURE__*/function () {\n function StoryParser(_ref) {\n var screensManager = _ref.screensManager,\n fieldsManager = _ref.fieldsManager;\n\n _classCallCheck(this, StoryParser);\n\n this.themeParser = new ThemeParser({\n screensManager: screensManager\n });\n this.mediasParser = new MediasParser({\n screensManager: screensManager,\n fieldsManager: fieldsManager\n });\n this.fontsParser = new FontsParser({\n screensManager: screensManager,\n fieldsManager: fieldsManager\n });\n }\n\n _createClass(StoryParser, [{\n key: \"parse\",\n value: function parse(story) {\n var _this = this;\n\n var _ref2 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n _ref2$withTheme = _ref2.withTheme,\n withTheme = _ref2$withTheme === void 0 ? true : _ref2$withTheme,\n _ref2$withMedias = _ref2.withMedias,\n withMedias = _ref2$withMedias === void 0 ? true : _ref2$withMedias,\n _ref2$withFonts = _ref2.withFonts,\n withFonts = _ref2$withFonts === void 0 ? true : _ref2$withFonts;\n\n if (story === null) {\n return story;\n }\n\n var parsers = [[withMedias, function (newStory) {\n return _this.mediasParser.fromPath(newStory);\n }], [withTheme, function (newStory) {\n return _this.themeParser.parse(newStory);\n }], [withFonts, function (newStory) {\n return _this.fontsParser.parse(newStory);\n }]];\n return parsers.reduce(function (parsedStory, _ref3) {\n var _ref4 = _slicedToArray(_ref3, 2),\n enabled = _ref4[0],\n parse = _ref4[1];\n\n return enabled ? parse(parsedStory) : parsedStory;\n }, story);\n }\n }]);\n\n return StoryParser;\n}();\n\nvar _excluded = [\"value\"],\n _excluded2 = [\"value\", \"currentTime\"];\n\nvar Tracking = /*#__PURE__*/function (_BaseTracking) {\n _inherits(Tracking, _BaseTracking);\n\n var _super = _createSuper(Tracking);\n\n function Tracking() {\n var _this;\n\n var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, Tracking);\n\n _this = _super.call(this, opts);\n var _this$options$variabl = _this.options.variables,\n variables = _this$options$variabl === void 0 ? null : _this$options$variabl;\n _this.variables = null;\n _this.screensViewed = [];\n\n if (variables !== null) {\n _this.setVariables(variables);\n }\n\n return _this;\n }\n\n _createClass(Tracking, [{\n key: \"setVariables\",\n value: function setVariables(variables) {\n this.variables = variables;\n\n if (variables !== null) {\n this.push(variables);\n }\n }\n }, {\n key: \"getVariables\",\n value: function getVariables() {\n return this.variables;\n }\n }, {\n key: \"trackScreenView\",\n value: function trackScreenView(screen, screenIndex) {\n var _ref = this.variables || {},\n _ref$screensCount = _ref.screensCount,\n screensCount = _ref$screensCount === void 0 ? null : _ref$screensCount;\n\n var _ref2 = screen || {},\n _ref2$id = _ref2.id,\n screenId = _ref2$id === void 0 ? null : _ref2$id,\n _ref2$type = _ref2.type,\n screenType = _ref2$type === void 0 ? null : _ref2$type,\n _ref2$metadata = _ref2.metadata,\n metadata = _ref2$metadata === void 0 ? {} : _ref2$metadata;\n\n var _ref3 = metadata || {},\n screenTitle = _ref3.title;\n\n if (this.screensViewed.indexOf(screenId || index) !== -1) {\n this.screensViewed = [].concat(_toConsumableArray(this.screensViewed), [screenId || index]);\n }\n\n var data = {\n event: 'screenView',\n screenId: screenId,\n screenType: screenType,\n screenIndex: screenIndex,\n screenTitle: screenTitle,\n screenProgress: screensCount !== null && screenIndex !== null ? (screenIndex + 1) / screensCount : null,\n screensViewed: this.screensViewed,\n screensViewedProgress: screensCount !== null ? this.screensViewed.length / screensCount : null\n };\n this.push(data);\n }\n }, {\n key: \"trackEvent\",\n value: function trackEvent(category, action, label) {\n var _ref4 = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {},\n _ref4$value = _ref4.value,\n value = _ref4$value === void 0 ? null : _ref4$value,\n opts = _objectWithoutProperties(_ref4, _excluded);\n\n var data = _objectSpread(_objectSpread({}, opts), {}, {\n event: 'eventInteraction',\n eventCategory: category,\n eventAction: action,\n eventLabel: label,\n eventValue: value\n });\n\n this.push(data);\n }\n }, {\n key: \"trackMedia\",\n value: function trackMedia(type, media, action) {\n var _ref5 = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {},\n _ref5$value = _ref5.value,\n value = _ref5$value === void 0 ? null : _ref5$value,\n _ref5$currentTime = _ref5.currentTime,\n optsCurrentTime = _ref5$currentTime === void 0 ? null : _ref5$currentTime,\n opts = _objectWithoutProperties(_ref5, _excluded2);\n\n var _ref6 = media || {},\n _ref6$id = _ref6.id,\n mediaId = _ref6$id === void 0 ? null : _ref6$id,\n _ref6$name = _ref6.name,\n name = _ref6$name === void 0 ? null : _ref6$name,\n _ref6$duration = _ref6.duration,\n rootDuration = _ref6$duration === void 0 ? null : _ref6$duration,\n _ref6$currentTime = _ref6.currentTime,\n currentTime = _ref6$currentTime === void 0 ? optsCurrentTime : _ref6$currentTime,\n _ref6$metadata = _ref6.metadata,\n metadata = _ref6$metadata === void 0 ? {} : _ref6$metadata;\n\n var _ref7 = metadata || {},\n _ref7$duration = _ref7.duration,\n duration = _ref7$duration === void 0 ? rootDuration : _ref7$duration;\n\n var label = name;\n\n var data = _objectSpread(_objectSpread({}, opts), {}, {\n event: 'eventInteraction',\n eventCategory: type,\n eventAction: action,\n eventLabel: label,\n eventValue: value,\n mediaId: mediaId,\n mediaCurrentTime: currentTime !== null ? Math.round(currentTime) : null,\n mediaProgress: currentTime !== null && duration !== null && duration > 0 ? Math.round(currentTime / duration * 100) : null\n });\n\n this.push(data);\n }\n }]);\n\n return Tracking;\n}(Tracking$1);\n\nexport { ColorsParser, ComponentsManager, DefinitionsManager, EventsManager, FieldsManager, FontsParser, MediasParser, PropTypes, ScreensManager, StoryParser, ThemeParser, Tracking };\n","import isNumber from 'lodash/isNumber';\nimport { paramCase } from 'param-case';\nimport isObject from 'lodash/isObject';\nimport { useEffect } from 'react';\nimport isString from 'lodash/isString';\nimport tinycolor from 'tinycolor2';\nimport { pascalCase, paramCase as paramCase$1, snakeCase } from 'change-case';\nexport { pascalCase, snakeCase } from 'change-case';\nimport _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';\nimport _objectSpread from '@babel/runtime/helpers/objectSpread2';\nimport isArray from 'lodash/isArray';\nimport _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';\nimport _defineProperty from '@babel/runtime/helpers/defineProperty';\nimport _slicedToArray from '@babel/runtime/helpers/slicedToArray';\nimport slugify from 'slugify';\n\nvar convertStyleToString = function convertStyleToString(style) {\n return style !== null ? Object.keys(style).map(function (key) {\n return \"\".concat(paramCase(key), \":\").concat(isNumber(style[key]) ? \"\".concat(style[key], \"px\") : style[key], \";\");\n }).join('\\n') : '';\n};\n\nvar createNullableOnChange = function createNullableOnChange() {\n var onChange = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n return function (newValue) {\n var nullableValue = newValue;\n\n if (isObject(newValue)) {\n var allNull = Object.keys(newValue).reduce(function (acc, key) {\n return acc && newValue[key] === null;\n }, true);\n\n if (allNull) {\n nullableValue = null;\n }\n }\n\n if (onChange !== null) {\n onChange(nullableValue);\n }\n };\n};\n\nvar createUseEvent = function createUseEvent(eventsManager) {\n return function (event, callback) {\n var enabled = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n useEffect(function () {\n if (enabled && eventsManager !== null) {\n eventsManager.subscribe(event, callback);\n }\n\n return function () {\n if (enabled && eventsManager !== null) {\n eventsManager.unsubscribe(event, callback);\n }\n };\n }, [eventsManager, event, callback, enabled]);\n };\n};\n\nvar getColorAsString = function getColorAsString() {\n var value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n var overideAlpha = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n if (value === null) {\n return null;\n }\n\n var _ref = isString(value) ? {\n color: value\n } : value,\n _ref$color = _ref.color,\n color = _ref$color === void 0 ? null : _ref$color,\n _ref$alpha = _ref.alpha,\n alpha = _ref$alpha === void 0 ? null : _ref$alpha;\n\n return alpha !== null || overideAlpha !== null ? tinycolor(color).setAlpha(overideAlpha !== null ? overideAlpha : alpha).toRgbString() : color;\n};\n\nvar getComponentFromName = function getComponentFromName() {\n var name = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n var components = arguments.length > 1 ? arguments[1] : undefined;\n var defaultComponent = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n\n if (components === null || name === null) {\n return defaultComponent;\n }\n\n var pascalName = pascalCase(name);\n return components[pascalName] || components[name] || defaultComponent;\n};\n\nvar deviceScreens = [{\n name: 'mobile'\n}, {\n name: 'small',\n mediaQuery: 'only screen and (min-width: 500px)'\n}, {\n name: 'medium',\n mediaQuery: 'only screen and (min-width: 790px)'\n}, {\n name: 'large',\n mediaQuery: 'only screen and (min-width: 1000px)'\n}, {\n name: 'very-large',\n mediaQuery: 'only screen and (min-width: 1600px)'\n}]; // eslint-disable-next-line import/prefer-default-export\n\nvar getDeviceScreens = function getDeviceScreens() {\n return deviceScreens;\n};\n\nvar getDisplayName = function getDisplayName(_ref) {\n var _ref$displayName = _ref.displayName,\n displayName = _ref$displayName === void 0 ? null : _ref$displayName,\n _ref$name = _ref.name,\n name = _ref$name === void 0 ? null : _ref$name;\n return displayName || name || 'Component';\n};\n\nvar getFieldByName = function getFieldByName(fields, name) {\n return fields.reduce(function (foundField, it) {\n if (foundField !== null) {\n return foundField;\n }\n\n var _it$name = it.name,\n fieldName = _it$name === void 0 ? null : _it$name,\n _it$fields = it.fields,\n subFields = _it$fields === void 0 ? [] : _it$fields;\n\n if (name !== null && fieldName === name) {\n return it;\n }\n\n return getFieldByName(subFields, name);\n }, null);\n};\n\nvar getFieldFromPath = function getFieldFromPath(path, fields, fieldManager) {\n return (isArray(path) ? path : [path]).reduce(function (foundField, key) {\n if (foundField === null) {\n return null;\n }\n\n var _foundField$type = foundField.type,\n type = _foundField$type === void 0 ? null : _foundField$type,\n _foundField$fields = foundField.fields,\n fieldFields = _foundField$fields === void 0 ? null : _foundField$fields,\n _foundField$field = foundField.field,\n field = _foundField$field === void 0 ? null : _foundField$field;\n var finalType = field !== null ? field.type || type : type;\n\n var _ref = finalType !== null ? fieldManager.getDefinition(finalType) : foundField,\n _ref$fields = _ref.fields,\n subFields = _ref$fields === void 0 ? null : _ref$fields,\n _ref$settings = _ref.settings,\n settings = _ref$settings === void 0 ? null : _ref$settings,\n _ref$itemsField = _ref.itemsField,\n itemsField = _ref$itemsField === void 0 ? null : _ref$itemsField;\n\n if (itemsField !== null && key.match(/^[0-9]+$/)) {\n return _objectSpread(_objectSpread({}, itemsField), {}, {\n name: path.join('/'),\n listItems: true\n });\n }\n\n return getFieldByName([].concat(_toConsumableArray(fieldFields || []), _toConsumableArray(subFields || []), _toConsumableArray(settings || [])), key);\n }, {\n fields: fields\n });\n};\n\nvar getFileName = function getFileName() {\n var url = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n\n if (url === null || typeof url.match === 'undefined') {\n return null;\n }\n\n return url.match(/([^/]+)(\\?.*)?$/)[1] || url;\n};\n\nvar getFontFamily = function getFontFamily(value) {\n if (value == null) {\n return null;\n }\n\n var _ref = isObject(value) ? value : {\n name: value\n },\n name = _ref.name,\n _ref$fallback = _ref.fallback,\n fallback = _ref$fallback === void 0 ? null : _ref$fallback;\n\n return [name, fallback].filter(function (it) {\n return it !== null;\n }).map(function (it) {\n return \"\\\"\".concat(it, \"\\\"\");\n }).join(', ');\n};\n\nvar getGridLayoutName = function getGridLayoutName(layout) {\n return layout.map(function (it) {\n return \"\".concat(it.rows, \"_\").concat(it.columns.join('_'));\n }).join('|');\n};\n\nvar getRemainder = function getRemainder(number) {\n var remainder = number - Math.floor(number);\n return remainder.toFixed(4);\n};\n\nvar largestRemainderRound = function largestRemainderRound(numbers, desiredTotal) {\n if (!isArray(numbers) || numbers.length < 1) return numbers;\n var result = numbers.map(function (number, index) {\n return {\n floor: Math.floor(number) || 0,\n remainder: getRemainder(number),\n index: index\n };\n }).sort(function (a, b) {\n return b.remainder - a.remainder;\n });\n var lowerSum = result.reduce(function (sum, current) {\n return sum + current.floor;\n }, 0);\n var delta = desiredTotal - lowerSum;\n\n for (var i = 0; i < delta; i += 1) {\n if (result[i]) {\n result[i].floor += 1;\n }\n }\n\n return result.sort(function (a, b) {\n return a.index - b.index;\n }).map(function (res) {\n return res.floor;\n });\n};\n\nvar _excluded = [\"image\", \"video\", \"media\"];\n\nvar getLayersFromBackground = function getLayersFromBackground() {\n var background = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n\n if (background === null) {\n return [];\n }\n\n return (isArray(background) ? background : [background]).reduce(function (layers, _ref) {\n var _ref$image = _ref.image,\n image = _ref$image === void 0 ? null : _ref$image,\n _ref$video = _ref.video,\n video = _ref$video === void 0 ? null : _ref$video,\n _ref$media = _ref.media,\n media = _ref$media === void 0 ? null : _ref$media,\n data = _objectWithoutProperties(_ref, _excluded);\n\n if (image !== null && video !== null) {\n return [].concat(_toConsumableArray(layers), [_objectSpread({\n media: image\n }, data), _objectSpread({\n media: video\n }, data)]);\n }\n\n return [].concat(_toConsumableArray(layers), [_objectSpread({\n media: media || image || video\n }, data)]);\n }, []);\n};\n\nvar getMediaFilesAsArray = function getMediaFilesAsArray(files) {\n return files !== null && isArray(files) ? files : Object.keys(files || {}).reduce(function (newFiles, key) {\n return [].concat(_toConsumableArray(newFiles), [_objectSpread({\n handle: key\n }, files[key])]);\n }, []);\n};\n\n// eslint-disable-next-line import/prefer-default-export\nvar getOptimalImageUrl = function getOptimalImageUrl() {\n var media = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n var containerWidth = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var containerHeight = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var maxDiff = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 800;\n\n var _ref = media || {},\n _ref$sizes = _ref.sizes,\n sizes = _ref$sizes === void 0 ? null : _ref$sizes,\n _ref$url = _ref.url,\n defaultUrl = _ref$url === void 0 ? null : _ref$url,\n _ref$metadata = _ref.metadata;\n\n _ref$metadata = _ref$metadata === void 0 ? {} : _ref$metadata;\n var imgWidth = _ref$metadata.width,\n imgHeight = _ref$metadata.height;\n\n if (sizes === null || containerWidth === null && containerHeight === null) {\n return defaultUrl;\n }\n\n var finalSizes = _objectSpread({\n original: {\n url: defaultUrl,\n width: imgWidth,\n height: imgHeight\n }\n }, sizes);\n\n var _Object$keys$reduce = Object.keys(finalSizes).reduce(function (acc, key) {\n var currentDiff = acc.diff,\n currentIsLarger = acc.isLarger,\n currentSize = acc.size;\n var _finalSizes$key = finalSizes[key],\n url = _finalSizes$key.url,\n _finalSizes$key$width = _finalSizes$key.width,\n width = _finalSizes$key$width === void 0 ? null : _finalSizes$key$width,\n _finalSizes$key$heigh = _finalSizes$key.height,\n height = _finalSizes$key$heigh === void 0 ? null : _finalSizes$key$heigh;\n var diffWidth = width !== null && containerWidth !== null ? width - containerWidth : null;\n var diffHeight = height !== null && containerHeight !== null ? height - containerHeight : null;\n var isLarger = (diffWidth === null || diffWidth >= 0) && (diffHeight === null || diffHeight >= 0);\n var diff = [diffWidth, diffHeight].reduce(function (total, value) {\n return value !== null ? (total || 0) + Math.abs(value) : total;\n }, null);\n\n if (diff === null) {\n diff = Infinity;\n }\n\n var size = (width || 0) + (height || 0);\n var sizeIsLarger = size > currentSize;\n\n if ( // Difference is lower and image is larger\n diff < currentDiff && isLarger || // Difference is lower and current is not larger or diff is greater than max\n diff < currentDiff && (!currentIsLarger && sizeIsLarger || currentDiff > maxDiff) || // Image is larger and diff is smaller than max\n diff <= maxDiff && !currentIsLarger && isLarger || // Image is larger than previous\n diff <= maxDiff && !currentIsLarger && !isLarger && sizeIsLarger) {\n return {\n key: key,\n url: url,\n diff: diff,\n isLarger: isLarger\n };\n }\n\n return acc;\n }, {\n key: null,\n url: defaultUrl,\n diff: Infinity,\n isLarger: false,\n size: 0\n }),\n finalUrl = _Object$keys$reduce.url;\n\n return finalUrl;\n};\n\nvar getSecondsFromTime = function getSecondsFromTime(time) {\n var t = time.split(':');\n\n try {\n var s = t[2].split(',');\n\n if (s.length === 1) {\n s = t[2].split('.');\n }\n\n return parseFloat(t[0], 10) * 3600 + parseFloat(t[1], 10) * 60 + parseFloat(s[0], 10) + parseFloat(s[1], 10) / 1000;\n } catch (e) {\n return 0;\n }\n};\n\nvar getScreenExtraField = function getScreenExtraField(intl) {\n return {\n name: 'parameters',\n type: 'parameters',\n label: intl.formatMessage({\n \"id\": \"8A8cuq\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Parameters\"\n }]\n })\n };\n};\n\nvar getStyleFromColor = function getStyleFromColor() {\n var value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n var property = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'backgroundColor';\n var overideAlpha = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var color = getColorAsString(value, overideAlpha);\n return color !== null ? _defineProperty({}, property, color) : null;\n};\n\nvar getStyleFromBorder = function getStyleFromBorder(value) {\n if (value == null) {\n return null;\n }\n\n var _value$width = value.width,\n width = _value$width === void 0 ? null : _value$width,\n _value$style = value.style,\n borderStyle = _value$style === void 0 ? null : _value$style,\n _value$color = value.color,\n color = _value$color === void 0 ? null : _value$color;\n return _objectSpread(_objectSpread(_objectSpread({}, width !== null ? {\n borderWidth: width\n } : null), borderStyle !== null ? {\n borderStyle: borderStyle\n } : null), getStyleFromColor(color, 'borderColor'));\n};\n\nvar getStyleFromButton = function getStyleFromButton(value) {\n if (value === null) {\n return null;\n }\n\n var _value$backgroundColo = value.backgroundColor,\n backgroundColor = _value$backgroundColo === void 0 ? null : _value$backgroundColo,\n _value$borderRadius = value.borderRadius,\n borderRadius = _value$borderRadius === void 0 ? null : _value$borderRadius,\n _value$borderWidth = value.borderWidth,\n borderWidth = _value$borderWidth === void 0 ? null : _value$borderWidth,\n _value$borderStyle = value.borderStyle,\n borderStyle = _value$borderStyle === void 0 ? null : _value$borderStyle,\n _value$borderColor = value.borderColor,\n borderColor = _value$borderColor === void 0 ? null : _value$borderColor;\n var border = {\n width: borderWidth,\n style: borderStyle,\n color: borderColor\n };\n return _objectSpread(_objectSpread(_objectSpread({}, getStyleFromColor(backgroundColor, 'backgroundColor')), borderRadius !== null ? {\n borderRadius: borderRadius\n } : null), getStyleFromBorder(border));\n};\n\nvar getStyleFromContainer = function getStyleFromContainer(value) {\n if (value == null) {\n return null;\n }\n\n var _value$size = value.size,\n size = _value$size === void 0 ? {} : _value$size,\n _value$backgroundColo = value.backgroundColor,\n backgroundColor = _value$backgroundColo === void 0 ? null : _value$backgroundColo;\n var _size$width = size.width,\n width = _size$width === void 0 ? null : _size$width,\n _size$height = size.height,\n height = _size$height === void 0 ? null : _size$height;\n return _objectSpread(_objectSpread(_objectSpread({}, width ? {\n width: \"\".concat(width, \"%\")\n } : null), height ? {\n height: \"\".concat(height, \"%\")\n } : null), getStyleFromColor(backgroundColor, 'backgroundColor'));\n};\n\nvar getStyleFromHighlight = function getStyleFromHighlight(value) {\n if (value == null) {\n return null;\n }\n\n var _value$textColor = value.textColor,\n textColor = _value$textColor === void 0 ? null : _value$textColor,\n _value$color = value.color,\n color = _value$color === void 0 ? null : _value$color;\n var colorString = color !== null ? getColorAsString(color) : null;\n var boxShadow = colorString !== null ? \"0.05em 0px 0px \".concat(colorString, \", -0.05em 0px 0px \").concat(colorString) : null;\n return color !== null || textColor !== null ? _objectSpread(_objectSpread(_objectSpread({}, color !== null ? getStyleFromColor(color, 'backgroundColor') : null), textColor !== null ? getStyleFromColor(textColor, 'color') : null), color !== null ? {\n boxShadow: boxShadow,\n mozBoxShadow: boxShadow,\n msBoxShadow: boxShadow,\n webkitBoxShadow: boxShadow\n } : null) : null;\n};\n\nvar getStyleFromImage = function getStyleFromImage(value) {\n if (value == null) {\n return null;\n }\n\n var _value$fit = value.fit,\n fit = _value$fit === void 0 ? {} : _value$fit,\n _value$backgroundColo = value.backgroundColor,\n backgroundColor = _value$backgroundColo === void 0 ? null : _value$backgroundColo;\n var _fit$size = fit.size,\n size = _fit$size === void 0 ? null : _fit$size,\n _fit$position = fit.position,\n position = _fit$position === void 0 ? {} : _fit$position;\n var _position$axisAlign = position.axisAlign,\n axisAlign = _position$axisAlign === void 0 ? null : _position$axisAlign,\n _position$crossAlign = position.crossAlign,\n crossAlign = _position$crossAlign === void 0 ? null : _position$crossAlign;\n return _objectSpread(_objectSpread(_objectSpread({}, size !== null ? {\n objectFit: size\n } : null), axisAlign !== null && crossAlign !== null ? {\n objectPosition: \"\".concat(axisAlign, \" \").concat(crossAlign)\n } : null), getStyleFromColor(backgroundColor, 'backgroundColor'));\n};\n\nvar getStyleFromLink = function getStyleFromLink(value) {\n if (value == null) {\n return null;\n }\n\n var _value$color = value.color,\n color = _value$color === void 0 ? null : _value$color,\n fontStyle = value.fontStyle;\n\n var _ref = fontStyle || {},\n _ref$italic = _ref.italic,\n italic = _ref$italic === void 0 ? false : _ref$italic,\n _ref$bold = _ref.bold,\n bold = _ref$bold === void 0 ? false : _ref$bold,\n _ref$underline = _ref.underline,\n underline = _ref$underline === void 0 ? false : _ref$underline;\n\n return _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, color !== null ? getStyleFromColor(color, 'color') : null), italic ? {\n fontStyle: 'italic'\n } : null), bold ? {\n fontWeight: 'bold'\n } : null), underline ? {\n textDecoration: 'underline'\n } : null);\n};\n\nvar getStyleFromText = function getStyleFromText(value) {\n if (value == null) {\n return null;\n }\n\n var _value$fontFamily = value.fontFamily,\n fontFamily = _value$fontFamily === void 0 ? null : _value$fontFamily,\n _value$fontSize = value.fontSize,\n fontSize = _value$fontSize === void 0 ? null : _value$fontSize,\n _value$fontStyle = value.fontStyle,\n fontStyle = _value$fontStyle === void 0 ? null : _value$fontStyle,\n _value$lineHeight = value.lineHeight,\n lineHeight = _value$lineHeight === void 0 ? null : _value$lineHeight,\n _value$letterSpacing = value.letterSpacing,\n letterSpacing = _value$letterSpacing === void 0 ? null : _value$letterSpacing,\n _value$align = value.align,\n textAlign = _value$align === void 0 ? null : _value$align,\n _value$color = value.color,\n color = _value$color === void 0 ? null : _value$color;\n\n var _ref = fontStyle || {},\n _ref$italic = _ref.italic,\n italic = _ref$italic === void 0 ? false : _ref$italic,\n _ref$bold = _ref.bold,\n bold = _ref$bold === void 0 ? false : _ref$bold,\n _ref$underline = _ref.underline,\n underline = _ref$underline === void 0 ? false : _ref$underline,\n textTransform = _ref.transform,\n _ref$outline = _ref.outline,\n outline = _ref$outline === void 0 ? false : _ref$outline;\n\n return _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({\n fontFamily: getFontFamily(fontFamily)\n }, fontSize !== null ? {\n fontSize: fontSize\n } : null), italic ? {\n fontStyle: 'italic'\n } : null), bold ? {\n fontWeight: 'bold'\n } : null), underline ? {\n textDecoration: 'underline'\n } : null), textTransform !== null ? {\n textTransform: textTransform\n } : null), textAlign !== null ? {\n textAlign: textAlign\n } : null), lineHeight !== null ? {\n lineHeight: lineHeight\n } : null), letterSpacing !== null ? {\n letterSpacing: letterSpacing\n } : null), getStyleFromColor(color, 'color')), outline ? {\n WebkitTextStroke: \"2px \".concat(getColorAsString(color, 'color')),\n color: 'transparent'\n } : null);\n};\n\nvar getStyleFromMargin = function getStyleFromMargin(value) {\n if (value == null) {\n return null;\n }\n\n var _value$top = value.top,\n marginTop = _value$top === void 0 ? null : _value$top,\n _value$bottom = value.bottom,\n marginBottom = _value$bottom === void 0 ? null : _value$bottom;\n return _objectSpread(_objectSpread({}, marginTop !== null ? {\n marginTop: marginTop\n } : null), marginBottom !== null ? {\n marginBottom: marginBottom\n } : null);\n};\n\nvar getLayoutParts = function getLayoutParts() {\n var layout = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n\n var _ref = layout !== null && layout.indexOf('-') !== false ? layout.split('-') : [layout, null, null],\n _ref2 = _slicedToArray(_ref, 3),\n horizontal = _ref2[0],\n vertical = _ref2[1],\n suffix = _ref2[2];\n\n return {\n horizontal: horizontal,\n vertical: vertical,\n suffix: suffix\n };\n};\n\nvar isMessage = function isMessage(message) {\n return isObject(message) && typeof message.defaultMessage !== 'undefined';\n};\n\nvar isIos = function isIos() {\n return ['iPad Simulator', 'iPhone Simulator', 'iPod Simulator', 'iPad', 'iPhone', 'iPod'].includes(navigator.platform) || // iPad on iOS 13 detection\n navigator.userAgent.includes('Mac') && 'ontouchend' in document;\n};\n\nvar isImageFilled = function isImageFilled(image) {\n var _ref = image || {},\n _ref$media = _ref.media,\n media = _ref$media === void 0 ? null : _ref$media;\n\n return media !== null;\n};\n\nvar isTextFilled$1 = function isTextFilled(text) {\n var _ref = text || {},\n _ref$label = _ref.label,\n label = _ref$label === void 0 ? null : _ref$label;\n\n var _ref2 = label || {},\n _ref2$length = _ref2.length,\n length = _ref2$length === void 0 ? 0 : _ref2$length;\n\n return typeof length === 'number' && length > 0;\n};\n\nvar isTextFilled = function isTextFilled(text) {\n var _ref = text || {},\n _ref$body = _ref.body,\n body = _ref$body === void 0 ? null : _ref$body;\n\n var _ref2 = body || {},\n _ref2$length = _ref2.length,\n length = _ref2$length === void 0 ? 0 : _ref2$length;\n\n return typeof length === 'number' && length > 0;\n};\n\nvar isValidUrl = function isValidUrl(string) {\n var url;\n\n try {\n url = new URL(string);\n } catch (_) {\n return false;\n }\n\n return url.protocol === 'http:' || url.protocol === 'https:';\n};\n\nvar createSchemaId = function createSchemaId(id) {\n return \"https://schemas.micromag.ca/0.1/\".concat(id, \".json\");\n};\n\nvar schemaId = function schemaId(str) {\n return createSchemaId(str.join('/'));\n};\n\nvar setValue = function setValue(value, keyParts, fieldValue) {\n var key = keyParts.shift();\n var isArray = key.match(/^[0-9]+$/) !== null;\n\n if (value !== null || fieldValue !== null) {\n if (isArray) {\n var index = parseInt(key, 10);\n var newArrayValue = fieldValue !== null ? [].concat(_toConsumableArray(value.slice(0, index)), [keyParts.length > 0 ? setValue(value !== null ? value[index] || null : null, keyParts, fieldValue) : fieldValue], _toConsumableArray(value.slice(index + 1))) : [].concat(_toConsumableArray(value.slice(0, index)), _toConsumableArray(value.slice(index + 1)));\n return newArrayValue.length > 0 ? newArrayValue : null;\n }\n\n return _objectSpread(_objectSpread({}, value), {}, _defineProperty({}, key, keyParts.length > 0 ? setValue(value !== null ? value[key] || null : null, keyParts, fieldValue) : fieldValue));\n }\n\n return null;\n};\n\nvar slug = function slug(str) {\n var separator = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var toSlug;\n\n if (separator === '-') {\n toSlug = paramCase$1(str);\n } else {\n toSlug = snakeCase(str);\n }\n\n return slugify(toSlug, {\n lower: true\n });\n};\n\nvar unique = function unique(arrArg) {\n return arrArg !== null ? arrArg.filter(function (elem, pos, arr) {\n return arr.indexOf(elem) === pos;\n }) : [];\n};\n\nvar validateFields = function validateFields(fields, value) {\n return fields.reduce(function (acc, field) {\n if (acc === true) {\n if (field.type === 'fields' && field.fields) {\n return validateFields(field.fields, value);\n }\n\n var val = value && value[field.name] ? value[field.name] : false;\n return !(field.required && !val);\n }\n\n return acc;\n }, true);\n};\n\nexport { convertStyleToString, createNullableOnChange, createUseEvent, getColorAsString, getComponentFromName, getDeviceScreens, getDisplayName, getFieldByName, getFieldFromPath, getFileName, getFontFamily as getFontFamilyFromFont, getGridLayoutName, largestRemainderRound as getLargestRemainderRound, getLayersFromBackground, getLayoutParts, getMediaFilesAsArray, getOptimalImageUrl, getScreenExtraField, getSecondsFromTime, getStyleFromBorder, getStyleFromButton, getStyleFromColor, getStyleFromContainer, getStyleFromHighlight, getStyleFromImage, getStyleFromLink, getStyleFromMargin, getStyleFromText, isImageFilled, isIos, isTextFilled$1 as isLabelFilled, isMessage, isTextFilled, isValidUrl, schemaId, setValue as setFieldValue, slug, unique, validateFields };\n","import _objectSpread from '@babel/runtime/helpers/objectSpread2';\nimport React, { useContext, useMemo, useState, useEffect, useCallback, useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport isString from 'lodash/isString';\nimport { ComponentsManager, PropTypes as PropTypes$1, FieldsManager, ScreensManager, ColorsParser, Tracking } from '@micromag/core';\nimport _defineProperty from '@babel/runtime/helpers/defineProperty';\nimport _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';\nimport uniqBy from 'lodash/uniqBy';\nimport _slicedToArray from '@babel/runtime/helpers/slicedToArray';\nimport isObject from 'lodash/isObject';\nimport { getJSON } from '@folklore/fetch';\nimport { loadGoogleApi, loadGoogleMaps } from '@folklore/services';\nimport { getDisplayName, getScreenExtraField } from '@micromag/core/utils';\nimport { generatePath, useHistory } from 'react-router';\nimport { useIntl } from 'react-intl';\nimport { TrackingContext, TrackingContainer } from '@folklore/tracking';\nexport { TrackingContext } from '@folklore/tracking';\nimport _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';\nimport { v1 } from 'uuid';\n\nvar MODALS_NAMESPACE = 'modals';\nvar FIELDS_NAMESPACE = 'fields';\nvar FORMS_NAMESPACE = 'forms';\nvar SCREENS_NAMESPACE = 'screens';\nvar ELEMENTS_NAMESPACE = 'elements';\nvar ComponentsContext = /*#__PURE__*/React.createContext(null);\n/**\n * Hooks\n */\n\nvar useComponentsManager = function useComponentsManager() {\n var namespace = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n var manager = useContext(ComponentsContext);\n var finalManager = useMemo(function () {\n return namespace !== null ? new ComponentsManager(manager.getComponents(namespace)) : manager;\n }, [manager, namespace]);\n return finalManager;\n};\nvar useComponents = function useComponents() {\n var namespace = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n var defaultComponents = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var manager = useComponentsManager();\n return manager.getComponents(namespace) || defaultComponents;\n};\nvar useComponent = function useComponent(name) {\n var defaultComponent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var namespace = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n\n if (!isString(name)) {\n return name || defaultComponent;\n }\n\n var manager = useComponentsManager(namespace);\n return useMemo(function () {\n return manager.getComponent(name) || defaultComponent;\n }, [manager, name, defaultComponent]);\n};\n/**\n * Fields hooks\n */\n\nvar useFieldsComponentsManager = function useFieldsComponentsManager() {\n return useComponentsManager(FIELDS_NAMESPACE);\n};\nvar useFieldsComponents = function useFieldsComponents() {\n var defaultComponents = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n return useComponents(FIELDS_NAMESPACE, defaultComponents);\n};\nvar useFieldComponent = function useFieldComponent(name) {\n var defaultComponent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n return useComponent(name, defaultComponent, FIELDS_NAMESPACE);\n};\n/**\n * Screens hooks\n */\n\nvar useScreensComponentsManager = function useScreensComponentsManager() {\n return useComponentsManager(SCREENS_NAMESPACE);\n};\nvar useScreensComponents = function useScreensComponents() {\n var defaultComponents = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n return useComponents(SCREENS_NAMESPACE, defaultComponents);\n};\nvar useScreenComponent = function useScreenComponent(name) {\n var defaultComponent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n return useComponent(name, defaultComponent, SCREENS_NAMESPACE);\n};\n/**\n * Forms hooks\n */\n\nvar useFormsComponentsManager = function useFormsComponentsManager() {\n return useComponentsManager(FORMS_NAMESPACE);\n};\nvar useFormsComponents = function useFormsComponents() {\n var defaultComponents = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n return useComponents(FORMS_NAMESPACE, defaultComponents);\n};\nvar useFormComponent = function useFormComponent(name) {\n var defaultComponent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n return useComponent(name, defaultComponent, FORMS_NAMESPACE);\n};\n/**\n * Modals hooks\n */\n\nvar useModalsComponentsManager = function useModalsComponentsManager() {\n return useComponentsManager(MODALS_NAMESPACE);\n};\nvar useModalsComponents = function useModalsComponents() {\n var defaultComponents = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n return useComponents(MODALS_NAMESPACE, defaultComponents);\n};\nvar useModalComponent = function useModalComponent(name) {\n var defaultComponent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n return useComponent(name, defaultComponent, MODALS_NAMESPACE);\n};\n/**\n * Elements hooks\n */\n\nvar useElementsComponentsManager = function useElementsComponentsManager() {\n return useComponentsManager(ELEMENTS_NAMESPACE);\n};\nvar useElementsComponents = function useElementsComponents() {\n var defaultComponents = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n return useComponents(ELEMENTS_NAMESPACE, defaultComponents);\n};\nvar useElementComponent = function useElementComponent(name) {\n var defaultComponent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n return useComponent(name, defaultComponent, ELEMENTS_NAMESPACE);\n};\n/**\n * Provider\n */\n\nvar propTypes$i = {\n children: PropTypes.node.isRequired,\n namespace: PropTypes.string,\n manager: PropTypes.instanceOf(ComponentsManager),\n components: PropTypes.objectOf(PropTypes.oneOfType([PropTypes.object, PropTypes.func]))\n};\nvar defaultProps$i = {\n namespace: null,\n components: {},\n manager: null\n};\nvar ComponentsProvider = function ComponentsProvider(_ref) {\n var components = _ref.components,\n manager = _ref.manager,\n namespace = _ref.namespace,\n children = _ref.children;\n var previousManager = useComponentsManager() || null;\n var finalManager = useMemo(function () {\n return new ComponentsManager(_objectSpread(_objectSpread(_objectSpread({}, previousManager !== null ? previousManager.getComponents() : null), manager !== null ? manager.getComponents() : null), new ComponentsManager(components).addNamespace(namespace).getComponents()));\n }, [previousManager, manager, components, namespace]);\n return /*#__PURE__*/React.createElement(ComponentsContext.Provider, {\n value: finalManager\n }, children);\n};\nComponentsProvider.propTypes = propTypes$i;\nComponentsProvider.defaultProps = defaultProps$i;\n\nvar FieldsContext = /*#__PURE__*/React.createContext(null);\nvar useFieldsManager = function useFieldsManager() {\n return useContext(FieldsContext);\n};\nvar useFieldDefinition = function useFieldDefinition(id) {\n var manager = useFieldsManager();\n return manager.getDefinition(id);\n};\nvar propTypes$h = {\n fields: PropTypes$1.fieldDefinitions,\n manager: PropTypes.instanceOf(FieldsManager),\n children: PropTypes.node.isRequired\n};\nvar defaultProps$h = {\n fields: null,\n manager: null\n};\nvar FieldsProvider = function FieldsProvider(_ref) {\n var fields = _ref.fields,\n manager = _ref.manager,\n children = _ref.children;\n var previousManager = useFieldsManager() || null;\n var finalManager = useMemo(function () {\n var newFields = uniqBy([].concat(_toConsumableArray(fields || []), _toConsumableArray(manager !== null ? manager.getDefinitions() : []), _toConsumableArray(previousManager !== null ? previousManager.getDefinitions() : [])), function (_ref2) {\n var id = _ref2.id;\n return id;\n }).reverse();\n return new FieldsManager(newFields);\n }, [previousManager, manager, fields]);\n var components = useMemo(function () {\n var newComponents = finalManager.getComponents();\n return Object.keys(newComponents).reduce(function (map, id) {\n var component = newComponents[id];\n return isString(component) ? map : _objectSpread(_objectSpread({}, map), {}, _defineProperty({}, id, component));\n }, {});\n }, [finalManager]);\n return /*#__PURE__*/React.createElement(FieldsContext.Provider, {\n value: finalManager\n }, /*#__PURE__*/React.createElement(ComponentsProvider, {\n namespace: FIELDS_NAMESPACE,\n components: components\n }, children));\n};\nFieldsProvider.propTypes = propTypes$h;\nFieldsProvider.defaultProps = defaultProps$h;\n\nvar ScreensContext = /*#__PURE__*/React.createContext(new ScreensManager());\nvar useScreensManager = function useScreensManager() {\n return useContext(ScreensContext);\n};\nvar propTypes$g = {\n screens: PropTypes$1.screenDefinitions,\n manager: PropTypes.instanceOf(ScreensManager),\n children: PropTypes.node.isRequired\n};\nvar defaultProps$g = {\n screens: null,\n manager: null\n};\nvar ScreensProvider = function ScreensProvider(_ref) {\n var screens = _ref.screens,\n manager = _ref.manager,\n children = _ref.children;\n var previousManager = useScreensManager();\n var finalManager = useMemo(function () {\n var newManager = manager !== null ? manager : new ScreensManager(screens);\n\n if ((previousManager || null) !== null) {\n return previousManager.merge(newManager);\n }\n\n return newManager;\n }, [manager, screens, previousManager]);\n var initialComponents = useMemo(function () {\n return finalManager.getComponents();\n }, [finalManager]);\n\n var _useState = useState(initialComponents),\n _useState2 = _slicedToArray(_useState, 2),\n components = _useState2[0],\n setComponents = _useState2[1];\n\n useEffect(function () {\n var onChange = function onChange() {\n return setComponents(finalManager.getComponents());\n };\n\n finalManager.on('change', onChange);\n return function () {\n finalManager.off('change', onChange);\n };\n }, [finalManager, setComponents]);\n return /*#__PURE__*/React.createElement(ScreensContext.Provider, {\n value: finalManager\n }, /*#__PURE__*/React.createElement(ComponentsProvider, {\n namespace: SCREENS_NAMESPACE,\n components: components\n }, children));\n};\nScreensProvider.propTypes = propTypes$g;\nScreensProvider.defaultProps = defaultProps$g;\n\nvar StoryContext = /*#__PURE__*/React.createContext(null);\nvar useStoryContext = function useStoryContext() {\n return useContext(StoryContext);\n};\nvar useStory = function useStory() {\n var story = useStoryContext();\n return story;\n};\nvar propTypes$f = {\n story: PropTypes.oneOfType([PropTypes$1.story, PropTypes$1.theme]),\n children: PropTypes.node.isRequired\n};\nvar defaultProps$f = {\n story: null\n};\nvar StoryProvider = function StoryProvider(_ref) {\n var story = _ref.story,\n children = _ref.children;\n return /*#__PURE__*/React.createElement(StoryContext.Provider, {\n value: story\n }, children);\n};\nStoryProvider.propTypes = propTypes$f;\nStoryProvider.defaultProps = defaultProps$f;\n\nvar EditorContext = /*#__PURE__*/React.createContext(null);\nvar useEditor = function useEditor() {\n return useContext(EditorContext);\n};\nvar useGetColors = function useGetColors() {\n var _ref = useEditor() || {},\n _ref$getColors = _ref.getColors,\n getColors = _ref$getColors === void 0 ? function () {\n return [];\n } : _ref$getColors;\n\n return getColors;\n};\nvar propTypes$e = {\n children: PropTypes.node.isRequired\n};\nvar defaultProps$e = {};\nvar EditorProvider = function EditorProvider(_ref2) {\n var children = _ref2.children;\n var story = useStory();\n var screensManager = useScreensManager();\n var fieldsManager = useFieldsManager();\n var parser = useMemo(function () {\n return new ColorsParser({\n screensManager: screensManager,\n fieldsManager: fieldsManager\n });\n }, [screensManager, fieldsManager]);\n var parse = useCallback(function (currentStory) {\n return parser.parse(currentStory);\n }, [parser]);\n var getColors = useCallback(function () {\n return parse(story);\n }, [parse, story]);\n return /*#__PURE__*/React.createElement(EditorContext.Provider, {\n value: {\n getColors: getColors\n }\n }, children);\n};\nEditorProvider.propTypes = propTypes$e;\nEditorProvider.defaultProps = defaultProps$e;\n\n/* eslint-disable react/jsx-props-no-spreading */\nvar FieldContext = /*#__PURE__*/React.createContext(null);\nvar useFieldContext = function useFieldContext() {\n return useContext(FieldContext);\n};\nvar propTypes$d = {\n context: PropTypes.any,\n // eslint-disable-line react/forbid-prop-types\n children: PropTypes.node.isRequired\n};\nvar defaultProps$d = {\n context: null\n};\nvar FieldContextProvider = function FieldContextProvider(_ref) {\n var context = _ref.context,\n children = _ref.children;\n return /*#__PURE__*/React.createElement(FieldContext.Provider, {\n value: context\n }, children);\n};\nFieldContextProvider.propTypes = propTypes$d;\nFieldContextProvider.defaultProps = defaultProps$d;\n\n/* eslint-disable react/jsx-props-no-spreading */\nvar GoogleKeysContext = /*#__PURE__*/React.createContext({\n apiKey: null\n});\nvar useGoogleKeys = function useGoogleKeys() {\n return useContext(GoogleKeysContext);\n};\nvar propTypes$c = {\n children: PropTypes.node.isRequired,\n apiKey: PropTypes.string // .isRequired,\n\n};\nvar defaultProps$c = {\n apiKey: null\n};\nvar GoogleKeysProvider = function GoogleKeysProvider(_ref) {\n var children = _ref.children,\n apiKey = _ref.apiKey;\n\n var _useGoogleKeys = useGoogleKeys(),\n previousApiKey = _useGoogleKeys.apiKey;\n\n return /*#__PURE__*/React.createElement(GoogleKeysContext.Provider, {\n value: {\n apiKey: apiKey || previousApiKey\n }\n }, children);\n};\nGoogleKeysProvider.propTypes = propTypes$c;\nGoogleKeysProvider.defaultProps = defaultProps$c;\n\nvar FontsContext = /*#__PURE__*/React.createContext({\n systemFonts: null,\n googleFonts: null,\n customFonts: null\n});\nvar useGoogleFonts = function useGoogleFonts() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref$disabled = _ref.disabled,\n disabled = _ref$disabled === void 0 ? false : _ref$disabled,\n _ref$setFonts = _ref.setFonts,\n setFonts = _ref$setFonts === void 0 ? null : _ref$setFonts;\n\n var _useGoogleKeys = useGoogleKeys(),\n apiKey = _useGoogleKeys.apiKey;\n\n var _useState = useState(null),\n _useState2 = _slicedToArray(_useState, 2),\n googleFonts = _useState2[0],\n setGoogleFonts = _useState2[1];\n\n useEffect(function () {\n var canceled = false;\n\n if (apiKey !== null && !disabled) {\n getJSON(\"https://www.googleapis.com/webfonts/v1/webfonts?key=\".concat(apiKey, \"&sort=popularity\")).then(function (_ref2) {\n var _ref2$items = _ref2.items,\n items = _ref2$items === void 0 ? [] : _ref2$items;\n\n if (!canceled) {\n var newFonts = items.map(function (it) {\n return {\n type: 'google',\n name: it.family,\n variants: it.variants\n };\n });\n\n if (setFonts !== null) {\n setFonts(newFonts);\n } else {\n setGoogleFonts(newFonts);\n }\n }\n });\n }\n\n return function () {\n canceled = true;\n };\n }, [apiKey, disabled, setFonts, setGoogleFonts]);\n return googleFonts;\n};\nvar useFonts = function useFonts() {\n var _ref3 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref3$withoutGoogleFo = _ref3.withoutGoogleFonts,\n withoutGoogleFonts = _ref3$withoutGoogleFo === void 0 ? false : _ref3$withoutGoogleFo;\n\n var _useContext = useContext(FontsContext),\n _useContext$setGoogle = _useContext.setGoogleFonts,\n setGoogleFonts = _useContext$setGoogle === void 0 ? null : _useContext$setGoogle,\n _useContext$systemFon = _useContext.systemFonts,\n systemFonts = _useContext$systemFon === void 0 ? null : _useContext$systemFon,\n _useContext$googleFon = _useContext.googleFonts,\n googleFonts = _useContext$googleFon === void 0 ? null : _useContext$googleFon,\n _useContext$customFon = _useContext.customFonts,\n customFonts = _useContext$customFon === void 0 ? null : _useContext$customFon;\n\n useGoogleFonts({\n disabled: withoutGoogleFonts || googleFonts !== null && googleFonts.length > 0,\n setFonts: setGoogleFonts\n });\n var fonts = useMemo(function () {\n return {\n systemFonts: systemFonts,\n googleFonts: googleFonts,\n customFonts: customFonts\n };\n }, [systemFonts, googleFonts, customFonts]);\n return fonts;\n};\nvar propTypes$b = {\n children: PropTypes.node.isRequired,\n systemFonts: PropTypes$1.fonts,\n customFonts: PropTypes$1.fonts\n};\nvar defaultProps$b = {\n systemFonts: ['Arial', 'Courier', 'Georgia', 'Times New Roman', 'Verdana'],\n customFonts: null\n};\nvar FontsProvider = function FontsProvider(_ref4) {\n var systemFonts = _ref4.systemFonts,\n customFonts = _ref4.customFonts,\n children = _ref4.children;\n\n var _useFonts = useFonts(),\n _useFonts$systemFonts = _useFonts.systemFonts,\n previousSystemFonts = _useFonts$systemFonts === void 0 ? null : _useFonts$systemFonts,\n _useFonts$googleFonts = _useFonts.googleFonts,\n previousGoogleFonts = _useFonts$googleFonts === void 0 ? null : _useFonts$googleFonts,\n previousCustomFonts = _useFonts.customFonts;\n\n var _useState3 = useState(null),\n _useState4 = _slicedToArray(_useState3, 2),\n googleFonts = _useState4[0],\n setGoogleFonts = _useState4[1];\n\n var fonts = useMemo(function () {\n return {\n systemFonts: uniqBy([].concat(_toConsumableArray(previousSystemFonts || []), _toConsumableArray(systemFonts || [])), function (font) {\n return isObject(font) ? font.name : font;\n }),\n googleFonts: uniqBy([].concat(_toConsumableArray(previousGoogleFonts || []), _toConsumableArray(googleFonts || [])), function (font) {\n return isObject(font) ? font.name : font;\n }),\n customFonts: uniqBy([].concat(_toConsumableArray(previousCustomFonts || []), _toConsumableArray(customFonts || [])), function (font) {\n return isObject(font) ? font.name : font;\n }),\n setGoogleFonts: setGoogleFonts\n };\n }, [previousSystemFonts, previousGoogleFonts, previousCustomFonts, customFonts, systemFonts, googleFonts, setGoogleFonts]);\n return /*#__PURE__*/React.createElement(FontsContext.Provider, {\n value: fonts\n }, children);\n};\nFontsProvider.propTypes = propTypes$b;\nFontsProvider.defaultProps = defaultProps$b;\n\nvar GoogleApiClientContext = /*#__PURE__*/React.createContext(null);\nvar useGoogleApiClient = function useGoogleApiClient() {\n return useContext(GoogleApiClientContext);\n};\nvar withGoogleApiClient = function withGoogleApiClient(WrappedComponent) {\n var getDisplayName = function getDisplayName(_ref) {\n var _ref$displayName = _ref.displayName,\n displayName = _ref$displayName === void 0 ? null : _ref$displayName,\n _ref$name = _ref.name,\n name = _ref$name === void 0 ? null : _ref$name;\n return displayName || name || 'Component';\n };\n\n var WithGoogleApiClientComponent = function WithGoogleApiClientComponent(props) {\n return /*#__PURE__*/React.createElement(GoogleApiClientContext.Consumer, null, function (client) {\n return /*#__PURE__*/React.createElement(WrappedComponent, Object.assign({\n googleApiClient: client\n }, props));\n });\n };\n\n WithGoogleApiClientComponent.displayName = \"WithGoogleApiClient(\".concat(getDisplayName(WrappedComponent), \")\");\n return WithGoogleApiClientComponent;\n};\nvar propTypes$a = {\n children: PropTypes.node.isRequired\n};\nvar defaultProps$a = {};\nvar GoogleApiClientProvider = function GoogleApiClientProvider(_ref2) {\n var children = _ref2.children;\n\n var _useGoogleKeys = useGoogleKeys(),\n apiKey = _useGoogleKeys.apiKey;\n\n var _useState = useState(null),\n _useState2 = _slicedToArray(_useState, 2),\n client = _useState2[0],\n setClient = _useState2[1];\n\n useEffect(function () {\n loadGoogleApi().then(function (gapi) {\n return gapi.client.init({\n apiKey: apiKey\n }).then(function () {\n return gapi;\n });\n }).then(function (gapi) {\n return setClient(gapi);\n });\n }, [apiKey, setClient]);\n return /*#__PURE__*/React.createElement(GoogleApiClientContext.Provider, {\n value: client\n }, children);\n};\nGoogleApiClientProvider.propTypes = propTypes$a;\nGoogleApiClientProvider.defaultProps = defaultProps$a;\n\nvar GoogleMapsClientContext = /*#__PURE__*/React.createContext(null);\nvar useGoogleMapsClient = function useGoogleMapsClient() {\n return useContext(GoogleMapsClientContext);\n};\nvar withGoogleMapsClient = function withGoogleMapsClient(WrappedComponent) {\n var getDisplayName = function getDisplayName(_ref) {\n var _ref$displayName = _ref.displayName,\n displayName = _ref$displayName === void 0 ? null : _ref$displayName,\n _ref$name = _ref.name,\n name = _ref$name === void 0 ? null : _ref$name;\n return displayName || name || 'Component';\n };\n\n var WithGoogleMapsClientComponent = function WithGoogleMapsClientComponent(props) {\n return /*#__PURE__*/React.createElement(GoogleMapsClientContext.Consumer, null, function (client) {\n return /*#__PURE__*/React.createElement(WrappedComponent, Object.assign({\n googleApiClient: client\n }, props));\n });\n };\n\n WithGoogleMapsClientComponent.displayName = \"WithGoogleMapsClient(\".concat(getDisplayName(WrappedComponent), \")\");\n return WithGoogleMapsClientComponent;\n};\nvar propTypes$9 = {\n children: PropTypes.node.isRequired,\n locale: PropTypes.string,\n libraries: PropTypes.arrayOf(PropTypes.string)\n};\nvar defaultProps$9 = {\n locale: 'fr',\n libraries: null\n};\nvar GoogleMapsClientProvider = function GoogleMapsClientProvider(_ref2) {\n var children = _ref2.children,\n locale = _ref2.locale,\n libraries = _ref2.libraries;\n\n var _useGoogleKeys = useGoogleKeys(),\n apiKey = _useGoogleKeys.apiKey;\n\n var exisitingClient = useGoogleMapsClient();\n\n var _useState = useState(exisitingClient),\n _useState2 = _slicedToArray(_useState, 2),\n client = _useState2[0],\n setClient = _useState2[1];\n\n useEffect(function () {\n if (exisitingClient === null) {\n loadGoogleMaps({\n apiKey: apiKey,\n locale: locale,\n libraries: libraries\n }).then(function (newClient) {\n setClient(newClient);\n });\n }\n }, [apiKey, locale, libraries, setClient, exisitingClient]);\n return /*#__PURE__*/React.createElement(GoogleMapsClientContext.Provider, {\n value: client\n }, children);\n};\nGoogleMapsClientProvider.propTypes = propTypes$9;\nGoogleMapsClientProvider.defaultProps = defaultProps$9;\n\nvar ModalsContext = /*#__PURE__*/React.createContext({\n container: null\n});\nvar useModals = function useModals() {\n return useContext(ModalsContext) || {};\n};\nvar withModals = function withModals(WrappedComponent) {\n var WithModalsComponent = function WithModalsComponent(props) {\n return /*#__PURE__*/React.createElement(ModalsContext.Consumer, null, function (_ref) {\n var modals = _ref.modals,\n container = _ref.container,\n setContainer = _ref.setContainer,\n register = _ref.register,\n unregister = _ref.unregister;\n return /*#__PURE__*/React.createElement(WrappedComponent, Object.assign({\n modalsContainer: container,\n setModalsContainer: setContainer,\n modals: modals,\n registerModal: register,\n unregisterModal: unregister\n }, props));\n });\n };\n\n WithModalsComponent.displayName = \"WithModals(\".concat(getDisplayName(WrappedComponent), \")\");\n return WithModalsComponent;\n};\nvar propTypes$8 = {\n children: PropTypes.node.isRequired,\n container: PropTypes.object // eslint-disable-line\n\n};\nvar defaultProps$8 = {\n container: null\n};\nvar ModalsProvider = function ModalsProvider(_ref2) {\n var children = _ref2.children,\n initialContainer = _ref2.container;\n\n var _useState = useState(initialContainer),\n _useState2 = _slicedToArray(_useState, 2),\n container = _useState2[0],\n setContainer = _useState2[1];\n\n var _useState3 = useState([]),\n _useState4 = _slicedToArray(_useState3, 2),\n modals = _useState4[0],\n setModals = _useState4[1];\n\n var modalsRef = useRef(modals);\n var register = useCallback(function (id) {\n var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var currentModals = modalsRef.current;\n var newModals = [].concat(_toConsumableArray(currentModals), [_objectSpread({\n id: id\n }, data)]);\n setModals(newModals);\n modalsRef.current = newModals;\n }, [modals, setModals]);\n var unregister = useCallback(function (id) {\n var currentModals = modalsRef.current;\n var foundIndex = currentModals.findIndex(function (_ref3) {\n var modalId = _ref3.id;\n return modalId === id;\n });\n\n if (foundIndex !== -1) {\n var newModals = currentModals.filter(function (_ref4) {\n var modalId = _ref4.id;\n return modalId !== id;\n });\n setModals(newModals);\n modalsRef.current = newModals;\n }\n }, [modals, setModals]);\n return /*#__PURE__*/React.createElement(ModalsContext.Provider, {\n value: {\n modals: modals,\n container: container,\n setContainer: setContainer,\n register: register,\n unregister: unregister\n }\n }, children);\n};\nModalsProvider.propTypes = propTypes$8;\nModalsProvider.defaultProps = defaultProps$8;\n\nvar PanelsContext = /*#__PURE__*/React.createContext({\n container: null\n});\nvar usePanels = function usePanels() {\n return useContext(PanelsContext) || {};\n};\nvar withPanels = function withPanels(WrappedComponent) {\n var WithPanelsComponent = function WithPanelsComponent(props) {\n return /*#__PURE__*/React.createElement(PanelsContext.Consumer, null, function (_ref) {\n var panels = _ref.panels,\n setContainer = _ref.setContainer,\n container = _ref.container,\n register = _ref.register,\n unregister = _ref.unregister;\n return /*#__PURE__*/React.createElement(WrappedComponent, Object.assign({\n panelsContainer: container,\n setPanelsContainer: setContainer,\n panels: panels,\n registerPanel: register,\n unregisterPanel: unregister\n }, props));\n });\n };\n\n WithPanelsComponent.displayName = \"WithPanels(\".concat(getDisplayName(WrappedComponent), \")\");\n return WithPanelsComponent;\n};\nvar propTypes$7 = {\n children: PropTypes.node.isRequired,\n container: PropTypes.object // eslint-disable-line\n\n};\nvar defaultProps$7 = {\n container: null\n};\nvar PanelsProvider = function PanelsProvider(_ref2) {\n var children = _ref2.children,\n initialContainer = _ref2.container;\n\n var _useState = useState(initialContainer),\n _useState2 = _slicedToArray(_useState, 2),\n container = _useState2[0],\n setContainer = _useState2[1];\n\n var _useState3 = useState([]),\n _useState4 = _slicedToArray(_useState3, 2),\n panels = _useState4[0],\n setPanels = _useState4[1];\n\n var panelsRef = useRef(panels);\n var register = useCallback(function (id) {\n var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var currentPanels = panelsRef.current;\n var newPanels = [].concat(_toConsumableArray(currentPanels), [_objectSpread({\n id: id\n }, data)]);\n setPanels(newPanels);\n panelsRef.current = newPanels;\n }, [panels, setPanels]);\n var unregister = useCallback(function (id) {\n var currentPanels = panelsRef.current;\n var foundIndex = currentPanels.findIndex(function (_ref3) {\n var modalId = _ref3.id;\n return modalId === id;\n });\n\n if (foundIndex !== -1) {\n var newPanels = currentPanels.filter(function (_ref4) {\n var modalId = _ref4.id;\n return modalId !== id;\n });\n setPanels(newPanels);\n panelsRef.current = newPanels;\n }\n }, [panels, setPanels]);\n return /*#__PURE__*/React.createElement(PanelsContext.Provider, {\n value: {\n panels: panels,\n setContainer: setContainer,\n container: container,\n register: register,\n unregister: unregister\n }\n }, children);\n};\nPanelsProvider.propTypes = propTypes$7;\nPanelsProvider.defaultProps = defaultProps$7;\n\n/* eslint-disable react/jsx-props-no-spreading */\nvar RoutesContext = /*#__PURE__*/React.createContext(null);\nvar useRoutes = function useRoutes() {\n var _useContext = useContext(RoutesContext),\n routes = _useContext.routes;\n\n return routes;\n};\nvar useUrlGenerator = function useUrlGenerator() {\n var _useContext2 = useContext(RoutesContext),\n routes = _useContext2.routes,\n basePath = _useContext2.basePath;\n\n var urlGenerator = useCallback(function (key, data) {\n var url = generatePath(routes[key], data);\n return basePath !== null ? \"\".concat(basePath.replace(/\\/$/, ''), \"/\").concat(url.replace(/^\\//, '')) : url;\n }, [generatePath, routes, basePath]);\n return urlGenerator;\n};\nvar useRoutePush = function useRoutePush() {\n var url = useUrlGenerator();\n var history = useHistory();\n var push = useCallback(function (route, data) {\n for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n args[_key - 2] = arguments[_key];\n }\n\n if (isString(route)) {\n history.push.apply(history, [url(route, data)].concat(args));\n } else {\n var _ref = route || {},\n _ref$pathname = _ref.pathname,\n pathname = _ref$pathname === void 0 ? null : _ref$pathname,\n _ref$search = _ref.search,\n search = _ref$search === void 0 ? null : _ref$search;\n\n history.push.apply(history, [{\n pathname: url(pathname, data),\n search: search\n }].concat(args));\n }\n }, [history, url]);\n return push;\n};\nvar useRouteBack = function useRouteBack() {\n var url = useUrlGenerator();\n var history = useHistory();\n var back = useCallback(function () {\n return history.goBack();\n }, [history, url]);\n return back;\n};\nvar propTypes$6 = {\n children: PropTypes.node.isRequired,\n routes: PropTypes.objectOf(PropTypes.string),\n // .isRequired,\n basePath: PropTypes.string\n};\nvar defaultProps$6 = {\n routes: null,\n basePath: null\n};\nvar RoutesProvider = function RoutesProvider(_ref2) {\n var routes = _ref2.routes,\n basePath = _ref2.basePath,\n children = _ref2.children;\n return /*#__PURE__*/React.createElement(RoutesContext.Provider, {\n value: {\n routes: routes,\n basePath: basePath\n }\n }, children);\n};\nRoutesProvider.propTypes = propTypes$6;\nRoutesProvider.defaultProps = defaultProps$6;\n\nvar ScreenContext = /*#__PURE__*/React.createContext({\n data: null,\n definition: null,\n renderContext: null\n});\nvar useScreen = function useScreen() {\n return useContext(ScreenContext);\n};\nvar useScreenDefinition = function useScreenDefinition() {\n var intl = useIntl();\n\n var _ref = useScreen() || {},\n definition = _ref.definition;\n\n var _ref2 = definition || {},\n fields = _ref2.fields;\n\n var finalFields = useMemo(function () {\n return [].concat(_toConsumableArray(fields), [getScreenExtraField(intl)]);\n }, [fields]);\n return _objectSpread(_objectSpread({}, definition), {}, {\n fields: finalFields\n });\n};\nvar useScreenData = function useScreenData() {\n var _ref3 = useScreen() || {},\n data = _ref3.data;\n\n return data;\n};\nvar useScreenRenderContext = function useScreenRenderContext() {\n var _ref4 = useScreen() || {},\n _ref4$renderContext = _ref4.renderContext,\n renderContext = _ref4$renderContext === void 0 ? 'view' : _ref4$renderContext;\n\n var isPlaceholder = renderContext === 'placeholder';\n var isPreview = renderContext === 'preview';\n var isEdit = renderContext === 'edit';\n var isView = renderContext === 'view';\n var isStatic = renderContext === 'static';\n var isCapture = renderContext === 'capture';\n return {\n renderContext: renderContext,\n isPlaceholder: isPlaceholder,\n isPreview: isPreview,\n isEdit: isEdit,\n isView: isView || isStatic || isCapture,\n isStatic: isStatic,\n isCapture: isCapture\n };\n};\nvar propTypes$5 = {\n children: PropTypes.node.isRequired,\n data: PropTypes$1.screen,\n definition: PropTypes$1.screenDefinition,\n renderContext: PropTypes$1.renderContext\n};\nvar defaultProps$5 = {\n data: null,\n definition: null,\n renderContext: null\n};\nvar ScreenProvider = function ScreenProvider(_ref5) {\n var data = _ref5.data,\n definition = _ref5.definition,\n renderContext = _ref5.renderContext,\n children = _ref5.children;\n\n var _ref6 = useScreen() || {},\n _ref6$data = _ref6.data,\n previousData = _ref6$data === void 0 ? null : _ref6$data,\n _ref6$definition = _ref6.definition,\n previousDefinition = _ref6$definition === void 0 ? null : _ref6$definition,\n _ref6$renderContext = _ref6.renderContext,\n previousContext = _ref6$renderContext === void 0 ? null : _ref6$renderContext;\n\n var finalData = data || previousData || null;\n\n var _ref7 = finalData || {},\n _ref7$type = _ref7.type,\n type = _ref7$type === void 0 ? null : _ref7$type;\n\n var screensManager = useScreensManager();\n var contextDefinition = screensManager !== null ? screensManager.getDefinition(type) : null;\n var finalDefinition = definition || contextDefinition || previousDefinition;\n var finalRenderContext = renderContext || previousContext || 'view';\n var value = useMemo(function () {\n return {\n data: finalData,\n definition: finalDefinition,\n renderContext: finalRenderContext\n };\n }, [finalData, finalDefinition, finalRenderContext]);\n return /*#__PURE__*/React.createElement(ScreenContext.Provider, {\n value: value\n }, children);\n};\nScreenProvider.propTypes = propTypes$5;\nScreenProvider.defaultProps = defaultProps$5;\n\nvar ScreenSizeContext = /*#__PURE__*/React.createContext({\n screen: null,\n screens: [],\n width: 0,\n height: 0,\n landscape: false\n});\nvar useScreenSize = function useScreenSize() {\n return useContext(ScreenSizeContext);\n};\nvar propTypes$4 = {\n children: PropTypes.node.isRequired,\n size: PropTypes$1.screenSize\n};\nvar defaultProps$4 = {\n size: {}\n}; // Note: this is done to avoid excessive renders on the screens that use the context\n\nvar ScreenSizeProvider = function ScreenSizeProvider(_ref) {\n var size = _ref.size,\n children = _ref.children;\n\n var _useState = useState(size),\n _useState2 = _slicedToArray(_useState, 2),\n currentSize = _useState2[0],\n setSize = _useState2[1];\n\n var prevWidth = currentSize.width,\n prevHeight = currentSize.height;\n var nextWidth = size.width,\n nextHeight = size.height;\n useEffect(function () {\n if (prevWidth !== nextWidth || prevHeight !== nextHeight) {\n setSize(size);\n }\n }, [setSize, nextWidth, nextHeight, prevWidth, prevHeight, size]);\n return /*#__PURE__*/React.createElement(ScreenSizeContext.Provider, {\n value: currentSize\n }, children);\n};\nScreenSizeProvider.propTypes = propTypes$4;\nScreenSizeProvider.defaultProps = defaultProps$4;\n\nvar useTracking = function useTracking() {\n return useContext(TrackingContext);\n};\nvar propTypes$3 = {\n children: PropTypes.node.isRequired,\n variables: PropTypes$1.trackingVariables\n};\nvar defaultProps$3 = {\n variables: null\n};\nvar TrackingProvider = function TrackingProvider(_ref) {\n var variables = _ref.variables,\n children = _ref.children;\n var contextTracking = useTracking() || null;\n var tracking = useMemo(function () {\n return new Tracking({\n variables: _objectSpread(_objectSpread({}, contextTracking !== null ? contextTracking.getVariables() : null), variables)\n });\n }, [contextTracking, variables]);\n return /*#__PURE__*/React.createElement(TrackingContainer, {\n tracking: tracking\n }, children);\n};\nTrackingProvider.propTypes = propTypes$3;\nTrackingProvider.defaultProps = defaultProps$3;\n\n/**\n * Locale loader\n */\n\nvar packageCache = null;\n\nvar useUppyCore = function useUppyCore() {\n // transport\n var _useState = useState({\n \"package\": packageCache\n }),\n _useState2 = _slicedToArray(_useState, 2),\n loadedPackage = _useState2[0][\"package\"],\n setLoadedPackage = _useState2[1];\n\n useEffect(function () {\n var canceled = false;\n\n if (loadedPackage !== null) {\n return function () {\n canceled = true;\n };\n }\n\n import('@uppy/core').then(function (_ref) {\n var Uppy = _ref.Uppy;\n packageCache = Uppy;\n\n if (!canceled) {\n setLoadedPackage({\n \"package\": Uppy\n });\n }\n });\n return function () {\n canceled = true;\n };\n }, [loadedPackage, setLoadedPackage]);\n return loadedPackage;\n};\n\n/**\n * Locale loader\n */\n\nvar packagesCache$2 = {};\nvar defaultPackagesMap$2 = {\n fr: function fr() {\n return import('@uppy/locales/lib/fr_FR');\n },\n en: function en() {\n return import('@uppy/locales/lib/en_US');\n }\n};\n\nvar useUppyLocale = function useUppyLocale(locale) {\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n _ref$packagesMap = _ref.packagesMap,\n packagesMap = _ref$packagesMap === void 0 ? defaultPackagesMap$2 : _ref$packagesMap;\n\n var _useState = useState({\n \"package\": packagesCache$2[locale] || null\n }),\n _useState2 = _slicedToArray(_useState, 2),\n loadedPackage = _useState2[0][\"package\"],\n setLoadedPackage = _useState2[1];\n\n var packageLoader = packagesMap[locale] || null;\n useEffect(function () {\n var canceled = false;\n\n if (loadedPackage !== null || packageLoader === null) {\n return function () {\n canceled = true;\n };\n }\n\n packageLoader().then(function (_ref2) {\n var dep = _ref2[\"default\"];\n\n // packagesCache[locale] = dep;\n if (!canceled) {\n setLoadedPackage({\n \"package\": dep\n });\n }\n });\n return function () {\n canceled = true;\n };\n }, [packageLoader, loadedPackage, setLoadedPackage]);\n return loadedPackage;\n};\n\nvar _excluded$2 = [\"default\"];\n/**\n * Locale loader\n */\n\nvar packagesCache$1 = {};\nvar defaultPackagesMap$1 = {\n transloadit: null,\n // Disabled for compatibility reasons\n tus: function tus() {\n return import('@uppy/tus');\n },\n xhr: function xhr() {\n return import('@uppy/xhr-upload');\n }\n};\n\nvar useUppyTransport = function useUppyTransport(transport) {\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n _ref$packagesMap = _ref.packagesMap,\n packagesMap = _ref$packagesMap === void 0 ? defaultPackagesMap$1 : _ref$packagesMap;\n\n // transport\n var _useState = useState({\n \"package\": packagesCache$1[transport] || null\n }),\n _useState2 = _slicedToArray(_useState, 2),\n loadedPackage = _useState2[0][\"package\"],\n setLoadedPackage = _useState2[1];\n\n var packageLoader = packagesMap[transport] || null;\n useEffect(function () {\n var canceled = false;\n\n if (loadedPackage !== null || packageLoader === null) {\n return function () {\n canceled = true;\n };\n }\n\n packageLoader().then(function (_ref2) {\n var pack = _ref2[\"default\"],\n others = _objectWithoutProperties(_ref2, _excluded$2);\n\n var dep = Object.keys(others).reduce(function (map, key) {\n map[key] = others[key]; // eslint-disable-line no-param-reassign\n\n return map;\n }, pack);\n packagesCache$1[transport] = dep;\n\n if (!canceled) {\n setLoadedPackage({\n \"package\": dep\n });\n }\n });\n return function () {\n canceled = true;\n };\n }, [packageLoader, loadedPackage, setLoadedPackage]);\n return loadedPackage;\n};\n\nvar _excluded$1 = [\"default\"];\n/**\n * Locale loader\n */\n\nvar packagesCache = {};\nvar defaultPackagesMap = {\n webcam: function webcam() {\n return import('@uppy/webcam');\n },\n facebook: function facebook() {\n return import('@uppy/facebook');\n },\n instagram: function instagram() {\n return import('@uppy/instagram');\n },\n dropbox: function dropbox() {\n return import('@uppy/dropbox');\n },\n 'google-drive': function googleDrive() {\n return import('@uppy/google-drive');\n }\n};\n\nvar useUppySources = function useUppySources(sources) {\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n _ref$packagesMap = _ref.packagesMap,\n packagesMap = _ref$packagesMap === void 0 ? defaultPackagesMap : _ref$packagesMap;\n\n // transport\n var _useState = useState({\n packages: sources.reduce(function (map, source) {\n var sourcePackage = packagesCache[source] || null;\n\n if (sourcePackage === null) {\n return map;\n }\n\n return _objectSpread(_objectSpread({}, map), {}, _defineProperty({}, source, sourcePackage));\n }, null)\n }),\n _useState2 = _slicedToArray(_useState, 2),\n loadedPackages = _useState2[0].packages,\n setLoadedPackages = _useState2[1];\n\n var sourcesToLoad = useMemo(function () {\n if (loadedPackages === null) {\n return sources;\n }\n\n var sourcesLoaded = Object.keys(loadedPackages);\n return sources.filter(function (source) {\n return sourcesLoaded.indexOf(source) === -1;\n });\n }, [sources, loadedPackages]);\n useEffect(function () {\n var canceled = false;\n\n if (sourcesToLoad.length === 0) {\n return function () {\n canceled = true;\n };\n }\n\n Promise.all(sourcesToLoad.map(function (source) {\n return packagesMap[source] || null;\n }).filter(function (it) {\n return it !== null;\n }).map(function (promise) {\n return promise();\n })).then(function (packagesLoaded) {\n var newLoadedPackages = sourcesToLoad.reduce(function (map, source, index) {\n var _packagesLoaded$index = packagesLoaded[index],\n pack = _packagesLoaded$index[\"default\"],\n others = _objectWithoutProperties(_packagesLoaded$index, _excluded$1);\n\n return _objectSpread(_objectSpread({}, map), {}, _defineProperty({}, source, Object.keys(others).reduce(function (otherMap, key) {\n otherMap[key] = others[key]; // eslint-disable-line no-param-reassign\n\n return otherMap;\n }, pack)));\n }, {});\n packagesCache = _objectSpread(_objectSpread({}, packagesCache), newLoadedPackages);\n\n if (!canceled) {\n setLoadedPackages({\n packages: newLoadedPackages\n });\n }\n });\n return function () {\n canceled = true;\n };\n }, [sourcesToLoad, packagesMap, loadedPackages, setLoadedPackages]);\n return sourcesToLoad.length === 0 ? loadedPackages : null;\n};\n\nvar convertToMedia = function convertToMedia(it) {\n // console.log('upload', it);\n var type = it.data.type.split('/')[0];\n var thumbnail = it.transloadit[\"\".concat(type, \"_thumbnail\")] || null;\n var original = it.transloadit[\"\".concat(type, \"_original\")] || null;\n return {\n handle: it.id,\n type: type,\n name: it.meta.name,\n mime: it.data.type,\n size: it.data.size,\n url: original !== null ? original.ssl_url || original.url : null,\n thumbnail_url: thumbnail !== null ? thumbnail.ssl_url || thumbnail.url : null,\n metadata: _objectSpread(_objectSpread(_objectSpread({}, original !== null ? original.meta || null : null), it.meta.user ? {\n user: it.meta.user\n } || null : null), {}, {\n filename: it.meta.filename,\n transloadit: it.transloadit.results || null\n })\n };\n};\n\nvar getTransloaditMediasFromResponse = function getTransloaditMediasFromResponse(response) {\n return response.successful.map(function (it) {\n var transloadit = response.transloadit.find(function (subIt) {\n return subIt.assembly_id === it.transloadit.assembly;\n }) || null;\n var results = transloadit !== null ? transloadit.results || null : null;\n return _objectSpread(_objectSpread({}, it), {}, {\n transloadit: results !== null ? Object.keys(results).reduce(function (map, resultKey) {\n var result = results[resultKey].find(function (itResult) {\n return itResult.name === it.name;\n });\n return result !== null ? _objectSpread(_objectSpread({}, map), {}, _defineProperty({}, resultKey, result)) : map;\n }, null) : null\n });\n }).filter(function (it) {\n return it.transloadit !== null;\n }).map(function (it) {\n return convertToMedia(it);\n });\n};\n\nvar _excluded = [\"sources\"],\n _excluded2 = [\"key\", \"templateId\", \"waitForEncoding\"];\nvar UppyContext = /*#__PURE__*/React.createContext(null);\nvar useUppy = function useUppy() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref$onComplete = _ref.onComplete,\n onComplete = _ref$onComplete === void 0 ? null : _ref$onComplete,\n _ref$onFail = _ref.onFail,\n onFail = _ref$onFail === void 0 ? null : _ref$onFail,\n _ref$getFileName = _ref.getFileName,\n getFileName = _ref$getFileName === void 0 ? function (_ref2) {\n var _ref2$extension = _ref2.extension,\n extension = _ref2$extension === void 0 ? null : _ref2$extension;\n return \"\".concat(v1()).concat(extension !== null ? \".\".concat(extension) : '');\n } : _ref$getFileName,\n _ref$meta = _ref.meta,\n meta = _ref$meta === void 0 ? null : _ref$meta,\n _ref$maxNumberOfFiles = _ref.maxNumberOfFiles,\n maxNumberOfFiles = _ref$maxNumberOfFiles === void 0 ? 30 : _ref$maxNumberOfFiles,\n _ref$allowedFileTypes = _ref.allowedFileTypes,\n allowedFileTypes = _ref$allowedFileTypes === void 0 ? null : _ref$allowedFileTypes,\n _ref$autoProceed = _ref.autoProceed,\n autoProceed = _ref$autoProceed === void 0 ? false : _ref$autoProceed;\n\n var _ref3 = useContext(UppyContext) || null,\n buildUppy = _ref3.buildUppy,\n transport = _ref3.transport;\n\n var uppy = useMemo(function () {\n return buildUppy !== null ? buildUppy({\n meta: meta,\n restrictions: {\n maxNumberOfFiles: maxNumberOfFiles,\n allowedFileTypes: allowedFileTypes\n },\n autoProceed: autoProceed\n }) : null;\n }, [buildUppy, meta, maxNumberOfFiles, allowedFileTypes, autoProceed]);\n useEffect(function () {\n if (uppy === null) {\n return function () {};\n }\n\n var onUppyComplete = function onUppyComplete(response) {\n var _response$successful = response.successful,\n successful = _response$successful === void 0 ? [] : _response$successful,\n _response$failed = response.failed,\n failed = _response$failed === void 0 ? null : _response$failed;\n var finalSuccessful = transport === 'transloadit' ? getTransloaditMediasFromResponse(response) : successful;\n\n if (onComplete !== null) {\n onComplete(finalSuccessful);\n }\n\n if (onFail !== null) {\n onFail(failed);\n }\n };\n\n uppy.on('complete', onUppyComplete);\n return function () {\n uppy.off('complete', onUppyComplete);\n };\n }, [uppy, transport, onComplete]);\n useEffect(function () {\n if (uppy === null) {\n return function () {};\n }\n\n var onUpload = function onUpload(_ref4) {\n var _ref4$fileIDs = _ref4.fileIDs,\n ids = _ref4$fileIDs === void 0 ? [] : _ref4$fileIDs;\n ids.forEach(function (id) {\n var file = uppy.getFile(id);\n var newName = getFileName(file);\n\n if (newName !== null) {\n uppy.setFileMeta(id, {\n name: newName\n });\n }\n });\n };\n\n uppy.on('upload', onUpload);\n return function () {\n uppy.off('upload', onUpload);\n };\n }, [uppy]);\n useEffect(function () {\n return function () {\n if (uppy !== null) {\n uppy.close();\n }\n };\n }, [uppy]);\n return uppy;\n};\nvar propTypes$2 = {\n children: PropTypes.node.isRequired,\n transport: PropTypes.oneOf(['xhr', 'transloadit', 'tus']),\n locale: PropTypes.string,\n sources: PropTypes.arrayOf(PropTypes.oneOf(['webcam', 'facebook', 'instagram', 'dropbox', 'google-drive'])),\n transloadit: PropTypes.shape({\n key: PropTypes.string.isRequired,\n templateId: PropTypes.string,\n waitForEncoding: PropTypes.bool\n }),\n companion: PropTypes.shape({\n url: PropTypes.string.isRequired,\n allowedHosts: PropTypes.string.isRequired\n }),\n tus: PropTypes.oneOfType([PropTypes.string, PropTypes.shape({\n endpoint: PropTypes.string.isRequired\n })]),\n xhr: PropTypes.oneOfType([PropTypes.string, PropTypes.shape({\n endpoint: PropTypes.string.isRequired\n })])\n};\nvar defaultProps$2 = {\n transport: null,\n locale: null,\n sources: null,\n transloadit: null,\n companion: null,\n tus: null,\n xhr: null\n};\nvar UppyProvider = function UppyProvider(_ref5) {\n var children = _ref5.children,\n providedTransport = _ref5.transport,\n providedLocale = _ref5.locale,\n providedSources = _ref5.sources,\n providedTransloadit = _ref5.transloadit,\n providedCompanion = _ref5.companion,\n providedTus = _ref5.tus,\n providedXhr = _ref5.xhr;\n\n var _useIntl = useIntl(),\n intlLocale = _useIntl.locale;\n\n var _ref6 = useContext(UppyContext) || {},\n _ref6$transport = _ref6.transport,\n contextTransport = _ref6$transport === void 0 ? null : _ref6$transport,\n _ref6$locale = _ref6.locale,\n contextLocale = _ref6$locale === void 0 ? null : _ref6$locale,\n _ref6$sources = _ref6.sources,\n contextSources = _ref6$sources === void 0 ? null : _ref6$sources,\n _ref6$transloadit = _ref6.transloadit,\n contextTransloadit = _ref6$transloadit === void 0 ? null : _ref6$transloadit,\n _ref6$companion = _ref6.companion,\n contextCompanion = _ref6$companion === void 0 ? null : _ref6$companion,\n _ref6$tus = _ref6.tus,\n contextTus = _ref6$tus === void 0 ? null : _ref6$tus,\n _ref6$xhr = _ref6.xhr,\n contextXhr = _ref6$xhr === void 0 ? null : _ref6$xhr;\n\n var transport = providedTransport || contextTransport || 'xhr';\n var locale = providedLocale || contextLocale || intlLocale;\n var sources = providedSources || contextSources || ['webcam', 'facebook', 'instagram', 'dropbox', 'google-drive'];\n var transloadit = providedTransloadit || contextTransloadit;\n var companion = providedCompanion || contextCompanion;\n var tus = providedTus || contextTus;\n var xhr = providedXhr || contextXhr;\n var Uppy = useUppyCore();\n var uppyTransport = useUppyTransport(transport);\n var uppySources = useUppySources(sources);\n var uppyLocale = useUppyLocale(locale || intlLocale);\n var buildUppy = useMemo(function () {\n if (Uppy === null || uppyLocale === null || uppyTransport === null || uppySources === null) {\n return null;\n }\n\n return function () {\n var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n var _ref7 = opts || {},\n _ref7$sources = _ref7.sources,\n customSources = _ref7$sources === void 0 ? sources : _ref7$sources,\n uppyOpts = _objectWithoutProperties(_ref7, _excluded);\n\n var newUppy = new Uppy(_objectSpread({\n locale: uppyLocale\n }, uppyOpts));\n\n if (transport === 'transloadit') {\n var key = transloadit.key,\n templateId = transloadit.templateId,\n _transloadit$waitForE = transloadit.waitForEncoding,\n waitForEncoding = _transloadit$waitForE === void 0 ? true : _transloadit$waitForE,\n transloaditOpts = _objectWithoutProperties(transloadit, _excluded2);\n\n newUppy.use(uppyTransport, {\n params: _objectSpread({\n auth: {\n key: key\n },\n template_id: templateId\n }, transloaditOpts),\n waitForEncoding: waitForEncoding\n });\n } else if (transport === 'tus') {\n newUppy.use(uppyTransport, _objectSpread({\n endpoint: '/tus',\n resume: true,\n retryDelays: [0, 1000, 3000, 5000]\n }, tus));\n } else if (transport === 'xhr') {\n newUppy.use(uppyTransport, _objectSpread({\n endpoint: isString(xhr) ? xhr : '/upload'\n }, isObject(xhr) ? xhr : null));\n }\n\n if (transport === 'transloadit' || companion !== null) {\n return customSources.reduce(function (currentUppy, sourceId) {\n var source = uppySources[sourceId] || null;\n\n if (source === null) {\n return currentUppy;\n }\n\n var _ref8 = companion || {\n url: uppyTransport.COMPANION || null,\n allowedHosts: uppyTransport.COMPANION_PATTERN || null\n },\n companionUrl = _ref8.url,\n companionAllowedHosts = _ref8.allowedHosts;\n\n return newUppy.use(source, {\n id: sourceId,\n companionUrl: companionUrl,\n companionAllowedHosts: companionAllowedHosts\n });\n }, newUppy);\n }\n\n return newUppy;\n };\n }, [Uppy, uppyLocale, uppyTransport, uppySources, transport, sources, transloadit, companion, tus, xhr]);\n return /*#__PURE__*/React.createElement(UppyContext.Provider, {\n value: {\n transport: transport,\n locale: locale,\n sources: sources,\n transloadit: transloadit,\n companion: companion,\n tus: tus,\n xhr: xhr,\n Uppy: Uppy,\n uppyTransport: uppyTransport,\n uppySources: uppySources,\n uppyLocale: uppyLocale,\n buildUppy: buildUppy\n }\n }, children);\n};\nUppyProvider.propTypes = propTypes$2;\nUppyProvider.defaultProps = defaultProps$2;\n\nvar defaultValue$1 = {\n userInteracted: false\n};\nvar UserInteractionContext = /*#__PURE__*/React.createContext(defaultValue$1);\nvar useUserInteracted = function useUserInteracted() {\n return useContext(UserInteractionContext).userInteracted;\n};\nvar propTypes$1 = {\n children: PropTypes.node.isRequired\n};\nvar defaultProps$1 = {};\nvar UserInteractionProvider = function UserInteractionProvider(_ref) {\n var children = _ref.children;\n\n var _useState = useState(false),\n _useState2 = _slicedToArray(_useState, 2),\n userInteracted = _useState2[0],\n setUserInteracted = _useState2[1];\n\n useEffect(function () {\n if (userInteracted) {\n return function () {};\n }\n\n var setted = false;\n\n var set = function set() {\n if (!setted) {\n setUserInteracted(true);\n setted = true;\n }\n };\n\n document.addEventListener('mouseup', set);\n document.addEventListener('touchend', set);\n document.addEventListener('pointerup', set);\n return function () {\n document.removeEventListener('mouseup', set);\n document.removeEventListener('touchend', set);\n document.removeEventListener('pointerup', set);\n };\n }, [userInteracted, setUserInteracted]);\n return /*#__PURE__*/React.createElement(UserInteractionContext.Provider, {\n value: {\n userInteracted: userInteracted,\n setUserInteracted: setUserInteracted\n }\n }, children);\n};\nUserInteractionProvider.propTypes = propTypes$1;\nUserInteractionProvider.defaultProps = defaultProps$1;\n\nvar defaultValue = {\n menuVisible: false,\n menuSize: 0\n};\nvar ViewerContext = /*#__PURE__*/React.createContext(defaultValue);\nvar useViewer = function useViewer() {\n return useContext(ViewerContext);\n};\nvar propTypes = {\n children: PropTypes.node.isRequired,\n menuVisible: PropTypes.bool,\n menuSize: PropTypes.number\n};\n\nvar defaultProps = _objectSpread({}, defaultValue);\n\nvar ViewerProvider = function ViewerProvider(_ref) {\n var children = _ref.children,\n menuVisible = _ref.menuVisible,\n menuSize = _ref.menuSize;\n var value = useMemo(function () {\n return {\n menuVisible: menuVisible,\n menuSize: menuSize\n };\n }, [menuVisible, menuSize]);\n return /*#__PURE__*/React.createElement(ViewerContext.Provider, {\n value: value\n }, children);\n};\nViewerProvider.propTypes = propTypes;\nViewerProvider.defaultProps = defaultProps;\n\nexport { ComponentsContext, ComponentsProvider, ELEMENTS_NAMESPACE, EditorContext, EditorProvider, FIELDS_NAMESPACE, FORMS_NAMESPACE, FieldContext, FieldContextProvider, FieldsContext, FieldsProvider, FontsContext, FontsProvider, GoogleApiClientContext, GoogleApiClientProvider, GoogleKeysContext, GoogleKeysProvider, GoogleMapsClientContext, GoogleMapsClientProvider, MODALS_NAMESPACE, ModalsContext, ModalsProvider, PanelsContext, PanelsProvider, RoutesContext, RoutesProvider, SCREENS_NAMESPACE, ScreenContext, ScreenProvider, ScreenSizeContext, ScreenSizeProvider, ScreensContext, ScreensProvider, StoryContext, StoryProvider, TrackingProvider, UppyContext, UppyProvider, UserInteractionContext, UserInteractionProvider, ViewerContext, ViewerProvider, useComponent, useComponents, useComponentsManager, useEditor, useElementComponent, useElementsComponents, useElementsComponentsManager, useFieldComponent, useFieldContext, useFieldDefinition, useFieldsComponents, useFieldsComponentsManager, useFieldsManager, useFonts, useFormComponent, useFormsComponents, useFormsComponentsManager, useGetColors, useGoogleApiClient, useGoogleFonts, useGoogleKeys, useGoogleMapsClient, useModalComponent, useModals, useModalsComponents, useModalsComponentsManager, usePanels, useRouteBack, useRoutePush, useRoutes, useScreen, useScreenComponent, useScreenData, useScreenDefinition, useScreenRenderContext, useScreenSize, useScreensComponents, useScreensComponentsManager, useScreensManager, useStory, useStoryContext, useTracking, useUppy, useUrlGenerator, useUserInteracted, useViewer, withGoogleApiClient, withGoogleMapsClient, withModals, withPanels };\n","import { useRef, useEffect, useCallback, useMemo, useState } from 'react';\nimport _objectSpread from '@babel/runtime/helpers/objectSpread2';\nimport { useIntl } from 'react-intl';\nimport isString from 'lodash/isString';\nimport dayjs from 'dayjs';\nimport { EventsManager, MediasParser, StoryParser, ThemeParser } from '@micromag/core';\nimport { createUseEvent } from '@micromag/core/utils';\nimport _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';\nimport { useForm as useForm$1 } from '@folklore/forms';\nimport _defineProperty from '@babel/runtime/helpers/defineProperty';\nimport classNames from 'classnames';\nimport _slicedToArray from '@babel/runtime/helpers/slicedToArray';\nimport screenfull from 'screenfull';\nimport _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';\nimport isObject from 'lodash/isObject';\nimport { useScreensManager, useFieldsManager, useTracking, useScreen } from '@micromag/core/contexts';\nimport { match } from 'css-mediaquery';\nimport { useSprings } from '@react-spring/core';\nimport clamp from 'lodash/clamp';\nimport { useDrag } from 'react-use-gesture';\n\nvar useAnimationFrame = function useAnimationFrame(onFrame) {\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n _ref$disabled = _ref.disabled,\n disabled = _ref$disabled === void 0 ? false : _ref$disabled;\n\n var requestRef = useRef(null);\n var startTimeRef = useRef(null);\n\n var callback = function callback(time) {\n if (!startTimeRef.current) {\n startTimeRef.current = time;\n }\n\n var progress = time - startTimeRef.current;\n onFrame(progress);\n requestRef.current = requestAnimationFrame(callback);\n };\n\n useEffect(function () {\n if (!disabled) {\n requestRef.current = requestAnimationFrame(callback);\n }\n\n return function () {\n if (requestRef.current !== null) {\n cancelAnimationFrame(requestRef.current);\n }\n };\n }, [disabled]);\n};\n\nvar useFormattedDate = function useFormattedDate() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref$format = _ref.format,\n format = _ref$format === void 0 ? null : _ref$format,\n _ref$showToday = _ref.showToday,\n showToday = _ref$showToday === void 0 ? true : _ref$showToday;\n\n var intl = useIntl();\n var today = dayjs();\n return useCallback(function (date) {\n var dateToFormat = isString(date) ? dayjs(date) : date;\n\n if (showToday && dateToFormat.format('YYYY-MM-DD') === today.format('YYYY-MM-DD')) {\n return intl.formatMessage({\n \"id\": \"v4Qtl9\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Today\"\n }]\n });\n }\n\n return intl.formatDate(dayjs(date).toDate(), _objectSpread({\n year: 'numeric',\n month: 'long',\n day: '2-digit'\n }, format));\n }, [today, showToday, format]);\n};\nvar useFormattedTime = function useFormattedTime() {\n var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref2$format = _ref2.format,\n format = _ref2$format === void 0 ? null : _ref2$format,\n _ref2$showNow = _ref2.showNow,\n showNow = _ref2$showNow === void 0 ? true : _ref2$showNow,\n _ref2$timeGap = _ref2.timeGap,\n timeGap = _ref2$timeGap === void 0 ? 2 : _ref2$timeGap;\n\n var intl = useIntl();\n var now = dayjs();\n return useCallback(function (date) {\n var dateToFormat = isString(date) ? dayjs(date) : date;\n\n if (showNow && dateToFormat.format('YYYY-MM-DD') === now.format('YYYY-MM-DD') && dateToFormat.hour() === now.hour() && dateToFormat.minute() > now.minute() - timeGap && dateToFormat.minute() < now.minute() + timeGap) {\n return intl.formatMessage({\n \"id\": \"3na7F8\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Now\"\n }]\n });\n }\n\n return intl.formatTime(dateToFormat.toDate(), _objectSpread({\n hour: 'numeric',\n minute: 'numeric'\n }, format));\n }, [now, showNow, timeGap, format]);\n};\n\nvar eventsManager$1 = typeof document !== 'undefined' ? new EventsManager(document) : null;\nvar useDocumentEvent = createUseEvent(eventsManager$1);\n\nvar _excluded$1 = [\"fields\", \"injectInFields\"],\n _excluded2 = [\"fields\"];\n\nvar useForm = function useForm() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref$fields = _ref.fields,\n providedFields = _ref$fields === void 0 ? [] : _ref$fields,\n _ref$injectInFields = _ref.injectInFields,\n injectInFields = _ref$injectInFields === void 0 ? false : _ref$injectInFields,\n opts = _objectWithoutProperties(_ref, _excluded$1);\n\n var fieldsNames = useMemo(function () {\n return providedFields.length > 0 ? providedFields.map(function (_ref2) {\n var name = _ref2.name;\n return name;\n }) : [];\n }, [providedFields]);\n\n var _useBaseForm = useForm$1(_objectSpread({\n fields: fieldsNames\n }, opts)),\n fields = _useBaseForm.fields,\n form = _objectWithoutProperties(_useBaseForm, _excluded2);\n\n return _objectSpread(_objectSpread({}, form), {}, {\n fields: injectInFields ? providedFields.map(function (it) {\n return _objectSpread(_objectSpread({}, it), fields[it.name] || null);\n }) : providedFields\n });\n};\n\nvar useFormTransition = function useFormTransition() {\n var paths = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var styles = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var lastPageRef = useRef(paths || []);\n var direction = useMemo(function () {\n var currentPartsCount = paths.length;\n\n if (lastPageRef.current) {\n var previousPartsCount = lastPageRef.current.length;\n lastPageRef.current = paths || [];\n return currentPartsCount > previousPartsCount ? 'right' : 'left';\n }\n\n return null;\n }, [paths]);\n var name = useMemo(function () {\n var _classNames, _classNames2, _classNames3;\n\n return {\n enter: classNames((_classNames = {}, _defineProperty(_classNames, styles.enterRight, direction === 'right'), _defineProperty(_classNames, styles.enterLeft, direction === 'left'), _defineProperty(_classNames, styles.enterTop, direction === 'top'), _defineProperty(_classNames, styles.enterBottom, direction === 'bottom'), _classNames)) || 'none',\n enterActive: classNames((_classNames2 = {}, _defineProperty(_classNames2, styles.enterActiveHorizontal, direction === 'left' || direction === 'right'), _defineProperty(_classNames2, styles.enterActiveVertical, direction === 'top' || direction === 'bottom'), _classNames2)) || 'none',\n leave: styles.leave || 'none',\n leaveActive: classNames((_classNames3 = {}, _defineProperty(_classNames3, styles.leaveActiveRight, direction === 'right'), _defineProperty(_classNames3, styles.leaveActiveLeft, direction === 'left'), _defineProperty(_classNames3, styles.leaveActiveTop, direction === 'top'), _defineProperty(_classNames3, styles.leaveActiveBottom, direction === 'bottom'), _classNames3)) || 'none'\n };\n }, [direction]);\n return {\n direction: direction,\n name: name,\n timeout: direction === 'left' || direction === 'right' ? 300 : 10\n };\n};\n\nvar useFullscreen = function useFullscreen(element) {\n var enabled = screenfull.isEnabled;\n\n var _useState = useState(false),\n _useState2 = _slicedToArray(_useState, 2),\n active = _useState2[0],\n setActive = _useState2[1];\n\n var fullscreen = useCallback(function () {\n if (screenfull.isEnabled) {\n if (typeof element !== 'undefined' && element !== null) {\n screenfull.request(element);\n } else {\n screenfull.request();\n }\n }\n }, [element]);\n var unFullscreen = useCallback(function () {\n if (screenfull.isEnabled) {\n screenfull.exit();\n }\n }, []);\n var toggle = useCallback(function () {\n if (!active) {\n fullscreen();\n } else {\n unFullscreen();\n }\n }, [active, fullscreen, unFullscreen]);\n useEffect(function () {\n var onChange = function onChange() {\n setActive(screenfull.isFullscreen);\n };\n\n if (screenfull.isEnabled) {\n screenfull.on('change', onChange);\n }\n\n return function () {\n if (screenfull.isEnabled) {\n screenfull.off('change', onChange);\n }\n };\n }, []);\n return {\n toggle: toggle,\n fullscreen: fullscreen,\n unFullscreen: unFullscreen,\n active: active,\n enabled: enabled\n };\n};\n\nvar buildThresholdArray = function buildThresholdArray() {\n return [0, 1.0];\n};\n\nvar observersCache = new Map();\n\nvar getOptionsKey = function getOptionsKey(_ref) {\n var _ref$root = _ref.root,\n root = _ref$root === void 0 ? null : _ref$root,\n rootMargin = _ref.rootMargin,\n _ref$threshold = _ref.threshold,\n threshold = _ref$threshold === void 0 ? null : _ref$threshold;\n return \"root_\".concat(root, \"_rootMargin_\").concat(rootMargin || null, \"_threshold_\").concat(threshold);\n};\n\nvar createObserver = function createObserver(Observer) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var subscribers = [];\n\n var addSubscriber = function addSubscriber(element, callback) {\n var currentSubscriber = subscribers.find(function (it) {\n return it.element === element;\n }) || null;\n\n if (currentSubscriber !== null) {\n return subscribers.map(function (it) {\n return it.element === element && it.callbacks.indexOf(callback) === -1 ? _objectSpread(_objectSpread({}, it), {}, {\n callbacks: [].concat(_toConsumableArray(it.callbacks), [callback])\n }) : it;\n }).filter(function (it) {\n return it.callbacks.length > 0;\n });\n }\n\n return [].concat(_toConsumableArray(subscribers), [{\n element: element,\n callbacks: [callback]\n }]);\n };\n\n var removeSubscriber = function removeSubscriber(element, callback) {\n return subscribers.map(function (it) {\n return it.element === element ? _objectSpread(_objectSpread({}, it), {}, {\n callbacks: it.callbacks.filter(function (subCallback) {\n return subCallback !== callback;\n })\n }) : it;\n }).filter(function (it) {\n return it.callbacks.length > 0;\n });\n };\n\n var onUpdate = function onUpdate(entries) {\n entries.forEach(function (entry) {\n subscribers.forEach(function (_ref2) {\n var element = _ref2.element,\n callbacks = _ref2.callbacks;\n\n if (element === entry.target) {\n callbacks.forEach(function (callback) {\n callback(entry);\n });\n }\n });\n });\n };\n\n var observer = new Observer(onUpdate, options);\n\n var unsubscribe = function unsubscribe(element) {\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n subscribers = removeSubscriber(element, callback);\n\n if (typeof observer.unobserve === 'undefined') {\n observer.disconnect();\n subscribers.forEach(function (subscriber) {\n observer.observe(subscriber.element);\n });\n return;\n }\n\n var currentSubscriber = subscribers.find(function (it) {\n return it.element === element;\n }) || null;\n\n if (currentSubscriber === null) {\n observer.unobserve(element);\n }\n };\n\n var subscribe = function subscribe(element, callback) {\n var currentSubscriber = subscribers.find(function (it) {\n return it.element === element;\n }) || null;\n subscribers = addSubscriber(element, callback);\n\n if (currentSubscriber === null) {\n observer.observe(element);\n }\n };\n\n return {\n subscribe: subscribe,\n unsubscribe: unsubscribe,\n observer: observer\n };\n};\n\nvar getObserver = function getObserver(Observer) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var observerKey = getOptionsKey(options);\n\n if (!observersCache.has(Observer)) {\n observersCache.set(Observer, {});\n }\n\n var observers = observersCache.get(Observer);\n\n if (typeof observers[observerKey] === 'undefined') {\n observers[observerKey] = createObserver(Observer, options);\n observersCache.set(Observer, observers);\n }\n\n return observers[observerKey];\n};\nvar useObserver = function useObserver(Observer) {\n var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var initialEntry = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var _opts$root = opts.root,\n root = _opts$root === void 0 ? null : _opts$root,\n _opts$rootMargin = opts.rootMargin,\n rootMargin = _opts$rootMargin === void 0 ? null : _opts$rootMargin,\n _opts$threshold = opts.threshold,\n threshold = _opts$threshold === void 0 ? null : _opts$threshold,\n _opts$disabled = opts.disabled,\n disabled = _opts$disabled === void 0 ? false : _opts$disabled;\n\n var _useState = useState(initialEntry),\n _useState2 = _slicedToArray(_useState, 2),\n entry = _useState2[0],\n setEntry = _useState2[1];\n\n var nodeRef = useRef(null);\n var currentElement = useRef(null);\n var elementChanged = nodeRef.current !== currentElement.current;\n useEffect(function () {\n var nodeElement = nodeRef.current;\n\n var callback = function callback(newEntry) {\n return setEntry(newEntry);\n };\n\n var unsubscribe = null;\n\n if (nodeElement !== null) {\n var newOpts = {};\n\n if (root !== null) {\n newOpts.root = root;\n }\n\n if (rootMargin !== null) {\n newOpts.rootMargin = rootMargin;\n }\n\n if (threshold !== null) {\n newOpts.threshold = threshold;\n }\n\n var _getObserver = getObserver(Observer, newOpts),\n subscribe = _getObserver.subscribe,\n localUnsubscribe = _getObserver.unsubscribe;\n\n unsubscribe = localUnsubscribe;\n subscribe(nodeElement, callback);\n }\n\n currentElement.current = nodeElement;\n return function () {\n if (unsubscribe !== null) {\n unsubscribe(nodeElement, callback);\n }\n };\n }, [Observer, elementChanged, disabled, root, rootMargin, threshold]);\n return {\n ref: nodeRef,\n entry: entry\n };\n};\n/**\n * Intersection Observer\n */\n\nvar thresholdArray = buildThresholdArray();\nvar intersectionObserverInitialEntry = {\n target: null,\n time: null,\n isVisible: false,\n isIntersecting: false,\n intersectionRatio: 0,\n intersectionRect: null,\n boundingClientRect: null,\n rootBounds: null\n};\nvar useIntersectionObserver = function useIntersectionObserver() {\n var _ref3 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref3$root = _ref3.root,\n root = _ref3$root === void 0 ? null : _ref3$root,\n _ref3$rootMargin = _ref3.rootMargin,\n rootMargin = _ref3$rootMargin === void 0 ? '0px' : _ref3$rootMargin,\n _ref3$threshold = _ref3.threshold,\n threshold = _ref3$threshold === void 0 ? thresholdArray : _ref3$threshold,\n _ref3$disabled = _ref3.disabled,\n disabled = _ref3$disabled === void 0 ? false : _ref3$disabled;\n\n return useObserver(typeof window !== 'undefined' ? IntersectionObserver : null, {\n root: root,\n rootMargin: rootMargin,\n threshold: threshold,\n disabled: disabled\n }, intersectionObserverInitialEntry);\n};\n/**\n * Resize Observer\n */\n\nvar resizeObserverInitialEntry = {\n target: null,\n contentRect: null,\n contentBoxSize: null,\n borderBoxSize: null\n};\nvar useResizeObserver = function useResizeObserver() {\n var _ref4 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref4$disabled = _ref4.disabled,\n disabled = _ref4$disabled === void 0 ? false : _ref4$disabled;\n\n return useObserver(typeof window !== 'undefined' ? ResizeObserver : null, {\n disabled: disabled\n }, resizeObserverInitialEntry);\n};\n\nvar useIsVisible = function useIsVisible() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n rootMargin = _ref.rootMargin,\n _ref$threshold = _ref.threshold,\n threshold = _ref$threshold === void 0 ? 1 : _ref$threshold,\n _ref$persist = _ref.persist,\n persist = _ref$persist === void 0 ? false : _ref$persist;\n\n var _useIntersectionObser = useIntersectionObserver({\n rootMargin: rootMargin,\n threshold: threshold\n }),\n ref = _useIntersectionObser.ref,\n isIntersecting = _useIntersectionObser.entry.isIntersecting;\n\n var wasIntersecting = useRef(isIntersecting);\n\n if (isIntersecting && !wasIntersecting.current) {\n wasIntersecting.current = isIntersecting;\n }\n\n var isVisible = !persist && isIntersecting || persist && wasIntersecting.current;\n return {\n ref: ref,\n visible: isVisible\n };\n};\n\nvar fontsMap = {\n loading: [],\n active: []\n};\n\nvar isFontLoading = function isFontLoading(name) {\n return fontsMap.loading.indexOf(name) !== -1;\n};\n\nvar isFontActive = function isFontActive(name) {\n return fontsMap.active.indexOf(name) !== -1;\n};\n\nvar addFontLoading = function addFontLoading(name) {\n fontsMap.active = fontsMap.active.filter(function (it) {\n return it !== name;\n });\n fontsMap.loading = [].concat(_toConsumableArray(fontsMap.loading), [name]);\n};\n\nvar removeFontLoading = function removeFontLoading(name) {\n fontsMap.loading = fontsMap.loading.filter(function (it) {\n return it !== name;\n });\n};\n\nvar addFontActive = function addFontActive(name) {\n fontsMap.loading = fontsMap.loading.filter(function (it) {\n return it !== name;\n });\n fontsMap.active = [].concat(_toConsumableArray(fontsMap.active), [name]);\n};\n\nvar useLoadedFonts = function useLoadedFonts(fonts) {\n var _useState = useState(false),\n _useState2 = _slicedToArray(_useState, 2),\n loaded = _useState2[0],\n setLoaded = _useState2[1];\n\n useEffect(function () {\n var config = fonts.reduce(function (newConfig, font) {\n var _ref = isObject(font) ? font : {\n type: 'system',\n name: font\n },\n type = _ref.type,\n name = _ref.name;\n\n if ((type === 'google' || type === 'custom') && !isFontLoading(name) && !isFontActive(name)) {\n return _objectSpread(_objectSpread({}, newConfig), {}, _defineProperty({}, type, {\n families: [].concat(_toConsumableArray(newConfig !== null ? (newConfig[type] || {}).families || [] : []), [name])\n }));\n }\n\n return newConfig;\n }, null);\n var hasConfig = config !== null;\n\n if (hasConfig && typeof window !== 'undefined') {\n import('webfontloader').then(function (_ref2) {\n var WebFont = _ref2[\"default\"];\n return WebFont.load(_objectSpread(_objectSpread({}, config), {}, {\n timeout: 3000,\n active: function active() {\n return setLoaded(true);\n },\n fontloading: function fontloading(name) {\n return addFontLoading(name);\n },\n fontactive: function fontactive(name) {\n return addFontActive(name);\n },\n fontinactive: function fontinactive(name) {\n return removeFontLoading(name);\n }\n }));\n });\n } else {\n setLoaded(true);\n }\n }, [fonts, setLoaded]);\n return {\n loaded: loaded\n };\n};\n\nvar isTouchEvent = function isTouchEvent(event) {\n return 'touches' in event;\n};\n\nvar preventDefault = function preventDefault(event) {\n if (!isTouchEvent(event)) return false;\n\n if (event.touches.length < 2 && event.preventDefault) {\n event.preventDefault();\n }\n\n return false;\n};\n\nvar preventClickDefault = function preventClickDefault(e) {\n if (e.preventDefault) {\n e.preventDefault();\n }\n\n if (e.stopPropagation) {\n e.stopPropagation();\n }\n};\n\nvar useLongPress = function useLongPress() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref$onLongPress = _ref.onLongPress,\n onLongPress = _ref$onLongPress === void 0 ? null : _ref$onLongPress,\n _ref$onClick = _ref.onClick,\n onClick = _ref$onClick === void 0 ? null : _ref$onClick,\n _ref$shouldPreventDef = _ref.shouldPreventDefault,\n shouldPreventDefault = _ref$shouldPreventDef === void 0 ? true : _ref$shouldPreventDef,\n _ref$delay = _ref.delay,\n delay = _ref$delay === void 0 ? 350 : _ref$delay;\n\n var _useState = useState(false),\n _useState2 = _slicedToArray(_useState, 2),\n longPressTriggered = _useState2[0],\n setLongPressTriggered = _useState2[1];\n\n var timeout = useRef(null);\n var target = useRef(null);\n var start = useCallback(function (event) {\n if (event.target !== null) {\n target.current = event.target;\n }\n\n timeout.current = setTimeout(function () {\n if (shouldPreventDefault && target.current !== null) {\n target.current.addEventListener('touchend', preventDefault, {\n passive: false\n });\n target.current.addEventListener('click', preventClickDefault, {\n passive: false\n });\n }\n\n if (onLongPress !== null) {\n onLongPress(event);\n }\n\n setLongPressTriggered(true);\n timeout.current = null;\n }, delay);\n }, [onLongPress, delay, shouldPreventDefault]);\n var clear = useCallback(function (event) {\n var shouldTriggerClick = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n if (timeout.current !== null) {\n clearTimeout(timeout.current);\n } else if (shouldPreventDefault && target.current !== null) {\n preventDefault(event);\n target.current.removeEventListener('touchend', preventDefault);\n setTimeout(function () {\n target.current.removeEventListener('click', preventClickDefault);\n }, 10);\n }\n\n if (shouldTriggerClick && !longPressTriggered && onClick !== null) {\n onClick();\n }\n\n setLongPressTriggered(false);\n }, [shouldPreventDefault, onClick, longPressTriggered]);\n return {\n onMouseDown: function onMouseDown(e) {\n return start(e);\n },\n onTouchStart: function onTouchStart(e) {\n return start(e);\n },\n onMouseUp: function onMouseUp(e) {\n return clear(e);\n },\n onMouseLeave: function onMouseLeave(e) {\n return clear(e, false);\n },\n onTouchEnd: function onTouchEnd(e) {\n return clear(e);\n }\n };\n};\n\nvar progressSteps = [0.1, 0.25, 0.5, 0.75, 0.9];\n\nvar useMediaApi = function useMediaApi() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref$url = _ref.url,\n url = _ref$url === void 0 ? null : _ref$url,\n _ref$initialMuted = _ref.initialMuted,\n initialMuted = _ref$initialMuted === void 0 ? false : _ref$initialMuted,\n _ref$onTimeUpdate = _ref.onTimeUpdate,\n onTimeUpdate = _ref$onTimeUpdate === void 0 ? null : _ref$onTimeUpdate,\n _ref$onProgressStep = _ref.onProgressStep,\n onProgressStep = _ref$onProgressStep === void 0 ? null : _ref$onProgressStep,\n _ref$onDurationChange = _ref.onDurationChanged,\n onDurationChanged = _ref$onDurationChange === void 0 ? null : _ref$onDurationChange,\n _ref$onVolumeChanged = _ref.onVolumeChanged,\n onVolumeChanged = _ref$onVolumeChanged === void 0 ? null : _ref$onVolumeChanged,\n _ref$onPlay = _ref.onPlay,\n onPlay = _ref$onPlay === void 0 ? null : _ref$onPlay,\n _ref$onPause = _ref.onPause,\n onPause = _ref$onPause === void 0 ? null : _ref$onPause,\n _ref$onEnded = _ref.onEnded,\n onEnded = _ref$onEnded === void 0 ? null : _ref$onEnded,\n _ref$onSeeked = _ref.onSeeked,\n onSeeked = _ref$onSeeked === void 0 ? null : _ref$onSeeked,\n _ref$onLoadStart = _ref.onLoadStart,\n onLoadStart = _ref$onLoadStart === void 0 ? null : _ref$onLoadStart,\n _ref$onCanPlayThough = _ref.onCanPlayThough,\n onCanPlayThough = _ref$onCanPlayThough === void 0 ? null : _ref$onCanPlayThough,\n _ref$onCanPlay = _ref.onCanPlay,\n onCanPlay = _ref$onCanPlay === void 0 ? null : _ref$onCanPlay,\n _ref$onLoadedData = _ref.onLoadedData,\n onLoadedData = _ref$onLoadedData === void 0 ? null : _ref$onLoadedData,\n _ref$onLoadedMetadata = _ref.onLoadedMetadata,\n onLoadedMetadata = _ref$onLoadedMetadata === void 0 ? null : _ref$onLoadedMetadata;\n\n var ref = useRef(null);\n\n var _useState = useState(initialMuted),\n _useState2 = _slicedToArray(_useState, 2),\n muted = _useState2[0],\n setMuted = _useState2[1];\n\n var _useState3 = useState(null),\n _useState4 = _slicedToArray(_useState3, 2),\n currentTime = _useState4[0],\n setCurrentTime = _useState4[1];\n\n var _useState5 = useState(null),\n _useState6 = _slicedToArray(_useState5, 2),\n duration = _useState6[0],\n setDuration = _useState6[1];\n\n var _useState7 = useState(false),\n _useState8 = _slicedToArray(_useState7, 2),\n playing = _useState8[0],\n setPlaying = _useState8[1];\n\n var _useState9 = useState(false),\n _useState10 = _slicedToArray(_useState9, 2),\n ready = _useState10[0],\n setReady = _useState10[1];\n\n var _useState11 = useState(false),\n _useState12 = _slicedToArray(_useState11, 2),\n dataReady = _useState12[0],\n setDataReady = _useState12[1];\n\n var _useState13 = useState(true),\n _useState14 = _slicedToArray(_useState13, 2),\n initialPlay = _useState14[0],\n setInitialPlay = _useState14[1];\n\n var progressStepsReached = useRef({});\n var paused = !playing; // Exposed methods\n\n var play = useCallback(function () {\n var media = ref.current;\n\n if (media !== null) {\n media.play();\n }\n }, []);\n var pause = useCallback(function () {\n var media = ref.current;\n\n if (media !== null) {\n media.pause();\n }\n }, []);\n var togglePlay = useCallback(function () {\n var media = ref.current;\n\n if (media !== null) {\n if (playing) {\n media.pause();\n } else {\n media.play();\n }\n }\n }, [playing]);\n var stop = useCallback(function () {\n var media = ref.current;\n\n if (media !== null) {\n media.pause();\n media.currentTime = 0;\n }\n }, []);\n var seek = useCallback(function (time) {\n var media = ref.current;\n\n if (media !== null) {\n media.currentTime = time;\n }\n }, []);\n var mute = useCallback(function () {\n var media = ref.current;\n\n if (media !== null) {\n media.muted = true;\n }\n }, []);\n var unMute = useCallback(function () {\n var media = ref.current;\n\n if (media !== null) {\n media.muted = false;\n }\n }, []);\n var toggleMute = useCallback(function () {\n var media = ref.current;\n\n if (media !== null) {\n media.muted = !muted;\n }\n }, [muted]); // Media events callbacks\n\n var onCustomPlay = useCallback(function () {\n if (onPlay !== null) {\n onPlay({\n initial: initialPlay\n });\n }\n\n if (initialPlay) {\n setInitialPlay(false);\n }\n\n setPlaying(true);\n }, [initialPlay, setPlaying, onPlay]);\n var onCustomPause = useCallback(function () {\n var media = ref.current;\n setPlaying(false);\n\n if (onPause !== null) {\n onPause({\n midway: media.currentTime > 0 && media.currentTime < media.duration\n });\n }\n }, [setPlaying, onPause]);\n var onCustomEnded = useCallback(function () {\n var media = ref.current;\n media.currentTime = 0;\n\n if (onEnded !== null) {\n onEnded();\n }\n\n setInitialPlay(true);\n }, [setInitialPlay, onEnded]);\n var onCustomTimeUpdate = useCallback(function () {\n var media = ref.current;\n setCurrentTime(media.currentTime);\n\n if (onTimeUpdate !== null) {\n onTimeUpdate(media.currentTime);\n }\n\n var progress = media.currentTime / media.duration;\n var currentSteps = progressStepsReached.current;\n var stepsToTrack = progressSteps.filter(function (step) {\n return progress > step && typeof currentSteps[step] === 'undefined';\n });\n stepsToTrack.forEach(function (step) {\n if (onProgressStep !== null) {\n onProgressStep(step);\n }\n\n currentSteps[step] = true;\n });\n }, [setCurrentTime, onTimeUpdate, onProgressStep]);\n var onCustomDurationChange = useCallback(function () {\n var media = ref.current;\n setDuration(media.duration);\n\n if (onDurationChanged !== null) {\n onDurationChanged(media.duration);\n }\n }, [setDuration, onDurationChanged]);\n var onCustomSeeked = useCallback(function () {\n var media = ref.current;\n\n if (onSeeked !== null) {\n onSeeked(media.currentTime);\n }\n }, [onSeeked]);\n var onCustomVolumeChange = useCallback(function () {\n var media = ref.current;\n setMuted(media.muted);\n\n if (onVolumeChanged !== null) {\n onVolumeChanged(media.muted, media.volume);\n }\n }, [setMuted, onVolumeChanged]);\n var onCustomLoadStart = useCallback(function () {\n if (onLoadStart !== null) {\n onLoadStart();\n }\n }, [setReady, onLoadStart]);\n var onCustomCanPlayThrough = useCallback(function () {\n setReady(true);\n\n if (onCanPlayThough !== null) {\n onCanPlayThough();\n }\n }, [setReady, onCanPlayThough]);\n var onCustomCanPlay = useCallback(function () {\n setReady(true);\n\n if (onCanPlay !== null) {\n onCanPlay();\n }\n }, [setReady, onCanPlay]);\n var onCustomLoadedMetadata = useCallback(function () {\n setReady(true);\n\n if (onLoadedMetadata !== null) {\n onLoadedMetadata();\n }\n }, [setReady, onLoadedMetadata]);\n var onCustomLoadedData = useCallback(function () {\n setDataReady(true);\n\n if (onLoadedData !== null) {\n onLoadedData();\n }\n }, [setDataReady, onLoadedData]);\n useEffect(function () {\n var _ref$current = ref.current,\n media = _ref$current === void 0 ? null : _ref$current;\n\n if (media !== null) {\n media.addEventListener('timeupdate', onCustomTimeUpdate);\n media.addEventListener('durationchange', onCustomDurationChange);\n media.addEventListener('volumechange', onCustomVolumeChange);\n media.addEventListener('play', onCustomPlay);\n media.addEventListener('pause', onCustomPause);\n media.addEventListener('ended', onCustomEnded);\n media.addEventListener('seeked', onCustomSeeked);\n media.addEventListener('loadstart', onCustomLoadStart);\n media.addEventListener('canplaythrough', onCustomCanPlayThrough);\n media.addEventListener('canplay', onCustomCanPlay);\n media.addEventListener('loadedmetadata', onCustomLoadedMetadata);\n media.addEventListener('loadeddata', onCustomLoadedData);\n }\n\n if (media !== null && media.readyState > 1) {\n setDataReady(true);\n } else {\n setDataReady(false);\n }\n\n if (media !== null && media.readyState > 3) {\n setReady(true);\n } else {\n setReady(false);\n }\n\n return function () {\n if (media !== null) {\n media.removeEventListener('timeupdate', onCustomTimeUpdate);\n media.removeEventListener('durationchange', onCustomDurationChange);\n media.removeEventListener('volumechange', onCustomVolumeChange);\n media.removeEventListener('play', onCustomPlay);\n media.removeEventListener('pause', onCustomPause);\n media.removeEventListener('ended', onCustomEnded);\n media.removeEventListener('seeked', onCustomSeeked);\n media.removeEventListener('loadstart', onCustomLoadStart);\n media.removeEventListener('canplaythrough', onCustomCanPlayThrough);\n media.removeEventListener('canplay', onCustomCanPlay);\n media.removeEventListener('loadedmetadata', onCustomLoadedMetadata);\n }\n };\n }, [url]);\n return {\n ref: ref,\n play: play,\n pause: pause,\n togglePlay: togglePlay,\n stop: stop,\n seek: seek,\n mute: mute,\n unMute: unMute,\n toggleMute: toggleMute,\n muted: muted,\n currentTime: currentTime,\n duration: duration,\n playing: playing,\n paused: paused,\n ready: ready,\n dataReady: dataReady\n };\n};\n\nvar useMediasParser = function useMediasParser() {\n var screensManager = useScreensManager();\n var fieldsManager = useFieldsManager(); // Convert medias object to path\n\n var parser = useMemo(function () {\n return new MediasParser({\n screensManager: screensManager,\n fieldsManager: fieldsManager\n });\n }, [screensManager, fieldsManager]);\n var toPath = useCallback(function (story) {\n return parser.toPath(story);\n }, [parser]);\n var fromPath = useCallback(function (story) {\n return parser.fromPath(story);\n }, [parser]);\n return {\n toPath: toPath,\n fromPath: fromPath,\n parser: parser\n };\n};\n\nvar useParsedStory = function useParsedStory(story) {\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n _ref$disabled = _ref.disabled,\n disabled = _ref$disabled === void 0 ? false : _ref$disabled,\n _ref$withTheme = _ref.withTheme,\n withTheme = _ref$withTheme === void 0 ? true : _ref$withTheme,\n _ref$withMedias = _ref.withMedias,\n withMedias = _ref$withMedias === void 0 ? true : _ref$withMedias,\n _ref$withFonts = _ref.withFonts,\n withFonts = _ref$withFonts === void 0 ? true : _ref$withFonts;\n\n var screensManager = useScreensManager();\n var fieldsManager = useFieldsManager();\n var parser = useMemo(function () {\n return new StoryParser({\n screensManager: screensManager,\n fieldsManager: fieldsManager\n });\n }, [screensManager, fieldsManager]);\n var newStory = useMemo(function () {\n if (disabled) {\n return story;\n }\n\n return parser.parse(story, {\n withMedias: withMedias,\n withTheme: withTheme,\n withFonts: withFonts\n });\n }, [parser, disabled, withMedias, withTheme, withFonts, story]);\n return newStory;\n};\n\nvar _excluded = [\"width\", \"height\"];\n\nvar useScreenSize = function useScreenSize(_ref) {\n var _ref$width = _ref.width,\n width = _ref$width === void 0 ? null : _ref$width,\n _ref$height = _ref.height,\n height = _ref$height === void 0 ? null : _ref$height,\n _ref$landscape = _ref.landscape,\n landscape = _ref$landscape === void 0 ? false : _ref$landscape,\n _ref$menuOverScreen = _ref.menuOverScreen,\n menuOverScreen = _ref$menuOverScreen === void 0 ? false : _ref$menuOverScreen,\n _ref$screens = _ref.screens,\n screens = _ref$screens === void 0 ? [] : _ref$screens,\n _ref$mediaType = _ref.mediaType,\n mediaType = _ref$mediaType === void 0 ? 'screen' : _ref$mediaType,\n _ref$media = _ref.media,\n providedMedia = _ref$media === void 0 ? null : _ref$media;\n // Get media\n var media = useMemo(function () {\n return providedMedia !== null ? providedMedia : {\n type: mediaType,\n width: \"\".concat(width, \"px\"),\n height: \"\".concat(height, \"px\")\n };\n }, [providedMedia, mediaType, width, height]); // Get matching screens\n\n var matchingScreens = useMemo(function () {\n return _toConsumableArray(screens).reverse().filter(function (_ref2) {\n var _ref2$mediaQuery = _ref2.mediaQuery,\n mediaQuery = _ref2$mediaQuery === void 0 ? null : _ref2$mediaQuery;\n return mediaQuery === null || match(mediaQuery, media);\n });\n }, [screens, media]);\n return {\n screen: matchingScreens.length > 0 ? matchingScreens[0].name : null,\n screens: _toConsumableArray(matchingScreens).reverse().map(function (_ref3) {\n var name = _ref3.name;\n return name;\n }),\n width: width,\n height: height,\n landscape: landscape,\n menuOverScreen: menuOverScreen\n };\n};\n\nvar useScreenSizeFromElement = function useScreenSizeFromElement() {\n var _ref4 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref4$width = _ref4.width,\n width = _ref4$width === void 0 ? null : _ref4$width,\n _ref4$height = _ref4.height,\n height = _ref4$height === void 0 ? null : _ref4$height,\n opts = _objectWithoutProperties(_ref4, _excluded);\n\n var _useResizeObserver = useResizeObserver(),\n ref = _useResizeObserver.ref,\n contentRect = _useResizeObserver.entry.contentRect;\n\n var _ref5 = contentRect || {},\n _ref5$width = _ref5.width,\n calculatedWidth = _ref5$width === void 0 ? 0 : _ref5$width,\n _ref5$height = _ref5.height,\n calculatedHeight = _ref5$height === void 0 ? 0 : _ref5$height;\n\n var fullWidth = width !== null ? width : calculatedWidth;\n var fullHeight = height !== null ? height : calculatedHeight;\n var landscape = fullHeight > 0 && fullWidth > fullHeight;\n\n var _ref6 = opts || {},\n _ref6$withoutMaxSize = _ref6.withoutMaxSize,\n withoutMaxSize = _ref6$withoutMaxSize === void 0 ? false : _ref6$withoutMaxSize,\n _ref6$desktopHeightTh = _ref6.desktopHeightThreshold,\n desktopHeightThreshold = _ref6$desktopHeightTh === void 0 ? 600 : _ref6$desktopHeightTh,\n _ref6$desktopHeightRa = _ref6.desktopHeightRatio,\n desktopHeightRatio = _ref6$desktopHeightRa === void 0 ? 3 / 4 : _ref6$desktopHeightRa,\n _ref6$screenRatio = _ref6.screenRatio,\n screenRatio = _ref6$screenRatio === void 0 ? 2 / 3 : _ref6$screenRatio;\n\n var landscapeWithMaxSize = landscape && !withoutMaxSize;\n var finalWidth = fullWidth;\n var finalHeight = fullHeight;\n var menuOverScreen = !landscape;\n\n if (landscapeWithMaxSize) {\n if (fullHeight < desktopHeightThreshold) {\n menuOverScreen = true;\n } else {\n finalHeight = Math.round(fullHeight * desktopHeightRatio);\n }\n\n finalWidth = Math.round(finalHeight * screenRatio);\n }\n\n if (finalWidth % 2 === 1) {\n finalWidth -= 1;\n }\n\n if (finalHeight % 2 === 1) {\n finalHeight -= 1;\n }\n\n var screenSize = useScreenSize(_objectSpread({\n width: finalWidth,\n height: finalHeight,\n landscape: landscape,\n menuOverScreen: menuOverScreen\n }, opts));\n return {\n ref: ref,\n screenSize: screenSize\n };\n};\n\nvar getWindowSize = function getWindowSize() {\n return {\n width: typeof window !== 'undefined' ? window.innerWidth : null,\n height: typeof window !== 'undefined' ? window.innerHæeight : null\n };\n};\n\nvar useScreenSizeFromWindow = function useScreenSizeFromWindow(opts) {\n var _useState = useState(getWindowSize()),\n _useState2 = _slicedToArray(_useState, 2),\n windowSize = _useState2[0],\n setWindowSize = _useState2[1];\n\n useEffect(function () {\n var onResize = function onResize() {\n return setWindowSize(getWindowSize());\n };\n\n if (typeof window !== 'undefined') {\n window.addEventListener('resize', onResize);\n }\n\n return function () {\n if (typeof window !== 'undefined') {\n window.removeEventListener('resize', onResize);\n }\n };\n }, [setWindowSize]);\n return useScreenSize(_objectSpread(_objectSpread({}, opts), windowSize));\n};\n\nvar useSwipe = function useSwipe() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref$width = _ref.width,\n width = _ref$width === void 0 ? null : _ref$width,\n _ref$items = _ref.items,\n items = _ref$items === void 0 ? [] : _ref$items,\n _ref$withSpring = _ref.withSpring,\n withSpring = _ref$withSpring === void 0 ? true : _ref$withSpring,\n _ref$swipeWidthThresh = _ref.swipeWidthThreshold,\n swipeWidthThreshold = _ref$swipeWidthThresh === void 0 ? 3 : _ref$swipeWidthThresh,\n _ref$animateScale = _ref.animateScale,\n animateScale = _ref$animateScale === void 0 ? false : _ref$animateScale,\n _ref$disabled = _ref.disabled,\n disabled = _ref$disabled === void 0 ? false : _ref$disabled,\n _ref$lockAxis = _ref.lockAxis,\n lockAxis = _ref$lockAxis === void 0 ? false : _ref$lockAxis,\n _ref$onSwipeStart = _ref.onSwipeStart,\n onSwipeStart = _ref$onSwipeStart === void 0 ? null : _ref$onSwipeStart,\n _ref$onSwipeEnd = _ref.onSwipeEnd,\n onSwipeEnd = _ref$onSwipeEnd === void 0 ? null : _ref$onSwipeEnd,\n _ref$onSwipeCancel = _ref.onSwipeCancel,\n onSwipeCancel = _ref$onSwipeCancel === void 0 ? null : _ref$onSwipeCancel,\n _ref$onTap = _ref.onTap,\n onTap = _ref$onTap === void 0 ? null : _ref$onTap;\n\n var swipingIndex = useRef(null);\n var index = useRef(0);\n var lockedAxis = useRef(null);\n var hasWidth = width !== null;\n var windowWidth = typeof window !== 'undefined' && !hasWidth ? window.innerWidth : null;\n var currentWidth = hasWidth ? width : windowWidth;\n var count = items.length;\n var getItem = useCallback(function () {\n var x = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var idx = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var scale = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n return {\n x: x,\n zIndex: idx,\n scale: scale\n };\n });\n var getItems = useCallback(function () {\n var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref2$down = _ref2.down,\n down = _ref2$down === void 0 ? false : _ref2$down,\n _ref2$mx = _ref2.mx,\n mx = _ref2$mx === void 0 ? 0 : _ref2$mx;\n\n return items.map(function (item, i) {\n var x = disabled ? 0 : (i - index.current) * currentWidth + (down ? mx : 0);\n var scale = !animateScale || disabled || !down ? 1 : 1 - Math.abs(mx) / currentWidth / 2;\n return getItem(x, i, scale);\n });\n }, [disabled, items, index, currentWidth, animateScale]); // Initial items state\n\n var _useSprings = useSprings(items.length, function (i) {\n return {\n x: disabled ? 0 : i * currentWidth,\n y: 0,\n zIndex: i,\n config: _objectSpread({}, !withSpring ? {\n duration: 1\n } : null)\n };\n }),\n _useSprings2 = _slicedToArray(_useSprings, 2),\n itemsWithProps = _useSprings2[0],\n set = _useSprings2[1];\n\n var bind = useDrag(function (_ref3) {\n var down = _ref3.down,\n _ref3$movement = _slicedToArray(_ref3.movement, 2),\n mx = _ref3$movement[0],\n my = _ref3$movement[1],\n _ref3$direction = _slicedToArray(_ref3.direction, 1),\n xDir = _ref3$direction[0],\n cancel = _ref3.cancel,\n tap = _ref3.tap;\n\n if (disabled) {\n cancel();\n return;\n }\n\n if (!down && swipingIndex.current === index.current) {\n lockedAxis.current = null;\n\n if (onSwipeCancel !== null) {\n onSwipeCancel(index.current);\n }\n } // Block first and last moves\n\n /*\n if (down && index.current === items.length - 1 && xDir < 0) {\n cancel();\n return;\n }\n if (down && index.current === 0 && xDir > 0) {\n cancel();\n return;\n }\n */\n\n\n var movementX = !lockAxis || lockedAxis.current === 'x' ? mx : 0;\n var movementY = !lockAxis || lockedAxis.current === 'y' ? my : 0;\n\n if (down) {\n // Snap to next slide\n if (Math.abs(movementX) > currentWidth / swipeWidthThreshold) {\n index.current = clamp(index.current + (xDir > 0 ? -1 : 1), 0, count - 1);\n lockedAxis.current = null;\n cancel();\n\n if (onSwipeEnd !== null) {\n onSwipeEnd(index.current);\n }\n\n return;\n }\n }\n\n set(getItems({\n down: down,\n mx: movementX,\n my: movementY\n })); // saving current swiping index in a ref in order to have a section called only once when swipe just started or a tap was detected\n\n if (swipingIndex.current !== index.current) {\n if (down && !tap) {\n if (onSwipeStart !== null) {\n onSwipeStart(index.current);\n }\n }\n\n if (!down && tap) {\n if (onTap !== null) {\n onTap();\n }\n }\n } // lock swiping on axis from initial 3 pixels distance (Y axis requires to swipe down)\n\n\n if (lockAxis && down && lockedAxis.current === null) {\n var distanceX = Math.abs(mx);\n var distanceY = Math.abs(my);\n\n if (distanceX !== distanceY && (distanceY > 2 || distanceX > 2)) {\n lockedAxis.current = distanceY > distanceX ? 'y' : 'x';\n }\n }\n\n swipingIndex.current = down && !tap ? index.current : null;\n }, {\n filterTaps: true\n });\n var reset = useCallback(function () {\n set(getItems());\n }, [disabled, items, index, currentWidth]);\n var setIndex = useCallback(function (idx) {\n index.current = idx;\n reset();\n }, [reset]); // Reset on resize or others\n\n useEffect(function () {\n set(getItems());\n }, [items, width, set, disabled]);\n return {\n items: itemsWithProps,\n bind: bind,\n index: index.current,\n setIndex: setIndex\n };\n};\n\nvar useThemeParser = function useThemeParser() {\n var screensManager = useScreensManager();\n var parser = useMemo(function () {\n return new ThemeParser({\n screensManager: screensManager\n });\n }, [screensManager]);\n var parse = useCallback(function (story) {\n return parser.parse(story);\n }, [parser]);\n return parse;\n};\n\nvar getScreenOptions = function getScreenOptions(screenContext, opts) {\n var _ref = screenContext || {},\n _ref$data = _ref.data,\n ctxData = _ref$data === void 0 ? null : _ref$data;\n\n var _ref2 = ctxData || {},\n _ref2$id = _ref2.id,\n ctxScreenId = _ref2$id === void 0 ? null : _ref2$id,\n ctxScreenType = _ref2.type;\n\n var _ref3 = opts || {},\n _ref3$screenId = _ref3.screenId,\n optsScreenId = _ref3$screenId === void 0 ? null : _ref3$screenId,\n _ref3$screenType = _ref3.screenType,\n optsScreenType = _ref3$screenType === void 0 ? null : _ref3$screenType;\n\n var screenId = ctxScreenId !== null ? ctxScreenId : optsScreenId;\n var screenType = ctxScreenType !== null ? ctxScreenType : optsScreenType;\n return {\n screenId: screenId,\n screenType: screenType\n };\n};\n\nvar hasTracking = function hasTracking(tracking) {\n return typeof tracking !== 'undefined';\n};\n\nvar useTrackScreenView = function useTrackScreenView() {\n var tracking = useTracking();\n\n if (!hasTracking(tracking)) {\n return function () {};\n }\n\n return useCallback(function () {\n var screen = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n var index = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n if (screen !== null && index !== null) {\n tracking.trackScreenView(screen, index);\n }\n }, []);\n};\nvar useTrackScreenEvent = function useTrackScreenEvent() {\n var type = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n var tracking = useTracking();\n\n if (!hasTracking(tracking)) {\n return function () {};\n }\n\n var screenContext = useScreen();\n\n if (screenContext.renderContext !== 'view') {\n return function () {};\n }\n\n return useCallback(function () {\n var action = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n var label = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var opts = arguments.length > 2 ? arguments[2] : undefined;\n\n if (type !== null && action !== null) {\n tracking.trackEvent(\"screen_\".concat(type), action, label, _objectSpread(_objectSpread({}, opts), getScreenOptions(screenContext, opts)));\n }\n }, [screenContext]);\n};\nvar useTrackScreenMedia = function useTrackScreenMedia() {\n var type = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n var tracking = useTracking();\n\n if (!hasTracking(tracking)) {\n return function () {};\n }\n\n var screenContext = useScreen();\n\n if (screenContext.renderContext !== 'view') {\n return function () {};\n }\n\n return useCallback(function () {\n var media = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n var action = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var opts = arguments.length > 2 ? arguments[2] : undefined;\n\n if (type !== null && media !== null && action !== null) {\n tracking.trackMedia(\"screen_\".concat(type), media, action, _objectSpread(_objectSpread({}, opts), getScreenOptions(screenContext, opts)));\n }\n }, [screenContext]);\n};\nvar useTrackEvent = function useTrackEvent() {\n var tracking = useTracking();\n\n if (!hasTracking(tracking)) {\n return function () {};\n }\n\n return useCallback(function () {\n var category = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n var action = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var label = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var opts = arguments.length > 3 ? arguments[3] : undefined;\n\n if (category !== null && action !== null) {\n tracking.trackEvent(category, action, label, opts);\n }\n }, []);\n};\nvar useTrackMedia = function useTrackMedia() {\n var type = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n var tracking = useTracking();\n\n if (!hasTracking(tracking)) {\n return function () {};\n }\n\n return useCallback(function () {\n var media = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n var action = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var opts = arguments.length > 2 ? arguments[2] : undefined;\n\n if (type !== null && media !== null && action !== null) {\n tracking.trackMedia(type, media, action, opts);\n }\n }, []);\n};\n\nvar eventsManager = typeof window !== 'undefined' ? new EventsManager(window) : null;\nvar useWindowEvent = createUseEvent(eventsManager);\n\nexport { getObserver, useAnimationFrame, useDocumentEvent, useForm, useFormTransition, useFormattedDate, useFormattedTime, useFullscreen, useIntersectionObserver, useIsVisible, useLoadedFonts, useLongPress, useMediaApi, useMediasParser, useObserver, useParsedStory, useResizeObserver, useScreenSizeFromElement, useScreenSizeFromWindow, useSwipe, useThemeParser, useTrackEvent, useTrackMedia, useTrackScreenEvent, useTrackScreenMedia, useTrackScreenView, useWindowEvent };\n","import _defineProperty from '@babel/runtime/helpers/defineProperty';\nimport _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';\nimport React, { useCallback, useState, useEffect, useRef, useMemo } from 'react';\nimport PropTypes$1 from 'prop-types';\nimport classNames from 'classnames';\nimport { Link as Link$1 } from 'react-router-dom';\nimport { PropTypes } from '@micromag/core';\nimport { FormattedMessage, defineMessages, FormattedDate, FormattedTime } from 'react-intl';\nimport { isMessage, getFieldFromPath, setFieldValue, getComponentFromName, validateFields, getDisplayName, pascalCase, convertStyleToString } from '@micromag/core/utils';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faAngleLeft, faAngleUp, faAngleDown, faAd, faImage, faMusic, faMapMarkerAlt, faMapMarkedAlt, faVideo, faPlay, faRedo, faCommentDots, faCheck, faTimes, faPercent } from '@fortawesome/free-solid-svg-icons';\nimport _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';\nimport _slicedToArray from '@babel/runtime/helpers/slicedToArray';\nimport { useForm, useDocumentEvent, useIntersectionObserver } from '@micromag/core/hooks';\nimport { useFieldsManager, useFieldComponent, FieldContextProvider, withModals, useModals, useUppy, withPanels, usePanels, useScreenComponent, ScreenProvider, ScreenSizeProvider, useScreenRenderContext, useScreenSize } from '@micromag/core/contexts';\nimport _objectSpread from '@babel/runtime/helpers/objectSpread2';\nimport get from 'lodash/get';\nimport ReactDOM from 'react-dom';\nimport isArray from 'lodash/isArray';\nimport { DashboardModal } from '@uppy/react';\nimport dayjs from 'dayjs';\nimport throttle from 'lodash/throttle';\nimport isObject from 'lodash/isObject';\nimport { Helmet } from 'react-helmet';\nimport isString from 'lodash/isString';\nimport 'snake-case';\nimport isNumber from 'lodash/isNumber';\nimport { useSpring } from '@react-spring/core';\nimport { animated } from '@react-spring/web';\n\n/* eslint-disable react/jsx-props-no-spreading */\nvar propTypes$J = {\n children: PropTypes.label.isRequired,\n isHtml: PropTypes$1.bool,\n values: PropTypes$1.object // eslint-disable-line react/forbid-prop-types\n\n};\nvar defaultProps$J = {\n isHtml: false,\n values: {}\n};\n\nvar Label = function Label(_ref) {\n var children = _ref.children,\n isHtml = _ref.isHtml,\n values = _ref.values;\n var Message = isHtml ? FormattedMessage : FormattedMessage;\n return isMessage(children) ? /*#__PURE__*/React.createElement(Message, Object.assign({\n values: values\n }, children)) : children;\n};\n\nLabel.propTypes = propTypes$J;\nLabel.defaultProps = defaultProps$J;\n\nvar styles$s = {\"container\":\"micromag-core-buttons-button-container\",\"asLink\":\"micromag-core-buttons-button-asLink\",\"withoutStyle\":\"micromag-core-buttons-button-withoutStyle\",\"icon\":\"micromag-core-buttons-button-icon\",\"withIcon\":\"micromag-core-buttons-button-withIcon\",\"label\":\"micromag-core-buttons-button-label\",\"right\":\"micromag-core-buttons-button-right\",\"withIconColumns\":\"micromag-core-buttons-button-withIconColumns\",\"linkDisabled\":\"micromag-core-buttons-button-linkDisabled\"};\n\nvar _excluded$8 = [\"type\", \"theme\", \"size\", \"href\", \"external\", \"direct\", \"target\", \"label\", \"children\", \"focusable\", \"active\", \"icon\", \"iconPosition\", \"disabled\", \"loading\", \"disableOnLoading\", \"small\", \"big\", \"withShadow\", \"withoutStyle\", \"withoutTheme\", \"asLink\", \"outline\", \"onClick\", \"className\", \"iconClassName\", \"labelClassName\", \"refButton\"];\nvar propTypes$I = {\n type: PropTypes$1.string,\n theme: PropTypes.buttonTheme,\n size: PropTypes.buttonSize,\n href: PropTypes$1.string,\n external: PropTypes$1.bool,\n direct: PropTypes$1.bool,\n target: PropTypes$1.string,\n label: PropTypes.label,\n children: PropTypes.label,\n focusable: PropTypes$1.bool,\n active: PropTypes$1.bool,\n icon: PropTypes$1.node,\n iconPosition: PropTypes$1.oneOf(['left', 'right', 'inline']),\n disabled: PropTypes$1.bool,\n loading: PropTypes$1.bool,\n disableOnLoading: PropTypes$1.bool,\n small: PropTypes$1.bool,\n big: PropTypes$1.bool,\n withShadow: PropTypes$1.bool,\n withoutStyle: PropTypes$1.bool,\n withoutTheme: PropTypes$1.bool,\n outline: PropTypes$1.bool,\n asLink: PropTypes$1.bool,\n className: PropTypes$1.string,\n iconClassName: PropTypes$1.string,\n labelClassName: PropTypes$1.string,\n onClick: PropTypes$1.func,\n refButton: PropTypes$1.oneOfType([PropTypes$1.func, PropTypes$1.shape({\n current: PropTypes$1.any // eslint-disable-line\n\n })])\n};\nvar defaultProps$I = {\n type: 'button',\n theme: null,\n size: null,\n href: null,\n external: false,\n direct: false,\n target: '_blank',\n label: null,\n children: null,\n focusable: true,\n active: false,\n icon: null,\n iconPosition: 'inline',\n disabled: false,\n loading: false,\n disableOnLoading: true,\n small: false,\n big: false,\n withShadow: false,\n withoutStyle: false,\n withoutTheme: false,\n outline: false,\n asLink: false,\n className: null,\n iconClassName: null,\n labelClassName: null,\n onClick: null,\n refButton: null\n};\n\nvar Button$1 = function Button(_ref) {\n var _ref7, _ref8;\n\n var type = _ref.type,\n theme = _ref.theme,\n size = _ref.size,\n href = _ref.href,\n external = _ref.external,\n direct = _ref.direct,\n target = _ref.target,\n label = _ref.label,\n children = _ref.children,\n focusable = _ref.focusable,\n active = _ref.active,\n icon = _ref.icon,\n iconPosition = _ref.iconPosition,\n disabled = _ref.disabled,\n loading = _ref.loading,\n disableOnLoading = _ref.disableOnLoading,\n small = _ref.small,\n big = _ref.big,\n withShadow = _ref.withShadow,\n withoutStyle = _ref.withoutStyle,\n withoutTheme = _ref.withoutTheme,\n asLink = _ref.asLink,\n outline = _ref.outline,\n onClick = _ref.onClick,\n className = _ref.className,\n iconClassName = _ref.iconClassName,\n labelClassName = _ref.labelClassName,\n refButton = _ref.refButton,\n props = _objectWithoutProperties(_ref, _excluded$8);\n\n var finalLabel = label || children;\n var text = finalLabel !== null ? /*#__PURE__*/React.createElement(Label, null, finalLabel) : null;\n var hasChildren = label !== null && children !== null;\n var hasIcon = icon !== null;\n var hasInlineIcon = hasIcon && (iconPosition === 'inline' || text === null);\n var hasIconColumns = hasIcon && !hasInlineIcon;\n var content = /*#__PURE__*/React.createElement(React.Fragment, null, hasInlineIcon ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"span\", {\n className: classNames([styles$s.icon, _defineProperty({}, iconClassName, iconClassName !== null)])\n }, icon), text !== null ? /*#__PURE__*/React.createElement(\"span\", {\n className: classNames([styles$s.label, _defineProperty({}, labelClassName, labelClassName !== null)])\n }, text) : null) : null, hasIconColumns ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"span\", {\n className: classNames([styles$s.left, _defineProperty({}, iconClassName, iconClassName !== null && iconPosition === 'left')])\n }, iconPosition === 'left' ? icon : null), /*#__PURE__*/React.createElement(\"span\", {\n className: classNames([styles$s.center, _defineProperty({}, labelClassName, labelClassName !== null)])\n }, text), /*#__PURE__*/React.createElement(\"span\", {\n className: classNames([styles$s.right, _defineProperty({}, iconClassName, iconClassName !== null && iconPosition === 'right')])\n }, iconPosition === 'right' ? icon : null), hasChildren ? children : null) : null, !hasIcon ? text : null, hasChildren ? children : null);\n var withStyle = !withoutTheme && !withoutStyle && !asLink;\n var buttonClassNames = classNames([(_ref7 = {\n btn: withStyle\n }, _defineProperty(_ref7, \"btn-\".concat(outline ? 'outline-' : '').concat(theme), withStyle && theme !== null), _defineProperty(_ref7, \"btn-\".concat(size), withStyle && size !== null), _defineProperty(_ref7, \"active\", !withoutStyle && active), _ref7), styles$s.container, (_ref8 = {}, _defineProperty(_ref8, styles$s.withoutStyle, withoutStyle), _defineProperty(_ref8, styles$s.withIcon, hasIcon), _defineProperty(_ref8, styles$s.withIconColumns, hasIconColumns), _defineProperty(_ref8, styles$s.withText, text !== null), _defineProperty(_ref8, styles$s.withShadow, withShadow), _defineProperty(_ref8, styles$s.isSmall, small), _defineProperty(_ref8, styles$s.isBig, big), _defineProperty(_ref8, styles$s.isLink, href !== null), _defineProperty(_ref8, styles$s.asLink, asLink), _defineProperty(_ref8, styles$s.isDisabled, disabled), _defineProperty(_ref8, styles$s.isLoading, loading), _defineProperty(_ref8, className, className !== null), _ref8)]);\n\n if (href !== null) {\n var linkClassNames = classNames([buttonClassNames, _defineProperty({\n disabled: disabled\n }, styles$s.linkDisabled, disabled)]);\n return external || direct ? /*#__PURE__*/React.createElement(\"a\", Object.assign({}, props, {\n href: disabled ? null : href,\n className: linkClassNames,\n onClick: onClick,\n target: external ? target : null,\n ref: refButton,\n tabIndex: focusable ? '' : '-1'\n }), content) : /*#__PURE__*/React.createElement(Link$1, {\n to: href,\n className: linkClassNames,\n onClick: onClick,\n ref: refButton,\n tabIndex: focusable ? '' : '-1'\n }, content);\n }\n\n return /*#__PURE__*/React.createElement(\"button\", Object.assign({}, props, {\n type: type,\n className: buttonClassNames,\n onClick: onClick,\n disabled: disabled || disableOnLoading && loading,\n ref: refButton,\n tabIndex: focusable ? '0' : '-1'\n }), content);\n};\n\nButton$1.propTypes = propTypes$I;\nButton$1.defaultProps = defaultProps$I;\n\nvar styles$r = {};\n\nvar _excluded$7 = [\"className\", \"onClick\", \"theme\"];\nvar propTypes$H = {\n buttons: PropTypes.buttons,\n size: PropTypes.buttonSize,\n theme: PropTypes.buttonTheme,\n renderButton: PropTypes$1.func,\n onClickButton: PropTypes$1.func,\n className: PropTypes$1.string,\n buttonClassName: PropTypes$1.string\n};\nvar defaultProps$H = {\n buttons: [],\n size: null,\n theme: undefined,\n renderButton: null,\n onClickButton: null,\n className: null,\n buttonClassName: null\n};\n\nvar Buttons = function Buttons(_ref) {\n var buttons = _ref.buttons,\n size = _ref.size,\n theme = _ref.theme,\n renderButton = _ref.renderButton,\n onClickButton = _ref.onClickButton,\n buttonClassName = _ref.buttonClassName,\n className = _ref.className;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(['btn-group', _defineProperty({}, \"btn-group-\".concat(size), size !== null), styles$r.container, _defineProperty({}, className, className !== null)]),\n role: \"group\"\n }, buttons.map(function (button, index) {\n var _ref4;\n\n var _button$className = button.className,\n customClassName = _button$className === void 0 ? null : _button$className,\n _button$onClick = button.onClick,\n _onClick = _button$onClick === void 0 ? null : _button$onClick,\n _button$theme = button.theme,\n buttonTheme = _button$theme === void 0 ? null : _button$theme,\n buttonProps = _objectWithoutProperties(button, _excluded$7);\n\n var fixedProps = {\n key: \"button-\".concat(index),\n className: classNames([styles$r.button, (_ref4 = {}, _defineProperty(_ref4, buttonClassName, buttonClassName !== null), _defineProperty(_ref4, customClassName, customClassName !== null), _ref4)]),\n onClick: function onClick(e) {\n if (_onClick !== null) {\n _onClick(e, button, index);\n }\n\n if (onClickButton !== null) {\n onClickButton(e, button, index);\n }\n },\n theme: buttonTheme || theme\n };\n return renderButton !== null ? renderButton(button, index, fixedProps) : /*#__PURE__*/React.createElement(Button$1, Object.assign({}, fixedProps, buttonProps));\n }));\n};\n\nButtons.propTypes = propTypes$H;\nButtons.defaultProps = defaultProps$H;\n\nvar _excluded$6 = [\"className\"];\nvar propTypes$G = {\n className: PropTypes$1.string\n};\nvar defaultProps$G = {\n className: null\n};\n\nvar BackButton = function BackButton(_ref) {\n var className = _ref.className,\n props = _objectWithoutProperties(_ref, _excluded$6);\n\n return /*#__PURE__*/React.createElement(Button$1, Object.assign({\n className: classNames(['px-2', _defineProperty({}, className, className)]),\n size: \"sm\",\n icon: /*#__PURE__*/React.createElement(FontAwesomeIcon, {\n icon: faAngleLeft,\n size: \"lg\"\n })\n }, props));\n};\n\nBackButton.propTypes = propTypes$G;\nBackButton.defaultProps = defaultProps$G;\n\nvar _excluded$5 = [\"type\"],\n _excluded2 = [\"component\", \"id\", \"settings\"];\nvar propTypes$F = {\n name: PropTypes$1.string,\n // .isRequired,\n value: PropTypes.component,\n form: PropTypes$1.string,\n formComponents: PropTypes.components,\n fields: PropTypes.fields,\n className: PropTypes$1.string,\n onChange: PropTypes$1.func,\n gotoFieldForm: PropTypes$1.func.isRequired,\n closeFieldForm: PropTypes$1.func.isRequired,\n fieldContext: PropTypes$1.any // eslint-disable-line react/forbid-prop-types\n\n};\nvar defaultProps$F = {\n name: null,\n form: null,\n formComponents: {},\n fields: [],\n value: null,\n className: null,\n onChange: null,\n fieldContext: null\n};\n\nvar FieldForm = function FieldForm(_ref) {\n var name = _ref.name,\n value = _ref.value,\n form = _ref.form,\n formComponents = _ref.formComponents,\n fields = _ref.fields,\n className = _ref.className,\n onChange = _ref.onChange,\n gotoFieldForm = _ref.gotoFieldForm,\n closeFieldForm = _ref.closeFieldForm,\n fieldContext = _ref.fieldContext;\n var fieldsManager = useFieldsManager();\n var field = getFieldFromPath(name.split('.'), fields, fieldsManager);\n\n var _ref2 = field || {},\n _ref2$type = _ref2.type,\n type = _ref2$type === void 0 ? null : _ref2$type,\n fieldProps = _objectWithoutProperties(_ref2, _excluded$5);\n\n var _ref3 = (type !== null ? fieldsManager.getDefinition(type) || null : null) || _objectSpread({}, field),\n _ref3$component = _ref3.component,\n fieldComponent = _ref3$component === void 0 ? null : _ref3$component;\n _ref3.id;\n _ref3.settings;\n var definitionProps = _objectWithoutProperties(_ref3, _excluded2);\n\n var FieldComponent = useFieldComponent(fieldComponent);\n var fieldValue = get(value, name, null);\n var onFieldChange = useCallback(function (newFieldValue) {\n // const { name, fields: subFields = null } = field || {};\n var newValue = setFieldValue(value, name.split('.'), newFieldValue // field === null || subFields !== null ? newFieldValue : newFieldValue[name],\n );\n\n if (onChange !== null) {\n onChange(newValue);\n }\n }, [value, name, onChange]);\n var closeForm = useCallback(function () {\n return closeFieldForm(name, form);\n }, [name, form, closeFieldForm]);\n var formProps = {\n name: name,\n value: fieldValue,\n onChange: onFieldChange,\n gotoFieldForm: gotoFieldForm,\n closeFieldForm: closeFieldForm,\n closeForm: closeForm\n };\n\n if (form !== null) {\n var FormComponent = getComponentFromName(form, formComponents);\n return FormComponent !== null ? /*#__PURE__*/React.createElement(FieldContextProvider, {\n context: fieldContext\n }, /*#__PURE__*/React.createElement(FormComponent, Object.assign({\n field: field\n }, formProps, {\n className: className\n }))) : null;\n } // Use field component with isForm props\n\n\n return FieldComponent !== null ? /*#__PURE__*/React.createElement(FieldContextProvider, {\n context: fieldContext\n }, /*#__PURE__*/React.createElement(FieldComponent, Object.assign({\n className: className\n }, definitionProps, fieldProps, {\n isForm: true\n }, formProps))) : null;\n};\n\nFieldForm.propTypes = propTypes$F;\nFieldForm.defaultProps = defaultProps$F;\n\nvar styles$q = {\"actions\":\"micromag-core-forms-form-actions\",\"left\":\"micromag-core-forms-form-left\",\"right\":\"micromag-core-forms-form-right\"};\n\nvar propTypes$E = {\n action: PropTypes$1.string.isRequired,\n method: PropTypes$1.string,\n fields: PropTypes.formFields,\n initialValue: PropTypes$1.object,\n // eslint-disable-line react/forbid-prop-types\n postForm: PropTypes$1.func,\n submitButtonLabel: PropTypes.label,\n submitButtonLoadingLabel: PropTypes.label,\n buttons: PropTypes.buttons,\n children: PropTypes$1.node,\n actionsAlign: PropTypes$1.oneOf(['left', 'right']),\n withoutActions: PropTypes$1.bool,\n withoutComplete: PropTypes$1.bool,\n withoutBackButton: PropTypes$1.bool,\n onComplete: PropTypes$1.func,\n onResponse: PropTypes$1.func,\n onMessage: PropTypes$1.func,\n onCancel: PropTypes$1.func,\n onCancelHref: PropTypes$1.string,\n onOpenFieldForm: PropTypes$1.func,\n onCloseFieldForm: PropTypes$1.func,\n className: PropTypes$1.string,\n fieldsClassName: PropTypes$1.string,\n actionsClassName: PropTypes$1.string,\n cancelClassName: PropTypes$1.string\n};\nvar defaultProps$E = {\n method: 'POST',\n fields: [],\n initialValue: null,\n postForm: null,\n submitButtonLabel: /*#__PURE__*/React.createElement(FormattedMessage, {\n id: \"ZLDmja\",\n defaultMessage: [{\n \"type\": 0,\n \"value\": \"Submit\"\n }]\n }),\n submitButtonLoadingLabel: null,\n buttons: null,\n children: null,\n actionsAlign: 'left',\n withoutActions: false,\n withoutComplete: false,\n withoutBackButton: false,\n onComplete: null,\n onResponse: null,\n onMessage: null,\n onCancel: null,\n onCancelHref: null,\n onOpenFieldForm: null,\n onCloseFieldForm: null,\n className: null,\n fieldsClassName: null,\n actionsClassName: null,\n cancelClassName: null\n};\n\nvar Form = function Form(_ref) {\n var _ref4;\n\n var action = _ref.action,\n method = _ref.method,\n initialFields = _ref.fields,\n initialValue = _ref.initialValue,\n postForm = _ref.postForm,\n submitButtonLabel = _ref.submitButtonLabel,\n submitButtonLoadingLabel = _ref.submitButtonLoadingLabel,\n buttons = _ref.buttons,\n children = _ref.children,\n actionsAlign = _ref.actionsAlign,\n withoutActions = _ref.withoutActions,\n withoutComplete = _ref.withoutComplete,\n withoutBackButton = _ref.withoutBackButton,\n onComplete = _ref.onComplete,\n onResponse = _ref.onResponse,\n onMessage = _ref.onMessage,\n onCancel = _ref.onCancel,\n onCancelHref = _ref.onCancelHref,\n onOpenFieldForm = _ref.onOpenFieldForm,\n onCloseFieldForm = _ref.onCloseFieldForm,\n className = _ref.className,\n fieldsClassName = _ref.fieldsClassName,\n actionsClassName = _ref.actionsClassName,\n cancelClassName = _ref.cancelClassName;\n\n var _useState = useState(false),\n _useState2 = _slicedToArray(_useState, 2),\n complete = _useState2[0],\n setComplete = _useState2[1];\n\n useEffect(function () {\n var id = null;\n\n if (complete) {\n id = setTimeout(function () {\n setComplete(false);\n }, 3000);\n }\n\n return function () {\n clearTimeout(id);\n };\n }, [complete]);\n var onCompleteForm = useCallback(function (data) {\n if (onComplete !== null) {\n onComplete(data);\n }\n\n if (!withoutComplete) {\n setComplete(true);\n }\n }, [onComplete, setComplete]);\n\n var _useForm = useForm({\n value: initialValue,\n action: action,\n fields: initialFields,\n postForm: postForm,\n onComplete: onCompleteForm\n }),\n onSubmit = _useForm.onSubmit,\n fields = _useForm.fields,\n status = _useForm.status,\n value = _useForm.value,\n setValue = _useForm.setValue,\n errors = _useForm.errors,\n response = _useForm.response,\n generalError = _useForm.generalError;\n\n var FieldsComponent = useFieldComponent('fields');\n\n useEffect(function () {\n if (onResponse !== null) {\n onResponse(response);\n\n if (onMessage !== null && response && response.message) {\n onMessage(response.message);\n }\n }\n }, [response, onResponse, onMessage]);\n var canSave = validateFields(fields, value);\n\n var _useState3 = useState([]),\n _useState4 = _slicedToArray(_useState3, 2),\n fieldPaths = _useState4[0],\n setFieldPaths = _useState4[1];\n\n var gotoFieldForm = useCallback(function (field) {\n var formName = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var fieldKey = \"\".concat(field).concat(formName !== null ? \":\".concat(formName) : '');\n setFieldPaths([].concat(_toConsumableArray(fieldPaths), [fieldKey]));\n\n if (onOpenFieldForm !== null) {\n onOpenFieldForm();\n }\n }, [fieldPaths, setFieldPaths]);\n var closeFieldForm = useCallback(function () {\n var newFields = _toConsumableArray(fieldPaths);\n\n newFields.pop();\n setFieldPaths(_toConsumableArray(newFields));\n\n if (onCloseFieldForm !== null) {\n onCloseFieldForm();\n }\n }, [fieldPaths, setFieldPaths]); // The last path\n\n var fieldParams = fieldPaths.length > 0 ? fieldPaths[fieldPaths.length - 1] : null; // Get transition value\n // const { name: transitionName, timeout: transitionTimeout } = useFormTransition(\n // fieldPaths,\n // styles,\n // );\n\n return /*#__PURE__*/React.createElement(\"form\", {\n action: action,\n className: classNames([styles$q.container, _defineProperty({}, className, className !== null)]),\n method: method,\n onSubmit: onSubmit\n }, !withoutBackButton && fields !== null && fields.length > 0 && fieldParams !== null ? /*#__PURE__*/React.createElement(\"div\", {\n className: \"mb-2\"\n }, /*#__PURE__*/React.createElement(BackButton, {\n theme: \"secondary\",\n outline: true,\n onClick: closeFieldForm\n })) : null, fields && fields.length > 0 && fieldParams !== null ? /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(['w-100', styles$q.panel]),\n key: \"field\"\n }, /*#__PURE__*/React.createElement(FieldForm, {\n name: fieldParams.replace(/\\//g, '.'),\n fields: fields,\n value: value,\n onChange: setValue,\n gotoFieldForm: gotoFieldForm,\n closeFieldForm: closeFieldForm\n })) : null, FieldsComponent && fields !== null && fields.length > 0 && fieldParams === null ? /*#__PURE__*/React.createElement(FieldsComponent, {\n fields: fields,\n value: value,\n errors: errors,\n onChange: setValue,\n gotoFieldForm: gotoFieldForm,\n closeFieldForm: closeFieldForm,\n className: classNames([styles$q.fields, _defineProperty({}, fieldsClassName, fieldsClassName !== null)])\n }) : null, generalError ? /*#__PURE__*/React.createElement(\"p\", {\n className: \"text-danger my-1\"\n }, generalError) : null, children, !withoutActions && fieldParams === null ? /*#__PURE__*/React.createElement(\"div\", {\n className: classNames([styles$q.actions, (_ref4 = {}, _defineProperty(_ref4, styles$q[actionsAlign], actionsAlign), _defineProperty(_ref4, actionsClassName, actionsClassName !== null), _ref4)])\n }, onCancel !== null || onCancelHref !== null ? /*#__PURE__*/React.createElement(Button$1, {\n type: \"button\",\n onClick: onCancel,\n href: onCancelHref,\n theme: \"secondary\",\n outline: true,\n disabled: status === 'loading',\n className: classNames(['mr-2', _defineProperty({}, cancelClassName, cancelClassName !== null)])\n }, /*#__PURE__*/React.createElement(FormattedMessage, {\n id: \"PyxZY2\",\n defaultMessage: [{\n \"type\": 0,\n \"value\": \"Cancel\"\n }]\n })) : null, buttons !== null ? /*#__PURE__*/React.createElement(Buttons, {\n buttons: buttons,\n className: styles$q.buttons\n }) : /*#__PURE__*/React.createElement(Button$1, {\n type: \"submit\",\n theme: \"primary\",\n disabled: status === 'loading' || !canSave\n }, status === 'loading' ? submitButtonLoadingLabel || submitButtonLabel : submitButtonLabel), complete ? /*#__PURE__*/React.createElement(\"p\", {\n className: \"text-success mx-2 my-1\"\n }, /*#__PURE__*/React.createElement(FormattedMessage, {\n id: \"BpZoQZ\",\n defaultMessage: [{\n \"type\": 0,\n \"value\": \"Success\"\n }]\n })) : null) : null);\n};\n\nForm.propTypes = propTypes$E;\nForm.defaultProps = defaultProps$E;\n\nvar styles$p = {\"withoutStyle\":\"micromag-core-partials-link-withoutStyle\"};\n\nvar _excluded$4 = [\"href\", \"external\", \"children\", \"target\", \"rel\", \"className\", \"withoutStyle\"];\nvar propTypes$D = {\n href: PropTypes$1.string,\n external: PropTypes$1.bool,\n target: PropTypes$1.string,\n children: PropTypes.label,\n rel: PropTypes$1.string,\n withoutStyle: PropTypes$1.bool,\n className: PropTypes$1.string\n};\nvar defaultProps$D = {\n href: '',\n external: false,\n target: '_blank',\n rel: 'noopener noreferrer',\n children: null,\n withoutStyle: false,\n className: null\n};\n\nvar Link = function Link(_ref) {\n var href = _ref.href,\n external = _ref.external,\n children = _ref.children,\n target = _ref.target,\n rel = _ref.rel,\n className = _ref.className,\n withoutStyle = _ref.withoutStyle,\n props = _objectWithoutProperties(_ref, _excluded$4);\n\n return external ? /*#__PURE__*/React.createElement(\"a\", Object.assign({\n className: classNames([className, _defineProperty({}, styles$p.withoutStyle, withoutStyle)]),\n href: href,\n target: target,\n rel: rel\n }, props), /*#__PURE__*/React.createElement(Label, null, children)) : /*#__PURE__*/React.createElement(Link$1, Object.assign({\n className: classNames([className, _defineProperty({}, styles$p.withoutStyle, withoutStyle)]),\n to: href\n }, props), /*#__PURE__*/React.createElement(Label, null, children));\n};\n\nLink.propTypes = propTypes$D;\nLink.defaultProps = defaultProps$D;\n\nvar _excluded$3 = [\"label\", \"className\"];\nvar propTypes$C = {\n href: PropTypes$1.string,\n header: PropTypes$1.node,\n image: PropTypes$1.node,\n imageAlt: PropTypes$1.string,\n imageOverlay: PropTypes$1.bool,\n beforeBody: PropTypes$1.node,\n title: PropTypes.label,\n subtitle: PropTypes.label,\n children: PropTypes$1.node,\n afterBody: PropTypes$1.node,\n links: PropTypes$1.arrayOf(PropTypes$1.shape({\n label: PropTypes.label,\n href: PropTypes$1.string\n })),\n linksInSameBody: PropTypes$1.bool,\n footer: PropTypes$1.node,\n theme: PropTypes$1.oneOf([null, 'dark', 'primary', 'light']),\n className: PropTypes$1.string,\n imageClassName: PropTypes$1.string,\n headerClassName: PropTypes$1.string,\n titleClassName: PropTypes$1.string,\n subtitleClassName: PropTypes$1.string,\n bodyClassName: PropTypes$1.string,\n footerClassName: PropTypes$1.string,\n onClick: PropTypes$1.func,\n onClickBody: PropTypes$1.func,\n onClickFooter: PropTypes$1.func\n};\nvar defaultProps$C = {\n href: null,\n header: null,\n image: null,\n imageAlt: null,\n imageOverlay: false,\n beforeBody: null,\n title: null,\n subtitle: null,\n children: null,\n afterBody: null,\n links: null,\n linksInSameBody: false,\n footer: null,\n theme: null,\n className: null,\n imageClassName: null,\n headerClassName: null,\n titleClassName: null,\n subtitleClassName: null,\n bodyClassName: null,\n footerClassName: null,\n onClick: null,\n onClickBody: null,\n onClickFooter: null\n};\n\nvar Card = function Card(_ref) {\n var _ref10;\n\n var href = _ref.href,\n header = _ref.header,\n image = _ref.image,\n imageAlt = _ref.imageAlt,\n imageOverlay = _ref.imageOverlay,\n beforeBody = _ref.beforeBody,\n title = _ref.title,\n subtitle = _ref.subtitle,\n children = _ref.children,\n afterBody = _ref.afterBody,\n links = _ref.links,\n linksInSameBody = _ref.linksInSameBody,\n footer = _ref.footer,\n theme = _ref.theme,\n className = _ref.className,\n imageClassName = _ref.imageClassName,\n headerClassName = _ref.headerClassName,\n titleClassName = _ref.titleClassName,\n subtitleClassName = _ref.subtitleClassName,\n bodyClassName = _ref.bodyClassName,\n footerClassName = _ref.footerClassName,\n onClick = _ref.onClick,\n onClickBody = _ref.onClickBody,\n onClickFooter = _ref.onClickFooter;\n var linksElements = (links || []).map(function (_ref2, index) {\n var label = _ref2.label,\n _ref2$className = _ref2.className,\n linkClassName = _ref2$className === void 0 ? null : _ref2$className,\n linkProps = _objectWithoutProperties(_ref2, _excluded$3);\n\n return /*#__PURE__*/React.createElement(Link, Object.assign({\n key: \"link-\".concat(label, \"-\").concat(index),\n className: classNames(['card-link', _defineProperty({}, linkClassName, linkClassName !== null)])\n }, linkProps), label);\n });\n var bodyInner = title !== null || subtitle !== null || children !== null || links !== null && linksInSameBody ? /*#__PURE__*/React.createElement(React.Fragment, null, title !== null ? /*#__PURE__*/React.createElement(\"h5\", {\n className: classNames(['card-title', _defineProperty({}, titleClassName, titleClassName !== null)])\n }, /*#__PURE__*/React.createElement(Label, null, title)) : null, subtitle !== null ? /*#__PURE__*/React.createElement(\"h6\", {\n className: classNames(['card-subtitle', _defineProperty({}, subtitleClassName, subtitleClassName !== null)])\n }, /*#__PURE__*/React.createElement(Label, null, subtitle)) : null, children, links !== null && linksInSameBody ? /*#__PURE__*/React.createElement(\"div\", {\n className: \"d-flex\"\n }, linksElements) : null) : null;\n var cardInner = /*#__PURE__*/React.createElement(React.Fragment, null, header !== null ? /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(['card-header', _defineProperty({}, headerClassName, headerClassName !== null)])\n }, /*#__PURE__*/React.createElement(Label, null, header)) : null, typeof image === 'string' ? /*#__PURE__*/React.createElement(\"img\", {\n src: image,\n alt: imageAlt,\n className: classNames(['card-img-top', _defineProperty({}, imageClassName, imageClassName !== null)])\n }) : image, beforeBody, bodyInner !== null ? /*#__PURE__*/React.createElement(React.Fragment, null, onClickBody !== null ? /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n className: classNames(_defineProperty({\n 'card-body': !imageOverlay,\n 'card-img-overlay': imageOverlay\n }, bodyClassName, bodyClassName !== null)),\n onClick: onClickBody\n }, bodyInner) : /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(_defineProperty({\n 'card-body': !imageOverlay,\n 'card-img-overlay': imageOverlay\n }, bodyClassName, bodyClassName !== null))\n }, bodyInner)) : null, afterBody, links !== null && !linksInSameBody ? /*#__PURE__*/React.createElement(\"div\", {\n className: \"card-body\"\n }, linksElements) : null, footer !== null ? /*#__PURE__*/React.createElement(React.Fragment, null, onClickFooter !== null ? /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n className: classNames(['card-footer', _defineProperty({}, footerClassName, footerClassName !== null)]),\n onClick: onClickFooter\n }, /*#__PURE__*/React.createElement(Label, null, footer)) : /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(['card-footer', _defineProperty({}, footerClassName, footerClassName !== null)])\n }, /*#__PURE__*/React.createElement(Label, null, footer))) : null);\n var cardClassName = classNames(['card', (_ref10 = {}, _defineProperty(_ref10, \"bg-\".concat(theme), !imageOverlay && theme !== 'dark'), _defineProperty(_ref10, 'bg-dark', imageOverlay || theme === 'dark'), _defineProperty(_ref10, 'text-dark', theme === 'light'), _defineProperty(_ref10, 'text-light', imageOverlay || theme === 'dark' || theme === 'primary'), _defineProperty(_ref10, className, className !== null), _ref10)]);\n\n if (href !== null) {\n return /*#__PURE__*/React.createElement(Link, {\n href: href,\n className: cardClassName\n }, cardInner);\n }\n\n if (onClick !== null) {\n return /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n className: classNames(['p-0', 'text-left', cardClassName]),\n onClick: onClick\n }, cardInner);\n }\n\n return /*#__PURE__*/React.createElement(\"div\", {\n className: cardClassName\n }, cardInner);\n};\n\nCard.propTypes = propTypes$C;\nCard.defaultProps = defaultProps$C;\n\nvar propTypes$B = {\n animated: PropTypes$1.bool,\n color: PropTypes$1.string,\n className: PropTypes$1.string\n};\nvar defaultProps$B = {\n animated: true,\n color: 'currentColor',\n className: null\n};\n\nvar Spinner = function Spinner(_ref) {\n var animated = _ref.animated,\n color = _ref.color,\n className = _ref.className;\n return /*#__PURE__*/React.createElement(\"svg\", {\n className: classNames([_defineProperty({}, className, className !== null)]),\n width: \"38\",\n height: \"38\",\n viewBox: \"0 0 38 38\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"linearGradient\", {\n x1: \"8.042%\",\n y1: \"0%\",\n x2: \"65.682%\",\n y2: \"23.865%\",\n id: \"a\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: color,\n stopOpacity: \"0\",\n offset: \"0%\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: color,\n stopOpacity: \".631\",\n offset: \"63.146%\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: color,\n offset: \"100%\"\n }))), /*#__PURE__*/React.createElement(\"g\", {\n fill: \"none\",\n fillRule: \"evenodd\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(1 1)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M36 18c0-9.94-8.06-18-18-18\",\n id: \"Oval-2\",\n stroke: \"url(#a)\",\n strokeWidth: \"2\"\n }, animated ? /*#__PURE__*/React.createElement(\"animateTransform\", {\n attributeName: \"transform\",\n type: \"rotate\",\n from: \"0 18 18\",\n to: \"360 18 18\",\n dur: \"0.9s\",\n repeatCount: \"indefinite\"\n }) : null), /*#__PURE__*/React.createElement(\"circle\", {\n fill: color,\n cx: \"36\",\n cy: \"18\",\n r: \"1\"\n }, animated ? /*#__PURE__*/React.createElement(\"animateTransform\", {\n attributeName: \"transform\",\n type: \"rotate\",\n from: \"0 18 18\",\n to: \"360 18 18\",\n dur: \"0.9s\",\n repeatCount: \"indefinite\"\n }) : null))));\n};\n\nSpinner.propTypes = propTypes$B;\nSpinner.defaultProps = defaultProps$B;\n\nvar styles$o = {};\n\nvar _excluded$2 = [\"description\", \"loading\", \"children\", \"className\"];\nvar propTypes$A = {\n description: PropTypes$1.node,\n loading: PropTypes$1.bool,\n children: PropTypes$1.node,\n className: PropTypes$1.string\n};\nvar defaultProps$A = {\n description: null,\n loading: false,\n children: null,\n className: null\n};\n\nvar FormPanel = function FormPanel(_ref) {\n var description = _ref.description,\n loading = _ref.loading,\n children = _ref.children,\n className = _ref.className,\n props = _objectWithoutProperties(_ref, _excluded$2);\n\n return /*#__PURE__*/React.createElement(Card, Object.assign({\n className: classNames([styles$o.container, _defineProperty({}, className, className !== null)])\n }, props), description, loading ? /*#__PURE__*/React.createElement(Spinner, null) : children);\n};\n\nFormPanel.propTypes = propTypes$A;\nFormPanel.defaultProps = defaultProps$A;\n\nvar styles$n = {\"container\":\"micromag-core-menus-breadcrumb-container\",\"arrow\":\"micromag-core-menus-breadcrumb-arrow\"};\n\nvar propTypes$z = {\n items: PropTypes.menuItems,\n theme: PropTypes.bootstrapThemes,\n separator: PropTypes$1.oneOf([null, 'arrow']),\n withoutBar: PropTypes$1.bool,\n noWrap: PropTypes$1.bool,\n className: PropTypes$1.string\n};\nvar defaultProps$z = {\n items: [],\n theme: null,\n separator: null,\n withoutBar: false,\n noWrap: false,\n className: null\n};\n\nvar Breadcrumb = function Breadcrumb(_ref) {\n var items = _ref.items,\n theme = _ref.theme,\n separator = _ref.separator,\n withoutBar = _ref.withoutBar,\n noWrap = _ref.noWrap,\n className = _ref.className;\n return /*#__PURE__*/React.createElement(\"nav\", {\n className: className\n }, /*#__PURE__*/React.createElement(\"ol\", {\n className: classNames([styles$n.container, 'breadcrumb', 'mb-0', {\n 'p-0': withoutBar,\n 'bg-transparent': withoutBar,\n 'rounded-0': withoutBar,\n 'flex-nowrap': noWrap\n }])\n }, items.map(function (_ref2, index) {\n var _ref3;\n\n var url = _ref2.url,\n label = _ref2.label,\n _ref2$active = _ref2.active,\n active = _ref2$active === void 0 ? false : _ref2$active,\n _ref2$onClick = _ref2.onClick,\n onClick = _ref2$onClick === void 0 ? null : _ref2$onClick;\n return /*#__PURE__*/React.createElement(\"li\", {\n className: classNames(['breadcrumb-item', (_ref3 = {\n active: active\n }, _defineProperty(_ref3, styles$n.arrow, separator === 'arrow'), _defineProperty(_ref3, \"text-\".concat(theme), active && theme !== null), _ref3)]),\n key: \"item-\".concat(index)\n }, active ? /*#__PURE__*/React.createElement(Label, null, label) : null, !active && url ? /*#__PURE__*/React.createElement(Link$1, {\n to: url,\n onClick: onClick,\n className: classNames(_defineProperty({}, \"text-\".concat(theme), theme !== null))\n }, /*#__PURE__*/React.createElement(Label, null, label)) : null, !active && onClick ? /*#__PURE__*/React.createElement(Button$1, {\n onClick: onClick,\n className: classNames(_defineProperty({}, \"text-\".concat(theme), theme !== null))\n }, /*#__PURE__*/React.createElement(Label, null, label)) : null);\n })));\n};\n\nBreadcrumb.propTypes = propTypes$z;\nBreadcrumb.defaultProps = defaultProps$z;\n\nvar _excluded$1 = [\"id\", \"type\", \"className\", \"label\", \"children\", \"onClick\", \"active\"];\nvar propTypes$y = {\n items: PropTypes.menuItems,\n children: PropTypes$1.node,\n visible: PropTypes$1.bool,\n align: PropTypes.dropdownAlign,\n className: PropTypes$1.string,\n itemClassName: PropTypes$1.string,\n onClickItem: PropTypes$1.func,\n onClickOutside: PropTypes$1.func\n};\nvar defaultProps$y = {\n items: [],\n children: null,\n visible: false,\n align: null,\n className: null,\n itemClassName: null,\n onClickItem: null,\n onClickOutside: null\n};\n\nvar Dropdown = function Dropdown(_ref) {\n var _ref2;\n\n var items = _ref.items,\n children = _ref.children,\n visible = _ref.visible,\n align = _ref.align,\n className = _ref.className,\n itemClassName = _ref.itemClassName,\n onClickItem = _ref.onClickItem,\n onClickOutside = _ref.onClickOutside;\n var refContainer = useRef(null);\n var onDocumentClick = useCallback(function (e) {\n if (refContainer.current && !refContainer.current.contains(e.currentTarget) && onClickOutside !== null) {\n onClickOutside(e);\n }\n }, [refContainer.current, onClickOutside]);\n useDocumentEvent('click', onDocumentClick, visible);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(['dropdown-menu', (_ref2 = {}, _defineProperty(_ref2, \"dropdown-menu-\".concat(align), align !== null), _defineProperty(_ref2, \"show\", visible), _defineProperty(_ref2, className, className !== null), _ref2)]),\n ref: refContainer\n }, children !== null ? children : items.map(function (it, index) {\n var _ref3;\n\n it.id;\n var _it$type = it.type,\n type = _it$type === void 0 ? 'link' : _it$type,\n _it$className = it.className,\n customClassName = _it$className === void 0 ? null : _it$className,\n _it$label = it.label,\n label = _it$label === void 0 ? null : _it$label,\n _it$children = it.children,\n itemChildren = _it$children === void 0 ? null : _it$children,\n _it$onClick = it.onClick,\n customOnClick = _it$onClick === void 0 ? null : _it$onClick,\n _it$active = it.active,\n active = _it$active === void 0 ? false : _it$active,\n itemProps = _objectWithoutProperties(it, _excluded$1);\n\n var ItemComponent = 'div';\n\n if (type === 'link') {\n ItemComponent = Link;\n } else if (type === 'button') {\n ItemComponent = Button$1;\n itemProps.type = 'button';\n } else if (type === 'header') {\n ItemComponent = 'h6';\n }\n\n var finalOnClickItem = customOnClick !== null || type === 'link' && onClickItem !== null ? function (e) {\n if (customOnClick !== null) {\n customOnClick(e);\n }\n\n if (type === 'link' && onClickItem !== null) {\n onClickItem(e);\n }\n } : null;\n return ItemComponent !== null ? /*#__PURE__*/React.createElement(ItemComponent, Object.assign({\n key: \"item-\".concat(index),\n className: classNames(['d-block', 'w-100', (_ref3 = {\n 'dropdown-item': type === 'link',\n 'dropdown-divider': type === 'divider',\n 'dropdown-header': type === 'header',\n active: active\n }, _defineProperty(_ref3, itemClassName, itemClassName !== null), _defineProperty(_ref3, customClassName, customClassName !== null), _ref3)]),\n onClick: finalOnClickItem\n }, itemProps), label !== null ? /*#__PURE__*/React.createElement(Label, null, label) : itemChildren) : null;\n }));\n};\n\nDropdown.propTypes = propTypes$y;\nDropdown.defaultProps = defaultProps$y;\n\nvar _excluded = [\"id\", \"className\", \"linkClassName\", \"href\", \"label\", \"external\", \"items\", \"dropdown\", \"active\", \"onClick\"];\nvar propTypes$x = {\n items: PropTypes.menuItems,\n tagName: PropTypes$1.string,\n itemTagName: PropTypes$1.string,\n children: PropTypes$1.node,\n linkAsItem: PropTypes$1.bool,\n className: PropTypes$1.string,\n itemClassName: PropTypes$1.string,\n linkClassName: PropTypes$1.string,\n hasSubMenuClassName: PropTypes$1.string,\n subMenuClassName: PropTypes$1.string,\n subMenuItemClassName: PropTypes$1.string,\n subMenuLinkClassName: PropTypes$1.string,\n hasDropdownClassName: PropTypes$1.string,\n dropdownClassName: PropTypes$1.string,\n dropdownItemClassName: PropTypes$1.string,\n dropdownLinkClassName: PropTypes$1.string,\n dropdownAlign: PropTypes.dropdownAlign\n};\nvar defaultProps$x = {\n items: [],\n tagName: 'ul',\n itemTagName: 'li',\n children: null,\n linkAsItem: false,\n className: null,\n itemClassName: null,\n linkClassName: null,\n hasSubMenuClassName: null,\n subMenuClassName: null,\n subMenuItemClassName: null,\n subMenuLinkClassName: null,\n hasDropdownClassName: null,\n dropdownClassName: null,\n dropdownItemClassName: null,\n dropdownLinkClassName: null,\n dropdownAlign: null\n};\n\nvar Menu = function Menu(_ref) {\n var items = _ref.items,\n tagName = _ref.tagName,\n itemTagName = _ref.itemTagName,\n children = _ref.children,\n linkAsItem = _ref.linkAsItem,\n className = _ref.className,\n itemClassName = _ref.itemClassName,\n linkClassName = _ref.linkClassName,\n hasSubMenuClassName = _ref.hasSubMenuClassName,\n subMenuClassName = _ref.subMenuClassName,\n subMenuItemClassName = _ref.subMenuItemClassName,\n subMenuLinkClassName = _ref.subMenuLinkClassName,\n hasDropdownClassName = _ref.hasDropdownClassName,\n dropdownClassName = _ref.dropdownClassName,\n dropdownItemClassName = _ref.dropdownItemClassName,\n dropdownLinkClassName = _ref.dropdownLinkClassName,\n dropdownAlign = _ref.dropdownAlign;\n\n var _useState = useState(items.map(function () {\n return false;\n })),\n _useState2 = _slicedToArray(_useState, 2),\n dropdownsVisible = _useState2[0],\n setDropdownsVisible = _useState2[1];\n\n var ListComponent = linkAsItem ? 'div' : tagName;\n return /*#__PURE__*/React.createElement(ListComponent, {\n className: className\n }, children !== null ? children : items.map(function (it, index) {\n var _classNames, _classNames2, _classNames3, _classNames4, _classNames5, _classNames6, _classNames7, _classNames8;\n\n var id = it.id,\n _it$className = it.className,\n customClassName = _it$className === void 0 ? null : _it$className,\n _it$linkClassName = it.linkClassName,\n customLinkClassName = _it$linkClassName === void 0 ? null : _it$linkClassName,\n _it$href = it.href,\n href = _it$href === void 0 ? null : _it$href,\n label = it.label,\n _it$external = it.external,\n external = _it$external === void 0 ? false : _it$external,\n _it$items = it.items,\n subItems = _it$items === void 0 ? null : _it$items,\n _it$dropdown = it.dropdown,\n dropdown = _it$dropdown === void 0 ? null : _it$dropdown,\n _it$active = it.active,\n active = _it$active === void 0 ? false : _it$active,\n _it$onClick = it.onClick,\n customOnClick = _it$onClick === void 0 ? null : _it$onClick,\n itemProps = _objectWithoutProperties(it, _excluded);\n\n var onClickItem = dropdown !== null ? function (e) {\n e.preventDefault();\n setDropdownsVisible([].concat(_toConsumableArray(dropdownsVisible.slice(0, index)), [!(dropdownsVisible[index] || false)], _toConsumableArray(dropdownsVisible.slice(index + 1))));\n\n if (customOnClick !== null) {\n customOnClick(e);\n }\n } : customOnClick;\n var closeDropdown = dropdown !== null ? function () {\n setDropdownsVisible([].concat(_toConsumableArray(dropdownsVisible.slice(0, index)), [false], _toConsumableArray(dropdownsVisible.slice(index + 1))));\n } : null;\n var ItemComponent = itemTagName;\n return linkAsItem ? /*#__PURE__*/React.createElement(Link, Object.assign({}, itemProps, {\n key: \"item-\".concat(id || index),\n onClick: onClickItem,\n href: href,\n external: external,\n className: classNames((_classNames = {\n active: active\n }, _defineProperty(_classNames, itemClassName, itemClassName !== null), _defineProperty(_classNames, customClassName, customClassName !== null), _defineProperty(_classNames, linkClassName, linkClassName !== null), _defineProperty(_classNames, customLinkClassName, customLinkClassName !== null), _classNames))\n }), label) : /*#__PURE__*/React.createElement(ItemComponent, {\n key: \"item-\".concat(id || index),\n className: classNames((_classNames2 = {\n dropdown: dropdown !== null,\n active: active\n }, _defineProperty(_classNames2, itemClassName, itemClassName !== null), _defineProperty(_classNames2, customClassName, customClassName !== null), _defineProperty(_classNames2, hasSubMenuClassName, subItems !== null && hasSubMenuClassName !== null), _defineProperty(_classNames2, hasDropdownClassName, subItems !== null && hasDropdownClassName !== null), _classNames2))\n }, href !== null ? /*#__PURE__*/React.createElement(Link, Object.assign({}, itemProps, {\n onClick: onClickItem,\n href: href,\n external: external,\n className: classNames((_classNames3 = {}, _defineProperty(_classNames3, linkClassName, linkClassName !== null), _defineProperty(_classNames3, 'dropdown-toggle', dropdown !== null), _defineProperty(_classNames3, customLinkClassName, customLinkClassName !== null), _classNames3))\n }), label) : null, href === null && onClickItem !== null ? /*#__PURE__*/React.createElement(Button$1, Object.assign({}, itemProps, {\n onClick: onClickItem,\n className: classNames((_classNames4 = {}, _defineProperty(_classNames4, linkClassName, linkClassName !== null), _defineProperty(_classNames4, 'dropdown-toggle', dropdown !== null), _defineProperty(_classNames4, customLinkClassName, customLinkClassName !== null), _classNames4))\n }), label) : null, subItems !== null ? /*#__PURE__*/React.createElement(Menu, {\n items: subItems,\n className: subMenuClassName,\n itemClassName: classNames((_classNames5 = {}, _defineProperty(_classNames5, subMenuItemClassName, subMenuItemClassName !== null), _defineProperty(_classNames5, itemClassName, subMenuItemClassName === null && itemClassName !== null), _classNames5)),\n linkClassName: classNames((_classNames6 = {}, _defineProperty(_classNames6, subMenuLinkClassName, subMenuLinkClassName !== null), _defineProperty(_classNames6, linkClassName, subMenuLinkClassName === null && linkClassName !== null), _classNames6))\n }) : null, dropdown !== null ? /*#__PURE__*/React.createElement(Dropdown, {\n items: dropdown,\n visible: dropdownsVisible[index] || false,\n className: dropdownClassName,\n itemClassName: classNames((_classNames7 = {}, _defineProperty(_classNames7, dropdownItemClassName, dropdownItemClassName !== null), _defineProperty(_classNames7, itemClassName, dropdownItemClassName === null && itemClassName !== null), _classNames7)),\n linkClassName: classNames((_classNames8 = {}, _defineProperty(_classNames8, dropdownLinkClassName, dropdownLinkClassName !== null), _defineProperty(_classNames8, linkClassName, dropdownLinkClassName === null && linkClassName !== null), _classNames8)),\n align: dropdownAlign,\n onClickItem: closeDropdown,\n onClickOutside: closeDropdown\n }) : null);\n }));\n};\n\nMenu.propTypes = propTypes$x;\nMenu.defaultProps = defaultProps$x;\n\nvar propTypes$w = {\n brand: PropTypes$1.node,\n brandLink: PropTypes$1.string,\n breadcrumbs: PropTypes$1.node,\n theme: PropTypes$1.oneOf(['light', 'dark', 'primary', null]),\n size: PropTypes$1.oneOf(['sm', 'md', 'lg']),\n compact: PropTypes$1.bool,\n noWrap: PropTypes$1.bool,\n withoutCollapse: PropTypes$1.bool,\n children: PropTypes$1.node,\n className: PropTypes$1.string,\n brandClassName: PropTypes$1.string,\n breadCrumbsClassName: PropTypes$1.string\n};\nvar defaultProps$w = {\n brand: null,\n brandLink: null,\n breadcrumbs: null,\n theme: null,\n size: 'md',\n compact: false,\n noWrap: false,\n withoutCollapse: false,\n children: null,\n className: null,\n brandClassName: null,\n breadCrumbsClassName: null\n};\n\nvar Navbar = function Navbar(_ref) {\n var _ref2;\n\n var brand = _ref.brand,\n brandLink = _ref.brandLink,\n breadcrumbs = _ref.breadcrumbs,\n theme = _ref.theme,\n size = _ref.size,\n compact = _ref.compact,\n noWrap = _ref.noWrap,\n withoutCollapse = _ref.withoutCollapse,\n children = _ref.children,\n className = _ref.className,\n brandClassName = _ref.brandClassName,\n breadCrumbsClassName = _ref.breadCrumbsClassName;\n\n var _useState = useState(false),\n _useState2 = _slicedToArray(_useState, 2),\n menuVisible = _useState2[0],\n setMenuVisible = _useState2[1];\n\n var onClickMenu = useCallback(function () {\n return setMenuVisible(!menuVisible);\n }, [setMenuVisible, menuVisible]);\n return /*#__PURE__*/React.createElement(\"nav\", {\n className: classNames(['navbar', (_ref2 = {}, _defineProperty(_ref2, \"bg-\".concat(theme), theme !== null), _defineProperty(_ref2, \"navbar-\".concat(theme === 'light' ? 'light' : 'dark'), theme !== null), _defineProperty(_ref2, \"text-\".concat(theme === 'light' ? 'dark' : 'light'), theme !== null), _defineProperty(_ref2, \"navbar-expand-\".concat(size), !withoutCollapse), _defineProperty(_ref2, 'py-2', compact), _defineProperty(_ref2, 'px-2', compact), _defineProperty(_ref2, 'flex-nowrap', noWrap), _defineProperty(_ref2, className, className !== null), _ref2)])\n }, brand !== null && brandLink !== null ? /*#__PURE__*/React.createElement(Link, {\n className: classNames(['navbar-brand', _defineProperty({\n 'py-0': compact\n }, brandClassName, brandClassName !== null)]),\n to: brandLink\n }, brand) : null, brand !== null && brandLink === null ? /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(['navbar-brand', _defineProperty({\n 'py-0': compact\n }, brandClassName, brandClassName !== null)])\n }, brand) : null, breadcrumbs !== null ? /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(['navbar-breadcrumbs', _defineProperty({\n 'py-0': compact\n }, breadCrumbsClassName, breadCrumbsClassName !== null)])\n }, breadcrumbs) : null, !withoutCollapse ? /*#__PURE__*/React.createElement(Button$1, {\n className: \"navbar-toggler\",\n onClick: onClickMenu,\n withoutTheme: true,\n \"aria-controls\": \"navbarSupportedContent\",\n \"aria-expanded\": \"false\",\n \"aria-label\": \"Toggle navigation\"\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: \"navbar-toggler-icon\"\n })) : null, !withoutCollapse ? /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(['navbar-collapse', 'collapse', {\n show: menuVisible\n }])\n }, children) : children);\n};\n\nNavbar.propTypes = propTypes$w;\nNavbar.defaultProps = defaultProps$w;\n\nvar styles$m = {};\n\nvar messages = defineMessages({\n previous: {\n \"id\": \"menus.pagination.previous\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Previous\"\n }]\n },\n next: {\n \"id\": \"menus.pagination.next\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"next\"\n }]\n }\n});\nvar propTypes$v = {\n page: PropTypes$1.number,\n total: PropTypes$1.number,\n url: PropTypes$1.string,\n withPreviousNext: PropTypes$1.bool,\n className: PropTypes$1.string,\n paginationClassName: PropTypes$1.string,\n itemClassName: PropTypes$1.string,\n linkClassName: PropTypes$1.string,\n onClickPage: PropTypes$1.func\n};\nvar defaultProps$v = {\n page: 1,\n total: 1,\n url: null,\n withPreviousNext: false,\n className: null,\n paginationClassName: null,\n itemClassName: null,\n linkClassName: null,\n onClickPage: null\n};\n\nvar PaginationMenu = function PaginationMenu(_ref) {\n var page = _ref.page,\n total = _ref.total,\n url = _ref.url,\n withPreviousNext = _ref.withPreviousNext,\n className = _ref.className,\n paginationClassName = _ref.paginationClassName,\n itemClassName = _ref.itemClassName,\n linkClassName = _ref.linkClassName,\n onClickPage = _ref.onClickPage;\n var getUrl = useCallback(function (currentPage) {\n return url !== null ? \"\".concat(url).concat(url.indexOf('?') !== -1 ? \"&page=\".concat(currentPage) : \"?page=\".concat(currentPage)) : null;\n }, [url]);\n\n var pages = _toConsumableArray(Array(total).keys()).map(function (it) {\n return it + 1;\n });\n\n return /*#__PURE__*/React.createElement(\"nav\", {\n className: classNames([styles$m.container, _defineProperty({}, className, className !== null)])\n }, /*#__PURE__*/React.createElement(\"ul\", {\n className: classNames(['pagination', _defineProperty({}, paginationClassName, paginationClassName !== null)])\n }, withPreviousNext ? /*#__PURE__*/React.createElement(\"li\", {\n className: classNames(['page-item', _defineProperty({\n disabled: page <= 1\n }, itemClassName, itemClassName !== null)])\n }, page > 1 ? /*#__PURE__*/React.createElement(Link, {\n className: classNames(['page-link', _defineProperty({}, linkClassName, linkClassName !== null)]),\n href: getUrl(page - 1),\n onClick: onClickPage !== null ? function () {\n return onClickPage(page - 1);\n } : null\n }, messages.previous) : /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(['page-link', _defineProperty({}, linkClassName, linkClassName !== null)])\n }, /*#__PURE__*/React.createElement(Label, null, messages.previous))) : null, pages.map(function (pageNumber) {\n return /*#__PURE__*/React.createElement(\"li\", {\n key: \"page-\".concat(pageNumber),\n className: classNames(['page-item', _defineProperty({\n active: pageNumber === page\n }, itemClassName, itemClassName !== null)])\n }, /*#__PURE__*/React.createElement(Link, {\n className: classNames(['page-link', _defineProperty({}, linkClassName, linkClassName !== null)]),\n href: getUrl(pageNumber),\n onClick: onClickPage !== null ? function () {\n return onClickPage(pageNumber);\n } : null\n }, pageNumber));\n }), withPreviousNext ? /*#__PURE__*/React.createElement(\"li\", {\n className: classNames(['page-item', _defineProperty({\n disabled: page >= total\n }, itemClassName, itemClassName !== null)])\n }, page < total ? /*#__PURE__*/React.createElement(Link, {\n className: classNames(['page-link', _defineProperty({}, linkClassName, linkClassName !== null)]),\n href: getUrl(page + 1),\n onClick: onClickPage !== null ? function () {\n return onClickPage(page + 1);\n } : null\n }, messages.next) : /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(['page-link', _defineProperty({}, linkClassName, linkClassName !== null)])\n }, /*#__PURE__*/React.createElement(Label, null, messages.next))) : null));\n};\n\nPaginationMenu.propTypes = propTypes$v;\nPaginationMenu.defaultProps = defaultProps$v;\n\nvar styles$l = {\"container\":\"micromag-core-menus-tabs-container\"};\n\nvar propTypes$u = {\n items: PropTypes.menuItems,\n size: PropTypes.buttonSize,\n theme: PropTypes.buttonTheme,\n renderItemButton: PropTypes$1.func,\n buttonClassName: PropTypes$1.string,\n className: PropTypes$1.string,\n onClickItem: PropTypes$1.func\n};\nvar defaultProps$u = {\n items: [],\n size: null,\n theme: 'secondary',\n renderItemButton: null,\n buttonClassName: null,\n className: null,\n onClickItem: null\n};\n\nvar TabsMenu = function TabsMenu(_ref) {\n var items = _ref.items,\n size = _ref.size,\n theme = _ref.theme,\n renderItemButton = _ref.renderItemButton,\n buttonClassName = _ref.buttonClassName,\n className = _ref.className,\n onClickItem = _ref.onClickItem;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames([styles$l.container, _defineProperty({}, className, className)])\n }, /*#__PURE__*/React.createElement(Buttons, {\n buttons: items,\n size: size,\n theme: theme,\n renderButton: renderItemButton,\n onClickButton: onClickItem,\n className: styles$l.buttons,\n buttonClassName: classNames([styles$l.button, _defineProperty({}, buttonClassName, buttonClassName !== null)])\n }));\n};\n\nTabsMenu.propTypes = propTypes$u;\nTabsMenu.defaultProps = defaultProps$u;\n\nvar styles$k = {\"container\":\"micromag-core-modals-container\",\"modals\":\"micromag-core-modals-modals\",\"hasModals\":\"micromag-core-modals-hasModals\"};\n\nvar propTypes$t = {\n modals: PropTypes.modals.isRequired,\n setModalsContainer: PropTypes$1.func.isRequired,\n className: PropTypes$1.string\n};\nvar defaultProps$t = {\n className: null\n};\n\nvar ModalsContainer = function ModalsContainer(_ref) {\n var modals = _ref.modals,\n setModalsContainer = _ref.setModalsContainer,\n className = _ref.className;\n var containerRef = useRef(null);\n useEffect(function () {\n setModalsContainer(containerRef.current);\n }, []);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames([styles$k.container, _defineProperty({}, className, className)])\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: classNames([styles$k.modals, _defineProperty({}, styles$k.hasModals, modals.length > 0)]),\n ref: containerRef\n }));\n};\n\nModalsContainer.propTypes = propTypes$t;\nModalsContainer.defaultProps = defaultProps$t;\nvar Modals = withModals(ModalsContainer);\n\n/* eslint-disable react/no-array-index-key, react/jsx-props-no-spreading */\nvar propTypes$s = {\n id: PropTypes$1.string,\n data: PropTypes$1.object,\n // eslint-disable-line react/forbid-prop-types\n container: PropTypes$1.object,\n // eslint-disable-line react/forbid-prop-types\n register: PropTypes$1.func,\n unregister: PropTypes$1.func,\n children: PropTypes$1.node\n};\nvar defaultProps$s = {\n id: null,\n data: null,\n container: null,\n register: null,\n unregister: null,\n children: null\n};\n\nvar ElementPortal = function ElementPortal(_ref) {\n var id = _ref.id,\n data = _ref.data,\n children = _ref.children,\n container = _ref.container,\n register = _ref.register,\n unregister = _ref.unregister;\n var finalId = useMemo(function () {\n return id || \"element-\".concat(new Date().getTime());\n }, [id]);\n useEffect(function () {\n if (register !== null) {\n register(finalId, data);\n }\n\n return function () {\n if (unregister !== null) {\n unregister(finalId);\n }\n };\n }, [finalId, data]);\n return container !== null ? /*#__PURE__*/ReactDOM.createPortal(children, container) : null;\n};\n\nElementPortal.propTypes = propTypes$s;\nElementPortal.defaultProps = defaultProps$s;\n\n/* eslint-disable react/no-array-index-key, react/jsx-props-no-spreading */\nvar propTypes$r = {\n id: PropTypes$1.string,\n data: PropTypes$1.object,\n // eslint-disable-line react/forbid-prop-types\n children: PropTypes$1.node\n};\nvar defaultProps$r = {\n id: null,\n data: null,\n children: null\n};\n\nvar ModalPortal = function ModalPortal(_ref) {\n var id = _ref.id,\n data = _ref.data,\n children = _ref.children;\n\n var _useModals = useModals(),\n container = _useModals.container,\n _useModals$register = _useModals.register,\n register = _useModals$register === void 0 ? null : _useModals$register,\n _useModals$unregister = _useModals.unregister,\n unregister = _useModals$unregister === void 0 ? null : _useModals$unregister;\n\n return /*#__PURE__*/React.createElement(ElementPortal, {\n id: id,\n data: data,\n container: container,\n register: register,\n unregister: unregister\n }, children);\n};\n\nModalPortal.propTypes = propTypes$r;\nModalPortal.defaultProps = defaultProps$r;\n\nvar styles$j = {\"container\":\"micromag-core-modals-modal-container\",\"center\":\"micromag-core-modals-modal-center\",\"inner\":\"micromag-core-modals-modal-inner\",\"top\":\"micromag-core-modals-modal-top\"};\n\nvar propTypes$q = {\n id: PropTypes$1.string,\n title: PropTypes$1.string,\n position: PropTypes$1.oneOf(['center', 'top']),\n children: PropTypes$1.node\n};\nvar defaultProps$q = {\n id: null,\n title: null,\n position: 'center',\n children: null\n};\n\nvar Modal = function Modal(_ref) {\n var id = _ref.id,\n children = _ref.children,\n position = _ref.position,\n title = _ref.title;\n var finalId = useMemo(function () {\n return id || getDisplayName(children.type);\n }, [id, children.type]);\n var data = useMemo(function () {\n return {\n title: title\n };\n }, [title]);\n return /*#__PURE__*/React.createElement(ModalPortal, {\n id: finalId,\n data: data\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: classNames([styles$j.container, _defineProperty({}, styles$j[position], position !== null)])\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: styles$j.inner\n }, children)));\n};\n\nModal.propTypes = propTypes$q;\nModal.defaultProps = defaultProps$q;\n\nvar styles$i = {\"container\":\"micromag-core-modals-dialog-container\"};\n\nvar propTypes$p = {\n title: PropTypes.label,\n header: PropTypes$1.node,\n children: PropTypes$1.node,\n footer: PropTypes$1.node,\n buttons: PropTypes.buttons,\n // theme: PropTypes.oneOf([null, 'dark', 'light']),\n onClickClose: PropTypes$1.func,\n className: PropTypes$1.string\n};\nvar defaultProps$p = {\n title: null,\n header: null,\n children: null,\n footer: null,\n buttons: null,\n // theme: 'dark',\n onClickClose: null,\n className: null\n};\n\nvar ModalDialog = function ModalDialog(_ref) {\n var title = _ref.title,\n header = _ref.header,\n children = _ref.children,\n buttons = _ref.buttons,\n footer = _ref.footer,\n onClickClose = _ref.onClickClose,\n className = _ref.className;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(['modal-dialog', styles$i.container, _defineProperty({}, className, className)]),\n role: \"dialog\"\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"modal-content\"\n }, header || /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(['modal-header', styles$i.header, {// 'bg-dark': theme === 'dark',\n // 'border-dark': theme === 'dark',\n // 'text-light': theme === 'dark',\n }])\n }, /*#__PURE__*/React.createElement(\"h5\", {\n className: \"modal-title\"\n }, /*#__PURE__*/React.createElement(Label, null, title)), /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n className: \"close text-light\",\n \"aria-label\": \"Close\",\n onClick: onClickClose\n }, /*#__PURE__*/React.createElement(\"span\", {\n \"aria-hidden\": \"true\"\n }, \"\\xD7\"))), /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(['modal-body', styles$i.body, {// [`bg-${theme}`]: theme !== null,\n // 'text-light': theme === 'dark',\n }])\n }, children), footer !== null || buttons !== null ? /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(['modal-footer', styles$i.footer])\n }, footer, buttons !== null ? /*#__PURE__*/React.createElement(Buttons, {\n buttons: buttons,\n className: styles$i.buttons\n }) : null) : null));\n};\n\nModalDialog.propTypes = propTypes$p;\nModalDialog.defaultProps = defaultProps$p;\n\nvar propTypes$o = {\n type: PropTypes$1.oneOfType([PropTypes.mediaTypes, PropTypes$1.array]),\n opened: PropTypes$1.bool,\n sources: PropTypes$1.arrayOf(PropTypes$1.string),\n onUploaded: PropTypes$1.func,\n onRequestClose: PropTypes$1.func\n};\nvar defaultProps$o = {\n type: null,\n opened: false,\n sources: ['webcam', 'facebook', 'instagram', 'dropbox', 'google-drive'],\n onUploaded: null,\n onRequestClose: null\n};\n\nvar UploadModal = function UploadModal(_ref) {\n var type = _ref.type,\n opened = _ref.opened,\n sources = _ref.sources,\n onUploaded = _ref.onUploaded,\n onRequestClose = _ref.onRequestClose;\n var onUpppyComplete = useCallback(function (response) {\n if (onUploaded !== null) {\n onUploaded(response);\n }\n }, [onUploaded]);\n var fileTypes = useMemo(function () {\n if (isArray(type)) {\n return type.map(function (t) {\n return ['image', 'video', 'audio'].indexOf(t) !== -1 ? \"\".concat(t, \"/*\") : null;\n }).filter(function (t) {\n return t !== null;\n });\n }\n\n return ['image', 'video', 'audio'].indexOf(type) !== -1 ? [\"\".concat(type, \"/*\")] : null;\n }, [type]);\n var uppy = useUppy({\n onComplete: onUpppyComplete,\n sources: sources,\n allowedFileTypes: fileTypes !== null && fileTypes.length > 0 ? fileTypes : null\n });\n useEffect(function () {\n if (uppy !== null && !opened) {\n uppy.reset();\n }\n }, [uppy, opened]);\n return uppy !== null ? /*#__PURE__*/React.createElement(DashboardModal, {\n uppy: uppy,\n open: opened,\n closeAfterFinish: true,\n onRequestClose: onRequestClose,\n plugins: sources\n }) : null;\n};\n\nUploadModal.propTypes = propTypes$o;\nUploadModal.defaultProps = defaultProps$o;\n\nvar styles$h = {\"container\":\"micromag-core-panels-container\"};\n\nvar propTypes$n = {\n panels: PropTypes.panels,\n setPanelsContainer: PropTypes$1.func,\n className: PropTypes$1.string\n};\nvar defaultProps$n = {\n panels: [],\n setPanelsContainer: null,\n className: null\n};\n\nvar PanelsContainer = function PanelsContainer(_ref) {\n var panels = _ref.panels,\n setPanelsContainer = _ref.setPanelsContainer,\n className = _ref.className;\n var containerRef = useRef(null);\n useEffect(function () {\n setPanelsContainer(containerRef.current);\n }, []);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames([styles$h.container, _defineProperty({}, className, className)])\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: classNames([styles$h.panels, _defineProperty({}, styles$h.hasPanels, panels.length > 0)]),\n ref: containerRef\n }));\n};\n\nPanelsContainer.propTypes = propTypes$n;\nPanelsContainer.defaultProps = defaultProps$n;\nvar Panels = withPanels(PanelsContainer);\n\n/* eslint-disable react/no-array-index-key, react/jsx-props-no-spreading */\nvar propTypes$m = {\n id: PropTypes$1.string,\n data: PropTypes$1.object,\n // eslint-disable-line react/forbid-prop-types\n children: PropTypes$1.node\n};\nvar defaultProps$m = {\n id: null,\n data: null,\n children: null\n};\n\nvar PanelPortal = function PanelPortal(_ref) {\n var id = _ref.id,\n data = _ref.data,\n children = _ref.children;\n\n var _usePanels = usePanels(),\n _usePanels$panels = _usePanels.panels,\n panels = _usePanels$panels === void 0 ? null : _usePanels$panels,\n container = _usePanels.container,\n _usePanels$register = _usePanels.register,\n register = _usePanels$register === void 0 ? null : _usePanels$register,\n _usePanels$unregister = _usePanels.unregister,\n unregister = _usePanels$unregister === void 0 ? null : _usePanels$unregister;\n\n if (panels === null) {\n return children;\n }\n\n return /*#__PURE__*/React.createElement(ElementPortal, {\n id: id,\n data: data,\n container: container,\n register: register,\n unregister: unregister\n }, children);\n};\n\nPanelPortal.propTypes = propTypes$m;\nPanelPortal.defaultProps = defaultProps$m;\n\nvar styles$g = {\"container\":\"micromag-core-panels-panel-container\"};\n\n/* eslint-disable react/no-array-index-key, react/jsx-props-no-spreading */\nvar propTypes$l = {\n id: PropTypes$1.string,\n title: PropTypes$1.string,\n children: PropTypes$1.node\n};\nvar defaultProps$l = {\n id: null,\n title: null,\n children: null\n};\n\nvar Panel = function Panel(_ref) {\n var id = _ref.id,\n children = _ref.children,\n title = _ref.title;\n var finalId = useMemo(function () {\n return id || getDisplayName(children.type);\n }, [id, children.type]);\n var data = useMemo(function () {\n return {\n title: title\n };\n }, [title]);\n return /*#__PURE__*/React.createElement(PanelPortal, {\n id: finalId,\n data: data\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: styles$g.container\n }, children));\n};\n\nPanel.propTypes = propTypes$l;\nPanel.defaultProps = defaultProps$l;\n\nvar styles$f = {\"container\":\"micromag-core-partials-collapsable-panel-container\",\"top\":\"micromag-core-partials-collapsable-panel-top\",\"button\":\"micromag-core-partials-collapsable-panel-button\",\"label\":\"micromag-core-partials-collapsable-panel-label\",\"content\":\"micromag-core-partials-collapsable-panel-content\",\"isOpened\":\"micromag-core-partials-collapsable-panel-isOpened\"};\n\nvar propTypes$k = {\n title: PropTypes$1.node,\n children: PropTypes$1.node,\n className: PropTypes$1.string,\n topClassName: PropTypes$1.string,\n contentClassName: PropTypes$1.string,\n openedClassName: PropTypes$1.string,\n buttonClassName: PropTypes$1.string\n};\nvar defaultProps$k = {\n title: null,\n children: null,\n className: null,\n topClassName: null,\n contentClassName: null,\n openedClassName: null,\n buttonClassName: null\n};\n\nvar CollapsablePanel = function CollapsablePanel(_ref) {\n var _ref2;\n\n var title = _ref.title,\n children = _ref.children,\n className = _ref.className,\n topClassName = _ref.topClassName,\n contentClassName = _ref.contentClassName,\n openedClassName = _ref.openedClassName,\n buttonClassName = _ref.buttonClassName;\n\n var _useState = useState(false),\n _useState2 = _slicedToArray(_useState, 2),\n opened = _useState2[0],\n setOpened = _useState2[1];\n\n var onClick = useCallback(function () {\n return setOpened(!opened);\n }, [opened, setOpened]);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames([styles$f.container, (_ref2 = {}, _defineProperty(_ref2, styles$f.isOpened, opened), _defineProperty(_ref2, openedClassName, opened && openedClassName !== null), _defineProperty(_ref2, className, className !== null), _ref2)])\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: classNames([styles$f.top, _defineProperty({}, topClassName, topClassName !== null)])\n }, /*#__PURE__*/React.createElement(Button$1, {\n withoutStyle: true,\n className: classNames([styles$f.button, _defineProperty({}, buttonClassName, buttonClassName !== null)]),\n icon: /*#__PURE__*/React.createElement(FontAwesomeIcon, {\n icon: opened ? faAngleUp : faAngleDown,\n className: styles$f.icon\n }),\n iconPosition: \"right\",\n labelClassName: styles$f.label,\n onClick: onClick\n }, title)), /*#__PURE__*/React.createElement(\"div\", {\n className: classNames([styles$f.content, _defineProperty({}, contentClassName, contentClassName !== null)])\n }, children));\n};\n\nCollapsablePanel.propTypes = propTypes$k;\nCollapsablePanel.defaultProps = defaultProps$k;\n\n/* eslint-disable react/jsx-props-no-spreading */\nvar propTypes$j = {\n date: PropTypes$1.string,\n withTime: PropTypes$1.bool,\n timeSeparator: PropTypes$1.node\n};\nvar defaultProps$j = {\n date: null,\n withTime: false,\n timeSeparator: ', '\n};\n\nvar Date$1 = function Date(_ref) {\n var date = _ref.date,\n withTime = _ref.withTime,\n timeSeparator = _ref.timeSeparator;\n var dateObject = useMemo(function () {\n return dayjs(date).toDate();\n }, [date]);\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(FormattedDate, {\n value: dateObject,\n year: \"numeric\",\n month: \"long\",\n day: \"2-digit\"\n }), withTime ? timeSeparator : null, withTime ? /*#__PURE__*/React.createElement(FormattedTime, {\n value: dateObject\n }) : null);\n};\n\nDate$1.propTypes = propTypes$j;\nDate$1.defaultProps = defaultProps$j;\n\n/* eslint-disable react/no-danger */\nvar propTypes$i = {\n throttleDelay: PropTypes$1.number,\n threshold: PropTypes$1.arrayOf(PropTypes$1.number),\n onEnter: PropTypes$1.func,\n onLeave: PropTypes$1.func,\n onChange: PropTypes$1.func,\n disabled: PropTypes$1.bool,\n children: PropTypes$1.node,\n className: PropTypes$1.string\n};\nvar defaultProps$i = {\n throttleDelay: null,\n threshold: undefined,\n onEnter: null,\n onLeave: null,\n onChange: null,\n disabled: false,\n children: null,\n className: null\n};\n\nvar Detector = function Detector(_ref) {\n var throttleDelay = _ref.throttleDelay,\n threshold = _ref.threshold,\n onEnter = _ref.onEnter,\n onLeave = _ref.onLeave,\n onChange = _ref.onChange,\n disabled = _ref.disabled,\n children = _ref.children,\n className = _ref.className;\n\n var _useIntersectionObser = useIntersectionObserver({\n threshold: threshold\n }),\n ref = _useIntersectionObser.ref,\n isIntersecting = _useIntersectionObser.entry.isIntersecting;\n\n var enteredRef = useRef(false);\n var triggerChange = useMemo(function () {\n var callback = function callback(intersecting) {\n var entered = enteredRef.current;\n\n if (onEnter !== null && intersecting && !entered) {\n onEnter();\n }\n\n if (onLeave !== null && !intersecting && entered) {\n onLeave();\n }\n\n if (onChange !== null) {\n onChange(intersecting);\n }\n\n if (intersecting && !entered) {\n enteredRef.current = true;\n } else if (!intersecting && entered) {\n enteredRef.current = false;\n }\n };\n\n return throttleDelay !== null ? throttle(callback, throttleDelay, {\n trailing: true,\n leading: true\n }) : callback;\n }, [throttleDelay, onEnter, onLeave, onChange]);\n useEffect(function () {\n if (disabled) {\n return function () {};\n }\n\n triggerChange(isIntersecting);\n return function () {\n if (throttleDelay !== null) {\n triggerChange.cancel();\n }\n };\n }, [throttleDelay, isIntersecting, disabled, triggerChange]);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: className,\n ref: ref\n }, children);\n};\n\nDetector.propTypes = propTypes$i;\nDetector.defaultProps = defaultProps$i;\n\nvar styles$e = {\"container\":\"micromag-core-partials-placeholder-block-container\",\"box\":\"micromag-core-partials-placeholder-block-box\",\"outline\":\"micromag-core-partials-placeholder-block-outline\"};\n\nvar propTypes$h = {\n width: PropTypes$1.oneOfType([PropTypes$1.number, PropTypes$1.string]),\n height: PropTypes$1.oneOfType([PropTypes$1.number, PropTypes$1.string]),\n outline: PropTypes$1.bool,\n className: PropTypes$1.string,\n boxClassName: PropTypes$1.string,\n children: PropTypes$1.node\n};\nvar defaultProps$h = {\n width: '100%',\n height: '3em',\n outline: false,\n className: null,\n boxClassName: null,\n children: null\n};\n\nvar PlaceholderBlock = function PlaceholderBlock(_ref) {\n var _ref2;\n\n var width = _ref.width,\n height = _ref.height,\n outline = _ref.outline,\n className = _ref.className,\n boxClassName = _ref.boxClassName,\n children = _ref.children;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames([styles$e.container, (_ref2 = {}, _defineProperty(_ref2, className, className !== null), _defineProperty(_ref2, styles$e.outline, outline), _ref2)])\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: classNames([styles$e.box, _defineProperty({}, boxClassName, boxClassName !== null)]),\n style: {\n width: width,\n height: height\n }\n }, children));\n};\n\nPlaceholderBlock.propTypes = propTypes$h;\nPlaceholderBlock.defaultProps = defaultProps$h;\n\n/* eslint-disable react/jsx-props-no-spreading */\n\nvar propTypes$g = {\n name: PropTypes$1.string.isRequired,\n components: PropTypes$1.object.isRequired,\n // eslint-disable-line\n props: PropTypes$1.object,\n // eslint-disable-line\n isPlaceholder: PropTypes$1.bool,\n className: PropTypes$1.string,\n placeholderProps: PropTypes$1.object // eslint-disable-line\n\n};\nvar defaultProps$g = {\n props: {},\n isPlaceholder: false,\n className: null,\n placeholderProps: null\n};\n\nvar ElementComponent = function ElementComponent(_ref) {\n var name = _ref.name,\n components = _ref.components,\n props = _ref.props,\n isPlaceholder = _ref.isPlaceholder,\n className = _ref.className,\n placeholderProps = _ref.placeholderProps;\n\n if (!name) {\n return 'Bad component name';\n }\n\n if (isPlaceholder) {\n // TODO: figure out what this did\n // const PlaceholderComponent = Placeholders[pascalCase(name)];\n return /*#__PURE__*/React.createElement(PlaceholderBlock, placeholderProps);\n }\n\n var RealComponent = components[pascalCase(name)];\n\n if (!RealComponent) {\n return 'Bad component';\n }\n\n return /*#__PURE__*/React.createElement(RealComponent, Object.assign({}, props, {\n className: className\n }));\n};\n\nElementComponent.propTypes = propTypes$g;\nElementComponent.defaultProps = defaultProps$g;\n\nvar styles$d = {\"container\":\"micromag-core-partials-empty-container\",\"middle\":\"micromag-core-partials-empty-middle\",\"withoutBorder\":\"micromag-core-partials-empty-withoutBorder\",\"invertColor\":\"micromag-core-partials-empty-invertColor\"};\n\nvar propTypes$f = {\n children: PropTypes$1.node,\n withoutBorder: PropTypes$1.bool,\n light: PropTypes$1.bool,\n className: PropTypes$1.string\n};\nvar defaultProps$f = {\n children: null,\n withoutBorder: false,\n light: false,\n className: null\n};\n\nvar Empty = function Empty(_ref) {\n var _ref2;\n\n var children = _ref.children,\n withoutBorder = _ref.withoutBorder,\n light = _ref.light,\n className = _ref.className;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames([styles$d.container, (_ref2 = {}, _defineProperty(_ref2, styles$d.withoutBorder, withoutBorder), _defineProperty(_ref2, styles$d.light, light), _defineProperty(_ref2, className, className), _ref2)])\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: styles$d.middle\n }, /*#__PURE__*/React.createElement(Label, null, children)));\n};\n\nEmpty.propTypes = propTypes$f;\nEmpty.defaultProps = defaultProps$f;\n\nvar propTypes$e = {\n fonts: PropTypes.fonts,\n formats: PropTypes$1.arrayOf(PropTypes$1.oneOfType([PropTypes$1.string, PropTypes$1.shape({\n name: PropTypes$1.string,\n format: PropTypes$1.string\n })]))\n};\nvar defaultProps$e = {\n fonts: [],\n formats: ['eot', 'woff2', 'woff', {\n name: 'otf',\n format: 'opentype'\n }, {\n name: 'ttf',\n format: 'truetype'\n }, 'svg']\n};\n\nvar FontFaces = function FontFaces(_ref) {\n var fonts = _ref.fonts,\n formats = _ref.formats;\n var fontFaces = (fonts || []).filter(function (it) {\n return isObject(it) && it.type === 'custom' && (it.media || null) !== null;\n }).map(function (_ref2) {\n var _ref2$name = _ref2.name,\n name = _ref2$name === void 0 ? null : _ref2$name,\n _ref2$media = _ref2.media,\n media = _ref2$media === void 0 ? null : _ref2$media;\n\n var _ref3 = media || {},\n _ref3$files = _ref3.files,\n files = _ref3$files === void 0 ? {} : _ref3$files;\n\n var urls = formats.reduce(function (currentUrls, format) {\n var finalFormat = isObject(format) ? format.format : format;\n var formatExtension = isObject(format) ? format.name : format;\n var file = files[\"webfonts.\".concat(formatExtension)] || files[formatExtension] || null;\n return file !== null ? [].concat(_toConsumableArray(currentUrls), [\"url(\\\"\".concat(file.url, \"?\\\") format(\\\"\").concat(finalFormat, \"\\\")\")]) : currentUrls;\n }, []);\n return urls.length > 0 && name !== null ? \"\\n @font-face {\\n font-family: \\\"\".concat(name, \"\\\";\\n src: \").concat(urls.join(','), \";\\n }\\n \") : null;\n }).filter(function (it) {\n return it !== null;\n });\n return fontFaces.length > 0 ? /*#__PURE__*/React.createElement(\"style\", {\n type: \"text/css\"\n }, fontFaces.join('\\n')) : null;\n};\n\nFontFaces.propTypes = propTypes$e;\nFontFaces.defaultProps = defaultProps$e;\n\nvar styles$c = {};\n\nvar propTypes$d = {\n thumbnail: PropTypes$1.node,\n thumbnailAlign: PropTypes$1.oneOf(['top', 'center', 'bottom']),\n children: PropTypes$1.node,\n title: PropTypes.label,\n className: PropTypes$1.string,\n thumbnailClassName: PropTypes$1.string,\n bodyClassName: PropTypes$1.string,\n titleClassName: PropTypes$1.string\n};\nvar defaultProps$d = {\n thumbnail: null,\n thumbnailAlign: 'top',\n children: null,\n title: null,\n className: null,\n thumbnailClassName: null,\n bodyClassName: null,\n titleClassName: null\n};\n\nvar Media = function Media(_ref) {\n var thumbnail = _ref.thumbnail,\n thumbnailAlign = _ref.thumbnailAlign,\n children = _ref.children,\n title = _ref.title,\n className = _ref.className,\n thumbnailClassName = _ref.thumbnailClassName,\n bodyClassName = _ref.bodyClassName,\n titleClassName = _ref.titleClassName;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(['media', styles$c.container, _defineProperty({}, className, className !== null)])\n }, typeof thumbnail === 'string' ? /*#__PURE__*/React.createElement(\"img\", {\n src: thumbnail,\n alt: title,\n className: classNames(['mr-3', styles$c.thumbnail, _defineProperty({\n 'align-self-start': thumbnailAlign === 'top',\n 'align-self-center': thumbnailAlign === 'center',\n 'align-self-end': thumbnailAlign === 'bottom'\n }, thumbnailClassName, thumbnailClassName !== null)])\n }) : thumbnail, /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(['media-body', styles$c.body, _defineProperty({}, bodyClassName, bodyClassName !== null)])\n }, title !== null ? /*#__PURE__*/React.createElement(\"h5\", {\n className: classNames(['mt-0', styles$c.title, _defineProperty({}, titleClassName, titleClassName !== null)])\n }, /*#__PURE__*/React.createElement(Label, null, title)) : null, children));\n};\n\nMedia.propTypes = propTypes$d;\nMedia.defaultProps = defaultProps$d;\n\n/**\n * Core\n */\n\nPropTypes$1.shape({\n listen: PropTypes$1.func.isRequired,\n push: PropTypes$1.func.isRequired\n});\nPropTypes$1.shape({\n pathname: PropTypes$1.string,\n search: PropTypes$1.string\n});\nPropTypes$1.shape({\n locale: PropTypes$1.string.isRequired,\n formatMessage: PropTypes$1.func.isRequired\n});\nvar defaultMessageContent = PropTypes$1.shape({\n type: PropTypes$1.number,\n value: PropTypes$1.string\n});\nvar defaultMessage = PropTypes$1.oneOfType([PropTypes$1.string, PropTypes$1.arrayOf(defaultMessageContent)]);\nvar message = PropTypes$1.shape({\n id: PropTypes$1.string,\n defaultMessage: defaultMessage.isRequired,\n description: PropTypes$1.string\n});\nvar text = PropTypes$1.oneOfType([message, PropTypes$1.string]);\nvar label = PropTypes$1.oneOfType([message, PropTypes$1.node]);\nPropTypes$1.oneOf([401, 403, 404, 500]);\nPropTypes$1.oneOfType([PropTypes$1.shape({\n current: PropTypes$1.any // eslint-disable-line react/forbid-prop-types\n\n}), PropTypes$1.func]);\nvar target = PropTypes$1.oneOf(['_blank', '_self', '_parent']);\nvar interaction = PropTypes$1.oneOf(['tap', 'swipe']);\nPropTypes$1.arrayOf(interaction);\nPropTypes$1.objectOf(PropTypes$1.oneOfType([PropTypes$1.string, PropTypes$1.number, PropTypes$1.array]));\n/**\n * Site\n */\n\nPropTypes$1.shape({\n id: PropTypes$1.number,\n firstname: PropTypes$1.string,\n lastname: PropTypes$1.string,\n email: PropTypes$1.string,\n gender: PropTypes$1.string,\n birthdate: PropTypes$1.string\n});\nvar menuItem = PropTypes$1.shape({\n id: PropTypes$1.oneOfType([PropTypes$1.number, PropTypes$1.string]),\n label: label,\n url: PropTypes$1.string,\n external: PropTypes$1.bool,\n active: PropTypes$1.bool\n});\nPropTypes$1.arrayOf(menuItem);\nvar breadcrumb = PropTypes$1.shape({\n label: label,\n url: PropTypes$1.string\n});\nPropTypes$1.arrayOf(breadcrumb);\nvar device = PropTypes$1.shape({\n id: PropTypes$1.string.isRequired\n});\nPropTypes$1.arrayOf(device);\nvar modal = PropTypes$1.shape({\n id: PropTypes$1.string.isRequired\n});\nPropTypes$1.arrayOf(modal);\nvar panel = PropTypes$1.shape({\n id: PropTypes$1.string.isRequired\n});\nPropTypes$1.arrayOf(panel);\nvar button = PropTypes$1.shape({\n label: label,\n onClick: PropTypes$1.func\n});\nPropTypes$1.arrayOf(button);\nvar bootstrapThemeStrings = ['primary', 'secondary', 'success', 'danger', 'warning', 'info', 'light', 'dark'];\nPropTypes$1.oneOf(bootstrapThemeStrings);\nPropTypes$1.oneOf([].concat(bootstrapThemeStrings, ['outline-primary', 'outline-secondary', 'outline-success', 'outline-danger', 'outline-warning', 'outline-info', 'outline-light', 'outline-dark', 'outline-link', null]));\nPropTypes$1.oneOf(['lg', 'sm', null]);\nPropTypes$1.oneOf(['lg', 'sm', null]);\nPropTypes$1.oneOf(['left', 'right']);\nvar component = PropTypes$1.oneOfType([PropTypes$1.object, PropTypes$1.func]);\nPropTypes$1.objectOf(component);\n/**\n * Forms\n */\n\nvar errors = PropTypes$1.oneOfType([PropTypes$1.string, PropTypes$1.arrayOf(PropTypes$1.string)]);\nPropTypes$1.objectOf(errors);\nvar selectOption = PropTypes$1.oneOfType([PropTypes$1.string, PropTypes$1.shape({\n value: PropTypes$1.any,\n // eslint-disable-line\n label: label\n})]);\nPropTypes$1.arrayOf(selectOption);\nvar formField = PropTypes$1.shape({\n name: PropTypes$1.string,\n component: component\n});\nPropTypes$1.arrayOf(formField);\n/**\n * Medias\n */\n\nvar mediaMetadataShape = {\n filename: PropTypes$1.string,\n size: PropTypes$1.number,\n mime: PropTypes$1.string\n};\nvar mediaFile = PropTypes$1.shape({\n id: PropTypes$1.string,\n handle: PropTypes$1.string,\n type: PropTypes$1.string,\n mime: PropTypes$1.string,\n url: PropTypes$1.string\n});\nvar mediaShape = {\n id: PropTypes$1.string,\n type: PropTypes$1.string.isRequired,\n url: PropTypes$1.string,\n // .isRequired,\n thumbnail_url: PropTypes$1.string,\n name: PropTypes$1.string,\n metadata: PropTypes$1.shape(_objectSpread({}, mediaMetadataShape)),\n files: PropTypes$1.objectOf(mediaFile)\n};\nvar media = PropTypes$1.shape(mediaShape);\nPropTypes$1.arrayOf(media);\nPropTypes$1.oneOf(['image', 'video', 'audio', 'closed-captions', 'font']);\nvar imageMedia = PropTypes$1.shape(_objectSpread(_objectSpread({}, mediaShape), {}, {\n type: PropTypes$1.oneOf(['image', 'video']),\n metadata: PropTypes$1.shape(_objectSpread(_objectSpread({}, mediaMetadataShape), {}, {\n width: PropTypes$1.number,\n height: PropTypes$1.number\n }))\n}));\nPropTypes$1.arrayOf(imageMedia);\nvar fontMedia = PropTypes$1.shape(_objectSpread(_objectSpread({}, mediaShape), {}, {\n type: PropTypes$1.oneOf(['font']),\n metadata: PropTypes$1.shape(_objectSpread({}, mediaMetadataShape))\n}));\nPropTypes$1.arrayOf(fontMedia);\nvar videoMedia = PropTypes$1.shape(_objectSpread(_objectSpread({}, mediaShape), {}, {\n type: PropTypes$1.oneOf(['video']),\n metadata: PropTypes$1.shape(_objectSpread(_objectSpread({}, mediaMetadataShape), {}, {\n width: PropTypes$1.number,\n height: PropTypes$1.number,\n duration: PropTypes$1.number\n }))\n}));\nPropTypes$1.arrayOf(videoMedia);\nvar audioMedia = PropTypes$1.shape(_objectSpread(_objectSpread({}, mediaShape), {}, {\n type: PropTypes$1.oneOf(['audio']),\n metadata: PropTypes$1.shape(_objectSpread(_objectSpread({}, mediaMetadataShape), {}, {\n duration: PropTypes$1.number\n }))\n}));\nPropTypes$1.arrayOf(audioMedia);\nvar closedCaptionsMedia = PropTypes$1.shape(_objectSpread(_objectSpread({}, mediaShape), {}, {\n type: PropTypes$1.oneOf(['closed-captions'])\n}));\n/**\n * Style\n */\n\nvar font = PropTypes$1.oneOfType([PropTypes$1.string, PropTypes$1.shape({\n type: PropTypes$1.oneOf(['system', 'google', 'custom']),\n name: PropTypes$1.string,\n media: fontMedia\n})]);\nPropTypes$1.arrayOf(font);\nvar textAlign = PropTypes$1.oneOf(['left', 'right', 'center']);\nvar color = PropTypes$1.shape({\n color: PropTypes$1.string,\n alpha: PropTypes$1.number\n});\nvar textStyle = PropTypes$1.shape({\n fontFamily: font,\n fontSize: PropTypes$1.number,\n fontStyle: PropTypes$1.shape({\n bold: PropTypes$1.bool,\n italic: PropTypes$1.bool,\n underline: PropTypes$1.bool,\n upperCase: PropTypes$1.bool\n }),\n align: textAlign,\n color: color,\n letterSpacing: PropTypes$1.number,\n lineHeight: PropTypes$1.number\n});\nvar borderTypes = PropTypes$1.oneOf(['dotted', 'dashed', 'solid', 'double', 'groove', 'ridge', 'inset', 'outset', 'hidden']);\nPropTypes$1.shape({\n width: PropTypes$1.number,\n style: borderTypes,\n radius: PropTypes$1.number,\n color: color\n});\nPropTypes$1.shape({\n backgroundColor: color,\n borderRadius: PropTypes$1.number,\n borderWidth: PropTypes$1.number,\n borderColor: color,\n borderStyle: borderTypes\n});\nPropTypes$1.shape({\n top: PropTypes$1.number,\n bottom: PropTypes$1.number\n});\nPropTypes$1.arrayOf(PropTypes$1.shape({\n rows: PropTypes$1.oneOfType([PropTypes$1.number, PropTypes$1.arrayOf(PropTypes$1.number)]),\n columns: PropTypes$1.oneOfType([PropTypes$1.number, PropTypes$1.arrayOf(PropTypes$1.number)])\n}));\nvar objectFitSize = PropTypes$1.oneOf(['cover', 'contain', null]);\nPropTypes$1.shape({\n fit: objectFitSize,\n horizontalPosition: PropTypes$1.oneOf(['left', 'center', 'right']),\n verticalPosition: PropTypes$1.oneOf(['top', 'center', 'bottom'])\n});\n/**\n * Elements\n */\n\nvar textElement = PropTypes$1.shape({\n body: PropTypes$1.string,\n textStyle: textStyle\n});\nvar headingElement = textElement;\nPropTypes$1.shape({\n label: PropTypes$1.string,\n textStyle: textStyle\n});\nvar imageElement = PropTypes$1.shape({\n media: imageMedia\n});\nPropTypes$1.arrayOf(imageElement);\nPropTypes$1.shape({\n media: videoMedia,\n autoPlay: PropTypes$1.bool,\n loop: PropTypes$1.bool,\n closedCaptions: closedCaptionsMedia,\n withSeekBar: PropTypes$1.bool,\n withPlayPause: PropTypes$1.bool\n});\nPropTypes$1.shape({\n media: audioMedia,\n autoPlay: PropTypes$1.bool,\n loop: PropTypes$1.bool,\n closedCaptions: closedCaptionsMedia,\n withPlayPause: PropTypes$1.bool\n});\nPropTypes$1.shape({\n media: closedCaptionsMedia\n});\nvar backgroundElement = PropTypes$1.shape({\n color: color,\n image: imageMedia,\n video: videoMedia\n});\nvar imageElementWithCaption = PropTypes$1.shape({\n image: imageMedia,\n caption: textElement\n});\nPropTypes$1.arrayOf(imageElementWithCaption);\nvar stackDirection = PropTypes$1.oneOf(['horizontal', 'vertical']);\nvar stackAlign = PropTypes$1.oneOf(['start', 'center', 'end']);\nvar stackSpacing = PropTypes$1.oneOfType([PropTypes$1.number, PropTypes$1.oneOf(['between', 'evenly', 'around'])]);\nPropTypes$1.shape({\n direction: stackDirection,\n align: stackAlign,\n width: PropTypes$1.number,\n height: PropTypes$1.number,\n spacing: stackSpacing,\n reverse: PropTypes$1.bool\n});\nPropTypes$1.shape({\n layout: PropTypes$1.arrayOf(PropTypes$1.string),\n spacing: PropTypes$1.number\n});\nvar geoPosition = PropTypes$1.shape({\n lat: PropTypes$1.number,\n lng: PropTypes$1.number\n});\nvar markerShape = {\n id: PropTypes$1.number,\n geoPosition: geoPosition,\n title: headingElement,\n subtitle: headingElement,\n description: textElement\n};\nvar marker = PropTypes$1.shape(_objectSpread({}, markerShape));\nPropTypes$1.arrayOf(marker);\nvar markerWithImage = PropTypes$1.shape(_objectSpread(_objectSpread({}, markerShape), {}, {\n image: imageMedia\n}));\nPropTypes$1.arrayOf(markerWithImage);\nvar answerShape = {\n id: PropTypes$1.string,\n label: textElement\n};\nvar answer = PropTypes$1.shape(_objectSpread({}, answerShape));\nvar quizAnswer = PropTypes$1.shape(_objectSpread(_objectSpread({}, answerShape), {}, {\n good: PropTypes$1.bool\n}));\nPropTypes$1.arrayOf(answer);\nPropTypes$1.arrayOf(quizAnswer);\nvar callToActionTypes = PropTypes$1.oneOf(['swipe-up', 'button']);\nPropTypes$1.shape({\n active: PropTypes$1.bool,\n type: callToActionTypes,\n url: PropTypes$1.string,\n label: textElement\n});\nvar speaker = PropTypes$1.shape({\n id: PropTypes$1.string,\n name: PropTypes$1.string,\n avatar: imageMedia,\n side: PropTypes$1.oneOf(['left', 'right']),\n color: color\n});\nvar speakers = PropTypes$1.arrayOf(speaker);\nvar conversationMessage = PropTypes$1.shape({\n speaker: PropTypes$1.string,\n message: PropTypes$1.string,\n image: imageMedia\n});\nvar conversationMessages = PropTypes$1.arrayOf(conversationMessage);\nPropTypes$1.shape({\n speakers: speakers,\n textStyle: textStyle,\n messages: conversationMessages\n});\n/**\n * Definitions\n */\n\nvar fieldShape = {\n name: PropTypes$1.string,\n type: PropTypes$1.string.isRequired,\n label: text\n};\nvar field = PropTypes$1.shape(_objectSpread(_objectSpread({}, fieldShape), {}, {\n isSection: PropTypes$1.bool,\n fields: PropTypes$1.arrayOf(PropTypes$1.shape(fieldShape))\n}));\nvar fields = PropTypes$1.arrayOf(field);\nvar screenDefinition = PropTypes$1.shape({\n id: PropTypes$1.string.isRequired,\n type: PropTypes$1.oneOf(['screen']).isRequired,\n title: text.isRequired,\n layouts: PropTypes$1.arrayOf(PropTypes$1.string),\n fields: fields\n});\nPropTypes$1.arrayOf(screenDefinition);\nvar fieldDefinition = PropTypes$1.shape({\n id: PropTypes$1.string.isRequired,\n type: PropTypes$1.oneOf(['field']).isRequired,\n title: text.isRequired,\n fields: fields\n});\nPropTypes$1.arrayOf(fieldDefinition);\n/**\n * Components\n */\n\nvar storyComponentShape = {\n type: PropTypes$1.string.isRequired\n};\nvar storyComponent = PropTypes$1.shape(_objectSpread({}, storyComponentShape));\nPropTypes$1.arrayOf(storyComponent);\nvar screenComponent = PropTypes$1.shape(_objectSpread({}, storyComponentShape));\nvar screenComponents = PropTypes$1.arrayOf(screenComponent);\n\n/**\n * Theme\n */\n\nvar theme = PropTypes$1.shape({\n id: PropTypes$1.string,\n textStyles: PropTypes$1.objectOf(textStyle),\n // renamed to textstyles\n background: backgroundElement,\n colors: PropTypes$1.objectOf(color),\n components: screenComponents\n});\nPropTypes$1.shape(_objectSpread({\n logo: imageMedia\n}, theme));\n/**\n * Branding\n */\n// export const branding = PropTypes.shape({\n// logo: imageMedia,\n// primaryColor: color,\n// secondaryColor: color,\n// backgroundColor: color,\n// textStyle,\n// });\n\n/**\n * Metadata\n */\n\nvar metadata = PropTypes$1.shape({\n description: PropTypes$1.string,\n shareUrl: PropTypes$1.string,\n shareImage: imageMedia,\n favIcon: imageMedia\n});\n/**\n * Story\n */\n\nPropTypes$1.shape({\n id: PropTypes$1.string,\n theme: theme,\n components: screenComponents,\n metadata: metadata\n});\n/**\n * Render\n */\n\nvar deviceScreen = PropTypes$1.shape({\n name: PropTypes$1.string.isRequired,\n mediaQuery: PropTypes$1.string\n});\nPropTypes$1.arrayOf(deviceScreen);\nPropTypes$1.shape({\n screen: PropTypes$1.string,\n screens: PropTypes$1.arrayOf(PropTypes$1.string),\n width: PropTypes$1.number,\n height: PropTypes$1.number\n});\nPropTypes$1.oneOf(['view', 'placeholder', 'edit', 'preview', 'static', 'capture']);\n/**\n * Screens\n */\n\nPropTypes$1.shape({\n width: PropTypes$1.number,\n height: PropTypes$1.number\n});\nPropTypes$1.shape({\n width: PropTypes$1.number,\n height: PropTypes$1.number,\n url: PropTypes$1.string,\n target: target,\n iframe: PropTypes$1.string,\n image: imageMedia\n});\nPropTypes$1.shape({\n src: PropTypes$1.string,\n track: PropTypes$1.string,\n trackLng: PropTypes$1.number,\n controls: PropTypes$1.bool\n});\nvar slide = PropTypes$1.shape({\n image: imageMedia,\n text: PropTypes$1.string\n});\nPropTypes$1.arrayOf(slide); // export const imageStyle = PropTypes.shape({\n// alt: PropTypes.string,\n// fit: PropTypes.object,\n// });\n\nPropTypes$1.shape({});\n/**\n * Transitions\n */\n\nvar transitionName = PropTypes$1.oneOf(['fade', 'scale', 'slide']);\nvar transitionParams = {\n duration: PropTypes$1.number,\n easing: PropTypes$1.oneOf(['ease', 'ease-in', 'ease-out', 'ease-in-out', 'linear'])\n};\nvar transition = PropTypes$1.oneOfType([transitionName.isRequired, PropTypes$1.shape(_objectSpread({\n name: transitionName.isRequired\n}, transitionParams))]);\nPropTypes$1.shape({\n \"in\": transition,\n out: transition\n});\n/**\n * Search\n */\n\nvar searchFilter = PropTypes$1.shape({\n type: PropTypes$1.string,\n value: PropTypes$1.oneOf([PropTypes$1.string, PropTypes$1.number])\n});\nPropTypes$1.arrayOf(searchFilter);\n/**\n * Payments\n */\n\nvar paymentItem = PropTypes$1.shape({\n id: PropTypes$1.oneOfType([PropTypes$1.string, PropTypes$1.number]),\n date: PropTypes$1.string,\n type: PropTypes$1.string,\n invoice_link: PropTypes$1.string,\n amount: PropTypes$1.oneOfType([PropTypes$1.string, PropTypes$1.number])\n});\nPropTypes$1.arrayOf(paymentItem);\n/**\n * Page Metadada\n */\n\nvar pageMetadata = PropTypes$1.shape({\n canonical: PropTypes$1.string,\n description: PropTypes$1.string,\n keywords: PropTypes$1.oneOfType([PropTypes$1.string, PropTypes$1.array]),\n image: PropTypes$1.shape({\n url: PropTypes$1.string\n }),\n favicon: PropTypes$1.shape({\n url: PropTypes$1.string\n }),\n rssUrl: PropTypes$1.string,\n atomUrl: PropTypes$1.string,\n microformats: PropTypes$1.arrayOf(PropTypes$1.shape({}))\n});\n\n/* eslint-disable react/no-array-index-key */\nvar propTypes$c = {\n title: PropTypes$1.string,\n url: PropTypes$1.string,\n metadata: pageMetadata,\n fullTitle: PropTypes$1.string,\n suffix: PropTypes$1.string,\n children: PropTypes$1.node\n};\nvar defaultProps$c = {\n title: null,\n url: null,\n metadata: null,\n fullTitle: null,\n suffix: 'Micromag',\n children: null\n};\n\nvar Meta = function Meta(_ref) {\n var title = _ref.title,\n url = _ref.url,\n metadata = _ref.metadata,\n fullTitle = _ref.fullTitle,\n suffix = _ref.suffix,\n children = _ref.children;\n\n var _ref2 = metadata || {},\n _ref2$canonical = _ref2.canonical,\n canonical = _ref2$canonical === void 0 ? null : _ref2$canonical,\n _ref2$description = _ref2.description,\n description = _ref2$description === void 0 ? null : _ref2$description,\n _ref2$keywords = _ref2.keywords,\n keywords = _ref2$keywords === void 0 ? null : _ref2$keywords,\n _ref2$image = _ref2.image,\n image = _ref2$image === void 0 ? null : _ref2$image,\n _ref2$favicon = _ref2.favicon,\n favicon = _ref2$favicon === void 0 ? null : _ref2$favicon,\n _ref2$rssUrl = _ref2.rssUrl,\n rssUrl = _ref2$rssUrl === void 0 ? null : _ref2$rssUrl,\n _ref2$atomUrl = _ref2.atomUrl,\n atomUrl = _ref2$atomUrl === void 0 ? null : _ref2$atomUrl,\n _ref2$microformats = _ref2.microformats,\n microformats = _ref2$microformats === void 0 ? [] : _ref2$microformats,\n _ref2$language = _ref2.language,\n language = _ref2$language === void 0 ? null : _ref2$language;\n\n var realTitle = title !== null ? \"\".concat(title, \" | \").concat(suffix) : fullTitle;\n\n var _ref3 = image || {},\n _ref3$url = _ref3.url,\n imageUrl = _ref3$url === void 0 ? null : _ref3$url,\n _ref3$metadata = _ref3.metadata,\n imageMetadata = _ref3$metadata === void 0 ? {} : _ref3$metadata;\n\n var _ref4 = imageMetadata || {},\n _ref4$width = _ref4.width,\n imageWidth = _ref4$width === void 0 ? null : _ref4$width,\n _ref4$height = _ref4.height,\n imageHeight = _ref4$height === void 0 ? null : _ref4$height;\n\n var _ref5 = favicon || {},\n _ref5$url = _ref5.url,\n faviconUrl = _ref5$url === void 0 ? null : _ref5$url;\n\n return /*#__PURE__*/React.createElement(Helmet, null, /*#__PURE__*/React.createElement(\"title\", null, realTitle !== null && realTitle.length > 0 ? realTitle : 'Micromag'), description !== null ? /*#__PURE__*/React.createElement(\"meta\", {\n name: \"description\",\n content: description\n }) : null, language !== null ? /*#__PURE__*/React.createElement(\"meta\", {\n name: \"language\",\n content: language\n }) : null, keywords !== null && isString(keywords) ? /*#__PURE__*/React.createElement(\"meta\", {\n name: \"keywords\",\n content: keywords\n }) : null, keywords !== null && isArray(keywords) ? /*#__PURE__*/React.createElement(\"meta\", {\n name: \"keywords\",\n content: keywords.join(',')\n }) : null, canonical !== null ? /*#__PURE__*/React.createElement(\"link\", {\n rel: \"canonical\",\n href: canonical\n }) : null, faviconUrl !== null ? /*#__PURE__*/React.createElement(\"link\", {\n rel: \"icon\",\n type: \"image/png\",\n href: faviconUrl\n }) : null, rssUrl !== null ? /*#__PURE__*/React.createElement(\"link\", {\n rel: \"alternate\",\n type: \"application/rss+xml\",\n href: rssUrl\n }) : null, atomUrl !== null ? /*#__PURE__*/React.createElement(\"link\", {\n rel: \"alternate\",\n type: \"application/atom+xml\",\n href: atomUrl\n }) : null, imageUrl !== null ? /*#__PURE__*/React.createElement(\"meta\", {\n property: \"og:image\",\n content: imageUrl\n }) : null, imageUrl !== null ? /*#__PURE__*/React.createElement(\"meta\", {\n property: \"og:image:url\",\n content: imageUrl\n }) : null, imageWidth !== null ? /*#__PURE__*/React.createElement(\"meta\", {\n property: \"og:image:width\",\n content: imageWidth\n }) : null, imageHeight !== null ? /*#__PURE__*/React.createElement(\"meta\", {\n property: \"og:image:height\",\n content: imageHeight\n }) : null, /*#__PURE__*/React.createElement(\"meta\", {\n property: \"og:title\",\n content: realTitle\n }), description !== null ? /*#__PURE__*/React.createElement(\"meta\", {\n property: \"og:description\",\n content: description\n }) : null, url !== null ? /*#__PURE__*/React.createElement(\"meta\", {\n property: \"og:url\",\n content: url\n }) : null, /*#__PURE__*/React.createElement(\"meta\", {\n name: \"twitter:card\",\n content: imageUrl !== null ? 'summary_large_image' : 'summary'\n }), /*#__PURE__*/React.createElement(\"meta\", {\n name: \"twitter:title\",\n content: realTitle\n }), description !== null ? /*#__PURE__*/React.createElement(\"meta\", {\n name: \"twitter:description\",\n content: description\n }) : null, imageUrl !== null ? /*#__PURE__*/React.createElement(\"meta\", {\n name: \"twitter:image\",\n content: imageUrl\n }) : null, (microformats || []).map(function (it) {\n return /*#__PURE__*/React.createElement(\"script\", {\n type: \"application/ld+json\",\n id: \"\".concat(it[\"@type\"], \"-\").concat(it.identifier),\n key: \"microformat-\".concat(it[\"@type\"], \"-\").concat(it.identifier)\n }, JSON.stringify(it));\n }), children);\n};\n\nMeta.propTypes = propTypes$c;\nMeta.defaultProps = defaultProps$c;\n\nvar styles$b = {\"container\":\"micromag-core-partials-slideshow-container\",\"item\":\"micromag-core-partials-slideshow-item\",\"items\":\"micromag-core-partials-slideshow-items\",\"prev\":\"micromag-core-partials-slideshow-prev\",\"current\":\"micromag-core-partials-slideshow-current\",\"next\":\"micromag-core-partials-slideshow-next\"};\n\nvar propTypes$b = {\n items: PropTypes$1.arrayOf(PropTypes$1.node),\n auto: PropTypes$1.bool,\n delay: PropTypes$1.number,\n width: PropTypes$1.oneOfType([PropTypes$1.string, PropTypes$1.number]),\n height: PropTypes$1.oneOfType([PropTypes$1.string, PropTypes$1.number]),\n className: PropTypes$1.string,\n children: PropTypes$1.node\n};\nvar defaultProps$b = {\n items: [],\n auto: true,\n delay: 5000,\n width: null,\n height: null,\n className: null,\n children: null\n};\n\nvar Slideshow = function Slideshow(_ref) {\n var items = _ref.items,\n auto = _ref.auto,\n delay = _ref.delay,\n width = _ref.width,\n height = _ref.height,\n className = _ref.className,\n children = _ref.children;\n\n var _useState = useState(0),\n _useState2 = _slicedToArray(_useState, 2),\n index = _useState2[0],\n setIndex = _useState2[1];\n\n useEffect(function () {\n var id = null;\n\n if (auto) {\n id = setTimeout(function () {\n if (index < items.length - 1) {\n setIndex(function (i) {\n return i + 1;\n });\n } else {\n setIndex(0);\n }\n }, delay);\n }\n\n return function () {\n clearTimeout(id);\n };\n }, [index, items, auto, delay]);\n var style = {\n width: width,\n height: height\n };\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames([styles$b.container, _defineProperty({}, className, className)]),\n style: style\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: styles$b.items\n }, items.map(function (it, i) {\n var _ref3;\n\n return /*#__PURE__*/React.createElement(\"div\", {\n key: \"slide-\".concat(i + 1),\n className: classNames([styles$b.item, (_ref3 = {}, _defineProperty(_ref3, styles$b.prev, i < index), _defineProperty(_ref3, styles$b.current, i === index), _defineProperty(_ref3, styles$b.next, i > index), _ref3)])\n }, it);\n })), children);\n};\n\nSlideshow.propTypes = propTypes$b;\nSlideshow.defaultProps = defaultProps$b;\n\nvar styles$a = {};\n\n/* eslint-disable react/prop-types */\nvar AdFrame = function AdFrame(_ref) {\n var width = _ref.width,\n height = _ref.height,\n className = _ref.className;\n return /*#__PURE__*/React.createElement(PlaceholderBlock, {\n width: width,\n height: height,\n className: className\n }, /*#__PURE__*/React.createElement(FontAwesomeIcon, {\n icon: faAd,\n className: styles$a.icon\n }));\n};\n\n/* eslint-disable react/prop-types */\nvar AdImage = function AdImage(_ref) {\n var width = _ref.width,\n height = _ref.height,\n className = _ref.className;\n return /*#__PURE__*/React.createElement(PlaceholderBlock, {\n width: width,\n height: height,\n className: className\n }, /*#__PURE__*/React.createElement(FontAwesomeIcon, {\n icon: faImage,\n className: styles$a.icon\n }));\n};\n\n/* eslint-disable react/destructuring-assignment, react/prop-types */\nvar Audio = function Audio(_ref) {\n var _ref$width = _ref.width,\n width = _ref$width === void 0 ? '100%' : _ref$width,\n _ref$height = _ref.height,\n height = _ref$height === void 0 ? '2em' : _ref$height,\n className = _ref.className;\n return /*#__PURE__*/React.createElement(PlaceholderBlock, {\n width: width,\n height: height,\n className: className\n }, /*#__PURE__*/React.createElement(FontAwesomeIcon, {\n icon: faMusic,\n className: styles$a.icon\n }));\n};\n\nvar styles$9 = {\"container\":\"micromag-core-partials-placeholder-text-container\",\"line\":\"micromag-core-partials-placeholder-text-line\"};\n\nvar propTypes$a = {\n lines: PropTypes$1.number,\n lineMargin: PropTypes$1.oneOfType([PropTypes$1.number, PropTypes$1.string]),\n width: PropTypes$1.oneOfType([PropTypes$1.number, PropTypes$1.string]),\n height: PropTypes$1.oneOfType([PropTypes$1.number, PropTypes$1.string]),\n fontSize: PropTypes$1.number,\n className: PropTypes$1.string\n};\nvar defaultProps$a = {\n lines: 1,\n lineMargin: 1,\n width: '100%',\n height: null,\n fontSize: 16,\n className: null\n};\n\nvar PlaceholderText = function PlaceholderText(_ref) {\n var lines = _ref.lines,\n lineMargin = _ref.lineMargin,\n width = _ref.width,\n height = _ref.height,\n fontSize = _ref.fontSize,\n className = _ref.className;\n var lineHeight = height !== null && isNumber(height) ? \"\".concat(Math.round(height * fontSize), \"px\") : height;\n var oddWidth = isNumber(width) ? width * 0.9 : '90%';\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames([styles$9.container, _defineProperty({}, className, className)])\n }, _toConsumableArray(Array(lines)).map(function (e, index) {\n return /*#__PURE__*/React.createElement(\"div\", {\n key: \"line-\".concat(index),\n className: styles$9.line,\n style: {\n width: index % 2 === 0 ? width : oddWidth,\n height: lineHeight,\n marginTop: lineMargin,\n marginBottom: lineMargin\n }\n });\n }));\n};\n\nPlaceholderText.propTypes = propTypes$a;\nPlaceholderText.defaultProps = defaultProps$a;\n\n/* eslint-disable react/destructuring-assignment, react/prop-types */\nvar Button = function Button(_ref) {\n var _ref$width = _ref.width,\n width = _ref$width === void 0 ? '75%' : _ref$width,\n _ref$height = _ref.height,\n height = _ref$height === void 0 ? '0.4em' : _ref$height,\n className = _ref.className;\n return /*#__PURE__*/React.createElement(PlaceholderBlock, {\n outline: true,\n width: width,\n height: height,\n className: className\n }, /*#__PURE__*/React.createElement(PlaceholderText, {\n line: 1,\n height: \"0.1em\"\n }));\n};\n\n/* eslint-disable react/prop-types */\nvar Image = function Image(_ref) {\n var width = _ref.width,\n height = _ref.height,\n className = _ref.className;\n return /*#__PURE__*/React.createElement(PlaceholderBlock, {\n width: width,\n height: height,\n className: className\n }, /*#__PURE__*/React.createElement(FontAwesomeIcon, {\n icon: faImage,\n className: styles$a.icon\n }));\n};\n\n/* eslint-disable react/jsx-props-no-spreading, react/destructuring-assignment, react/prop-types */\nvar Line = function Line(props) {\n return /*#__PURE__*/React.createElement(PlaceholderText, Object.assign({}, props, {\n className: classNames([props.className, styles$a.shortText]),\n height: 0.2,\n lines: 1\n }));\n};\n\nvar styles$8 = {\"container\":\"micromag-core-placeholders-map-container\",\"icon\":\"micromag-core-placeholders-map-icon\"};\n\nvar Map = function Map(props) {\n return /*#__PURE__*/React.createElement(PlaceholderBlock, Object.assign({}, props, {\n width: \"100%\",\n height: \"100%\",\n className: classNames([styles$8.container, _defineProperty({}, props.className, props.className !== null)])\n }), /*#__PURE__*/React.createElement(FontAwesomeIcon, {\n icon: props.withImages ? faImage : faMapMarkerAlt,\n className: styles$8.icon\n }), /*#__PURE__*/React.createElement(FontAwesomeIcon, {\n icon: props.withImages ? faImage : faMapMarkerAlt,\n className: styles$8.icon\n }), /*#__PURE__*/React.createElement(FontAwesomeIcon, {\n icon: props.withImages ? faImage : faMapMarkerAlt,\n className: styles$8.icon\n }), /*#__PURE__*/React.createElement(FontAwesomeIcon, {\n icon: props.withImages ? faImage : faMapMarkerAlt,\n className: styles$8.icon\n }));\n};\n\n/* eslint-disable react/jsx-props-no-spreading, react/destructuring-assignment, react/prop-types */\nvar MapPath = function MapPath(props) {\n return /*#__PURE__*/React.createElement(PlaceholderBlock, Object.assign({}, props, {\n width: \"100%\",\n height: \"70%\",\n className: classNames([props.className, styles$a.mapPath])\n }), /*#__PURE__*/React.createElement(FontAwesomeIcon, {\n icon: faMapMarkedAlt,\n size: \"lg\",\n className: styles$a.icon\n }));\n};\n\n/* eslint-disable react/jsx-props-no-spreading, react/destructuring-assignment, react/prop-types */\nvar Quote = function Quote(props) {\n return /*#__PURE__*/React.createElement(PlaceholderText, Object.assign({}, props, {\n className: classNames([props.className, styles$a.subtitle]),\n height: 0.5,\n lines: 6\n }));\n};\n\n/* eslint-disable react/jsx-props-no-spreading, react/destructuring-assignment, react/prop-types */\nvar ShortText = function ShortText(props) {\n return /*#__PURE__*/React.createElement(PlaceholderText, Object.assign({}, props, {\n className: classNames([props.className, styles$a.shortText]),\n height: 0.2,\n lines: 2\n }));\n};\n\n/* eslint-disable react/jsx-props-no-spreading, react/destructuring-assignment, react/prop-types */\nvar Subtitle = function Subtitle(props) {\n return /*#__PURE__*/React.createElement(PlaceholderText, Object.assign({}, props, {\n className: classNames([props.className, styles$a.subtitle]),\n height: 0.3,\n lines: 1\n }));\n};\n\n/* eslint-disable react/jsx-props-no-spreading, react/destructuring-assignment, react/prop-types */\n\nvar TextPlaceholder = function TextPlaceholder(props) {\n var _props$height = props.height,\n height = _props$height === void 0 ? 0.2 : _props$height,\n _props$lines = props.lines,\n lines = _props$lines === void 0 ? 4 : _props$lines,\n _props$lineMargin = props.lineMargin,\n lineMargin = _props$lineMargin === void 0 ? 2 : _props$lineMargin;\n return /*#__PURE__*/React.createElement(PlaceholderText, Object.assign({}, props, {\n height: height,\n lines: lines,\n lineMargin: lineMargin,\n className: classNames([props.className, styles$a.text])\n }));\n};\n\n/* eslint-disable react/jsx-props-no-spreading, react/destructuring-assignment, react/prop-types */\nvar Timeline = function Timeline(props) {\n return /*#__PURE__*/React.createElement(PlaceholderText, Object.assign({}, props, {\n className: classNames([props.className, styles$a.timeline])\n }));\n};\n\n/* eslint-disable react/jsx-props-no-spreading, react/destructuring-assignment, react/prop-types */\nvar Title = function Title(props) {\n return /*#__PURE__*/React.createElement(PlaceholderText, Object.assign({}, props, {\n className: classNames([props.className, styles$a.title]),\n height: 0.5,\n lines: 2,\n lineMargin: 4\n }));\n};\n\n/* eslint-disable react/prop-types */\nvar Video = function Video(_ref) {\n var width = _ref.width,\n height = _ref.height,\n className = _ref.className;\n return /*#__PURE__*/React.createElement(PlaceholderBlock, {\n width: width,\n height: height,\n className: className\n }, /*#__PURE__*/React.createElement(FontAwesomeIcon, {\n icon: faVideo,\n className: styles$a.icon\n }));\n};\n\nvar styles$7 = {\"container\":\"micromag-core-placeholders-video-360-container\",\"box\":\"micromag-core-placeholders-video-360-box\",\"icon\":\"micromag-core-placeholders-video-360-icon\",\"label\":\"micromag-core-placeholders-video-360-label\"};\n\nvar Video360 = function Video360(_ref) {\n var width = _ref.width,\n height = _ref.height,\n className = _ref.className;\n return /*#__PURE__*/React.createElement(PlaceholderBlock, {\n width: width,\n height: height,\n className: classNames([styles$7.container, _defineProperty({}, className, className !== null)]),\n boxClassName: styles$7.box\n }, /*#__PURE__*/React.createElement(FontAwesomeIcon, {\n icon: faVideo,\n className: styles$7.icon\n }), /*#__PURE__*/React.createElement(\"div\", {\n className: styles$7.label\n }, \"360\"));\n};\n\n/* eslint-disable react/prop-types */\nvar VideoLoop = function VideoLoop(_ref) {\n var width = _ref.width,\n height = _ref.height,\n className = _ref.className;\n return /*#__PURE__*/React.createElement(PlaceholderBlock, {\n width: width,\n height: height,\n className: className\n }, /*#__PURE__*/React.createElement(FontAwesomeIcon, {\n icon: faPlay,\n className: styles$a.icon\n }), /*#__PURE__*/React.createElement(FontAwesomeIcon, {\n icon: faRedo,\n className: styles$a.icon\n }));\n};\n\n/* eslint-disable react/jsx-props-no-spreading */\nvar propTypes$9 = {\n screen: PropTypes.storyComponent.isRequired,\n renderContext: PropTypes.renderContext,\n active: PropTypes$1.bool,\n current: PropTypes$1.bool,\n component: PropTypes$1.node,\n components: PropTypes.components,\n className: PropTypes$1.string,\n onPrevious: PropTypes$1.func,\n onNext: PropTypes$1.func,\n onEnableInteraction: PropTypes$1.func,\n onDisableInteraction: PropTypes$1.func,\n getMediaRef: PropTypes$1.func\n};\nvar defaultProps$9 = {\n active: false,\n renderContext: null,\n current: false,\n component: null,\n components: null,\n className: null,\n onPrevious: null,\n onNext: null,\n onEnableInteraction: null,\n onDisableInteraction: null,\n getMediaRef: null\n};\n\nvar Screen = function Screen(_ref) {\n var screen = _ref.screen,\n renderContext = _ref.renderContext,\n active = _ref.active,\n current = _ref.current,\n components = _ref.components,\n component = _ref.component,\n className = _ref.className,\n onPrevious = _ref.onPrevious,\n onNext = _ref.onNext,\n onEnableInteraction = _ref.onEnableInteraction,\n onDisableInteraction = _ref.onDisableInteraction,\n getMediaRef = _ref.getMediaRef;\n var type = screen.type;\n var CustomScreenComponent = components !== null ? getComponentFromName(type, components) || null : null;\n var ContextScreenComponent = useScreenComponent(type);\n var ScreenComponent = CustomScreenComponent || ContextScreenComponent;\n return /*#__PURE__*/React.createElement(ScreenProvider, {\n data: screen,\n renderContext: renderContext\n }, ScreenComponent !== null ? /*#__PURE__*/React.createElement(\"div\", {\n className: className\n }, /*#__PURE__*/React.createElement(ScreenComponent, Object.assign({}, screen, {\n active: active,\n current: current,\n onPrevious: onPrevious,\n onNext: onNext,\n onEnableInteraction: onEnableInteraction,\n onDisableInteraction: onDisableInteraction,\n getMediaRef: getMediaRef\n }))) : /*#__PURE__*/React.createElement(\"div\", {\n className: className\n }, component));\n};\n\nScreen.propTypes = propTypes$9;\nScreen.defaultProps = defaultProps$9;\nvar Screen$1 = /*#__PURE__*/React.memo(Screen);\n\nvar styles$6 = {\"container\":\"micromag-core-screens-screen-placeholder-container\"};\n\nvar propTypes$8 = {\n screen: PropTypes.component.isRequired,\n layout: PropTypes$1.string,\n width: PropTypes$1.number,\n height: PropTypes$1.number,\n className: PropTypes$1.string\n};\nvar defaultProps$8 = {\n layout: undefined,\n width: null,\n height: null,\n className: null\n};\n\nvar ScreenPlaceholder = function ScreenPlaceholder(_ref) {\n var screen = _ref.screen,\n layout = _ref.layout,\n width = _ref.width,\n height = _ref.height,\n className = _ref.className;\n var screenSize = useMemo(function () {\n return {\n screen: 'mobile',\n screens: ['mobile'],\n width: width,\n height: height\n };\n }, [width, height]);\n return /*#__PURE__*/React.createElement(ScreenSizeProvider, {\n size: screenSize\n }, /*#__PURE__*/React.createElement(ScreenProvider, {\n data: screen,\n renderContext: \"placeholder\"\n }, /*#__PURE__*/React.createElement(Screen$1, {\n screen: screen,\n layout: layout,\n className: classNames([styles$6.container, _defineProperty({}, className, className !== null)])\n })));\n};\n\nScreenPlaceholder.propTypes = propTypes$8;\nScreenPlaceholder.defaultProps = defaultProps$8;\nvar Placeholder = /*#__PURE__*/React.memo(ScreenPlaceholder);\n\nvar styles$5 = {\"container\":\"micromag-core-screens-preview-container\"};\n\nvar propTypes$7 = {\n screen: PropTypes.component.isRequired,\n width: PropTypes$1.number,\n height: PropTypes$1.number,\n className: PropTypes$1.string\n};\nvar defaultProps$7 = {\n width: null,\n height: null,\n className: null\n};\n\nvar ScreenPreview = function ScreenPreview(_ref) {\n var screen = _ref.screen,\n width = _ref.width,\n height = _ref.height,\n className = _ref.className;\n var screenSize = useMemo(function () {\n return {\n screen: 'mobile',\n screens: ['mobile'],\n width: width,\n height: height\n };\n }, [width, height]);\n return /*#__PURE__*/React.createElement(ScreenSizeProvider, {\n size: screenSize\n }, /*#__PURE__*/React.createElement(ScreenProvider, {\n data: screen,\n renderContext: \"preview\"\n }, /*#__PURE__*/React.createElement(Screen$1, {\n screen: screen,\n renderContext: \"preview\",\n className: classNames([styles$5.container, _defineProperty({}, className, className !== null)])\n })));\n};\n\nScreenPreview.propTypes = propTypes$7;\nScreenPreview.defaultProps = defaultProps$7;\nvar Preview = /*#__PURE__*/React.memo(ScreenPreview);\n\nvar styles$4 = {\"container\":\"micromag-core-placeholders-conversation-container\",\"icon\":\"micromag-core-placeholders-conversation-icon\",\"message\":\"micromag-core-placeholders-conversation-message\",\"placeholderMessage0\":\"micromag-core-placeholders-conversation-placeholderMessage0\",\"placeholderMessage1\":\"micromag-core-placeholders-conversation-placeholderMessage1\",\"placeholderMessage2\":\"micromag-core-placeholders-conversation-placeholderMessage2\",\"placeholderMessage3\":\"micromag-core-placeholders-conversation-placeholderMessage3\"};\n\nvar Conversation = function Conversation() {\n return /*#__PURE__*/React.createElement(\"div\", {\n className: styles$4.container\n }, _toConsumableArray(Array(4)).map(function (e, idx) {\n return /*#__PURE__*/React.createElement(\"div\", {\n key: \"message-\".concat(idx + 1),\n className: classNames([styles$4.message, styles$4[\"placeholderMessage\".concat(idx)]])\n });\n }), /*#__PURE__*/React.createElement(FontAwesomeIcon, {\n icon: faCommentDots,\n className: styles$4.icon\n }));\n};\n\n/* eslint-disable react/prop-types */\nvar InputText = function InputText(_ref) {\n var _ref$width = _ref.width,\n width = _ref$width === void 0 ? '75%' : _ref$width,\n _ref$height = _ref.height,\n height = _ref$height === void 0 ? '0.5em' : _ref$height,\n className = _ref.className;\n return /*#__PURE__*/React.createElement(PlaceholderBlock, {\n outline: true,\n width: width,\n height: height,\n className: className\n });\n};\n\nvar styles$3 = {\"container\":\"micromag-core-placeholders-quiz-answer-container\",\"block\":\"micromag-core-placeholders-quiz-answer-block\",\"answer\":\"micromag-core-placeholders-quiz-answer-answer\",\"answerIcon\":\"micromag-core-placeholders-quiz-answer-answerIcon\",\"good\":\"micromag-core-placeholders-quiz-answer-good\"};\n\nvar Answer$1 = function Answer(_ref) {\n var _ref2;\n\n var _ref$width = _ref.width,\n width = _ref$width === void 0 ? '75%' : _ref$width,\n _ref$height = _ref.height,\n height = _ref$height === void 0 ? '0.3em' : _ref$height,\n className = _ref.className,\n _ref$good = _ref.good,\n good = _ref$good === void 0 ? true : _ref$good;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames([styles$3.container, (_ref2 = {}, _defineProperty(_ref2, className, className !== null), _defineProperty(_ref2, styles$3.good, good), _ref2)])\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: styles$3.answer\n }, /*#__PURE__*/React.createElement(FontAwesomeIcon, {\n className: styles$3.answerIcon,\n icon: good ? faCheck : faTimes\n })), /*#__PURE__*/React.createElement(PlaceholderBlock, {\n outline: true,\n width: width,\n height: height,\n className: styles$3.block\n }, /*#__PURE__*/React.createElement(PlaceholderText, {\n line: 1,\n height: \"0.2em\"\n })));\n};\n\nvar styles$2 = {\"container\":\"micromag-core-placeholders-survey-answer-container\",\"block\":\"micromag-core-placeholders-survey-answer-block\",\"percent\":\"micromag-core-placeholders-survey-answer-percent\",\"percentIcon\":\"micromag-core-placeholders-survey-answer-percentIcon\"};\n\nvar Answer = function Answer(_ref) {\n var _ref$width = _ref.width,\n width = _ref$width === void 0 ? '75%' : _ref$width,\n _ref$height = _ref.height,\n height = _ref$height === void 0 ? '0.3em' : _ref$height,\n className = _ref.className;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames([styles$2.container, _defineProperty({}, className, className !== null)])\n }, /*#__PURE__*/React.createElement(PlaceholderBlock, {\n outline: true,\n width: width,\n height: height,\n className: styles$2.block\n }, /*#__PURE__*/React.createElement(PlaceholderText, {\n line: 1,\n height: \"0.2em\"\n })), /*#__PURE__*/React.createElement(\"div\", {\n className: styles$2.percent\n }, /*#__PURE__*/React.createElement(FontAwesomeIcon, {\n className: styles$2.percentIcon,\n icon: faPercent\n })));\n};\n\nvar Placeholders = /*#__PURE__*/Object.freeze({\n __proto__: null,\n AdFrame: AdFrame,\n AdImage: AdImage,\n Audio: Audio,\n Button: Button,\n Conversation: Conversation,\n Image: Image,\n InputText: InputText,\n Line: Line,\n Map: Map,\n MapPath: MapPath,\n QuizAnswer: Answer$1,\n Quote: Quote,\n ShortText: ShortText,\n Subtitle: Subtitle,\n SurveyAnswer: Answer,\n Text: TextPlaceholder,\n Timeline: Timeline,\n Title: Title,\n Video: Video,\n Video360: Video360,\n VideoLoop: VideoLoop\n});\n\n/* eslint-disable react/jsx-props-no-spreading */\nvar propTypes$6 = {\n children: PropTypes$1.node,\n placeholder: PropTypes$1.oneOfType([PropTypes$1.string, PropTypes$1.node]),\n preview: PropTypes$1.node,\n empty: PropTypes$1.node,\n emptyLabel: PropTypes.label,\n isEmpty: PropTypes$1.bool,\n placeholderProps: PropTypes$1.object,\n // eslint-disable-line\n emptyClassName: PropTypes$1.string\n};\nvar defaultProps$6 = {\n children: null,\n placeholder: null,\n preview: null,\n empty: null,\n emptyLabel: null,\n isEmpty: false,\n placeholderProps: null,\n emptyClassName: null\n};\n\nvar ScreenElement = function ScreenElement(_ref) {\n var children = _ref.children,\n placeholder = _ref.placeholder,\n empty = _ref.empty,\n emptyLabel = _ref.emptyLabel,\n preview = _ref.preview,\n isEmpty = _ref.isEmpty,\n placeholderProps = _ref.placeholderProps,\n emptyClassName = _ref.emptyClassName;\n\n var _useScreenRenderConte = useScreenRenderContext(),\n isPlaceholder = _useScreenRenderConte.isPlaceholder,\n isEdit = _useScreenRenderConte.isEdit,\n isPreview = _useScreenRenderConte.isPreview;\n\n if (isPlaceholder) {\n var PlaceholderComponent = isString(placeholder) ? getComponentFromName(placeholder, Placeholders) : null;\n return PlaceholderComponent !== null ? /*#__PURE__*/React.createElement(PlaceholderComponent, placeholderProps) : placeholder;\n }\n\n if (isEdit && isEmpty) {\n return empty !== null ? empty : /*#__PURE__*/React.createElement(Empty, {\n className: emptyClassName\n }, emptyLabel);\n }\n\n if (isPreview && preview !== null) {\n return preview;\n }\n\n return children;\n};\n\nScreenElement.propTypes = propTypes$6;\nScreenElement.defaultProps = defaultProps$6;\n\nvar styles$1 = {\"container\":\"micromag-core-screens-container\",\"screen\":\"micromag-core-screens-screen\",\"visible\":\"micromag-core-screens-visible\"};\n\nvar propTypes$5 = {\n screens: PropTypes.storyComponents.isRequired,\n screen: PropTypes$1.string,\n className: PropTypes$1.string\n};\nvar defaultProps$5 = {\n screen: null,\n className: null\n};\n\nvar Screens = function Screens(_ref) {\n var screens = _ref.screens,\n screenId = _ref.screen,\n className = _ref.className;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames([styles$1.container, _defineProperty({}, className, className)])\n }, screens.map(function (screen) {\n var id = screen.id;\n return /*#__PURE__*/React.createElement(Screen$1, {\n key: \"screen-\".concat(id),\n screen: screen,\n className: classNames([styles$1.screen, _defineProperty({}, styles$1.visible, screenId === id)])\n });\n }));\n};\n\nScreens.propTypes = propTypes$5;\nScreens.defaultProps = defaultProps$5;\n\nvar styles = {\"container\":\"micromag-core-transitions-transition-container\",\"fullscreen\":\"micromag-core-transitions-transition-fullscreen\"};\n\nvar propTypes$4 = {\n fullscreen: PropTypes$1.bool,\n from: PropTypes$1.objectOf(PropTypes$1.any),\n to: PropTypes$1.objectOf(PropTypes$1.any),\n playing: PropTypes$1.bool,\n direction: PropTypes$1.oneOf(['in', 'out']),\n delay: PropTypes$1.number,\n duration: PropTypes$1.number,\n easing: PropTypes$1.func,\n children: PropTypes$1.node,\n className: PropTypes$1.string,\n onStart: PropTypes$1.func,\n onComplete: PropTypes$1.func\n};\nvar defaultProps$4 = {\n fullscreen: false,\n from: null,\n to: null,\n playing: false,\n direction: null,\n delay: 0,\n duration: undefined,\n easing: undefined,\n children: null,\n className: null,\n onStart: null,\n onComplete: null\n};\n\nvar Transition = function Transition(_ref) {\n var _ref2;\n\n var fullscreen = _ref.fullscreen,\n from = _ref.from,\n to = _ref.to,\n playing = _ref.playing,\n direction = _ref.direction,\n delay = _ref.delay,\n duration = _ref.duration,\n easing = _ref.easing,\n children = _ref.children,\n className = _ref.className,\n onStart = _ref.onStart,\n onComplete = _ref.onComplete;\n\n var _useSpring = useSpring(function () {\n return {};\n }),\n _useSpring2 = _slicedToArray(_useSpring, 2),\n springProps = _useSpring2[0],\n setSpringProps = _useSpring2[1];\n\n useEffect(function () {\n var immediate = !playing && direction === 'in' || playing && direction === 'out';\n var finalPlaying = immediate || playing;\n var reset = playing && !immediate;\n var finalDuration = duration !== null ? duration : undefined;\n var props = {\n from: from,\n to: finalPlaying ? to : from,\n reset: reset,\n onStart: onStart,\n onRest: onComplete,\n config: {\n duration: immediate ? 0 : finalDuration\n }\n };\n var withDelay = delay > 0 && playing && direction !== 'out';\n var timeout = null;\n\n if (withDelay) {\n setSpringProps.start({\n to: from,\n immediate: true\n });\n timeout = setTimeout(function () {\n setSpringProps.start(props);\n }, delay);\n } else {\n setSpringProps.start(props);\n }\n\n return function () {\n if (timeout !== null) {\n clearTimeout(timeout);\n }\n };\n }, [playing, direction, delay, duration, easing, from, to, setSpringProps, onStart, onComplete]);\n return /*#__PURE__*/React.createElement(animated.div, {\n style: _objectSpread({}, springProps),\n className: classNames([styles.container, (_ref2 = {}, _defineProperty(_ref2, className, className !== null), _defineProperty(_ref2, styles.fullscreen, fullscreen), _ref2)])\n }, children);\n};\n\nTransition.propTypes = propTypes$4;\nTransition.defaultProps = defaultProps$4;\n\n/* eslint-disable react/jsx-props-no-spreading */\n\nvar Fade = function Fade(props) {\n var from = useMemo(function () {\n return {\n opacity: 0\n };\n }, []);\n var to = useMemo(function () {\n return {\n opacity: 1\n };\n }, []);\n return /*#__PURE__*/React.createElement(Transition, Object.assign({}, props, {\n from: from,\n to: to\n }));\n};\n\n/* eslint-disable react/jsx-props-no-spreading */\n\nvar Scale = function Scale(props) {\n var from = useMemo(function () {\n return {\n transform: 'scale(0)'\n };\n }, []);\n var to = useMemo(function () {\n return {\n transform: 'scale(1)'\n };\n }, []);\n return /*#__PURE__*/React.createElement(Transition, Object.assign({}, props, {\n from: from,\n to: to\n }));\n};\n\nvar TransitionComponents = {\n Fade: Fade,\n Scale: Scale\n};\n\nvar propTypes$3 = {\n fullscreen: PropTypes$1.bool,\n playing: PropTypes$1.bool,\n delay: PropTypes$1.number,\n transitions: PropTypes.transitions,\n disabled: PropTypes$1.bool,\n children: PropTypes$1.node\n};\nvar defaultProps$3 = {\n fullscreen: false,\n playing: false,\n delay: 0,\n transitions: null,\n disabled: false,\n children: null\n};\n\nvar Transitions = function Transitions(_ref) {\n var fullscreen = _ref.fullscreen,\n playing = _ref.playing,\n delay = _ref.delay,\n transitions = _ref.transitions,\n disabled = _ref.disabled,\n children = _ref.children;\n\n var _useScreenSize = useScreenSize(),\n _useScreenSize$landsc = _useScreenSize.landscape,\n landscape = _useScreenSize$landsc === void 0 ? false : _useScreenSize$landsc;\n\n var finalPlaying = playing || landscape;\n var finalTransitions = {\n \"in\": null,\n out: null\n };\n var defaultTransitions = {\n \"in\": 'fade',\n out: 'fade'\n };\n var transitionsObject = transitions !== null ? transitions : defaultTransitions;\n Object.keys(transitionsObject).forEach(function (transitionKey) {\n var currentTransition = transitionsObject[transitionKey];\n finalTransitions[transitionKey] = typeof currentTransition === 'string' ? {\n name: currentTransition\n } : currentTransition;\n });\n var _finalTransitions$in = finalTransitions[\"in\"],\n transitionIn = _finalTransitions$in === void 0 ? null : _finalTransitions$in,\n _finalTransitions$out = finalTransitions.out,\n transitionOut = _finalTransitions$out === void 0 ? null : _finalTransitions$out;\n var finalTransitionIn = transitionIn !== null ? transitionIn : transitionOut;\n var finalTransitionOut = transitionOut !== null ? transitionOut : transitionIn;\n\n var _ref2 = finalTransitionIn || {},\n _ref2$name = _ref2.name,\n transitionInName = _ref2$name === void 0 ? null : _ref2$name;\n\n var _ref3 = finalTransitionOut || {},\n _ref3$name = _ref3.name,\n transitionOutName = _ref3$name === void 0 ? null : _ref3$name;\n\n var sameTransitionInOut = transitionInName === transitionOutName;\n var TransitionIn = finalTransitionIn !== null ? getComponentFromName(transitionInName, TransitionComponents, null) : null;\n var TransitionOut = finalTransitionOut !== null && !sameTransitionInOut ? getComponentFromName(transitionOutName, TransitionComponents, null) : null;\n var transitionInProps = finalTransitionIn !== null ? _objectSpread(_objectSpread({}, finalTransitionIn), {}, {\n name: undefined,\n delay: delay\n }) : null;\n var transitionOutProps = finalTransitionOut !== null ? _objectSpread(_objectSpread({}, finalTransitionOut), {}, {\n name: undefined,\n delay: delay\n }) : null;\n var renderTransitionOut = TransitionOut !== null && !disabled ? /*#__PURE__*/React.createElement(TransitionOut, Object.assign({\n fullscreen: fullscreen,\n playing: finalPlaying,\n direction: \"out\"\n }, transitionOutProps), children) : children;\n return TransitionIn !== null && !disabled ? /*#__PURE__*/React.createElement(TransitionIn, Object.assign({\n fullscreen: fullscreen,\n playing: finalPlaying,\n direction: !sameTransitionInOut ? 'in' : null\n }, transitionInProps), renderTransitionOut) : renderTransitionOut;\n};\n\nTransitions.propTypes = propTypes$3;\nTransitions.defaultProps = defaultProps$3;\n\nvar propTypes$2 = {\n transitions: PropTypes.transitions,\n stagger: PropTypes$1.number,\n playing: PropTypes$1.bool,\n disabled: PropTypes$1.bool,\n delay: PropTypes$1.number,\n fullscreen: PropTypes$1.bool,\n children: PropTypes$1.node\n};\nvar defaultProps$2 = {\n transitions: null,\n stagger: 0,\n playing: false,\n disabled: false,\n delay: 0,\n fullscreen: false,\n children: null\n};\n\nvar TransitionsStagger = function TransitionsStagger(_ref) {\n var transitions = _ref.transitions,\n stagger = _ref.stagger,\n playing = _ref.playing,\n disabled = _ref.disabled,\n delay = _ref.delay,\n fullscreen = _ref.fullscreen,\n children = _ref.children;\n var validIndex = 0;\n var elements = React.Children.map(children, function (child) {\n if (!child) {\n return null;\n }\n\n var _child$type = child.type,\n type = _child$type === void 0 ? null : _child$type;\n\n var _ref2 = type || {},\n _ref2$withoutTransiti = _ref2.withoutTransitionsWrapper,\n withoutTransitionsWrapper = _ref2$withoutTransiti === void 0 ? false : _ref2$withoutTransiti;\n\n if (disabled || withoutTransitionsWrapper) {\n return child;\n }\n\n var el = /*#__PURE__*/React.createElement(Transitions, {\n transitions: transitions,\n delay: delay + validIndex * stagger,\n playing: playing,\n fullscreen: fullscreen\n }, child);\n validIndex += 1;\n return el;\n });\n return elements;\n};\n\nTransitionsStagger.propTypes = propTypes$2;\nTransitionsStagger.defaultProps = defaultProps$2;\n\nvar propTypes$1 = {\n selector: PropTypes$1.string,\n highlightSelector: PropTypes$1.string,\n style: PropTypes$1.objectOf(PropTypes$1.oneOfType([PropTypes$1.string, PropTypes$1.number]))\n};\nvar defaultProps$1 = {\n selector: null,\n highlightSelector: 'mark',\n style: null\n};\n\nvar HighlightStyle = function HighlightStyle(_ref) {\n var selector = _ref.selector,\n highlightSelector = _ref.highlightSelector,\n style = _ref.style;\n return style !== null ? /*#__PURE__*/React.createElement(\"style\", {\n type: \"text/css\"\n }, \"\".concat([selector, highlightSelector].filter(function (it) {\n return it !== null;\n }).join(' '), \"{\").concat(convertStyleToString(style), \"}\")) : null;\n};\n\nHighlightStyle.propTypes = propTypes$1;\nHighlightStyle.defaultProps = defaultProps$1;\n\nvar propTypes = {\n selector: PropTypes$1.string,\n linkSelector: PropTypes$1.string,\n style: PropTypes$1.objectOf(PropTypes$1.oneOfType([PropTypes$1.string, PropTypes$1.number]))\n};\nvar defaultProps = {\n selector: null,\n linkSelector: 'a',\n style: null\n};\n\nvar LinkStyle = function LinkStyle(_ref) {\n var selector = _ref.selector,\n linkSelector = _ref.linkSelector,\n style = _ref.style;\n return style !== null ? /*#__PURE__*/React.createElement(\"style\", {\n type: \"text/css\"\n }, \"\".concat([selector, linkSelector].filter(function (it) {\n return it !== null;\n }).join(' '), \"{\").concat(convertStyleToString(style), \"}\")) : null;\n};\n\nLinkStyle.propTypes = propTypes;\nLinkStyle.defaultProps = defaultProps;\n\nexport { BackButton, Breadcrumb, Button$1 as Button, Buttons, Card, CollapsablePanel, Date$1 as Date, Detector, Dropdown as DropdownMenu, ElementComponent as Element, Empty, FieldForm, FontFaces, Form, FormPanel, HighlightStyle, Label, Link, LinkStyle, Media, Menu, Meta, Modal, ModalDialog, ModalPortal, Modals, Navbar, PaginationMenu as Pagination, Panel, PanelPortal, Panels, AdFrame as PlaceholderAdFrame, AdImage as PlaceholderAdImage, Audio as PlaceholderAudio, Button as PlaceholderButton, Image as PlaceholderImage, Line as PlaceholderLine, Map as PlaceholderMap, MapPath as PlaceholderMapPath, Quote as PlaceholderQuote, ShortText as PlaceholderShortText, Subtitle as PlaceholderSubtitle, TextPlaceholder as PlaceholderText, Timeline as PlaceholderTimeline, Title as PlaceholderTitle, Video as PlaceholderVideo, Video360 as PlaceholderVideo360, VideoLoop as PlaceholderVideoLoop, Screen$1 as Screen, ScreenElement, Placeholder as ScreenPlaceholder, Preview as ScreenPreview, Screens, Slideshow, Spinner, TabsMenu as Tabs, Transitions, TransitionsStagger, UploadModal };\n","import _defineProperty from '@babel/runtime/helpers/defineProperty';\nimport _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';\nimport _slicedToArray from '@babel/runtime/helpers/slicedToArray';\nimport _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';\nimport { PropTypes as PropTypes$1 } from '@micromag/core';\nimport { useUserInteracted } from '@micromag/core/contexts';\nimport { useResizeObserver, useMediaApi } from '@micromag/core/hooks';\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\nimport React, { useRef, useEffect, useCallback, useState } from 'react';\nimport { useSpring } from '@react-spring/core';\nimport { animated } from '@react-spring/web';\nimport { useGesture } from 'react-use-gesture';\nimport 'whatwg-fetch';\n\nvar styles$1 = {\"container\":\"micromag-element-audio-audio-wave-container\",\"button\":\"micromag-element-audio-audio-wave-button\",\"canvasBackground\":\"micromag-element-audio-audio-wave-canvasBackground\",\"canvasProgress\":\"micromag-element-audio-audio-wave-canvasProgress\"};\n\nvar propTypes$1 = {\n currentTime: PropTypes.number,\n duration: PropTypes.number,\n playing: PropTypes.bool,\n sampleWidth: PropTypes.number,\n sampleMargin: PropTypes.number,\n minSampleHeight: PropTypes.number,\n backgroundColor: PropTypes.string,\n progressColor: PropTypes.string,\n audioLevels: PropTypes.arrayOf(PropTypes.number),\n className: PropTypes.string,\n onSeek: PropTypes.func,\n onResume: PropTypes.func,\n onReady: PropTypes.func\n};\nvar defaultProps$1 = {\n currentTime: null,\n duration: null,\n playing: false,\n sampleWidth: 3,\n sampleMargin: 1,\n minSampleHeight: 2,\n backgroundColor: 'white',\n progressColor: 'lightblue',\n audioLevels: null,\n className: null,\n onSeek: null,\n onResume: null,\n onReady: null\n};\n\nvar AudioWave = function AudioWave(_ref) {\n var currentTime = _ref.currentTime,\n duration = _ref.duration,\n playing = _ref.playing,\n sampleWidth = _ref.sampleWidth,\n sampleMargin = _ref.sampleMargin,\n minSampleHeight = _ref.minSampleHeight,\n backgroundColor = _ref.backgroundColor,\n progressColor = _ref.progressColor,\n audioLevels = _ref.audioLevels,\n className = _ref.className,\n onSeek = _ref.onSeek,\n onResume = _ref.onResume,\n onReady = _ref.onReady;\n var canvasBackgroundRef = useRef(null);\n var canvasProgressRef = useRef(null);\n\n var _useResizeObserver = useResizeObserver(),\n elRef = _useResizeObserver.ref,\n elContentRect = _useResizeObserver.entry.contentRect;\n\n var _ref2 = elContentRect || {},\n _ref2$width = _ref2.width,\n elWidth = _ref2$width === void 0 ? null : _ref2$width,\n elHeight = _ref2.height; // Linear animation for progress bar\n\n\n var _useSpring = useSpring(function () {\n return {\n x: 0,\n config: {\n duration: 0\n }\n };\n }),\n _useSpring2 = _slicedToArray(_useSpring, 2),\n springProps = _useSpring2[0],\n setSpringProps = _useSpring2[1];\n\n useEffect(function () {\n if (currentTime === null || duration === null) {\n return;\n }\n\n var progress = currentTime / duration;\n setSpringProps.start({\n reset: true,\n immediate: !playing,\n from: {\n x: progress\n },\n to: {\n x: playing ? 1 : progress\n },\n config: {\n duration: (duration - currentTime) * 1000\n }\n });\n }, [playing, duration, currentTime, setSpringProps]); // draw canvas\n\n useEffect(function () {\n if (audioLevels === null || audioLevels.length === 0 || elRef.current === null) {\n return;\n }\n\n var sampleOuterWidth = sampleWidth + sampleMargin * 2;\n var samplesCount = Math.floor(elWidth / sampleOuterWidth); // const amplitudes = [];\n // get samples\n\n var levelsBySamples = audioLevels.length / samplesCount;\n\n var amplitudes = _toConsumableArray(Array(samplesCount).keys()).reduce(function (newAmplitudes, index) {\n var levelStartIndex = index * levelsBySamples;\n var levelEndIndex = levelStartIndex + levelsBySamples;\n var newValues = [];\n\n for (var i = Math.floor(levelStartIndex); i < Math.round(levelEndIndex); i += 1) {\n newValues.push(audioLevels[i]);\n }\n\n return levelsBySamples >= 1 ? [].concat(_toConsumableArray(newAmplitudes), [newValues.reduce(function (total, value) {\n return total + value;\n }, 0) / newValues.length]) : [].concat(_toConsumableArray(newAmplitudes), newValues);\n }, []); // for (let sampleI = 0; sampleI < samplesCount; sampleI += levelsBySamples) {\n // // if (levelsBySamples >= 1) {\n // // const sampleSize = Math.floor(levelsBySamples);\n // // const sampleStart = sampleSize * sampleI;\n // // let sum = 0;\n // // for (let sampleSizeI = 0; sampleSizeI < sampleSize; sampleSizeI += 1) {\n // // sum += Math.abs(audioLevels[sampleStart + sampleSizeI]);\n // // }\n // // amplitudes.push(sum / sampleSize);\n // // } else {\n // console.log(sampleI);\n // amplitudes.push(Math.abs(audioLevels[Math.floor(sampleI)]));\n // // for (let sampleSizeI = 0; sampleSizeI < sampleSize; sampleSizeI += 1) {\n // // console.log(sampleI, sampleSize);\n // // amplitudes.push(Math.abs(audioLevels[sampleI % sampleSize]));\n // // }\n // // }\n // }\n\n\n var minAmplitude = Math.min.apply(Math, _toConsumableArray(amplitudes));\n var maxAmplitude = Math.max.apply(Math, _toConsumableArray(amplitudes));\n var delta = maxAmplitude - minAmplitude;\n var normalizedAmplitudes = amplitudes.map(function (n) {\n return (n - minAmplitude) / delta;\n }); // draw samples\n\n var canvasBg = canvasBackgroundRef.current;\n var canvasProgress = canvasProgressRef.current;\n var scale = typeof window !== 'undefined' ? window.devicePixelRatio : 1;\n canvasBg.width = canvasProgress.width = Math.floor(elWidth * scale);\n canvasBg.height = canvasProgress.height = Math.floor(elHeight * scale);\n var ctxBG = canvasBg.getContext('2d');\n var ctxProgress = canvasProgress.getContext('2d');\n ctxBG.scale(scale, scale);\n ctxProgress.scale(scale, scale);\n ctxBG.clearRect(0, 0, elWidth, elHeight);\n ctxProgress.clearRect(0, 0, elWidth, elHeight);\n ctxBG.fillStyle = backgroundColor;\n ctxProgress.fillStyle = progressColor;\n var offsetLeft = (elWidth - samplesCount * sampleOuterWidth) / 2;\n normalizedAmplitudes.forEach(function (amplitude, amplitudeI) {\n var sampleHeight = Math.max(minSampleHeight, amplitude * elHeight);\n var sampleX = sampleOuterWidth * amplitudeI + offsetLeft + sampleMargin;\n var sampleY = elHeight / 2 - sampleHeight / 2;\n ctxBG.fillRect(Math.round(sampleX), Math.round(sampleY), sampleWidth, Math.round(sampleHeight));\n ctxProgress.fillRect(Math.round(sampleX), Math.round(sampleY), sampleWidth, Math.round(sampleHeight));\n });\n\n if (onReady !== null) {\n onReady();\n }\n }, [audioLevels, sampleWidth, sampleMargin, minSampleHeight, elWidth, elHeight, backgroundColor, progressColor, onReady]); // User events\n\n var seekFromX = useCallback(function (x) {\n var elX = elRef.current.getBoundingClientRect().left;\n var progress = Math.max(0, Math.min(1, (x - elX) / elWidth));\n\n if (onSeek !== null && duration !== null) {\n onSeek(progress * duration);\n }\n\n if (!playing) {\n onResume();\n }\n }, [duration, playing, onSeek, onResume]);\n var bind = useGesture({\n onDrag: function onDrag(_ref3) {\n var _ref3$xy = _slicedToArray(_ref3.xy, 1),\n x = _ref3$xy[0],\n elapsedTime = _ref3.elapsedTime,\n active = _ref3.active;\n\n if (!active && elapsedTime > 300) {\n return;\n }\n\n seekFromX(x);\n }\n }, {\n drag: {\n axis: 'x',\n filterTaps: true\n }\n });\n return /*#__PURE__*/React.createElement(\"div\", Object.assign({\n className: classNames([styles$1.container, _defineProperty({}, className, className !== null)]),\n ref: elRef\n }, bind()), /*#__PURE__*/React.createElement(\"canvas\", {\n ref: canvasBackgroundRef,\n className: styles$1.canvasBackground\n }), /*#__PURE__*/React.createElement(animated.canvas, {\n ref: canvasProgressRef,\n className: styles$1.canvasProgress,\n style: {\n clipPath: springProps.x.to(function (x) {\n return \"polygon(0 0, \".concat(x * 100, \"% 0, \").concat(x * 100, \"% 100%, 0 100%)\");\n })\n }\n }));\n};\n\nAudioWave.propTypes = propTypes$1;\nAudioWave.defaultProps = defaultProps$1;\n\nvar styles = {\"container\":\"micromag-element-audio-container\",\"wave\":\"micromag-element-audio-wave\"};\n\nvar _excluded = [\"ref\"];\nvar propTypes = {\n media: PropTypes$1.audioMedia,\n apiRef: PropTypes.oneOfType([PropTypes.func, PropTypes.shape({\n current: PropTypes.any\n })]),\n initialMuted: PropTypes.oneOf(['auto', true, false]),\n autoPlay: PropTypes.bool,\n loop: PropTypes.bool,\n waveFake: PropTypes.bool,\n waveProps: PropTypes.shape({\n sampleWidth: PropTypes.number,\n sampleMargin: PropTypes.number,\n minSampleHeight: PropTypes.number\n }),\n reduceBufferFactor: PropTypes.number,\n className: PropTypes.string,\n onReady: PropTypes.func,\n onPlay: PropTypes.func,\n onPause: PropTypes.func,\n onEnded: PropTypes.func,\n onSeeked: PropTypes.func,\n onTimeUpdate: PropTypes.func,\n onProgressStep: PropTypes.func,\n onDurationChanged: PropTypes.func,\n onVolumeChanged: PropTypes.func\n};\nvar defaultProps = {\n media: null,\n apiRef: null,\n initialMuted: 'auto',\n autoPlay: false,\n loop: false,\n waveFake: false,\n waveProps: null,\n reduceBufferFactor: 100,\n className: null,\n onReady: null,\n onPlay: null,\n onPause: null,\n onEnded: null,\n onSeeked: null,\n onTimeUpdate: null,\n onProgressStep: null,\n onDurationChanged: null,\n onVolumeChanged: null\n};\n\nvar Audio = function Audio(_ref) {\n var media = _ref.media,\n apiRef = _ref.apiRef,\n initialMuted = _ref.initialMuted,\n autoPlay = _ref.autoPlay,\n loop = _ref.loop,\n waveFake = _ref.waveFake,\n waveProps = _ref.waveProps,\n reduceBufferFactor = _ref.reduceBufferFactor,\n className = _ref.className,\n onReady = _ref.onReady,\n onPlay = _ref.onPlay,\n onPause = _ref.onPause,\n onEnded = _ref.onEnded,\n onSeeked = _ref.onSeeked,\n onTimeUpdate = _ref.onTimeUpdate,\n onProgressStep = _ref.onProgressStep,\n onDurationChanged = _ref.onDurationChanged,\n onVolumeChanged = _ref.onVolumeChanged;\n\n var _ref2 = media || {},\n _ref2$url = _ref2.url,\n url = _ref2$url === void 0 ? null : _ref2$url,\n _ref2$metadata = _ref2.metadata,\n metadata = _ref2$metadata === void 0 ? null : _ref2$metadata;\n\n var _ref3 = metadata || {},\n _ref3$waveform = _ref3.waveform,\n waveform = _ref3$waveform === void 0 ? null : _ref3$waveform;\n\n var userInteracted = useUserInteracted();\n var finalInitialMuted = initialMuted === true || initialMuted === 'auto' && autoPlay && !userInteracted;\n\n var _useMediaApi = useMediaApi({\n url: url,\n initialMuted: finalInitialMuted,\n onPlay: onPlay,\n onPause: onPause,\n onEnded: onEnded,\n onSeeked: onSeeked,\n onTimeUpdate: onTimeUpdate,\n onProgressStep: onProgressStep,\n onDurationChanged: onDurationChanged,\n onVolumeChanged: onVolumeChanged\n }),\n ref = _useMediaApi.ref,\n api = _objectWithoutProperties(_useMediaApi, _excluded);\n\n if (apiRef !== null) {\n apiRef.current = api;\n apiRef.current.mediaRef = ref;\n }\n\n var currentTime = api.currentTime,\n duration = api.duration,\n playing = api.playing,\n seek = api.seek,\n audioReady = api.ready,\n play = api.play,\n pause = api.pause,\n muted = api.muted,\n unMute = api.unMute;\n\n var _useState = useState(null),\n _useState2 = _slicedToArray(_useState, 2),\n audioLevels = _useState2[0],\n setAudioLevels = _useState2[1];\n\n var _useState3 = useState(null),\n _useState4 = _slicedToArray(_useState3, 2),\n blobUrl = _useState4[0],\n setBlobUrl = _useState4[1];\n\n useEffect(function () {\n var canceled = false;\n var AudioContext = typeof window !== 'undefined' ? window.AudioContext || window.webkitAudioContext : null;\n\n if (waveform !== null) {\n setAudioLevels(waveform.map(function (it) {\n return (it + 256 / 2) / 256;\n }));\n } else if (url !== null && waveFake) {\n var fakeLength = 1000;\n setAudioLevels(_toConsumableArray(new Array(fakeLength)).map(function () {\n return Math.random();\n }));\n } else if (url !== null && AudioContext !== null) {\n fetch(url, {\n mode: 'cors'\n }).then(function (response) {\n if (canceled) {\n throw new Error('Audio loading canceled');\n }\n\n return response.arrayBuffer();\n }).then(function (arrayBuffer) {\n if (canceled) {\n throw new Error('Audio loading canceled');\n }\n\n setBlobUrl(URL.createObjectURL(new Blob([arrayBuffer])));\n var audioCtx = new AudioContext();\n return audioCtx.decodeAudioData(arrayBuffer);\n }).then(function (buffer) {\n var channelsCount = buffer.numberOfChannels;\n\n if (channelsCount > 0) {\n var leftChannelData = buffer.getChannelData(0);\n setAudioLevels(leftChannelData.reduce(function (newArray, level, levelIndex) {\n // if (levelIndex % reduceBufferFactor === 0) {\n // console.log(level, (level + 1) / 2);\n newArray[newArray.length] = Math.abs(level); // }\n\n return newArray;\n }, []));\n }\n })[\"catch\"](function (e) {\n throw e;\n });\n }\n\n return function () {\n if (url === null) {\n canceled = true;\n }\n };\n }, [url, waveform, setAudioLevels, setBlobUrl, reduceBufferFactor, waveFake]);\n var ready = waveFake || audioReady && blobUrl !== null;\n useEffect(function () {\n if (ready && onReady !== null) {\n onReady();\n }\n }, [ready, onReady]);\n useEffect(function () {\n if (autoPlay) {\n play();\n\n if (initialMuted === 'auto' && muted && userInteracted) {\n unMute();\n }\n } else {\n pause();\n }\n }, [autoPlay]);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames([styles.container, _defineProperty({}, className, className !== null)])\n }, /*#__PURE__*/React.createElement(\"audio\", {\n key: url,\n ref: ref,\n src: waveFake ? url : blobUrl,\n autoPlay: autoPlay,\n muted: muted,\n loop: loop,\n crossOrigin: \"anonymous\",\n preload: \"none\"\n }), /*#__PURE__*/React.createElement(AudioWave, Object.assign({\n className: styles.wave,\n media: media,\n currentTime: currentTime\n }, waveProps, {\n duration: duration,\n playing: playing,\n onSeek: seek,\n onResume: play,\n audioLevels: audioLevels\n })));\n};\n\nAudio.propTypes = propTypes;\nAudio.defaultProps = defaultProps;\nvar Audio$1 = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(Audio, Object.assign({\n apiRef: ref\n }, props));\n});\n\nexport { AudioWave, Audio$1 as default };\n","import _defineProperty from '@babel/runtime/helpers/defineProperty';\nimport _slicedToArray from '@babel/runtime/helpers/slicedToArray';\nimport 'whatwg-fetch';\nimport React, { useState, useEffect, useCallback } from 'react';\nimport PropTypes$1 from 'prop-types';\nimport classNames from 'classnames';\nimport parseSRT from 'parse-srt';\nimport fetch from 'node-fetch';\nimport { PropTypes } from '@micromag/core';\nimport { getSecondsFromTime } from '@micromag/core/utils';\n\nvar styles = {\"container\":\"micromag-element-closed-captions-container\",\"captions\":\"micromag-element-closed-captions-captions\"};\n\nvar propTypes = {\n media: PropTypes.closedCaptionsMedia,\n currentTime: PropTypes$1.number,\n // in seconds\n timeOffset: PropTypes$1.string,\n // in srt time format (10:00:01,034)\n className: PropTypes$1.string\n};\nvar defaultProps = {\n media: null,\n currentTime: 0,\n timeOffset: null,\n className: null\n};\n\nvar ClosedCaptions = function ClosedCaptions(_ref) {\n var currentTime = _ref.currentTime,\n timeOffset = _ref.timeOffset,\n media = _ref.media,\n className = _ref.className;\n\n var _ref2 = media || {},\n _ref2$url = _ref2.url,\n url = _ref2$url === void 0 ? null : _ref2$url;\n\n var _useState = useState([]),\n _useState2 = _slicedToArray(_useState, 2),\n lines = _useState2[0],\n setLines = _useState2[1];\n\n var _useState3 = useState(-1),\n _useState4 = _slicedToArray(_useState3, 2),\n lineIndex = _useState4[0],\n setLineIndex = _useState4[1];\n\n var startOffset = timeOffset !== null ? timeOffset.split(/[\\t ]*-->[\\t ]*/) : null;\n var startSeconds = startOffset !== null && startOffset.length ? getSecondsFromTime(startOffset[0]) : 0;\n useEffect(function () {\n if (url === null) {\n return;\n }\n\n fetch(url, {\n mode: 'cors'\n }).then(function (response) {\n return response.text();\n }).then(function (srt) {\n return parseSRT(srt);\n }).then(function (parsed) {\n setLines(parsed);\n })[\"catch\"](function (e) {\n console.error(e);\n });\n }, [url, fetch, setLines]);\n var getLineIndexFromTime = useCallback(function (t) {\n var currentLineIndex = lines.findIndex(function (line) {\n return t >= line.start - startSeconds && t <= line.end - startSeconds;\n });\n return currentLineIndex;\n }, [lines, startSeconds]);\n useEffect(function () {\n if (lines.length > 0) {\n var nextLineIndex = getLineIndexFromTime(currentTime);\n\n if (nextLineIndex !== lineIndex) {\n setLineIndex(nextLineIndex);\n }\n }\n }, [currentTime, lines, getLineIndexFromTime, setLineIndex]);\n var line = lineIndex !== -1 ? lines[lineIndex] : null;\n var active = line !== null;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames([styles.container, _defineProperty({}, className, className !== null)])\n }, active ? /*#__PURE__*/React.createElement(\"div\", {\n className: styles.captions,\n dangerouslySetInnerHTML: active ? {\n __html: line.text\n } : null\n }) : null);\n};\n\nClosedCaptions.propTypes = propTypes;\nClosedCaptions.defaultProps = defaultProps;\n\nexport { ClosedCaptions as default };\n","import _defineProperty from '@babel/runtime/helpers/defineProperty';\nimport React, { useEffect, useCallback } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { useIntl } from 'react-intl';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faPause, faPlay, faVolumeUp } from '@fortawesome/free-solid-svg-icons';\nimport _slicedToArray from '@babel/runtime/helpers/slicedToArray';\nimport { useSpring } from '@react-spring/core';\nimport { animated } from '@react-spring/web';\n\nvar styles$1 = {\"container\":\"micromag-element-media-controls-seek-bar-container\",\"button\":\"micromag-element-media-controls-seek-bar-button\",\"progress\":\"micromag-element-media-controls-seek-bar-progress\"};\n\nvar propTypes$1 = {\n currentTime: PropTypes.number,\n duration: PropTypes.number,\n playing: PropTypes.bool,\n backgroundColor: PropTypes.string,\n progressColor: PropTypes.string,\n className: PropTypes.string,\n onSeek: PropTypes.func,\n focusable: PropTypes.bool\n};\nvar defaultProps$1 = {\n currentTime: null,\n duration: null,\n playing: false,\n backgroundColor: 'white',\n progressColor: 'lightblue',\n className: null,\n onSeek: null,\n focusable: true\n};\n\nvar SeekBar = function SeekBar(_ref) {\n var currentTime = _ref.currentTime,\n duration = _ref.duration,\n playing = _ref.playing,\n backgroundColor = _ref.backgroundColor,\n progressColor = _ref.progressColor,\n className = _ref.className,\n onSeek = _ref.onSeek,\n focusable = _ref.focusable;\n var intl = useIntl(); // exact same spring than SeekBar\n\n var _useSpring = useSpring(function () {\n return {\n x: 0,\n config: {\n duration: 0\n }\n };\n }),\n _useSpring2 = _slicedToArray(_useSpring, 2),\n springProps = _useSpring2[0],\n setSpringProps = _useSpring2[1];\n\n useEffect(function () {\n if (currentTime === null || duration === null) {\n return;\n }\n\n var progress = currentTime / duration;\n setSpringProps.start({\n reset: true,\n immediate: !playing,\n from: {\n x: progress\n },\n to: {\n x: playing ? 1 : progress\n },\n config: {\n duration: (duration - currentTime) * 1000\n }\n });\n }, [playing, duration, currentTime, setSpringProps]); // User events\n\n var onSeekClick = useCallback(function (e) {\n if (onSeek !== null && duration !== null) {\n var currentTargetRect = e.currentTarget.getBoundingClientRect();\n var seekProgress = (e.pageX - currentTargetRect.left) / currentTargetRect.width;\n onSeek(seekProgress * duration);\n }\n }, [duration]);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames([styles$1.container, _defineProperty({}, className, className !== null)]),\n style: {\n backgroundColor: backgroundColor\n }\n }, /*#__PURE__*/React.createElement(animated.div, {\n className: styles$1.progress,\n style: {\n transform: springProps.x.to(function (x) {\n return \"scaleX(\".concat(x);\n }),\n backgroundColor: progressColor\n }\n }), /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n className: styles$1.button,\n onClick: onSeekClick,\n title: intl.formatMessage({\n \"id\": \"G1Gyjn\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Seek\"\n }]\n }),\n \"aria-label\": intl.formatMessage({\n \"id\": \"G1Gyjn\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Seek\"\n }]\n }),\n tabIndex: focusable ? '0' : '-1'\n }));\n};\n\nSeekBar.propTypes = propTypes$1;\nSeekBar.defaultProps = defaultProps$1;\n\nvar styles = {\"container\":\"micromag-element-media-controls-container\",\"muteButton\":\"micromag-element-media-controls-muteButton\",\"playPauseButton\":\"micromag-element-media-controls-playPauseButton\",\"toggles\":\"micromag-element-media-controls-toggles\",\"seekBar\":\"micromag-element-media-controls-seekBar\",\"icon\":\"micromag-element-media-controls-icon\",\"playing\":\"micromag-element-media-controls-playing\",\"muted\":\"micromag-element-media-controls-muted\",\"withPlayPause\":\"micromag-element-media-controls-withPlayPause\"};\n\nvar propTypes = {\n playing: PropTypes.bool,\n muted: PropTypes.bool,\n currentTime: PropTypes.number,\n duration: PropTypes.number,\n onTogglePlay: PropTypes.func,\n onToggleMute: PropTypes.func,\n onSeek: PropTypes.func,\n withSeekBar: PropTypes.bool,\n withPlayPause: PropTypes.bool,\n className: PropTypes.string,\n focusable: PropTypes.bool\n};\nvar defaultProps = {\n playing: false,\n muted: false,\n currentTime: 0,\n duration: 0,\n onTogglePlay: null,\n onToggleMute: null,\n onSeek: null,\n withSeekBar: false,\n withPlayPause: false,\n className: null,\n focusable: true\n};\n\nvar MediaControls = function MediaControls(_ref) {\n var _ref2;\n\n var playing = _ref.playing,\n muted = _ref.muted,\n currentTime = _ref.currentTime,\n duration = _ref.duration,\n onTogglePlay = _ref.onTogglePlay,\n onToggleMute = _ref.onToggleMute,\n onSeek = _ref.onSeek,\n withSeekBar = _ref.withSeekBar,\n withPlayPause = _ref.withPlayPause,\n className = _ref.className,\n focusable = _ref.focusable;\n var intl = useIntl();\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames([styles.container, (_ref2 = {}, _defineProperty(_ref2, className, className !== null), _defineProperty(_ref2, styles.playing, playing), _defineProperty(_ref2, styles.muted, muted), _defineProperty(_ref2, styles.withPlayPause, withPlayPause), _ref2)])\n }, withSeekBar ? /*#__PURE__*/React.createElement(SeekBar, {\n className: styles.seekBar,\n currentTime: currentTime,\n duration: duration,\n playing: playing,\n onSeek: onSeek,\n focusable: focusable\n }) : null, /*#__PURE__*/React.createElement(\"div\", {\n className: styles.toggles\n }, /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n className: styles.playPauseButton,\n onClick: onTogglePlay,\n title: intl.formatMessage({\n \"id\": \"ahSpiH\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Play\"\n }]\n }),\n \"aria-label\": intl.formatMessage({\n \"id\": \"ahSpiH\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Play\"\n }]\n }),\n tabIndex: focusable ? '0' : '-1'\n }, /*#__PURE__*/React.createElement(FontAwesomeIcon, {\n className: styles.icon,\n icon: playing ? faPause : faPlay\n })), /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n className: styles.muteButton,\n onClick: onToggleMute,\n title: intl.formatMessage({\n \"id\": \"vzg8Es\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Mute\"\n }]\n }),\n \"aria-label\": intl.formatMessage({\n \"id\": \"vzg8Es\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Mute\"\n }]\n }),\n tabIndex: focusable ? '0' : '-1'\n }, /*#__PURE__*/React.createElement(FontAwesomeIcon, {\n className: styles.icon,\n icon: faVolumeUp\n }))));\n};\n\nMediaControls.propTypes = propTypes;\nMediaControls.defaultProps = defaultProps;\n\nexport { SeekBar, MediaControls as default };\n","import _defineProperty from '@babel/runtime/helpers/defineProperty';\nimport _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';\nimport React, { useMemo, useEffect } from 'react';\nimport PropTypes$1 from 'prop-types';\nimport classNames from 'classnames';\nimport { PropTypes } from '@micromag/core';\nimport { useUserInteracted } from '@micromag/core/contexts';\nimport { useMediaApi } from '@micromag/core/hooks';\nimport { getMediaFilesAsArray } from '@micromag/core/utils';\n\nvar styles = {\"container\":\"micromag-element-video-container\",\"withSize\":\"micromag-element-video-withSize\",\"video\":\"micromag-element-video-video\"};\n\nvar _excluded = [\"ref\"];\nvar propTypes = {\n media: PropTypes.videoMedia,\n width: PropTypes$1.number,\n height: PropTypes$1.number,\n apiRef: PropTypes$1.oneOfType([PropTypes$1.func, PropTypes$1.shape({\n current: PropTypes$1.any\n })]),\n initialMuted: PropTypes$1.oneOf(['auto', true, false]),\n autoPlay: PropTypes$1.bool,\n loop: PropTypes$1.bool,\n playsInline: PropTypes$1.bool,\n preload: PropTypes$1.string,\n withoutCors: PropTypes$1.bool,\n className: PropTypes$1.string,\n onReady: PropTypes$1.func,\n onPlay: PropTypes$1.func,\n onPause: PropTypes$1.func,\n onEnded: PropTypes$1.func,\n onSeeked: PropTypes$1.func,\n onTimeUpdate: PropTypes$1.func,\n onProgressStep: PropTypes$1.func,\n onDurationChanged: PropTypes$1.func,\n onVolumeChanged: PropTypes$1.func,\n focusable: PropTypes$1.bool,\n supportedMimes: PropTypes$1.arrayOf(PropTypes$1.string) // onPosterLoaded: PropTypes.func,\n\n};\nvar defaultProps = {\n media: null,\n width: null,\n height: null,\n apiRef: null,\n initialMuted: 'auto',\n autoPlay: false,\n loop: false,\n playsInline: true,\n preload: 'auto',\n withoutCors: false,\n className: null,\n onReady: null,\n onPlay: null,\n onPause: null,\n onEnded: null,\n onSeeked: null,\n onTimeUpdate: null,\n onProgressStep: null,\n onDurationChanged: null,\n onVolumeChanged: null,\n focusable: true,\n supportedMimes: ['video/mp4', 'video/webm', 'video/ogg'] // onPosterLoaded: null,\n\n};\n\nvar Video = function Video(_ref) {\n var _ref6;\n\n var media = _ref.media,\n width = _ref.width,\n height = _ref.height,\n apiRef = _ref.apiRef,\n initialMuted = _ref.initialMuted,\n autoPlay = _ref.autoPlay,\n loop = _ref.loop,\n playsInline = _ref.playsInline,\n preload = _ref.preload,\n withoutCors = _ref.withoutCors,\n className = _ref.className,\n onReady = _ref.onReady,\n onPlay = _ref.onPlay,\n onPause = _ref.onPause,\n onEnded = _ref.onEnded,\n onSeeked = _ref.onSeeked,\n onTimeUpdate = _ref.onTimeUpdate,\n onProgressStep = _ref.onProgressStep,\n onDurationChanged = _ref.onDurationChanged,\n onVolumeChanged = _ref.onVolumeChanged,\n focusable = _ref.focusable,\n supportedMimes = _ref.supportedMimes;\n\n var _ref2 = media || {},\n _ref2$url = _ref2.url,\n mediaUrl = _ref2$url === void 0 ? null : _ref2$url,\n _ref2$files = _ref2.files,\n files = _ref2$files === void 0 ? null : _ref2$files,\n _ref2$metadata = _ref2.metadata,\n metadata = _ref2$metadata === void 0 ? null : _ref2$metadata;\n\n var _ref3 = metadata || {},\n _ref3$description = _ref3.description,\n description = _ref3$description === void 0 ? null : _ref3$description,\n _ref3$mime = _ref3.mime,\n mediaMime = _ref3$mime === void 0 ? null : _ref3$mime;\n\n var filesArray = useMemo(function () {\n return getMediaFilesAsArray(files);\n }, [files]); // Get source files with supported mimes\n\n var sourceFiles = useMemo(function () {\n if (filesArray.length === 0) {\n return null;\n }\n\n var supportVideo = document.createElement('video');\n var finalSupportedMimes = supportedMimes.filter(function (mime) {\n return supportVideo.canPlayType(mime) !== '';\n });\n return finalSupportedMimes.length > 0 ? filesArray.filter(function (file) {\n var _file$mime = file.mime,\n mime = _file$mime === void 0 ? \"video/\".concat(file.id === 'h264' ? 'mp4' : file.id) : _file$mime;\n return finalSupportedMimes.indexOf(mime) !== -1;\n }, null) : null;\n }, [filesArray, supportedMimes]); // @NOTE: Media is an animated image and doesn't have source files in video formats\n\n var _ref4 = filesArray.find(function (_ref5) {\n var handle = _ref5.handle;\n return handle === 'original';\n }) || {},\n _ref4$type = _ref4.type,\n originalType = _ref4$type === void 0 ? null : _ref4$type,\n _ref4$mime = _ref4.mime,\n originalMime = _ref4$mime === void 0 ? mediaMime : _ref4$mime;\n\n var originalFileIsImage = originalType === 'image' || originalMime !== null && originalMime.indexOf('image/') === 0;\n var isImageWithoutSourceFile = originalFileIsImage && (sourceFiles === null || sourceFiles.length === 0);\n var userInteracted = useUserInteracted();\n var finalInitialMuted = initialMuted === true || initialMuted === 'auto' && autoPlay && !userInteracted;\n\n var _useMediaApi = useMediaApi({\n url: mediaUrl,\n initialMuted: finalInitialMuted,\n onPlay: onPlay,\n onPause: onPause,\n onEnded: onEnded,\n onSeeked: onSeeked,\n onTimeUpdate: onTimeUpdate,\n onProgressStep: onProgressStep,\n onDurationChanged: onDurationChanged,\n onVolumeChanged: onVolumeChanged\n }),\n ref = _useMediaApi.ref,\n api = _objectWithoutProperties(_useMediaApi, _excluded);\n\n if (apiRef !== null) {\n apiRef.current = api;\n apiRef.current.mediaRef = ref;\n }\n\n var playing = api.playing,\n muted = api.muted,\n dataReady = api.dataReady,\n play = api.play,\n pause = api.pause,\n unMute = api.unMute;\n useEffect(function () {\n if (dataReady && onReady !== null) {\n onReady();\n }\n }, [dataReady, onReady]);\n var withSize = width !== null && height !== null; // const { thumbnail_url: thumbnailUrl = null } = media || {};\n // useEffect(() => {\n // if (thumbnailUrl !== null) {\n // const img = new Image();\n // img.src = thumbnailUrl;\n // img.onload = () => {\n // if (onPosterLoaded) {\n // onPosterLoaded();\n // }\n // };\n // }\n // }, [thumbnailUrl]);\n\n useEffect(function () {\n if (autoPlay) {\n play();\n\n if (initialMuted === 'auto' && muted && userInteracted) {\n unMute();\n }\n } else {\n pause();\n }\n }, [autoPlay]);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames([styles.container, (_ref6 = {}, _defineProperty(_ref6, className, className !== null), _defineProperty(_ref6, styles.paused, !playing), _defineProperty(_ref6, styles.withSize, withSize), _ref6)]),\n style: withSize ? {\n width: width,\n height: height\n } : null\n }, isImageWithoutSourceFile ? /*#__PURE__*/React.createElement(\"img\", {\n src: mediaUrl,\n alt: description,\n className: styles.video\n }) : /*#__PURE__*/React.createElement(\"video\", {\n key: mediaUrl,\n ref: ref,\n src: sourceFiles === null ? mediaUrl : null,\n autoPlay: autoPlay,\n loop: loop,\n muted: muted // poster={thumbnailUrl}\n ,\n preload: preload,\n playsInline: playsInline,\n crossOrigin: withoutCors ? 'anonymous' : null,\n tabIndex: focusable ? '0' : '-1',\n className: styles.video\n }, (sourceFiles || []).map(function (_ref7) {\n var sourceUrl = _ref7.url,\n sourceMime = _ref7.mime;\n return /*#__PURE__*/React.createElement(\"source\", {\n key: \"\".concat(sourceUrl, \"-\").concat(sourceMime),\n src: sourceUrl,\n type: sourceMime\n });\n })));\n};\n\nVideo.propTypes = propTypes;\nVideo.defaultProps = defaultProps;\nvar Video$1 = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(Video, Object.assign({\n apiRef: ref\n }, props));\n});\n\nexport { Video$1 as default };\n","import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';\nimport _defineProperty from '@babel/runtime/helpers/defineProperty';\nimport _objectSpread from '@babel/runtime/helpers/objectSpread2';\nimport React, { useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { PropTypes as PropTypes$1 } from '@micromag/core';\nimport { getStyleFromColor, getOptimalImageUrl, getLayersFromBackground } from '@micromag/core/utils';\nimport Video from '@micromag/element-video';\nimport { getSizeWithinBounds } from '@folklore/size';\n\nvar styles = {\"container\":\"micromag-element-background-container\",\"layer\":\"micromag-element-background-layer\",\"layers\":\"micromag-element-background-layers\",\"video\":\"micromag-element-background-video\",\"videoContainer\":\"micromag-element-background-videoContainer\",\"right\":\"micromag-element-background-right\",\"background\":\"micromag-element-background-background\",\"bottom\":\"micromag-element-background-bottom\"};\n\nvar propTypes$1 = {\n width: PropTypes.number,\n height: PropTypes.number,\n fit: PropTypes.oneOf(['contain', 'cover']),\n horizontalAlign: PropTypes.string,\n verticalAlign: PropTypes.string,\n repeat: PropTypes.bool,\n color: PropTypes$1.color,\n media: PropTypes.oneOfType([PropTypes$1.imageMedia, PropTypes$1.videoMedia]),\n className: PropTypes.string,\n playing: PropTypes.bool,\n children: PropTypes.node\n};\nvar defaultProps$1 = {\n width: null,\n height: null,\n fit: null,\n horizontalAlign: 'center',\n verticalAlign: 'center',\n repeat: false,\n color: null,\n media: null,\n className: null,\n playing: false,\n children: null\n};\n\nvar Background = function Background(_ref) {\n var width = _ref.width,\n height = _ref.height,\n fit = _ref.fit,\n horizontalAlign = _ref.horizontalAlign,\n verticalAlign = _ref.verticalAlign,\n repeat = _ref.repeat,\n color = _ref.color,\n media = _ref.media,\n className = _ref.className,\n playing = _ref.playing,\n children = _ref.children;\n\n var _ref2 = media || {},\n _ref2$type = _ref2.type,\n mediaType = _ref2$type === void 0 ? null : _ref2$type,\n _ref2$metadata = _ref2.metadata,\n mediaMetadata = _ref2$metadata === void 0 ? null : _ref2$metadata,\n mediaThumbnailUrl = _ref2.thumbnail_url;\n\n var _ref3 = mediaMetadata || {},\n _ref3$width = _ref3.width,\n mediaWidth = _ref3$width === void 0 ? 0 : _ref3$width,\n _ref3$height = _ref3.height,\n mediaHeight = _ref3$height === void 0 ? 0 : _ref3$height;\n\n var isVideo = mediaType === 'video';\n var isImage = mediaType === 'image'; // color\n\n var containerStyle = _objectSpread({\n width: width,\n height: height\n }, getStyleFromColor(color)); // image\n\n\n if (media !== null && (isImage || isVideo && !playing)) {\n var finalUrl = getOptimalImageUrl(isVideo ? {\n url: mediaThumbnailUrl\n } : media, width, height);\n containerStyle.backgroundImage = finalUrl !== null ? \"url(\\\"\".concat(finalUrl, \"\\\")\") : null;\n containerStyle.backgroundRepeat = repeat ? 'repeat' : 'no-repeat';\n containerStyle.backgroundPosition = [horizontalAlign, verticalAlign].join(' ');\n\n if (fit !== null) {\n containerStyle.backgroundSize = fit;\n } else if (!repeat) {\n containerStyle.backgroundSize = 'cover';\n }\n } // video\n\n\n var videoContainerStyle = {};\n\n if (isVideo && playing) {\n if (width > 0 && height > 0) {\n var _getSizeWithinBounds = getSizeWithinBounds(mediaWidth, mediaHeight, width, height, {\n cover: fit === 'cover' || fit === null\n }),\n _getSizeWithinBounds$ = _getSizeWithinBounds.width,\n videoWidth = _getSizeWithinBounds$ === void 0 ? 0 : _getSizeWithinBounds$,\n _getSizeWithinBounds$2 = _getSizeWithinBounds.height,\n videoHeight = _getSizeWithinBounds$2 === void 0 ? 0 : _getSizeWithinBounds$2;\n\n videoContainerStyle.width = videoWidth;\n videoContainerStyle.height = videoHeight;\n videoContainerStyle.left = -(videoWidth - width) / 2;\n videoContainerStyle.top = -(videoHeight - height) / 2;\n } else {\n videoContainerStyle.objectFit = 'cover';\n }\n }\n\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames([styles.container, _defineProperty({}, className, className !== null)]),\n style: containerStyle\n }, isVideo && playing ? /*#__PURE__*/React.createElement(\"div\", {\n className: styles.videoContainer,\n style: videoContainerStyle\n }, /*#__PURE__*/React.createElement(Video, {\n className: styles.video,\n media: media,\n autoPlay: playing,\n initialMuted: true,\n loop: true\n })) : null, /*#__PURE__*/React.createElement(\"div\", {\n className: styles.content\n }, children));\n};\n\nBackground.propTypes = propTypes$1;\nBackground.defaultProps = defaultProps$1;\n\nvar _excluded = [\"horizontalAlign\", \"verticalAlign\"];\nvar propTypes = {\n width: PropTypes.number,\n height: PropTypes.number,\n background: PropTypes.oneOfType([PropTypes$1.backgroundElement, PropTypes.arrayOf(PropTypes$1.backgroundElement)]),\n playing: PropTypes.bool,\n children: PropTypes.node,\n className: PropTypes.string\n};\nvar defaultProps = {\n width: null,\n height: null,\n background: [],\n playing: false,\n children: null,\n className: null\n};\n\nvar BackgroundLayers = function BackgroundLayers(_ref) {\n var width = _ref.width,\n height = _ref.height,\n background = _ref.background,\n playing = _ref.playing,\n children = _ref.children,\n className = _ref.className;\n var hasSize = width > 0 && height > 0;\n var layers = useMemo(function () {\n return getLayersFromBackground(background);\n }, [background]);\n var maxZIndex = layers.length; // color\n\n var containerStyle = _objectSpread({}, hasSize ? {\n width: width,\n height: height\n } : null);\n\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames([styles.container, _defineProperty({}, className, className !== null)]),\n style: containerStyle\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: styles.layers\n }, layers.map(function (_ref3, index) {\n var _ref4;\n\n var _ref3$horizontalAlign = _ref3.horizontalAlign,\n horizontalAlign = _ref3$horizontalAlign === void 0 ? undefined : _ref3$horizontalAlign,\n _ref3$verticalAlign = _ref3.verticalAlign,\n verticalAlign = _ref3$verticalAlign === void 0 ? undefined : _ref3$verticalAlign,\n layer = _objectWithoutProperties(_ref3, _excluded);\n\n return /*#__PURE__*/React.createElement(\"div\", {\n key: \"background-\".concat(index),\n className: classNames([styles.layer, (_ref4 = {}, _defineProperty(_ref4, styles.bottom, verticalAlign === 'bottom'), _defineProperty(_ref4, styles.right, horizontalAlign === 'right'), _ref4)]),\n style: {\n zIndex: maxZIndex - index\n }\n }, /*#__PURE__*/React.createElement(Background, Object.assign({\n width: width,\n height: height,\n className: styles.background,\n playing: playing,\n horizontalAlign: horizontalAlign,\n verticalAlign: verticalAlign\n }, layer)));\n })), /*#__PURE__*/React.createElement(\"div\", {\n className: styles.content\n }, children));\n};\n\nBackgroundLayers.propTypes = propTypes;\nBackgroundLayers.defaultProps = defaultProps;\n\nexport { Background, BackgroundLayers, BackgroundLayers as default };\n","import _defineProperty from '@babel/runtime/helpers/defineProperty';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\n\nvar styles = {\"container\":\"micromag-element-container-container\"};\n\nvar propTypes = {\n width: PropTypes.number.isRequired,\n height: PropTypes.number.isRequired,\n className: PropTypes.string,\n children: PropTypes.node\n};\nvar defaultProps = {\n className: null,\n children: null\n};\n\nvar Container = function Container(_ref) {\n var width = _ref.width,\n height = _ref.height,\n className = _ref.className,\n children = _ref.children;\n var hasSize = width > 0 && height > 0;\n var containerStyle = hasSize ? {\n width: width,\n height: height\n } : null;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames([styles.container, _defineProperty({}, className, className !== null)]),\n style: containerStyle\n }, children);\n};\n\nContainer.propTypes = propTypes;\nContainer.defaultProps = defaultProps;\n\nexport { Container as default };\n","import _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';\nimport _defineProperty from '@babel/runtime/helpers/defineProperty';\nimport React, { useContext, useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { PropTypes as PropTypes$1 } from '@micromag/core';\nimport isString from 'lodash/isString';\nimport isNumber from 'lodash/isNumber';\n\n/* eslint-disable react/jsx-props-no-spreading */\nvar StackContext = /*#__PURE__*/React.createContext({\n direction: 'horizontal'\n});\nvar useStack = function useStack() {\n return useContext(StackContext);\n};\nvar useStackDirection = function useStackDirection() {\n var _useContext = useContext(StackContext),\n direction = _useContext.direction;\n\n return direction;\n};\nvar propTypes$4 = {\n children: PropTypes.node.isRequired,\n direction: PropTypes.oneOf(['vertical', 'horizontal'])\n};\nvar defaultProps$4 = {\n direction: 'vertical'\n}; // Note: this is done to avoid excessive renders on the screens that use the context\n\nvar StackProvider = function StackProvider(_ref) {\n var direction = _ref.direction,\n children = _ref.children;\n var value = useMemo(function () {\n return {\n direction: direction\n };\n }, [direction]);\n return /*#__PURE__*/React.createElement(StackContext.Provider, {\n value: value\n }, children);\n};\nStackProvider.propTypes = propTypes$4;\nStackProvider.defaultProps = defaultProps$4;\n\nvar styles$1 = {\"container\":\"micromag-element-stack-spacer-container\",\"hasSize\":\"micromag-element-stack-spacer-hasSize\"};\n\nvar propTypes$3 = {\n size: PropTypes.number,\n minSize: PropTypes.number,\n maxSize: PropTypes.number,\n className: PropTypes.string\n};\nvar defaultProps$3 = {\n size: null,\n minSize: null,\n maxSize: null,\n className: null\n};\n\nvar Spacer = function Spacer(_ref) {\n var _ref2;\n\n var size = _ref.size,\n minSize = _ref.minSize,\n maxSize = _ref.maxSize,\n className = _ref.className;\n var direction = useStackDirection();\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames([styles$1.container, (_ref2 = {}, _defineProperty(_ref2, styles$1.hasSize, size !== null), _defineProperty(_ref2, className, className !== null), _ref2)]),\n style: {\n width: direction === 'horizontal' ? size : null,\n minWidth: direction === 'horizontal' ? minSize : null,\n maxWidth: direction === 'horizontal' ? maxSize : null,\n height: direction === 'vertical' ? size : null,\n minHeight: direction === 'vertical' ? minSize : null,\n maxHeight: direction === 'vertical' ? maxSize : null\n }\n });\n};\n\nSpacer.propTypes = propTypes$3;\nSpacer.defaultProps = defaultProps$3;\nSpacer.withoutTransitionsWrapper = true;\n\nvar styles = {\"container\":\"micromag-element-stack-container\"};\n\nvar propTypes$2 = {\n direction: PropTypes$1.stackDirection,\n align: PropTypes$1.stackAlign,\n spacing: PropTypes$1.stackSpacing,\n reverse: PropTypes.bool,\n size: PropTypes.number,\n minSize: PropTypes.number,\n maxSize: PropTypes.number,\n className: PropTypes.string,\n children: PropTypes.node\n};\nvar defaultProps$2 = {\n direction: 'horizontal',\n align: 'center',\n spacing: null,\n reverse: false,\n size: null,\n minSize: null,\n maxSize: null,\n className: null,\n children: null\n};\n\nvar Stack = function Stack(_ref) {\n var direction = _ref.direction,\n align = _ref.align,\n spacing = _ref.spacing,\n reverse = _ref.reverse,\n size = _ref.size,\n minSize = _ref.minSize,\n maxSize = _ref.maxSize,\n className = _ref.className,\n children = _ref.children;\n var flexDirection = (direction === 'vertical' ? 'column' : 'row') + (reverse ? '-reverse' : '');\n var alignItems = align === 'center' ? align : \"flex-\".concat(align);\n var justifyContent = isString(spacing) ? \"space-\".concat(spacing) : null;\n var space = isNumber(spacing) ? spacing : null;\n var lastIndex = children !== null && children.length ? children.length - 1 : null;\n return /*#__PURE__*/React.createElement(StackProvider, {\n direction: direction\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: classNames([styles.container, _defineProperty({}, className, className !== null)]),\n style: {\n flexDirection: flexDirection,\n alignItems: alignItems,\n justifyContent: justifyContent,\n width: direction === 'horizontal' ? size : null,\n minWidth: direction === 'horizontal' ? minSize : null,\n maxWidth: direction === 'horizontal' ? maxSize : null,\n height: direction === 'vertical' ? size : null,\n minHeight: direction === 'vertical' ? minSize : null,\n maxHeight: direction === 'vertical' ? maxSize : null\n }\n }, React.Children.toArray(children).reduce(function (allChildren, child, index) {\n return child.type !== Spacer && space !== null && index < lastIndex ? [].concat(_toConsumableArray(allChildren), [child, /*#__PURE__*/React.createElement(Spacer, {\n key: \"spacer-\".concat(index),\n size: space\n })]) : [].concat(_toConsumableArray(allChildren), [child]);\n }, [])));\n};\n\nStack.propTypes = propTypes$2;\nStack.defaultProps = defaultProps$2;\n\n/* eslint-disable react/jsx-props-no-spreading */\nvar propTypes$1 = {};\nvar defaultProps$1 = {};\n\nvar HStack = function HStack(props) {\n return /*#__PURE__*/React.createElement(Stack, Object.assign({}, props, {\n direction: \"horizontal\"\n }));\n};\n\nHStack.propTypes = propTypes$1;\nHStack.defaultProps = defaultProps$1;\n\n/* eslint-disable react/jsx-props-no-spreading */\nvar propTypes = {};\nvar defaultProps = {};\n\nvar VStack = function VStack(props) {\n return /*#__PURE__*/React.createElement(Stack, Object.assign({}, props, {\n direction: \"vertical\"\n }));\n};\n\nVStack.propTypes = propTypes;\nVStack.defaultProps = defaultProps;\n\nexport { HStack, Spacer, StackProvider, VStack, Stack as default, useStack, useStackDirection };\n","import _defineProperty from '@babel/runtime/helpers/defineProperty';\nimport _objectSpread from '@babel/runtime/helpers/objectSpread2';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { StackProvider } from '@micromag/element-stack';\nexport { Spacer } from '@micromag/element-stack';\n\nvar styles = {\"container\":\"micromag-element-layout-container\",\"fullscreen\":\"micromag-element-layout-fullscreen\",\"horizontal\":\"micromag-element-layout-horizontal\"};\n\nvar propTypes = {\n width: PropTypes.number,\n height: PropTypes.number,\n horizontalAlign: PropTypes.oneOf(['left', 'center', 'right']),\n verticalAlign: PropTypes.oneOf(['top', 'middle', 'bottom']),\n distribution: PropTypes.oneOf(['between', 'around', null]),\n fullscreen: PropTypes.bool,\n className: PropTypes.string,\n children: PropTypes.node,\n style: PropTypes.object // eslint-disable-line\n\n};\nvar defaultProps = {\n width: null,\n height: null,\n horizontalAlign: 'left',\n verticalAlign: 'top',\n distribution: null,\n fullscreen: false,\n className: null,\n children: null,\n style: null\n};\n\nvar Layout = function Layout(_ref) {\n var _ref2;\n\n var width = _ref.width,\n height = _ref.height,\n horizontalAlign = _ref.horizontalAlign,\n verticalAlign = _ref.verticalAlign,\n distribution = _ref.distribution,\n fullscreen = _ref.fullscreen,\n className = _ref.className,\n children = _ref.children,\n style = _ref.style;\n var justifyContent = null;\n\n if (distribution !== null) {\n justifyContent = \"space-\".concat(distribution);\n } else if (verticalAlign === 'middle') {\n justifyContent = 'center';\n } else if (verticalAlign === 'bottom') {\n justifyContent = 'flex-end';\n }\n\n var alignItems = null;\n\n if (horizontalAlign === 'center') {\n alignItems = 'center';\n } else if (horizontalAlign === 'right') {\n alignItems = 'flex-end';\n }\n\n var finalStyle = _objectSpread({\n width: width,\n height: height,\n justifyContent: justifyContent,\n alignItems: alignItems\n }, style);\n\n return /*#__PURE__*/React.createElement(StackProvider, {\n direction: \"vertical\"\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: classNames([styles.container, (_ref2 = {}, _defineProperty(_ref2, styles.fullscreen, fullscreen), _defineProperty(_ref2, className, className !== null), _ref2)]),\n style: finalStyle\n }, children));\n};\n\nLayout.propTypes = propTypes;\nLayout.defaultProps = defaultProps;\n\nexport { Layout as default };\n","import _defineProperty from '@babel/runtime/helpers/defineProperty';\nimport _objectSpread from '@babel/runtime/helpers/objectSpread2';\nimport { PropTypes as PropTypes$1 } from '@micromag/core';\nimport { LinkStyle, HighlightStyle } from '@micromag/core/components';\nimport { getStyleFromLink, getStyleFromHighlight, getStyleFromText, getStyleFromMargin } from '@micromag/core/utils';\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\nimport React, { useMemo } from 'react';\nimport { v1 } from 'uuid';\n\nvar styles = {\"container\":\"micromag-element-text-container\",\"showEmpty\":\"micromag-element-text-showEmpty\",\"withLineClamp\":\"micromag-element-text-withLineClamp\"};\n\nvar propTypes = {\n body: PropTypes.string,\n textStyle: PropTypes$1.textStyle,\n linksStyle: PropTypes$1.textStyle,\n margin: PropTypes$1.margin,\n lineClamp: PropTypes.number,\n showEmpty: PropTypes.bool,\n className: PropTypes.string,\n emptyClassName: PropTypes.string,\n inline: PropTypes.bool\n};\nvar defaultProps = {\n body: null,\n textStyle: null,\n linksStyle: null,\n margin: null,\n lineClamp: null,\n showEmpty: false,\n className: null,\n emptyClassName: null,\n inline: false\n};\n\nvar Text = function Text(_ref) {\n var _ref3;\n\n var body = _ref.body,\n textStyle = _ref.textStyle,\n linksStyle = _ref.linksStyle,\n margin = _ref.margin,\n lineClamp = _ref.lineClamp,\n showEmpty = _ref.showEmpty,\n className = _ref.className,\n emptyClassName = _ref.emptyClassName,\n inline = _ref.inline;\n\n var _ref2 = textStyle || {},\n _ref2$link = _ref2.link,\n linkStyle = _ref2$link === void 0 ? null : _ref2$link,\n _ref2$highlight = _ref2.highlight,\n highlightStyle = _ref2$highlight === void 0 ? null : _ref2$highlight;\n\n var finalStyle = {};\n var finalLinkStyle = linkStyle !== null ? getStyleFromLink(linkStyle) : null;\n var finalHighlightStyle = highlightStyle !== null ? getStyleFromHighlight(highlightStyle) : null;\n\n if (textStyle !== null) {\n finalStyle = _objectSpread(_objectSpread({}, finalStyle), getStyleFromText(textStyle));\n }\n\n if (lineClamp !== null) {\n finalStyle.WebkitLineClamp = lineClamp;\n }\n\n if (margin !== null) {\n finalStyle = _objectSpread(_objectSpread({}, finalStyle), getStyleFromMargin(margin));\n }\n\n if (linksStyle !== null) {\n finalLinkStyle = _objectSpread(_objectSpread({}, finalLinkStyle), getStyleFromText(linksStyle));\n }\n\n var needsId = finalLinkStyle !== null || highlightStyle !== null;\n var id = useMemo(function () {\n return needsId ? \"text-component-\".concat(v1()) : null;\n }, [needsId]);\n var tagProps = {\n id: id,\n className: classNames([styles.container, (_ref3 = {}, _defineProperty(_ref3, styles.withLineClamp, lineClamp !== null), _defineProperty(_ref3, styles.showEmpty, showEmpty), _defineProperty(_ref3, emptyClassName, showEmpty && emptyClassName !== null), _defineProperty(_ref3, className, className !== null), _ref3)]),\n style: finalStyle,\n dangerouslySetInnerHTML: {\n __html: body\n }\n };\n var Tag = \"\".concat(inline ? 'span' : 'div');\n return /*#__PURE__*/React.createElement(React.Fragment, null, finalLinkStyle !== null ? /*#__PURE__*/React.createElement(LinkStyle, {\n selector: \"#\".concat(id),\n style: finalLinkStyle\n }) : null, finalHighlightStyle !== null ? /*#__PURE__*/React.createElement(HighlightStyle, {\n selector: \"#\".concat(id),\n style: finalHighlightStyle\n }) : null, /*#__PURE__*/React.createElement(Tag, tagProps));\n};\n\nText.propTypes = propTypes;\nText.defaultProps = defaultProps;\n\nexport { Text as default };\n","import _defineProperty from '@babel/runtime/helpers/defineProperty';\nimport _slicedToArray from '@babel/runtime/helpers/slicedToArray';\nimport _objectSpread from '@babel/runtime/helpers/objectSpread2';\nimport React, { useMemo, useRef, useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { useGesture } from 'react-use-gesture';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faChevronUp } from '@fortawesome/free-solid-svg-icons';\nimport { PropTypes as PropTypes$1 } from '@micromag/core';\nimport { isValidUrl, getStyleFromColor, isIos } from '@micromag/core/utils';\nimport { Button } from '@micromag/core/components';\nimport Text from '@micromag/element-text';\n\nvar styles = {\"container\":\"micromag-element-call-to-action-container\",\"arrow\":\"micromag-element-call-to-action-arrow\",\"upAndDown\":\"micromag-element-call-to-action-upAndDown\",\"label\":\"micromag-element-call-to-action-label\",\"button\":\"micromag-element-call-to-action-button\",\"selfTargetLink\":\"micromag-element-call-to-action-selfTargetLink\",\"leavingFrame\":\"micromag-element-call-to-action-leavingFrame\",\"appear\":\"micromag-element-call-to-action-appear\",\"animationDisabled\":\"micromag-element-call-to-action-animationDisabled\",\"invalidUrl\":\"micromag-element-call-to-action-invalidUrl\",\"disabled\":\"micromag-element-call-to-action-disabled\"};\n\nvar propTypes = {\n elRef: PropTypes.oneOfType([PropTypes.func, PropTypes.shape({\n current: PropTypes.any // eslint-disable-line\n\n })]),\n disabled: PropTypes.bool,\n animationDisabled: PropTypes.bool,\n callToAction: PropTypes$1.callToAction,\n dragAmount: PropTypes.number,\n className: PropTypes.string,\n focusable: PropTypes.bool\n};\nvar defaultProps = {\n elRef: null,\n disabled: false,\n animationDisabled: false,\n callToAction: null,\n dragAmount: 50,\n className: null,\n focusable: true\n};\n\nvar CallToAction = function CallToAction(_ref) {\n var _ref6;\n\n var elRef = _ref.elRef,\n disabled = _ref.disabled,\n animationDisabled = _ref.animationDisabled,\n callToAction = _ref.callToAction,\n dragAmount = _ref.dragAmount,\n className = _ref.className,\n focusable = _ref.focusable;\n\n var _ref2 = callToAction || {},\n _ref2$active = _ref2.active,\n active = _ref2$active === void 0 ? false : _ref2$active,\n _ref2$type = _ref2.type,\n type = _ref2$type === void 0 ? null : _ref2$type,\n _ref2$url = _ref2.url,\n url = _ref2$url === void 0 ? null : _ref2$url,\n _ref2$label = _ref2.label,\n label = _ref2$label === void 0 ? null : _ref2$label;\n\n var swipeUpEnabled = type === null || type === 'swipe-up';\n var validUrl = useMemo(function () {\n return isValidUrl(url);\n }, [url]);\n var buttonRef = useRef(null);\n\n var _ref3 = label || {},\n _ref3$textStyle = _ref3.textStyle;\n\n _ref3$textStyle = _ref3$textStyle === void 0 ? {} : _ref3$textStyle;\n var _ref3$textStyle$fontS = _ref3$textStyle.fontSize,\n fontSize = _ref3$textStyle$fontS === void 0 ? null : _ref3$textStyle$fontS,\n _ref3$textStyle$color = _ref3$textStyle.color,\n color = _ref3$textStyle$color === void 0 ? null : _ref3$textStyle$color;\n var arrowStyle = useMemo(function () {\n return _objectSpread(_objectSpread({}, {\n fontSize: fontSize\n }), getStyleFromColor(color, 'color'));\n }, [fontSize, color]); // MobileSafari blocks popup no matter what\n\n var selfTargetLinkRef = useRef(null);\n\n var _useState = useState(false),\n _useState2 = _slicedToArray(_useState, 2),\n leaving = _useState2[0],\n setLeaving = _useState2[1];\n\n var bind = useGesture({\n onDrag: function onDrag(_ref4) {\n var event = _ref4.event;\n // fix firefox https://use-gesture.netlify.app/docs/faq/#why-cant-i-properly-drag-an-image-or-a-link\n event.preventDefault();\n },\n onDragEnd: function onDragEnd(_ref5) {\n var _ref5$movement = _slicedToArray(_ref5.movement, 2),\n my = _ref5$movement[1];\n\n if (my < -dragAmount) {\n if (isIos()) {\n selfTargetLinkRef.current.click();\n setLeaving(true);\n } else {\n buttonRef.current.click();\n }\n }\n }\n });\n useEffect(function () {\n var onPageHide = function onPageHide() {\n setLeaving(false);\n };\n\n window.addEventListener('pagehide', onPageHide);\n return function () {\n window.removeEventListener('pagehide', onPageHide);\n };\n }, [setLeaving]);\n return active ? /*#__PURE__*/React.createElement(\"div\", {\n className: classNames([styles.container, (_ref6 = {}, _defineProperty(_ref6, className, className !== null), _defineProperty(_ref6, styles.disabled, disabled), _defineProperty(_ref6, styles.animationDisabled, animationDisabled), _defineProperty(_ref6, styles.invalidUrl, !validUrl), _ref6)]),\n ref: elRef\n }, leaving ? /*#__PURE__*/React.createElement(\"div\", {\n className: styles.leavingFrame\n }) : null, /*#__PURE__*/React.createElement(\"a\", {\n className: styles.selfTargetLink,\n href: url,\n ref: selfTargetLinkRef,\n tabIndex: focusable ? '0' : '-1'\n }), /*#__PURE__*/React.createElement(Button, Object.assign({\n href: url,\n external: true,\n className: styles.button,\n withoutStyle: true,\n refButton: buttonRef,\n focusable: focusable\n }, swipeUpEnabled && !disabled ? bind() : null), swipeUpEnabled ? /*#__PURE__*/React.createElement(FontAwesomeIcon, {\n className: styles.arrow,\n style: arrowStyle,\n icon: faChevronUp\n }) : null, /*#__PURE__*/React.createElement(\"span\", {\n className: styles.label\n }, /*#__PURE__*/React.createElement(Text, Object.assign({}, label, {\n inline: true\n }))))) : null;\n};\n\nCallToAction.propTypes = propTypes;\nCallToAction.defaultProps = defaultProps;\nvar CallToAction$1 = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(CallToAction, Object.assign({\n elRef: ref\n }, props));\n});\n\nexport { CallToAction$1 as default };\n","import _defineProperty from '@babel/runtime/helpers/defineProperty';\nimport _objectSpread from '@babel/runtime/helpers/objectSpread2';\nimport isString from 'lodash/isString';\nimport isInteger from 'lodash/isInteger';\nimport isNumber from 'lodash/isNumber';\nimport isEmpty from 'lodash/isEmpty';\n\nvar validate = function validate() {\n var content = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var definition = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var validated = content ? Object.keys(content).reduce(function (values, name) {\n var value = content[name] || null; // Find the reference\n\n if (definition && definition.properties) {\n var property = definition.properties.find(function (prop) {\n return prop.name === name;\n }) || null;\n\n if (property !== null) {\n var isValid = true;\n\n switch (property.type) {\n case 'string':\n isValid = isString(value);\n break;\n\n case 'integer':\n isValid = isInteger(value);\n break;\n\n case 'float':\n isValid = isNumber(value);\n break;\n\n default:\n isValid = value !== null;\n break;\n } // Skip the whole thing it cause it aint gonna work\n\n\n if (!isValid && property.required) {\n console.log('VALIDATION ERROR: SKIPPED BECAUSE REQUIRED', content, name); // eslint-disable-line\n\n return null;\n }\n\n if (values !== null && isValid) {\n return _objectSpread(_objectSpread({}, values), {}, _defineProperty({}, name, value));\n }\n\n console.log('VALIDATION ERROR: VALID TYPE', name, content); // eslint-disable-line\n }\n }\n\n return values;\n }, {}) : {};\n return !isEmpty(validated) ? validated : null;\n};\n\nvar stripTags = function stripTags(str) {\n if (!str) {\n return null;\n }\n\n return str.replace(/(<([^>]+)>)/gi, '');\n};\n\nexport { stripTags, validate };\n","import _objectSpread from '@babel/runtime/helpers/objectSpread2';\nimport { validate as validate$1, stripTags } from '@micromag/transforms/utils';\nimport _defineProperty from '@babel/runtime/helpers/defineProperty';\nimport isString from 'lodash/isString';\nimport isInteger from 'lodash/isInteger';\nimport isNumber from 'lodash/isNumber';\nimport isEmpty from 'lodash/isEmpty';\nimport hash from 'object-hash';\n\nvar getArticleComponents = function getArticleComponents(story) {\n var _ref = story || {},\n _ref$title = _ref.title,\n title = _ref$title === void 0 ? null : _ref$title,\n _ref$metadata = _ref.metadata,\n metadata = _ref$metadata === void 0 ? {} : _ref$metadata,\n _ref$components = _ref.components,\n components = _ref$components === void 0 ? [] : _ref$components;\n\n var _ref2 = metadata || {},\n _ref2$description = _ref2.description,\n description = _ref2$description === void 0 ? 'Ma description' : _ref2$description;\n\n var heading1 = title ? {\n role: 'heading1',\n text: title,\n format: 'html'\n } : null;\n var heading2 = description ? {\n role: 'heading2',\n text: description,\n format: 'html'\n } : null;\n var titleScreen = components.reduce(function (comp, next, i) {\n if (comp === null && i < 3) {\n if (next.type.indexOf('title') !== false) {\n return next;\n }\n }\n\n return comp;\n }, null);\n var imageComponent = null;\n\n if (titleScreen !== null) {\n var _ref3 = titleScreen || {},\n _ref3$image = _ref3.image,\n image = _ref3$image === void 0 ? null : _ref3$image,\n _ref3$background = _ref3.background,\n background = _ref3$background === void 0 ? null : _ref3$background;\n\n if (image !== null) {\n imageComponent = {\n role: 'image',\n URL: image.url\n };\n } else if (background !== null && background.image !== null) {\n imageComponent = {\n role: 'image',\n URL: background.image.url\n };\n }\n }\n\n var headerComponents = [imageComponent, heading1, heading2].filter(function (it) {\n return it !== null;\n });\n return {\n components: headerComponents.length > 0 ? [{\n role: 'header',\n components: headerComponents,\n layout: 'header'\n }] : []\n };\n};\n\nvar name$f = \"Format\\\\TextStyle\";\nvar description$f = \"The object for defining the text style (font family, size, color, and so on) that you can apply to ranges of text.\";\nvar version$f = \"1.7+\";\nvar from_class$f = null;\nvar typed$f = null;\nvar url$f = \"https://developer.apple.com/documentation/apple_news/textstyle\";\nvar properties$f = [{\n name: \"backgroundColor\",\n type: \"Color\",\n required: false,\n description: \"The background color for text lines. The value defaults to transparent.\",\n typed: false\n}, {\n name: \"conditional\",\n type: \"array:Format\\\\ConditionalTextStyle\",\n required: false,\n description: \"An array of text style properties that can be applied conditionally, and the conditions that cause them to be applied.\",\n typed: false\n}, {\n name: \"fontFamily\",\n type: \"string\",\n required: false,\n description: \"The font family to use for text rendering, for example Gill Sans. Using a combination of fontFamily, fontWeight, fontWidth and fontStyle you can define the appearance of the text. News automatically selects the appropriate font variant from the available variants in that family.\",\n typed: false\n}, {\n name: \"fontName\",\n type: \"string\",\n required: false,\n description: \"The fontName to refer to an explicit font variant’s PostScript name, such as GillSans-Bold. Alternatively, you can use a combination of fontFamily, fontWeight, fontWidth and/or fontStyle to have News automatically select the appropriate variant depending on the text formatting used.\",\n typed: false\n}, {\n name: \"fontSize\",\n type: \"integer\",\n required: false,\n description: \"The size of the font, in points. By default, the font size will be inherited from a parent component or a default style. As a best practice, try not to go below 16 points for body text. The fontSize may be automatically resized for different device sizes or for iOS devices with Larger Accessibility Sizes enabled.\",\n typed: false\n}, {\n name: \"fontStyle\",\n type: \"enum:string\",\n required: false,\n description: \"The font style to apply for the selected font.\",\n enum_values: [\"normal\", \"italic\", \"oblique\"],\n typed: false\n}, {\n name: \"fontWeight\",\n type: \"enum:integer|string\",\n required: false,\n description: \"The font weight to apply for font selection. In addition to explicit weights (named or numerical), lighter and bolder are available, to set text in a lighter or bolder font as compared to its surrounding text.\",\n enum_values: [100, 200, 300, 400, 500, 600, 700, 800, 900, \"thin\", \"extra-light\", \"extralight\", \"ultra-light\", \"light\", \"regular\", \"normal\", \"book\", \"roman\", \"medium\", \"semi-bold\", \"semibold\", \"demi-bold\", \"demibold\", \"bold\", \"extra-bold\", \"extrabold\", \"ultra-bold\", \"ultrabold\", \"black\", \"heavy\", \"lighter\", \"bolder\"],\n typed: false\n}, {\n name: \"fontWidth\",\n type: \"enum:string\",\n required: false,\n description: \"The font width for font selection (known in CSS as font-stretch). Defines the width characteristics of a font variant between normal, condensed and expanded. Some font families have separate families assigned for different widths (for example, Avenir Next and Avenir Next Condensed), so make sure that the fontFamily you select supports the specified fontWidth.\",\n enum_values: [\"ultra-condensed\", \"extra-condensed\", \"condensed\", \"semi-condensed\", \"normal\", \"semi-expanded\", \"expanded\", \"extra-expanded\", \"ultra-expanded\"],\n typed: false\n}, {\n name: \"orderedListItems\",\n type: \"Format\\\\ListItemStyle\",\n required: false,\n description: \"An object for use with text components with HTML markup. You can create text styles containing an orderedListItems definition to configure how list items inside <ol> tags should be displayed.\",\n typed: false\n}, {\n name: \"strikethrough\",\n type: [\"Format\\\\TextDecoration\", \"boolean\"],\n required: false,\n description: \"The text strikethrough. Set strikethrough to true to use the text color inherited from the textColor property as the strikethrough color, or provide a text decoration definition with a different color. By default strikethrough is omitted (false).\",\n typed: false\n}, {\n name: \"stroke\",\n type: \"Format\\\\TextStrokeStyle\",\n required: false,\n description: \"The stroke style for the text outline. By default, stroke will be omitted.\",\n typed: false\n}, {\n name: \"textColor\",\n type: \"Color\",\n required: false,\n description: \"The text color.\",\n typed: false\n}, {\n name: \"textShadow\",\n type: \"Format\\\\Shadow\",\n required: false,\n description: \"The text shadow for this style.\",\n typed: false\n}, {\n name: \"textTransform\",\n type: \"enum:string\",\n required: false,\n description: \"The transform to apply to the text.\",\n enum_values: [\"uppercase\", \"lowercase\", \"capitalize\", \"none\"],\n typed: false\n}, {\n name: \"tracking\",\n type: \"number\",\n required: false,\n description: \"The amount of tracking (spacing between characters) in text, as a percentage of the fontSize. The actual spacing between letters is determined by combining information from the font and font size.\",\n \"default\": 0,\n typed: false\n}, {\n name: \"underline\",\n type: [\"Format\\\\TextDecoration\", \"boolean\"],\n required: false,\n description: \"The text underlining. This style can be used for links. Set underline to true to use the text color as the underline color, or provide a text decoration with a different color. By default underline is omitted (false).\",\n typed: false\n}, {\n name: \"unorderedListItems\",\n type: \"Format\\\\ListItemStyle\",\n required: false,\n description: \"An object for use with text components with HTML markup. You can create text styles containing an unorderedListItems definition to configure how list items inside <ul> tags should be displayed.\",\n typed: false\n}, {\n name: \"verticalAlignment\",\n type: \"enum:string\",\n required: false,\n description: \"The vertical alignment of the text. You can use this property for superscripts and subscripts.\",\n enum_values: [\"superscript\", \"subscript\", \"baseline\"],\n typed: false\n}];\nvar TextStyleDefinition = {\n name: name$f,\n description: description$f,\n version: version$f,\n from_class: from_class$f,\n \"extends\": null,\n typed: typed$f,\n url: url$f,\n properties: properties$f\n};\n\nvar TextStyle = function TextStyle() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref$fontFamily = _ref.fontFamily,\n fontFamily = _ref$fontFamily === void 0 ? null : _ref$fontFamily,\n _ref$fontSize = _ref.fontSize,\n fontSize = _ref$fontSize === void 0 ? null : _ref$fontSize,\n _ref$lineHeight = _ref.lineHeight,\n lineHeight = _ref$lineHeight === void 0 ? null : _ref$lineHeight,\n _ref$color = _ref.color,\n color = _ref$color === void 0 ? null : _ref$color;\n\n var content = {\n fontFamily: fontFamily,\n fontSize: fontSize,\n lineHeight: lineHeight ? Math.floor(fontSize * lineHeight) : null,\n textColor: color && color.color ? color.color : null\n };\n return validate$1(content, TextStyleDefinition);\n};\n\nvar getArticleTextStyles = function getArticleTextStyles() {\n // const { theme = {} } = story || {};\n // const { textStyle = {} } = theme || {};\n // const { heading1 = {}, text = {} } = textStyle || {};\n // const titleStyles = TextStyle(heading1);\n // const textStyles = TextStyle(text);\n var fontSize = 18;\n var lineHeight = 1.35;\n var titleStyles = TextStyle({\n fontFamily: 'Futura',\n // stylelint-disable-line\n fontSize: fontSize * 2,\n fontWeight: 'bold',\n lineHeight: lineHeight\n });\n var textStyles = TextStyle({\n fontFamily: 'Palatino',\n // stylelint-disable-line\n fontSize: fontSize,\n lineHeight: lineHeight\n });\n return {\n componentTextStyles: {\n \"default\": _objectSpread({\n textColor: '#000',\n linkStyle: {\n textColor: '#F0F',\n underline: true\n }\n }, textStyles !== null ? textStyles : {}),\n 'default-heading1': _objectSpread(_objectSpread({}, titleStyles !== null ? titleStyles : {}), {}, {\n fontSize: fontSize * 2,\n lineHeight: 36,\n fontWeight: 'regular',\n fontWidth: 'expanded',\n textTransform: 'uppercase'\n }),\n 'default-heading2': _objectSpread(_objectSpread({}, titleStyles !== null ? titleStyles : {}), {}, {\n fontSize: 26,\n fontWeight: 'regular',\n fontWidth: 'expanded',\n textTransform: 'uppercase'\n }),\n 'default-title': _objectSpread(_objectSpread({}, titleStyles !== null ? titleStyles : {}), {}, {\n fontSize: 26,\n fontWeight: 'regular',\n fontWidth: 'expanded',\n textTransform: 'uppercase'\n }),\n 'default-body': _objectSpread({}, textStyles !== null ? textStyles : {}),\n 'default-text': _objectSpread({}, textStyles !== null ? textStyles : {}),\n 'default-quote': _objectSpread(_objectSpread({}, textStyles !== null ? textStyles : {}), {}, {\n fontSize: 26\n }),\n 'style-author': _objectSpread(_objectSpread({}, textStyles !== null ? textStyles : {}), {}, {\n fontStyle: 'italic'\n })\n }\n };\n};\n\nvar name$e = \"Format\\\\Layout\";\nvar description$e = \"The object for defining columns, gutters, and margins for your article’s designed width.\";\nvar version$e = \"1.7+\";\nvar from_class$e = null;\nvar typed$e = null;\nvar url$e = \"https://developer.apple.com/documentation/apple_news/layout\";\nvar properties$e = [{\n name: \"columns\",\n type: \"integer\",\n required: true,\n description: \"The number of columns this article was designed for. You must have at least one column.\",\n minimum: 1,\n typed: false\n}, {\n name: \"width\",\n type: \"integer\",\n required: true,\n description: \"The width (in points) this article was designed for. This property is used to calculate down-scaling scenarios for smaller devices.\",\n minimum: 1,\n typed: false\n}, {\n name: \"gutter\",\n type: \"integer\",\n required: false,\n description: \"The gutter size for the article (in points). The gutter provides spacing between columns. This property should always be an even number; odd numbers are rounded up to the next even number. If this property is omitted, a default gutter size of 20 is applied. If the gutter is negative, the number will be set to 0.\",\n \"default\": 20,\n minimum: 0,\n typed: false\n}, {\n name: \"margin\",\n type: \"integer\",\n required: false,\n description: \"The outer (left and right) margins of the article, in points. If this property is omitted, a default article margin of 60 is applied. If the margin is negative, the number is set to 0. If the margin is greater than or equal to the width/2, the article delivery fails.\",\n \"default\": 60,\n minimum: 0,\n typed: false\n}];\nvar LayoutDefinition = {\n name: name$e,\n description: description$e,\n version: version$e,\n from_class: from_class$e,\n \"extends\": null,\n typed: typed$e,\n url: url$e,\n properties: properties$e\n};\n\nvar Layout = function Layout() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref$columns = _ref.columns,\n columns = _ref$columns === void 0 ? 8 : _ref$columns,\n _ref$width = _ref.width,\n width = _ref$width === void 0 ? 768 : _ref$width,\n _ref$margin = _ref.margin,\n margin = _ref$margin === void 0 ? 60 : _ref$margin,\n _ref$gutter = _ref.gutter,\n gutter = _ref$gutter === void 0 ? 20 : _ref$gutter;\n\n var content = {\n columns: columns,\n width: width,\n margin: margin,\n gutter: gutter\n };\n return validate$1(content, LayoutDefinition);\n};\n\nvar name$d = \"Format\\\\ComponentLayout\";\nvar description$d = \"The object for defining the positioning for a specific component within the article’s column system.\";\nvar version$d = \"1.7+\";\nvar from_class$d = null;\nvar typed$d = null;\nvar url$d = \"https://developer.apple.com/documentation/apple_news/componentlayout\";\nvar properties$d = [{\n name: \"columnSpan\",\n type: \"integer\",\n required: false,\n description: \"A number that indicates how many columns the component spans, based on the number of columns in the document.\",\n minimum: 1,\n typed: false\n}, {\n name: \"columnStart\",\n type: \"integer\",\n required: false,\n description: \"A number that indicates which column the component‘s start position is in, based on the number of columns in the document or parent container.\",\n minimum: 0,\n typed: false\n}, {\n name: \"conditional\",\n type: \"array:Format\\\\ConditionalComponentLayout\",\n required: false,\n description: \"An array of component layout properties that can be applied conditionally, and the conditions that cause them to be applied.\",\n typed: false\n}, {\n name: \"contentInset\",\n type: [\"Format\\\\ContentInset\", \"boolean\"],\n required: false,\n description: \"A value that defines a content inset for the component. If applied, the inset is equivalent to half the document gutter. For example, if the article's layout sets the document gutter to 40pt, the content inset is 20 points.\",\n typed: false\n}, {\n name: \"horizontalContentAlignment\",\n type: \"enum:string\",\n required: false,\n description: \"A string value that sets the alignment of the content within the component. This property applies only when the width of the content is less than the width of the component.\",\n \"default\": \"center\",\n enum_values: [\"left\", \"center\", \"right\"],\n typed: false\n}, {\n name: \"ignoreDocumentGutter\",\n type: \"enum:boolean|string\",\n required: false,\n description: \"A value that indicates whether the gutters (if any) to the left and right of the component should be ignored. The gutter size is defined in the Layout object at the root level of the document.\",\n enum_values: [\"none\", \"left\", \"right\", \"both\", true, false],\n typed: false\n}, {\n name: \"ignoreDocumentMargin\",\n type: \"enum:boolean|string\",\n required: false,\n description: \"A value that indicates whether a document’s margins should be respected or ignored by the parent container. Ignoring document margins will position the component at the edge of the display. This property affects the layout only if the component is in the first or last column.\",\n enum_values: [\"none\", \"left\", \"right\", \"both\", true, false],\n typed: false\n}, {\n name: \"margin\",\n type: [\"Format\\\\Margin\", \"integer\"],\n required: false,\n description: \"A value that sets the margins for the top and bottom of the component, as a single integer that gets applied to the top and bottom margins, or as an object containing separate properties for top and bottom.\",\n typed: false\n}, {\n name: \"maximumContentWidth\",\n type: [\"SupportedUnits\", \"integer\"],\n required: false,\n description: \"A value that sets the maximum width of the content within the component. Specify this value as an integer in points or using one of the available units of measure for components. See Specifying Measurements for Components.\",\n typed: false\n}, {\n name: \"minimumHeight\",\n type: [\"SupportedUnits\", \"integer\"],\n required: false,\n description: \"A value that sets the minimum height of the component. A component is taller than its defined minimumHeight when the contents require the component to be taller. The minimum height can be defined as an integer in points or using one of the available units of measure for components. See Specifying Measurements for Components.\",\n typed: false\n}, {\n name: \"minimumWidth\",\n type: [\"SupportedUnits\", \"integer\"],\n required: false,\n description: \"A value that defines the minimum width of the layout when used within a Container with HorizontalStackDisplay as the specified contentDisplay type. The minimum width can be defined as an integer in points or using one of the available units of measure for components. See Specifying Measurements for Components.\",\n typed: false\n}, {\n name: \"maximumWidth\",\n type: [\"SupportedUnits\", \"integer\"],\n required: false,\n description: \"A value that defines the maximum width of the layout when used within a Container with HorizontalStackDisplay as the specified contentDisplay type. The maximum width can be defined as an integer in points or using one of the available units of measure for components. See Specifying Measurements for Components.\",\n typed: false\n}, {\n name: \"padding\",\n type: [\"Format\\\\Padding\", \"SupportedUnits\", \"integer\"],\n required: false,\n description: \"A value that defines the padding between the content of the component and the edges of the component. Padding can be defined as an integer in points or using one of the available units of measure for components. See Specifying Measurements for Components.\",\n typed: false\n}];\nvar ComponentLayoutDefinition = {\n name: name$d,\n description: description$d,\n version: version$d,\n from_class: from_class$d,\n \"extends\": null,\n typed: typed$d,\n url: url$d,\n properties: properties$d\n};\n\nvar ComponentLayout = function ComponentLayout() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref$columnStart = _ref.columnStart,\n columnStart = _ref$columnStart === void 0 ? 0 : _ref$columnStart,\n _ref$columnSpan = _ref.columnSpan,\n columnSpan = _ref$columnSpan === void 0 ? 12 : _ref$columnSpan,\n _ref$marginTop = _ref.marginTop,\n marginTop = _ref$marginTop === void 0 ? 0 : _ref$marginTop,\n _ref$marginBottom = _ref.marginBottom,\n marginBottom = _ref$marginBottom === void 0 ? 20 : _ref$marginBottom;\n\n var content = {\n columnStart: columnStart,\n columnSpan: columnSpan,\n margin: {\n top: marginTop,\n bottom: marginBottom\n }\n };\n return validate$1(content, ComponentLayoutDefinition);\n};\n\nvar getArticleLayouts = function getArticleLayouts() {\n // const { theme = {} } = newStory || {};\n // const { textStyle = {} } = theme || {};\n // const { heading1 = {}, text = {} } = textStyle || {};\n // const titleStyles = TextStyle(heading1);\n var layoutStyles = Layout();\n var componentLayoutStyles = ComponentLayout();\n var defaultMargin = 20;\n return {\n layout: _objectSpread({}, layoutStyles !== null ? layoutStyles : {}),\n componentLayouts: {\n \"default\": _objectSpread({}, componentLayoutStyles !== null ? componentLayoutStyles : {}),\n container: {\n margin: {\n bottom: 40\n }\n },\n header: {\n ignoreDocumentMargin: true,\n ignoreDocumentGutter: true,\n margin: {\n bottom: 40\n }\n },\n title: {\n margin: {\n bottom: 10\n }\n },\n heading1: {\n margin: {\n bottom: 10\n }\n },\n heading2: {\n margin: {\n bottom: 10\n }\n },\n text: {\n margin: {\n bottom: defaultMargin\n }\n },\n photo: {\n margin: {\n bottom: defaultMargin\n }\n },\n image: {\n margin: {\n bottom: defaultMargin\n }\n },\n gallery: {\n margin: {\n bottom: defaultMargin\n }\n },\n mosaic: {\n margin: {\n bottom: defaultMargin\n }\n },\n audio: {\n margin: {\n bottom: defaultMargin\n }\n },\n video: {\n margin: {\n bottom: defaultMargin\n }\n },\n map: {\n margin: {\n bottom: defaultMargin\n }\n },\n quote: {\n columnStart: 1,\n columnSpan: 5,\n contentInset: {\n left: false\n },\n margin: {\n right: 20,\n bottom: defaultMargin\n }\n }\n }\n };\n};\n\nvar name$c = \"Format\\\\DocumentStyle\";\nvar description$c = \"The object for setting the background color for your article.\";\nvar version$c = \"1.7+\";\nvar from_class$c = null;\nvar typed$c = null;\nvar url$c = \"https://developer.apple.com/documentation/apple_news/documentstyle\";\nvar properties$c = [{\n name: \"backgroundColor\",\n type: \"Color\",\n required: false,\n description: \"The article’s background color. The value defaults to white.\",\n typed: false\n}];\nvar DocumentStyleDefinition = {\n name: name$c,\n description: description$c,\n version: version$c,\n from_class: from_class$c,\n \"extends\": null,\n typed: typed$c,\n url: url$c,\n properties: properties$c\n};\n\nvar DocumentStyle = function DocumentStyle() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref$backgroundColor = _ref.backgroundColor,\n backgroundColor = _ref$backgroundColor === void 0 ? null : _ref$backgroundColor;\n\n var content = {\n backgroundColor: backgroundColor\n };\n return validate$1(content, DocumentStyleDefinition);\n};\n\nvar getArticleDocumentStyle = function getArticleDocumentStyle() {\n var documentStyle = DocumentStyle({\n backgroundColor: '#FFF'\n });\n return {\n documentStyle: documentStyle\n };\n};\n\nvar name$b = \"Format\\\\ArticleDocument\";\nvar description$b = \"The root object of an Apple News article, containing required properties, metadata, content, layout, and styles.\";\nvar version$b = \"1.7+\";\nvar from_class$b = null;\nvar typed$b = null;\nvar url$b = \"https://developer.apple.com/documentation/apple_news/articledocument\";\nvar properties$b = [{\n name: \"components\",\n type: \"array:Format\\\\Component\",\n required: true,\n description: \"An array of components that form the content of this article. Components have different roles and types, such as Photo and Music.\",\n typed: true\n}, {\n name: \"componentTextStyles\",\n type: \"Format\\\\ComponentTextStyles\",\n required: true,\n description: \"The component text styles that can be referred to by components in this document. Each article.json file must have, at minimum, a default component text style named default. Defaults by component role can also be set. See Defining and Using Text Styles.\",\n typed: false\n}, {\n name: \"identifier\",\n type: \"string\",\n required: true,\n description: \"An unique, publisher-provided identifier for this article. This identifier must remain constant; it cannot change when the article is updated.\",\n typed: false\n}, {\n name: \"language\",\n type: \"string\",\n required: true,\n description: \"A code that indicates the language of the article. Use the IANA.org language subtag registry to find the appropriate code; e.g., en for English, or the more specific en_UK for English (U.K.) or en_US for English (U.S.).\",\n typed: false\n}, {\n name: \"layout\",\n type: \"Format\\\\Layout\",\n required: true,\n description: \"The article’s column system. Apple News Format layouts make it possible to recreate print design on iPhone, iPad, iPod touch and Mac. Layout information is also used to calculate relative positioning and size for these devices. See Planning the Layout for Your Article.\",\n typed: false\n}, {\n name: \"title\",\n type: \"string\",\n required: true,\n description: \"The article title or headline. Should be plain text; formatted text (HTML or Markdown) is not supported.\",\n typed: false\n}, {\n name: \"version\",\n type: \"string\",\n required: true,\n description: \"The version of Apple News Format used in the JSON document.\",\n typed: false\n}, {\n name: \"advertisingSettings\",\n type: \"Format\\\\AdvertisingSettings\",\n required: false,\n description: \"An advertisement to be inserted at a position that is both possible and optimal. You can specify what bannerType you want to have automatically inserted.\",\n typed: false\n}, {\n name: \"autoplacement\",\n type: \"Format\\\\AutoPlacement\",\n required: false,\n description: \"The metadata, appearance, and placement of advertising and related content components within Apple News Format articles.\",\n typed: false\n}, {\n name: \"componentLayouts\",\n type: \"Format\\\\ComponentLayouts\",\n required: false,\n description: \"The article-level ComponentLayout objects that can be referred to by their key within the ComponentLayouts object. See Positioning the Content in Your Article.\",\n typed: false\n}, {\n name: \"componentStyles\",\n type: \"Format\\\\ComponentStyles\",\n required: false,\n description: \"The component styles that can be referred to by components within this document. See Enhancing Your Articles with Styles.\",\n typed: false\n}, {\n name: \"documentStyle\",\n type: \"Format\\\\DocumentStyle\",\n required: false,\n description: \"An object containing the background color of the article.\",\n typed: false\n}, {\n name: \"metadata\",\n type: \"Format\\\\Metadata\",\n required: false,\n description: \"The article's metadata, such as publication date, ad campaign data, and other information that is not part of the core article content.\",\n typed: false\n}, {\n name: \"subtitle\",\n type: \"string\",\n required: false,\n description: \"The article subtitle. Should be plain text; formatted text (HTML or Markdown) is not supported.\",\n typed: false\n}, {\n name: \"textStyles\",\n type: \"Format\\\\TextStyles\",\n required: false,\n description: \"The TextStyle objects available to use inline for text in Text components. See Using HTML with Apple News Format, Using Markdown with Apple News Format, and InlineTextStyle.\",\n typed: false\n}];\nvar ArticleDefinition = {\n name: name$b,\n description: description$b,\n version: version$b,\n from_class: from_class$b,\n \"extends\": null,\n typed: typed$b,\n url: url$b,\n properties: properties$b\n};\n\nvar validate = function validate() {\n var content = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var definition = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var validated = content ? Object.keys(content).reduce(function (values, name) {\n var value = content[name] || null; // Find the reference\n\n if (definition && definition.properties) {\n var property = definition.properties.find(function (prop) {\n return prop.name === name;\n }) || null;\n\n if (property !== null) {\n var isValid = true;\n\n switch (property.type) {\n case 'string':\n isValid = isString(value);\n break;\n\n case 'integer':\n isValid = isInteger(value);\n break;\n\n case 'float':\n isValid = isNumber(value);\n break;\n\n default:\n isValid = value !== null;\n break;\n } // Skip the whole thing it cause it aint gonna work\n\n\n if (!isValid && property.required) {\n console.log('VALIDATION ERROR: SKIPPED BECAUSE REQUIRED', content, name); // eslint-disable-line\n\n return null;\n }\n\n if (values !== null && isValid) {\n return _objectSpread(_objectSpread({}, values), {}, _defineProperty({}, name, value));\n }\n\n console.log('VALIDATION ERROR: VALID TYPE', name, content); // eslint-disable-line\n }\n }\n\n return values;\n }, {}) : {};\n return !isEmpty(validated) ? validated : null;\n};\n\nvar Article = function Article(story, settings) {\n // console.log('ARTICLE', story); // eslint-disable-line\n var _story$title = story.title,\n title = _story$title === void 0 ? 'Article' : _story$title;\n\n var _ref = settings || {},\n _ref$identifier = _ref.identifier,\n identifier = _ref$identifier === void 0 ? 'testArticle' : _ref$identifier;\n\n var content = _objectSpread(_objectSpread(_objectSpread(_objectSpread({\n title: title,\n version: \"\".concat(1, \".0\").toString(),\n // Note: for some reason only 1.0 works\n identifier: identifier,\n language: 'fr',\n layout: {},\n documentStyle: {},\n components: [],\n componentStyles: {},\n componentTextStyles: {},\n componentLayouts: {}\n }, getArticleDocumentStyle()), getArticleTextStyles()), getArticleLayouts()), getArticleComponents(story)); // console.log('KONTENT', content);\n\n\n return validate(content, ArticleDefinition);\n};\n\nvar name$a = \"Format\\\\Audio\";\nvar description$a = \"The component for adding a playable audio clip.\";\nvar version$a = \"1.7+\";\nvar from_class$a = null;\nvar typed$a = null;\nvar url$a = \"https://developer.apple.com/documentation/apple_news/audio\";\nvar properties$a = [{\n name: \"role\",\n type: \"string\",\n required: true,\n description: \"Always audio for this component.\",\n value: \"audio\",\n read_only: true,\n typed: false\n}, {\n name: \"URL\",\n type: \"uri\",\n required: true,\n description: \"The URL of an audio file (http or https only). This component supports all AVPlayer audio formats, including the following:\",\n typed: false\n}, {\n name: \"accessibilityCaption\",\n type: \"string\",\n required: false,\n description: \"A caption that describes the content of the audio file. The text is used for VoiceOver for iOS and VoiceOver for macOS. If accessibilityCaption is not provided, the caption value is used for VoiceOver for iOS and VoiceOver for macOS.\",\n typed: false\n}, {\n name: \"anchor\",\n type: \"Format\\\\Anchor\",\n required: false,\n description: \"An object that defines vertical alignment with another component.\",\n typed: false\n}, {\n name: \"animation\",\n type: \"Format\\\\ComponentAnimation\",\n required: false,\n description: \"An object that defines an animation to be applied to the component.\",\n typed: true\n}, {\n name: \"behavior\",\n type: \"Format\\\\Behavior\",\n required: false,\n description: \"An object that defines behavior for a component, like Parallax or Springy.\",\n typed: true\n}, {\n name: \"caption\",\n type: \"string\",\n required: false,\n description: \"A caption that describes the content of the audio file. This text is also used by VoiceOver for iOS and VoiceOver for macOS if accessibilityCaption is not provided, or it can be shown when the audio cannot be played.\",\n typed: false\n}, {\n name: \"conditional\",\n type: \"array:Format\\\\ConditionalComponent\",\n required: false,\n description: \"An array of component properties that can be applied conditionally, and the conditions that cause them to be applied.\",\n typed: false\n}, {\n name: \"explicitContent\",\n type: \"boolean\",\n required: false,\n description: \"A Boolean value that indicates the audio may contain explicit content.\",\n typed: false\n}, {\n name: \"hidden\",\n type: \"boolean\",\n required: false,\n description: \"A Boolean value that determines whether the component is hidden.\",\n \"default\": \"false\",\n typed: false\n}, {\n name: \"identifier\",\n type: \"string\",\n required: false,\n description: \"An optional unique identifier for this component. If used, this identifier must be unique across the entire document. You will need an identifier for your component if you want to anchor other components to it.\",\n typed: false\n}, {\n name: \"imageURL\",\n type: \"string\",\n required: false,\n description: \"The URL of an image file that represents the audio file, such as a cover image.\",\n typed: false\n}, {\n name: \"layout\",\n type: [\"Format\\\\ComponentLayout\", \"string\"],\n required: false,\n description: \"An inline ComponentLayout object that contains layout information, or a string reference to a ComponentLayout object that is defined at the top level of the document.\",\n typed: false\n}, {\n name: \"style\",\n type: [\"Format\\\\ComponentStyle\", \"string\"],\n required: false,\n description: \"An inline ComponentStyle object that defines the appearance of this component, or a string reference to a ComponentStyle object that is defined at the top level of the document.\",\n typed: false\n}];\nvar AudioDefinition = {\n name: name$a,\n description: description$a,\n version: version$a,\n from_class: from_class$a,\n \"extends\": \"Format\\\\Component\",\n typed: typed$a,\n url: url$a,\n properties: properties$a\n};\n\nvar MediaElement = function MediaElement(story, media) {\n var role = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'audio';\n var definition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n var _story$componentLayou = story.componentLayouts,\n componentLayouts = _story$componentLayou === void 0 ? {} : _story$componentLayou;\n\n var _ref = media || {},\n url = _ref.url;\n\n var content = _objectSpread(_objectSpread({\n role: role\n }, componentLayouts[role] ? {\n layout: role\n } : {}), {}, {\n URL: url\n });\n\n var component = validate$1(content, definition);\n return {\n story: story,\n component: role === 'audio' ? component : component // Figure out HLS for videos\n\n };\n};\n\nvar Audio = function Audio(story, audio) {\n return MediaElement(story, audio, 'audio', AudioDefinition);\n};\n\nvar name$9 = \"Format\\\\Text\";\nvar description$9 = \"Properties shared by all text component types.\";\nvar version$9 = \"1.7+\";\nvar from_class$9 = null;\nvar typed$9 = null;\nvar url$9 = \"https://developer.apple.com/documentation/apple_news/text\";\nvar properties$9 = [{\n name: \"role\",\n type: \"string\",\n required: true,\n description: \"The role of a text component depends on the type of content it contains. For example, a PullQuote should have a role of pullquote, and for text in the article body, the role should be body. See Component.\",\n typed: false\n}, {\n name: \"text\",\n type: \"string\",\n required: true,\n description: \"The text to display in the article, including any formatting tags depending on the format property.\",\n typed: false\n}, {\n name: \"additions\",\n type: \"array:Format\\\\Addition\",\n required: false,\n description: \"An array of all the additions that should be applied to ranges of the component's text.\",\n typed: false\n}, {\n name: \"anchor\",\n type: \"Format\\\\Anchor\",\n required: false,\n description: \"An object that defines vertical alignment with another component.\",\n typed: false\n}, {\n name: \"animation\",\n type: \"Format\\\\ComponentAnimation\",\n required: false,\n description: \"An object that defines an animation to be applied to the component.\",\n typed: true\n}, {\n name: \"behavior\",\n type: \"Format\\\\Behavior\",\n required: false,\n description: \"An object that defines behavior for a component, like Parallax or Springy.\",\n typed: true\n}, {\n name: \"conditional\",\n type: \"array:Format\\\\ConditionalText\",\n required: false,\n description: \"An array of text component properties that can be applied conditionally, and the conditions that cause them to be applied.\",\n typed: false\n}, {\n name: \"format\",\n type: \"enum:string\",\n required: false,\n description: \"The formatting or markup method applied to the text.\",\n \"default\": \"none\",\n enum_values: [\"markdown\", \"html\", \"none\"],\n typed: false\n}, {\n name: \"hidden\",\n type: \"boolean\",\n required: false,\n description: \"A Boolean value that determines whether the component is hidden.\",\n \"default\": \"false\",\n typed: false\n}, {\n name: \"identifier\",\n type: \"string\",\n required: false,\n description: \"An optional unique identifier for this component. If used, this identifier must be unique across the entire document. You will need an identifier for your component if you want to anchor other components to it.\",\n typed: false\n}, {\n name: \"inlineTextStyles\",\n type: \"array:Format\\\\InlineTextStyle\",\n required: false,\n description: \"An array of InlineTextStyle objects you can use to apply different text styles to ranges of text. For each InlineTextStyle, you should supply a rangeStart, rangeLength, and either a text style or the identifier of a text style that is defined at the top level of the document.\",\n typed: false\n}, {\n name: \"layout\",\n type: [\"Format\\\\ComponentLayout\", \"string\"],\n required: false,\n description: \"An inline ComponentLayout object that contains layout information, or a string reference to a ComponentLayout that is defined at the top level of the document.\",\n typed: false\n}, {\n name: \"style\",\n type: [\"Format\\\\ComponentStyle\", \"string\"],\n required: false,\n description: \"An inline ComponentStyle object that defines the appearance of this component, or a string reference to a ComponentStyle object that is defined at the top level of the document.\",\n typed: false\n}, {\n name: \"textStyle\",\n type: [\"Format\\\\ComponentTextStyle\", \"string\"],\n required: false,\n description: \"An inline ComponentTextStyle object that contains styling information, or a string reference to a ComponentTextStyle object that is defined at the top level of the document.\",\n typed: false\n}];\nvar TextDefinition = {\n name: name$9,\n description: description$9,\n version: version$9,\n from_class: from_class$9,\n \"extends\": \"Format\\\\Component\",\n typed: typed$9,\n url: url$9,\n properties: properties$9\n};\n\nvar TextElement = function TextElement(story, text) {\n var role = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'text';\n var definition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n var props = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {};\n var _story$componentLayou = story.componentLayouts,\n componentLayouts = _story$componentLayou === void 0 ? {} : _story$componentLayou;\n\n var _ref = text || {},\n _ref$body = _ref.body,\n body = _ref$body === void 0 ? null : _ref$body,\n _ref$textStyle = _ref.textStyle,\n textStyle = _ref$textStyle === void 0 ? null : _ref$textStyle;\n\n var style = textStyle ? TextStyle(textStyle) : null;\n var styleName = style !== null ? hash(style) : null;\n var hasStyle = style !== null && styleName !== null;\n\n var content = _objectSpread(_objectSpread({\n role: role\n }, componentLayouts[role] ? {\n layout: role\n } : {}), {}, {\n text: body,\n format: 'html'\n }, props);\n\n var component = definition ? validate$1(content, definition) : null;\n return {\n story: _objectSpread(_objectSpread({}, story), {}, {\n componentStyles: _objectSpread(_objectSpread({}, story.componentStyles || {}), component !== null && hasStyle ? _defineProperty({}, styleName, style) : {})\n }),\n component: component\n };\n};\n\nvar Author = function Author(story, text) {\n return TextElement(story, text, 'text', TextDefinition, {\n textStyle: 'style-author'\n });\n};\n\nvar name$8 = \"Format\\\\Container\";\nvar description$8 = \"Properties shared by all container types.\";\nvar version$8 = \"1.7+\";\nvar from_class$8 = null;\nvar typed$8 = null;\nvar url$8 = \"https://developer.apple.com/documentation/apple_news/container\";\nvar properties$8 = [{\n name: \"role\",\n type: \"string\",\n required: true,\n description: \"Always container for this component.\",\n value: \"container\",\n read_only: true,\n typed: false\n}, {\n name: \"additions\",\n type: \"array:Format\\\\ComponentLink\",\n required: false,\n description: \"An array of ComponentLink objects. This can be used to create a ComponentLink, allowing a link to anywhere in News. Adding a link to a container component makes the entire component interactable. Any links used in its child components are not interactable.\",\n typed: false\n}, {\n name: \"anchor\",\n type: \"Format\\\\Anchor\",\n required: false,\n description: \"An object that defines vertical alignment with another component.\",\n typed: false\n}, {\n name: \"animation\",\n type: \"Format\\\\ComponentAnimation\",\n required: false,\n description: \"An object that defines an animation to be applied to the component.\",\n typed: true\n}, {\n name: \"behavior\",\n type: \"Format\\\\Behavior\",\n required: false,\n description: \"An object that defines behavior for a component, like Parallax or Springy.\",\n typed: true\n}, {\n name: \"components\",\n type: \"array:Format\\\\Component\",\n required: false,\n description: \"An array of components to display as child components. Child components are positioned and rendered relative to their parent component.\",\n typed: true\n}, {\n name: \"conditional\",\n type: \"array:Format\\\\ConditionalContainer\",\n required: false,\n description: \"An array of container properties that can be applied conditionally, and the conditions that cause them to be applied.\",\n typed: false\n}, {\n name: \"contentDisplay\",\n type: [\"Format\\\\CollectionDisplay\", \"Format\\\\HorizontalStackDisplay\"],\n required: false,\n description: \"The object that defines the way child components should be positioned within this container component. A HorizontalStackDisplay for example, allows for displaying child components side-by-side.\",\n typed: false\n}, {\n name: \"hidden\",\n type: \"boolean\",\n required: false,\n description: \"A Boolean value that determines whether the component is hidden.\",\n \"default\": \"false\",\n typed: false\n}, {\n name: \"identifier\",\n type: \"string\",\n required: false,\n description: \"An optional unique identifier for this component. If used, this identifier must be unique across the entire document. You will need an identifier for your component if you want to anchor other components to it.\",\n typed: false\n}, {\n name: \"layout\",\n type: [\"Format\\\\ComponentLayout\", \"string\"],\n required: false,\n description: \"An inline ComponentLayout object that contains layout information, or a string reference to a ComponentLayout object that is defined at the top level of the document.\",\n typed: false\n}, {\n name: \"style\",\n type: [\"Format\\\\ComponentStyle\", \"string\"],\n required: false,\n description: \"An inline ComponentStyle object that defines the appearance of this component, or a string reference to a ComponentStyle object that is defined at the top level of the document.\",\n typed: false\n}];\nvar ContainerDefinition = {\n name: name$8,\n description: description$8,\n version: version$8,\n from_class: from_class$8,\n \"extends\": \"Format\\\\Component\",\n typed: typed$8,\n url: url$8,\n properties: properties$8\n};\n\nvar Container = function Container(story, components) {\n var content = {\n role: 'container',\n components: components\n };\n var component = validate$1(content, ContainerDefinition);\n return {\n story: story,\n component: components && components.length > 0 ? component : null\n };\n};\n\nvar name$7 = \"Format\\\\Gallery\";\nvar description$7 = \"The component for displaying a sequence of images in a specific order as a horizontal strip.\";\nvar version$7 = \"1.7+\";\nvar from_class$7 = null;\nvar typed$7 = null;\nvar url$7 = \"https://developer.apple.com/documentation/apple_news/gallery\";\nvar properties$7 = [{\n name: \"items\",\n type: \"array:Format\\\\GalleryItem\",\n required: true,\n description: \"An array of the images that appear in the gallery. The order used in the array is the order of the images in the gallery. Gallery items can be JPEG (with .jpg or .jpeg extension), PNG, or GIF images.\",\n typed: false\n}, {\n name: \"role\",\n type: \"string\",\n required: true,\n description: \"Always gallery for this component.\",\n value: \"gallery\",\n read_only: true,\n typed: false\n}, {\n name: \"anchor\",\n type: \"Format\\\\Anchor\",\n required: false,\n description: \"An object that defines vertical alignment with another component.\",\n typed: false\n}, {\n name: \"animation\",\n type: \"Format\\\\ComponentAnimation\",\n required: false,\n description: \"An object that defines an animation to be applied to the component.\",\n typed: true\n}, {\n name: \"behavior\",\n type: \"Format\\\\Behavior\",\n required: false,\n description: \"An object that defines behavior for a component, like Parallax or Springy.\",\n typed: true\n}, {\n name: \"conditional\",\n type: \"array:Format\\\\ConditionalComponent\",\n required: false,\n description: \"An array of component properties that can be applied conditionally, and the conditions that cause them to be applied.\",\n typed: false\n}, {\n name: \"hidden\",\n type: \"boolean\",\n required: false,\n description: \"A Boolean value that determines whether the component is hidden.\",\n \"default\": \"false\",\n typed: false\n}, {\n name: \"identifier\",\n type: \"string\",\n required: false,\n description: \"An optional unique identifier for this component. If used, this identifier must be unique across the entire document. You will need an identifier for your component if you want to anchor other components to it.\",\n typed: false\n}, {\n name: \"layout\",\n type: [\"Format\\\\ComponentLayout\", \"string\"],\n required: false,\n description: \"An inline ComponentLayout object that contains layout information, or a string reference to a ComponentLayout object that is defined at the top level of the document.\",\n typed: false\n}, {\n name: \"style\",\n type: [\"Format\\\\ComponentStyle\", \"string\"],\n required: false,\n description: \"An inline ComponentStyle object that defines the appearance of this component, or a string reference to a ComponentStyle object that is defined at the top level of the document.\",\n typed: false\n}];\nvar GalleryDefinition = {\n name: name$7,\n description: description$7,\n version: version$7,\n from_class: from_class$7,\n \"extends\": \"Format\\\\Component\",\n typed: typed$7,\n url: url$7,\n properties: properties$7\n};\n\nvar GalleryElement = function GalleryElement(story, gallery) {\n var role = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'gallery';\n var definition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n var _story$componentLayou = story.componentLayouts,\n componentLayouts = _story$componentLayou === void 0 ? {} : _story$componentLayou;\n\n var _ref = gallery || {},\n _ref$images = _ref.images,\n images = _ref$images === void 0 ? [] : _ref$images;\n\n var galleryImages = images !== null ? images.map(function (image) {\n if (image == null) {\n return null;\n }\n\n var _ref2 = image || {},\n _ref2$media = _ref2.media,\n media = _ref2$media === void 0 ? null : _ref2$media,\n _ref2$url = _ref2.url,\n url = _ref2$url === void 0 ? null : _ref2$url,\n _ref2$caption = _ref2.caption,\n caption = _ref2$caption === void 0 ? null : _ref2$caption;\n\n var mediaUrl = media !== null && media.url ? media.url : null;\n var imageUrl = url !== null ? url : null;\n var hasUrl = imageUrl || mediaUrl;\n var imageCaption = caption !== null && caption.body ? stripTags(caption.body) : null;\n return hasUrl ? _objectSpread({\n URL: imageUrl || mediaUrl\n }, imageCaption !== null ? {\n caption: imageCaption\n } : {}) : null;\n }).filter(function (i) {\n return i !== null;\n }) : [];\n\n var content = _objectSpread(_objectSpread({\n role: role\n }, componentLayouts[role] ? {\n layout: role\n } : {}), {}, {\n items: galleryImages\n });\n\n var component = validate$1(content, definition);\n return {\n story: story,\n component: component\n };\n};\n\nvar Gallery = function Gallery(story, gallery) {\n return GalleryElement(story, gallery, 'gallery', GalleryDefinition);\n};\n\nvar name$6 = \"Format\\\\Heading\";\nvar description$6 = \"The text component for adding a heading.\";\nvar version$6 = \"1.7+\";\nvar from_class$6 = null;\nvar typed$6 = null;\nvar url$6 = \"https://developer.apple.com/documentation/apple_news/heading\";\nvar properties$6 = [{\n name: \"role\",\n type: \"enum:string\",\n required: true,\n description: \"Always one of these roles for this component: heading, heading1, heading2, heading3, heading4, heading5, or heading6.\",\n enum_values: [\"heading\", \"heading1\", \"heading2\", \"heading3\", \"heading4\", \"heading5\", \"heading6\"],\n value: \"heading\",\n typed: false\n}, {\n name: \"text\",\n type: \"string\",\n required: true,\n description: \"The text to display in the article, including any formatting tags depending on the format property.\",\n typed: false\n}, {\n name: \"additions\",\n type: \"array:Format\\\\Addition\",\n required: false,\n description: \"An array of all the additions that should be applied to ranges of the component's text.\",\n typed: false\n}, {\n name: \"anchor\",\n type: \"Format\\\\Anchor\",\n required: false,\n description: \"An object that defines vertical alignment with another component.\",\n typed: false\n}, {\n name: \"animation\",\n type: \"Format\\\\ComponentAnimation\",\n required: false,\n description: \"An object that defines an animation to be applied to the component.\",\n typed: true\n}, {\n name: \"behavior\",\n type: \"Format\\\\Behavior\",\n required: false,\n description: \"An object that defines behavior for a component, like Parallax or Springy.\",\n typed: true\n}, {\n name: \"conditional\",\n type: \"array:Format\\\\ConditionalText\",\n required: false,\n description: \"An array of text components that can be applied conditionally, and the conditions that cause them to be applied.\",\n typed: false\n}, {\n name: \"format\",\n type: \"enum:string\",\n required: false,\n description: \"The formatting or markup method applied to the text.\",\n \"default\": \"none\",\n enum_values: [\"markdown\", \"html\", \"none\"],\n typed: false\n}, {\n name: \"hidden\",\n type: \"boolean\",\n required: false,\n description: \"A Boolean value that determines whether the component is hidden.\",\n \"default\": \"false\",\n typed: false\n}, {\n name: \"identifier\",\n type: \"string\",\n required: false,\n description: \"An optional unique identifier for this component. If used, this identifier must be unique across the entire document. You will need an identifier for your component if you want to anchor other components to it.\",\n typed: false\n}, {\n name: \"inlineTextStyles\",\n type: \"array:Format\\\\InlineTextStyle\",\n required: false,\n description: \"An array of InlineTextStyle objects that you can use to apply different text styles to ranges of text. For each InlineTextStyle, you should supply a rangeStart, a rangeLength, and either a TextStyle object or the identifier of a TextStyle that is defined at the top level of the document.\",\n typed: false\n}, {\n name: \"layout\",\n type: [\"Format\\\\ComponentLayout\", \"string\"],\n required: false,\n description: \"An inline ComponentLayout object that contains layout information, or a string reference to a ComponentLayout that is defined at the top level of the document.\",\n typed: false\n}, {\n name: \"style\",\n type: [\"Format\\\\ComponentStyle\", \"string\"],\n required: false,\n description: \"An inline ComponentStyle object that defines the appearance of this component, or a string reference to a ComponentStyle that is defined at the top level of the document.\",\n typed: false\n}, {\n name: \"textStyle\",\n type: [\"Format\\\\ComponentTextStyle\", \"string\"],\n required: false,\n description: \"An inline ComponentTextStyle object that contains styling information, or a string reference to a ComponentTextStyle object that is defined at the top level of the document.\",\n typed: false\n}];\nvar HeadingDefinition = {\n name: name$6,\n description: description$6,\n version: version$6,\n from_class: from_class$6,\n \"extends\": \"Format\\\\Text\",\n typed: typed$6,\n url: url$6,\n properties: properties$6\n};\n\nvar Heading1 = function Heading1(story, heading) {\n return TextElement(story, heading, 'heading1', HeadingDefinition);\n};\n\nvar Heading2 = function Heading2(story, heading) {\n return TextElement(story, heading, 'heading2', HeadingDefinition);\n};\n\nvar name$5 = \"Format\\\\Image\";\nvar description$5 = \"The component for displaying JPEG, PNG, or GIF images.\";\nvar version$5 = \"1.7+\";\nvar from_class$5 = null;\nvar typed$5 = null;\nvar url$5 = \"https://developer.apple.com/documentation/apple_news/image\";\nvar properties$5 = [{\n name: \"role\",\n type: \"string\",\n required: true,\n description: \"Always image for this component.\",\n value: \"image\",\n read_only: true,\n typed: false\n}, {\n name: \"URL\",\n type: \"uri\",\n required: true,\n description: \"The URL of an image file.\",\n typed: false\n}, {\n name: \"accessibilityCaption\",\n type: \"string\",\n required: false,\n description: \"A caption that describes the image. The text is used for VoiceOver for iOS and VoiceOver for macOS. If accessibilityCaption is not provided, the caption value is used for VoiceOver for iOS and VoiceOver for macOS.\",\n typed: false\n}, {\n name: \"additions\",\n type: \"array:Format\\\\ComponentLink\",\n required: false,\n description: \"An array of ComponentLink objects. This can be used to create a ComponentLink, allowing a link to anywhere in News.\",\n typed: false\n}, {\n name: \"anchor\",\n type: \"Format\\\\Anchor\",\n required: false,\n description: \"An object that defines vertical alignment with another component.\",\n typed: false\n}, {\n name: \"animation\",\n type: \"Format\\\\ComponentAnimation\",\n required: false,\n description: \"An object that defines an animation to be applied to the component.\",\n typed: true\n}, {\n name: \"behavior\",\n type: \"Format\\\\Behavior\",\n required: false,\n description: \"An object that defines behavior for a component, like Parallax or Springy.\",\n typed: true\n}, {\n name: \"caption\",\n type: [\"Format\\\\CaptionDescriptor\", \"string\"],\n required: false,\n description: \"A caption that describes the image. The text is seen when the image is in full screen. This text is also used by VoiceOver for iOS and VoiceOver for macOS, if accessibilityCaption text is not provided. The caption text does not appear in the main article view. To display a caption in the main article view, use the Caption component.\",\n typed: false\n}, {\n name: \"conditional\",\n type: \"array:Format\\\\ConditionalComponent\",\n required: false,\n description: \"An array of component properties that can be applied conditionally, and the conditions that cause them to be applied.\",\n typed: false\n}, {\n name: \"explicitContent\",\n type: \"boolean\",\n required: false,\n description: \"A Boolean value that indicates the image may contain explicit content.\",\n typed: false\n}, {\n name: \"hidden\",\n type: \"boolean\",\n required: false,\n description: \"A Boolean value that determines whether the component is hidden.\",\n \"default\": \"false\",\n typed: false\n}, {\n name: \"identifier\",\n type: \"string\",\n required: false,\n description: \"An optional unique identifier for this component. If used, this identifier must be unique across the entire document. You will need an identifier for your component if you want to anchor other components to it.\",\n typed: false\n}, {\n name: \"layout\",\n type: [\"Format\\\\ComponentLayout\", \"string\"],\n required: false,\n description: \"An inline ComponentLayout object that contains layout information, or a string reference to a ComponentLayout object that is defined at the top level of the document.\",\n typed: false\n}, {\n name: \"style\",\n type: [\"Format\\\\ComponentStyle\", \"string\"],\n required: false,\n description: \"An inline ComponentStyle object that defines the appearance of this component, or a string reference to a ComponentStyle object that is defined at the top level of the document.\",\n typed: false\n}];\nvar ImageDefinition = {\n name: name$5,\n description: description$5,\n version: version$5,\n from_class: from_class$5,\n \"extends\": \"Format\\\\Component\",\n typed: typed$5,\n url: url$5,\n properties: properties$5\n};\n\nvar ImageElement = function ImageElement(story, image) {\n var role = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'image';\n var definition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n var _story$componentLayou = story.componentLayouts,\n componentLayouts = _story$componentLayou === void 0 ? {} : _story$componentLayou;\n\n var _ref = image || {},\n url = _ref.url;\n\n var content = _objectSpread(_objectSpread({\n role: role\n }, componentLayouts[role] ? {\n layout: role\n } : {}), {}, {\n URL: url\n });\n\n var component = validate$1(content, definition);\n return {\n story: story,\n component: component\n };\n};\n\nvar Image = function Image(story, image) {\n return ImageElement(story, image, 'image', ImageDefinition);\n};\n\nvar name$4 = \"Format\\\\Map\";\nvar description$4 = \"The component for adding a map.\";\nvar version$4 = \"1.7+\";\nvar from_class$4 = null;\nvar typed$4 = null;\nvar url$4 = \"https://developer.apple.com/documentation/apple_news/map\";\nvar properties$4 = [{\n name: \"latitude\",\n type: \"number\",\n required: true,\n description: \"The latitude of the map’s center. Provide both a latitude and longitude, or an array of items.\",\n typed: false\n}, {\n name: \"longitude\",\n type: \"number\",\n required: true,\n description: \"The longitude of the map’s center. Provide both a latitude and longitude, or an array of items.\",\n typed: false\n}, {\n name: \"role\",\n type: \"string\",\n required: true,\n description: \"Always map for this component.\",\n value: \"map\",\n read_only: true,\n typed: false\n}, {\n name: \"accessibilityCaption\",\n type: \"string\",\n required: false,\n description: \"The caption that describes what is visible on the map. The text is used for VoiceOver for iOS and VoiceOver for macOS. The value in this property should describe the contents of the map for non-sighted users. If accessibilityCaption is not provided the caption value is used for VoiceOver for iOS and VoiceOver for macOS.\",\n typed: false\n}, {\n name: \"anchor\",\n type: \"Format\\\\Anchor\",\n required: false,\n description: \"An object that defines vertical alignment with another component.\",\n typed: false\n}, {\n name: \"animation\",\n type: \"Format\\\\ComponentAnimation\",\n required: false,\n description: \"An object that defines an animation to be applied to the component.\",\n typed: true\n}, {\n name: \"behavior\",\n type: \"Format\\\\Behavior\",\n required: false,\n description: \"An object that defines behavior for a component, like Parallax or Springy.\",\n typed: true\n}, {\n name: \"caption\",\n type: \"string\",\n required: false,\n description: \"A string that describes what is displayed on the map. The caption is displayed in the full screen version of the map. This text is also used by VoiceOver for iOS and VoiceOver for macOS, if accessibilityCaption text is not provided.\",\n typed: false\n}, {\n name: \"conditional\",\n type: \"array:Format\\\\ConditionalComponent\",\n required: false,\n description: \"An array of component properties that can be applied conditionally, and the conditions that cause them to be applied.\",\n typed: false\n}, {\n name: \"hidden\",\n type: \"boolean\",\n required: false,\n description: \"A Boolean value that determines whether the component is hidden.\",\n \"default\": \"false\",\n typed: false\n}, {\n name: \"identifier\",\n type: \"string\",\n required: false,\n description: \"An optional unique identifier for this component. If used, this identifier must be unique across the entire document. You will need an identifier for your component if you want to anchor other components to it.\",\n typed: false\n}, {\n name: \"items\",\n type: \"array:Format\\\\MapItem\",\n required: false,\n description: \"An array of MapItems. If latitude and longitude are not set, at least one item containing latitude and longitude should be added to the items array.\",\n typed: false\n}, {\n name: \"layout\",\n type: [\"Format\\\\ComponentLayout\", \"string\"],\n required: false,\n description: \"An inline ComponentLayout object that contains layout information, or a string reference to a ComponentLayout object that is defined at the top level of the document.\",\n typed: false\n}, {\n name: \"mapType\",\n type: \"enum:string\",\n required: false,\n description: \"A string that defines the type of map to display by default.\",\n \"default\": \"standard\",\n enum_values: [\"standard\", \"hybrid\", \"satellite\"],\n typed: false\n}, {\n name: \"span\",\n type: \"Format\\\\MapSpan\",\n required: false,\n description: \"An object for defining the visible area of a map, relative to its center. A span is defined in deltas for latitude and longitude.\",\n typed: false\n}, {\n name: \"style\",\n type: [\"Format\\\\ComponentStyle\", \"string\"],\n required: false,\n description: \"An inline ComponentStyle object that defines the appearance of this component, or a string reference to a ComponentStyle object that is defined at the top level of the document.\",\n typed: false\n}];\nvar MapDefinition = {\n name: name$4,\n description: description$4,\n version: version$4,\n from_class: from_class$4,\n \"extends\": \"Format\\\\Component\",\n typed: typed$4,\n url: url$4,\n properties: properties$4\n};\n\nvar MapElement = function MapElement(story, map) {\n var role = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'map';\n var definition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n var _story$componentLayou = story.componentLayouts,\n componentLayouts = _story$componentLayou === void 0 ? {} : _story$componentLayou;\n\n var _ref = map || {},\n _ref$latitude = _ref.latitude,\n latitude = _ref$latitude === void 0 ? null : _ref$latitude,\n _ref$longitude = _ref.longitude,\n longitude = _ref$longitude === void 0 ? null : _ref$longitude;\n\n var content = _objectSpread(_objectSpread({\n role: role\n }, componentLayouts[role] ? {\n layout: role\n } : {}), {}, {\n latitude: latitude,\n longitude: longitude\n });\n\n var component = validate$1(content, definition);\n return {\n story: story,\n component: component\n };\n};\n\nvar Map = function Map(story, map) {\n return MapElement(story, map, 'map', MapDefinition);\n};\n\nvar name$3 = \"Format\\\\Mosaic\";\nvar description$3 = \"The component for displaying a set of images as tiles in no particular order.\";\nvar version$3 = \"1.7+\";\nvar from_class$3 = null;\nvar typed$3 = null;\nvar url$3 = \"https://developer.apple.com/documentation/apple_news/mosaic\";\nvar properties$3 = [{\n name: \"items\",\n type: \"array:Format\\\\GalleryItem\",\n required: true,\n description: \"An array of the images that will appear in the mosaic. The order used in the array may affect layout and positioning in the mosaic, depending on the device or width. Gallery items can be JPEG (with .jpg or .jpeg extension), PNG, or GIF images. If the GIF is animated, the animation plays only in full screen.\",\n typed: false\n}, {\n name: \"role\",\n type: \"string\",\n required: true,\n description: \"Always mosaic for this component.\",\n value: \"mosaic\",\n read_only: true,\n typed: false\n}, {\n name: \"anchor\",\n type: \"Format\\\\Anchor\",\n required: false,\n description: \"An object that defines vertical alignment with another component.\",\n typed: false\n}, {\n name: \"animation\",\n type: \"Format\\\\ComponentAnimation\",\n required: false,\n description: \"An object that defines an animation to be applied to the component.\",\n typed: true\n}, {\n name: \"behavior\",\n type: \"Format\\\\Behavior\",\n required: false,\n description: \"An object that defines behavior for a component, like Parallax or Springy.\",\n typed: true\n}, {\n name: \"conditional\",\n type: \"array:Format\\\\ConditionalComponent\",\n required: false,\n description: \"An array of component properties that can be applied conditionally, and the conditions that cause them to be applied.\",\n typed: false\n}, {\n name: \"hidden\",\n type: \"boolean\",\n required: false,\n description: \"A Boolean value that determines whether the component is hidden.\",\n \"default\": \"false\",\n typed: false\n}, {\n name: \"identifier\",\n type: \"string\",\n required: false,\n description: \"An optional unique identifier for this component. If used, this identifier must be unique across the entire document. You will need an identifier for your component if you want to anchor other components to it.\",\n typed: false\n}, {\n name: \"layout\",\n type: [\"Format\\\\ComponentLayout\", \"string\"],\n required: false,\n description: \"An inline ComponentLayout object that contains layout information, or a string reference to a ComponentLayout object that is defined at the top level of the document.\",\n typed: false\n}, {\n name: \"style\",\n type: [\"Format\\\\ComponentStyle\", \"string\"],\n required: false,\n description: \"An inline ComponentStyle object that defines the appearance of this component, or a string reference to a ComponentStyle object that is defined at the top level of the document.\",\n typed: false\n}];\nvar MosaicDefinition = {\n name: name$3,\n description: description$3,\n version: version$3,\n from_class: from_class$3,\n \"extends\": \"Format\\\\Component\",\n typed: typed$3,\n url: url$3,\n properties: properties$3\n};\n\nvar Mosaic = function Mosaic(story, mosaic) {\n return GalleryElement(story, mosaic, 'mosaic', MosaicDefinition);\n};\n\nvar name$2 = \"Format\\\\Quote\";\nvar description$2 = \"The component for including a quote.\";\nvar version$2 = \"1.7+\";\nvar from_class$2 = null;\nvar typed$2 = null;\nvar url$2 = \"https://developer.apple.com/documentation/apple_news/quote\";\nvar properties$2 = [{\n name: \"role\",\n type: \"string\",\n required: true,\n description: \"Always quote for this component.\",\n value: \"quote\",\n read_only: true,\n typed: false\n}, {\n name: \"text\",\n type: \"string\",\n required: true,\n description: \"The text to display in the article, including any formatting tags depending on the format property.\",\n typed: false\n}, {\n name: \"additions\",\n type: \"array:Format\\\\Addition\",\n required: false,\n description: \"An array of all the additions that should be applied to ranges of the component's text.\",\n typed: false\n}, {\n name: \"anchor\",\n type: \"Format\\\\Anchor\",\n required: false,\n description: \"An object that defines vertical alignment with another component.\",\n typed: false\n}, {\n name: \"animation\",\n type: \"Format\\\\ComponentAnimation\",\n required: false,\n description: \"An object that defines an animation to be applied to the component.\",\n typed: true\n}, {\n name: \"behavior\",\n type: \"Format\\\\Behavior\",\n required: false,\n description: \"An object that defines behavior for a component, like Parallax or Springy.\",\n typed: true\n}, {\n name: \"conditional\",\n type: \"array:Format\\\\ConditionalText\",\n required: false,\n description: \"An array of text components that can be applied conditionally and the conditions that cause them to be applied.\",\n typed: false\n}, {\n name: \"format\",\n type: \"enum:string\",\n required: false,\n description: \"The formatting or markup method applied to the text.\",\n \"default\": \"none\",\n enum_values: [\"markdown\", \"html\", \"none\"],\n typed: false\n}, {\n name: \"hidden\",\n type: \"boolean\",\n required: false,\n description: \"A Boolean value that determines whether the component is hidden.\",\n \"default\": \"false\",\n typed: false\n}, {\n name: \"identifier\",\n type: \"string\",\n required: false,\n description: \"An optional unique identifier for this component. If used, this identifier must be unique across the entire document. You will need an identifier for your component if you want to anchor other components to it.\",\n typed: false\n}, {\n name: \"inlineTextStyles\",\n type: \"array:Format\\\\InlineTextStyle\",\n required: false,\n description: \"An array of InlineTextStyle objects that you can use to apply different text styles to ranges of text. For each InlineTextStyle, you should supply a rangeStart, rangeLength, and either a TextStyle object or the identifier of a TextStyle that is defined at the top level of the document.\",\n typed: false\n}, {\n name: \"layout\",\n type: [\"Format\\\\ComponentLayout\", \"string\"],\n required: false,\n description: \"An inline ComponentLayout object that contains layout information, or a string reference to a ComponentLayout object that is defined at the top level of the document.\",\n typed: false\n}, {\n name: \"style\",\n type: [\"Format\\\\ComponentStyle\", \"string\"],\n required: false,\n description: \"An inline ComponentStyle object that defines the appearance of this component, or a string reference to a ComponentStyle object that is defined at the top level of the document.\",\n typed: false\n}, {\n name: \"textStyle\",\n type: [\"Format\\\\ComponentTextStyle\", \"string\"],\n required: false,\n description: \"An inline ComponentTextStyle object that contains styling information, or a string reference to a ComponentTextStyle object that is defined at the top level of the document.\",\n typed: false\n}];\nvar QuoteDefinition = {\n name: name$2,\n description: description$2,\n version: version$2,\n from_class: from_class$2,\n \"extends\": \"Format\\\\Text\",\n typed: typed$2,\n url: url$2,\n properties: properties$2\n};\n\nvar Quote = function Quote(story, quote) {\n return TextElement(story, quote, 'quote', QuoteDefinition);\n};\n\nvar name$1 = \"Format\\\\Title\";\nvar description$1 = \"The component for adding an article title.\";\nvar version$1 = \"1.7+\";\nvar from_class$1 = null;\nvar typed$1 = null;\nvar url$1 = \"https://developer.apple.com/documentation/apple_news/title\";\nvar properties$1 = [{\n name: \"role\",\n type: \"string\",\n required: true,\n description: \"Always title for this component.\",\n value: \"title\",\n read_only: true,\n typed: false\n}, {\n name: \"text\",\n type: \"string\",\n required: true,\n description: \"The text to display in the article, including any formatting tags depending on the format property.\",\n typed: false\n}, {\n name: \"additions\",\n type: \"array:Format\\\\Addition\",\n required: false,\n description: \"An array of all the additions that should be applied to ranges of the component's text.\",\n typed: false\n}, {\n name: \"anchor\",\n type: \"Format\\\\Anchor\",\n required: false,\n description: \"An object that defines vertical alignment with another component.\",\n typed: false\n}, {\n name: \"animation\",\n type: \"Format\\\\ComponentAnimation\",\n required: false,\n description: \"An object that defines an animation to be applied to the component.\",\n typed: true\n}, {\n name: \"behavior\",\n type: \"Format\\\\Behavior\",\n required: false,\n description: \"An object that defines behavior for a component, like Parallax or Springy.\",\n typed: true\n}, {\n name: \"conditional\",\n type: \"array:Format\\\\ConditionalText\",\n required: false,\n description: \"An array of text components that can be applied conditionally, and the conditions that cause them to be applied.\",\n typed: false\n}, {\n name: \"format\",\n type: \"enum:string\",\n required: false,\n description: \"The formatting or markup method applied to the text.\",\n \"default\": \"none\",\n enum_values: [\"markdown\", \"html\", \"none\"],\n typed: false\n}, {\n name: \"hidden\",\n type: \"boolean\",\n required: false,\n description: \"A Boolean value that determines whether the component is hidden.\",\n \"default\": \"false\",\n typed: false\n}, {\n name: \"identifier\",\n type: \"string\",\n required: false,\n description: \"An optional unique identifier for this component. If used, this identifier must be unique across the entire document. You will need an identifier for your component if you want to anchor other components to it.\",\n typed: false\n}, {\n name: \"inlineTextStyles\",\n type: \"array:Format\\\\InlineTextStyle\",\n required: false,\n description: \"An array of InlineTextStyle objects that you can use to apply different text styles to ranges of text. For each InlineTextStyle, you should supply a rangeStart, a rangeLength, and either a TextStyle object or the identifier of a TextStyle that is defined at the top level of the document.\",\n typed: false\n}, {\n name: \"layout\",\n type: [\"Format\\\\ComponentLayout\", \"string\"],\n required: false,\n description: \"An inline ComponentLayout object that contains layout information, or a string reference to a ComponentLayout that is defined at the top level of the document.\",\n typed: false\n}, {\n name: \"style\",\n type: [\"Format\\\\ComponentStyle\", \"string\"],\n required: false,\n description: \"An inline ComponentStyle object that defines the appearance of this component, or a string reference to a ComponentStyle that is defined at the top level of the document.\",\n typed: false\n}, {\n name: \"textStyle\",\n type: [\"Format\\\\ComponentTextStyle\", \"string\"],\n required: false,\n description: \"An inline ComponentTextStyle object that contains styling information, or a string reference to a ComponentTextStyle object that is defined at the top level of the document.\",\n typed: false\n}];\nvar TitleDefinition = {\n name: name$1,\n description: description$1,\n version: version$1,\n from_class: from_class$1,\n \"extends\": \"Format\\\\Text\",\n typed: typed$1,\n url: url$1,\n properties: properties$1\n};\n\nvar Subtitle = function Subtitle(story, subtitle) {\n return TextElement(story, subtitle, 'title', TitleDefinition);\n};\n\nvar Text = function Text(story, text) {\n return TextElement(story, text, 'text', TextDefinition);\n};\n\nvar Title = function Title(story, title) {\n return TextElement(story, title, 'title', TitleDefinition);\n};\n\nvar name = \"Format\\\\Video\";\nvar description = \"The component for adding a video.\";\nvar version = \"1.7+\";\nvar from_class = null;\nvar typed = null;\nvar url = \"https://developer.apple.com/documentation/apple_news/video\";\nvar properties = [{\n name: \"role\",\n type: \"string\",\n required: true,\n description: \"Always video for this component.\",\n value: \"video\",\n read_only: true,\n typed: false\n}, {\n name: \"URL\",\n type: \"uri\",\n required: true,\n description: \"The URL of a video file that can be played using AVPlayer. HTTP Live Streaming (HLS) is highly recommended (.M3U8). For more information on HLS, refer to the iOS developer documentation on HTTP Live Streaming, especially the following sections of the HTTP Live Streaming Overview:\",\n typed: false\n}, {\n name: \"accessibilityCaption\",\n type: \"string\",\n required: false,\n description: \"A caption that describes the content of the video. The text is used for VoiceOver for iOS and VoiceOver for macOS. If accessibilityCaption is not provided, the caption value is used for VoiceOver for iOS and VoiceOver for macOS.\",\n typed: false\n}, {\n name: \"anchor\",\n type: \"Format\\\\Anchor\",\n required: false,\n description: \"An object that defines vertical alignment with another component.\",\n typed: false\n}, {\n name: \"animation\",\n type: \"Format\\\\ComponentAnimation\",\n required: false,\n description: \"An object that defines an animation to be applied to the component.\",\n typed: true\n}, {\n name: \"aspectRatio\",\n type: \"number\",\n required: false,\n description: \"The aspect ratio of the video: width divided by height. The aspect ratio determines the height of the video player.\",\n \"default\": 1.777,\n typed: false\n}, {\n name: \"behavior\",\n type: \"Format\\\\Behavior\",\n required: false,\n description: \"An object that defines behavior for a component, like Parallax or Springy.\",\n typed: true\n}, {\n name: \"caption\",\n type: \"string\",\n required: false,\n description: \"A caption that describes the content of the video file. This text is also used by VoiceOver for iOS and VoiceOver for macOS if accessibilityCaption is not provided, or it can be shown when the video cannot be played.\",\n typed: false\n}, {\n name: \"conditional\",\n type: \"array:Format\\\\ConditionalComponent\",\n required: false,\n description: \"An array of component properties that can be applied conditionally, and the conditions that cause them to be applied.\",\n typed: false\n}, {\n name: \"explicitContent\",\n type: \"boolean\",\n required: false,\n description: \"A Boolean value that indicates that the video or its still image may contain explicit content.\",\n typed: false\n}, {\n name: \"hidden\",\n type: \"boolean\",\n required: false,\n description: \"A Boolean value that determines whether the component is hidden.\",\n \"default\": \"false\",\n typed: false\n}, {\n name: \"identifier\",\n type: \"string\",\n required: false,\n description: \"An optional unique identifier for this component. If used, this identifier must be unique across the entire document. You will need an identifier for your component if you want to anchor other components to it.\",\n typed: false\n}, {\n name: \"layout\",\n type: [\"Format\\\\ComponentLayout\", \"string\"],\n required: false,\n description: \"An inline ComponentLayout object that contains layout information, or a string reference to a ComponentLayout object that is defined at the top level of the document.\",\n typed: false\n}, {\n name: \"stillURL\",\n type: \"uri\",\n required: false,\n description: \"The URL of an image file that should be shown when the video has not yet been played.\",\n typed: false\n}, {\n name: \"style\",\n type: [\"Format\\\\ComponentStyle\", \"string\"],\n required: false,\n description: \"An inline ComponentStyle object that defines the appearance of this component, or a string reference to a ComponentStyle object that is defined at the top level of the document.\",\n typed: false\n}];\nvar VideoDefinition = {\n name: name,\n description: description,\n version: version,\n from_class: from_class,\n \"extends\": \"Format\\\\Component\",\n typed: typed,\n url: url,\n properties: properties\n};\n\nvar Video = function Video(story, video) {\n return MediaElement(story, video, 'video', VideoDefinition);\n};\n\nexport { Article, Audio, Author, Container, Gallery, Heading1, Heading2, Image, Map, Mosaic, Quote, Subtitle, Text, TextStyle, Title, Video };\n","import { FormattedMessage, defineMessage } from 'react-intl';\nimport _defineProperty from '@babel/runtime/helpers/defineProperty';\nimport _objectSpread from '@babel/runtime/helpers/objectSpread2';\nimport _slicedToArray from '@babel/runtime/helpers/slicedToArray';\nimport React, { useState, useCallback, useRef, useEffect, useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { PropTypes as PropTypes$1 } from '@micromag/core';\nimport { isIos } from '@micromag/core/utils';\nimport { useScreenSize, useScreenRenderContext, useViewer } from '@micromag/core/contexts';\nimport { useTrackScreenMedia, useLongPress } from '@micromag/core/hooks';\nimport { ScreenElement, Transitions } from '@micromag/core/components';\nimport Audio from '@micromag/element-audio';\nimport ClosedCaptions from '@micromag/element-closed-captions';\nimport MediaControls from '@micromag/element-media-controls';\nimport Background from '@micromag/element-background';\nimport Container from '@micromag/element-container';\nimport Layout, { Spacer } from '@micromag/element-layout';\nimport CallToAction from '@micromag/element-call-to-action';\nimport _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';\nimport { Audio as Audio$1, Container as Container$1 } from '@micromag/transforms/apple-news';\n\nvar styles = {\"container\":\"micromag-screen-audio-container\",\"disabled\":\"micromag-screen-audio-disabled\",\"hidden\":\"micromag-screen-audio-hidden\",\"placeholder\":\"micromag-screen-audio-placeholder\",\"content\":\"micromag-screen-audio-content\",\"empty\":\"micromag-screen-audio-empty\",\"mediaControls\":\"micromag-screen-audio-mediaControls\",\"audio\":\"micromag-screen-audio-audio\",\"bottomContent\":\"micromag-screen-audio-bottomContent\",\"isPreview\":\"micromag-screen-audio-isPreview\"};\n\nvar propTypes = {\n layout: PropTypes.oneOf(['middle']),\n audio: PropTypes$1.audioElement,\n spacing: PropTypes.number,\n background: PropTypes$1.backgroundElement,\n callToAction: PropTypes$1.callToAction,\n current: PropTypes.bool,\n transitions: PropTypes$1.transitions,\n getMediaRef: PropTypes.func,\n className: PropTypes.string\n};\nvar defaultProps = {\n layout: 'middle',\n audio: null,\n spacing: 20,\n background: null,\n callToAction: null,\n current: true,\n transitions: null,\n getMediaRef: null,\n className: null\n};\n\nvar AudioScreen = function AudioScreen(_ref) {\n var _ref7;\n\n _ref.layout;\n var audio = _ref.audio,\n spacing = _ref.spacing,\n background = _ref.background,\n callToAction = _ref.callToAction,\n current = _ref.current,\n transitions = _ref.transitions,\n getMediaRef = _ref.getMediaRef,\n className = _ref.className;\n var trackScreenMedia = useTrackScreenMedia('audio');\n\n var _useScreenSize = useScreenSize(),\n width = _useScreenSize.width,\n height = _useScreenSize.height,\n menuOverScreen = _useScreenSize.menuOverScreen;\n\n var _useScreenRenderConte = useScreenRenderContext(),\n isPlaceholder = _useScreenRenderConte.isPlaceholder,\n isPreview = _useScreenRenderConte.isPreview,\n isView = _useScreenRenderConte.isView,\n isEdit = _useScreenRenderConte.isEdit,\n isStatic = _useScreenRenderConte.isStatic,\n isCapture = _useScreenRenderConte.isCapture;\n\n var _useViewer = useViewer(),\n menuSize = _useViewer.menuSize;\n\n var hasCallToAction = callToAction !== null && callToAction.active === true;\n\n var _useState = useState(isStatic || isPlaceholder),\n _useState2 = _slicedToArray(_useState, 2),\n ready = _useState2[0],\n setReady = _useState2[1];\n\n var backgroundPlaying = current && (isView || isEdit);\n var transitionPlaying = current && ready;\n var transitionDisabled = isStatic || isCapture || isPlaceholder || isPreview || isEdit;\n var hasAudio = audio !== null;\n\n var _ref2 = audio || {},\n _ref2$media = _ref2.media,\n audioMedia = _ref2$media === void 0 ? null : _ref2$media,\n _ref2$autoPlay = _ref2.autoPlay,\n autoPlay = _ref2$autoPlay === void 0 ? true : _ref2$autoPlay,\n _ref2$closedCaptions = _ref2.closedCaptions,\n closedCaptions = _ref2$closedCaptions === void 0 ? null : _ref2$closedCaptions,\n _ref2$withPlayPause = _ref2.withPlayPause,\n withPlayPause = _ref2$withPlayPause === void 0 ? false : _ref2$withPlayPause;\n\n var _ref3 = audioMedia || {},\n _ref3$url = _ref3.url,\n audioUrl = _ref3$url === void 0 ? null : _ref3$url;\n\n var hasAudioUrl = audioUrl !== null;\n var finalAudio = hasAudio ? _objectSpread(_objectSpread({}, audio), {}, {\n autoPlay: !isPreview && !isStatic && !isCapture && autoPlay && current\n }) : null;\n var hasClosedCaptions = closedCaptions !== null;\n var onAudioReady = useCallback(function () {\n setReady(true);\n }, [setReady]);\n var apiRef = useRef();\n\n var _ref4 = apiRef.current || {},\n togglePlay = _ref4.togglePlay,\n toggleMute = _ref4.toggleMute,\n play = _ref4.play,\n pause = _ref4.pause,\n _ref4$mediaRef = _ref4.mediaRef,\n apiMediaRef = _ref4$mediaRef === void 0 ? null : _ref4$mediaRef;\n\n useEffect(function () {\n if (apiMediaRef !== null && getMediaRef !== null) {\n getMediaRef(apiMediaRef.current);\n }\n }, [apiMediaRef, getMediaRef]);\n\n var _useState3 = useState(null),\n _useState4 = _slicedToArray(_useState3, 2),\n currentTime = _useState4[0],\n setCurrentTime = _useState4[1];\n\n var _useState5 = useState(null),\n _useState6 = _slicedToArray(_useState5, 2),\n duration = _useState6[0],\n setDuration = _useState6[1];\n\n var _useState7 = useState(false),\n _useState8 = _slicedToArray(_useState7, 2),\n playing = _useState8[0],\n setPlaying = _useState8[1];\n\n var _useState9 = useState(false),\n _useState10 = _slicedToArray(_useState9, 2),\n muted = _useState10[0],\n setMuted = _useState10[1];\n\n var isIOS = useMemo(function () {\n return isIos();\n }, [isIos]);\n var onTimeUpdate = useCallback(function (time) {\n setCurrentTime(time);\n }, [setDuration, duration]);\n var onProgressStep = useCallback(function (step) {\n trackScreenMedia(audio, \"progress_\".concat(Math.round(step * 100, 10), \"%\"));\n }, [trackScreenMedia, audio]);\n var onDurationChanged = useCallback(function (dur) {\n setDuration(dur);\n }, [setDuration]);\n var onPlay = useCallback(function (_ref5) {\n var initial = _ref5.initial;\n setPlaying(true);\n trackScreenMedia(audio, initial ? 'play' : 'resume');\n }, [trackScreenMedia, audio]);\n var onPause = useCallback(function (_ref6) {\n var midway = _ref6.midway;\n setPlaying(false);\n trackScreenMedia(audio, midway ? 'pause' : 'ended');\n }, [trackScreenMedia, audio]);\n var onVolumeChanged = useCallback(function (isMuted) {\n setMuted(isMuted);\n trackScreenMedia(audio, isMuted ? 'mute' : 'unmute');\n }, [trackScreenMedia, audio]);\n var onSeeked = useCallback(function (time) {\n if (time > 0) {\n trackScreenMedia(audio, 'seek');\n }\n }, [trackScreenMedia, audio]);\n var onToggleMute = useCallback(function () {\n if (muted && !playing) {\n play();\n }\n\n toggleMute();\n }, [muted, toggleMute]);\n useEffect(function () {\n if (!current && playing) {\n pause();\n }\n }, [playing, current]); // ------------------------------------\n\n var longPressBind = useLongPress({\n onLongPress: togglePlay\n });\n var elements = [/*#__PURE__*/React.createElement(Spacer, {\n key: \"spacer-top\"\n }), /*#__PURE__*/React.createElement(ScreenElement, {\n key: \"audio\",\n placeholder: \"audio\",\n emptyLabel: /*#__PURE__*/React.createElement(FormattedMessage, {\n id: \"MYZwSA\",\n defaultMessage: [{\n \"type\": 0,\n \"value\": \"Audio\"\n }]\n }),\n emptyClassName: styles.empty,\n isEmpty: !hasAudioUrl\n }, /*#__PURE__*/React.createElement(Transitions, {\n transitions: transitions,\n playing: transitionPlaying,\n disabled: transitionDisabled\n }, /*#__PURE__*/React.createElement(Audio, Object.assign({}, finalAudio, {\n ref: apiRef,\n waveFake: isIOS || isPreview,\n waveProps: isPreview ? {\n sampleWidth: 10,\n sampleMargin: 5,\n minSampleHeight: 5\n } : null,\n className: styles.audio,\n onReady: onAudioReady,\n onPlay: onPlay,\n onPause: onPause,\n onTimeUpdate: onTimeUpdate,\n onProgressStep: onProgressStep,\n onDurationChanged: onDurationChanged,\n onSeeked: onSeeked,\n onVolumeChanged: onVolumeChanged\n })))), /*#__PURE__*/React.createElement(Spacer, {\n key: \"spacer-middle\"\n }), !isPlaceholder ? /*#__PURE__*/React.createElement(\"div\", {\n key: \"controls\",\n className: styles.bottomContent\n }, hasClosedCaptions && !isPreview && !isCapture && !isStatic ? /*#__PURE__*/React.createElement(ClosedCaptions, {\n className: styles.closedCaptions,\n media: closedCaptions,\n currentTime: currentTime\n }) : null, hasAudioUrl ? /*#__PURE__*/React.createElement(MediaControls, {\n className: styles.mediaControls,\n withPlayPause: withPlayPause,\n playing: playing,\n muted: muted,\n onTogglePlay: togglePlay,\n onToggleMute: onToggleMute,\n focusable: current && isView\n }) : null) : null, !isPlaceholder && hasCallToAction ? /*#__PURE__*/React.createElement(\"div\", {\n style: {\n margin: -spacing,\n marginTop: 0\n },\n key: \"call-to-action\"\n }, /*#__PURE__*/React.createElement(CallToAction, {\n callToAction: callToAction,\n animationDisabled: isPreview,\n focusable: current && isView\n })) : null].filter(function (el) {\n return el !== null;\n });\n return /*#__PURE__*/React.createElement(\"div\", Object.assign({\n className: classNames([styles.container, (_ref7 = {}, _defineProperty(_ref7, className, className !== null), _defineProperty(_ref7, styles.placeholder, isPlaceholder), _defineProperty(_ref7, styles.isPreview, isPreview), _ref7)]),\n \"data-screen-ready\": ready\n }, longPressBind), !isPlaceholder ? /*#__PURE__*/React.createElement(Background, {\n background: background,\n width: width,\n height: height,\n playing: backgroundPlaying\n }) : null, /*#__PURE__*/React.createElement(Container, {\n width: width,\n height: height\n }, /*#__PURE__*/React.createElement(Layout, {\n fullscreen: true,\n style: !isPlaceholder ? {\n padding: spacing,\n paddingTop: (menuOverScreen && !isPreview ? menuSize : 0) + spacing\n } : null\n }, elements)));\n};\n\nAudioScreen.propTypes = propTypes;\nAudioScreen.defaultProps = defaultProps;\nvar AudioScreen$1 = /*#__PURE__*/React.memo(AudioScreen);\n\nvar transform = function transform(newStory, _ref) {\n var audio = _ref.audio;\n\n var _ref2 = audio || {},\n _ref2$media = _ref2.media,\n media = _ref2$media === void 0 ? null : _ref2$media;\n\n var _Audio = Audio$1(newStory, media),\n titleStory = _Audio.story,\n titleComponent = _Audio.component;\n\n console.log(media);\n\n var _Container = Container$1(titleStory, _toConsumableArray(titleComponent ? [titleComponent] : [])),\n containerStory = _Container.story,\n containerComponent = _Container.component;\n\n return _objectSpread(_objectSpread({}, containerStory), {}, {\n components: [].concat(_toConsumableArray(newStory.components || []), _toConsumableArray(containerComponent ? [containerComponent] : []))\n });\n};\n\n// eslint-disable-next-line\n\nvar transforms = /*#__PURE__*/Object.freeze({\n __proto__: null,\n appleNews: transform\n});\n\nvar definition = {\n id: 'audio',\n type: 'screen',\n group: {\n label: defineMessage({\n \"id\": \"+9akmg\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Audio and Video\"\n }]\n }),\n order: 5\n },\n title: defineMessage({\n \"id\": \"bhEaUt\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Audio\"\n }]\n }),\n component: AudioScreen$1,\n layouts: ['middle'],\n transforms: transforms,\n fields: [{\n name: 'audio',\n type: 'audio-element',\n theme: {\n color: 'primary'\n },\n defaultValue: {\n autoPlay: true\n },\n label: defineMessage({\n \"id\": \"169xnt\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Audio\"\n }]\n })\n }, {\n name: 'background',\n type: 'background',\n label: defineMessage({\n \"id\": \"+MPZRu\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Background\"\n }]\n })\n }, {\n name: 'callToAction',\n type: 'call-to-action',\n theme: {\n label: {\n textStyle: 'heading2'\n }\n }\n }]\n};\n\nexport { AudioScreen$1 as AudioScreen, definition as default };\n","import PropTypes from 'prop-types';\nimport React, { useContext, useMemo, useState, useCallback, useEffect, useRef } from 'react';\nimport _createClass from '@babel/runtime/helpers/createClass';\nimport _classCallCheck from '@babel/runtime/helpers/classCallCheck';\nimport _inherits from '@babel/runtime/helpers/inherits';\nimport _createSuper from '@babel/runtime/helpers/createSuper';\nimport _objectSpread from '@babel/runtime/helpers/objectSpread2';\nimport { getJSON, getCSRFHeaders, postJSON } from '@folklore/fetch';\nimport { generatePath } from 'react-router';\nimport { stringify } from 'query-string';\nimport _slicedToArray from '@babel/runtime/helpers/slicedToArray';\nimport _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';\nimport _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';\n\nvar Base = /*#__PURE__*/function () {\n function Base() {\n var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, Base);\n\n this.options = _objectSpread(_objectSpread({\n routes: {}\n }, opts), {}, {\n baseUrl: opts.baseUrl || 'https://micromag.ca/api'\n });\n }\n\n _createClass(Base, [{\n key: \"requestGet\",\n value: function requestGet(path) {\n var query = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var queryString = query !== null ? stringify(query, {\n arrayFormat: 'bracket'\n }) : null;\n return getJSON(\"\".concat(this.getFullUrl(path)).concat(queryString !== null && queryString.length > 0 ? \"?\".concat(queryString) : ''), {\n credentials: 'include',\n headers: getCSRFHeaders()\n });\n }\n }, {\n key: \"requestPost\",\n value: function requestPost(path, data) {\n return postJSON(this.getFullUrl(path), data, {\n credentials: 'include',\n headers: getCSRFHeaders()\n });\n }\n }, {\n key: \"requestPut\",\n value: function requestPut(path, data) {\n return postJSON(this.getFullUrl(path), _objectSpread({\n _method: 'PUT'\n }, data), {\n credentials: 'include',\n headers: getCSRFHeaders()\n });\n }\n }, {\n key: \"requestDelete\",\n value: function requestDelete(path) {\n return this.requestPost(path, {\n _method: 'DELETE'\n });\n }\n }, {\n key: \"route\",\n value: function route(_route, params) {\n var routes = this.options.routes;\n return generatePath(routes[_route] || _route, params);\n }\n }, {\n key: \"getFullUrl\",\n value: function getFullUrl(path) {\n var baseUrl = this.options.baseUrl;\n return \"\".concat(baseUrl.replace(/\\/$/, ''), \"/\").concat(path.replace(/^\\//, ''));\n }\n }]);\n\n return Base;\n}();\n\nvar ContributionsApi = /*#__PURE__*/function (_Base) {\n _inherits(ContributionsApi, _Base);\n\n var _super = _createSuper(ContributionsApi);\n\n function ContributionsApi() {\n var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, ContributionsApi);\n\n return _super.call(this, _objectSpread(_objectSpread({}, opts), {}, {\n routes: _objectSpread({\n index: '/contributions/:screen',\n store: '/contributions',\n update: '/contributions/:contribution',\n \"delete\": '/contributions/:contribution'\n }, opts.routes || null)\n }));\n }\n\n _createClass(ContributionsApi, [{\n key: \"get\",\n value: function get(id) {\n var query = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var page = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n var count = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 10;\n\n var finalQuery = _objectSpread({}, query);\n\n if (page !== null) {\n finalQuery.page = page;\n }\n\n if (count !== null) {\n finalQuery.count = count;\n }\n\n return this.requestGet(this.route('index', {\n screen: id\n }), finalQuery);\n }\n }, {\n key: \"create\",\n value: function create(data) {\n return this.requestPost(this.route('store'), data);\n }\n }]);\n\n return ContributionsApi;\n}(Base);\n\nvar MediasApi = /*#__PURE__*/function (_Base) {\n _inherits(MediasApi, _Base);\n\n var _super = _createSuper(MediasApi);\n\n function MediasApi() {\n var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, MediasApi);\n\n return _super.call(this, _objectSpread(_objectSpread({}, opts), {}, {\n routes: _objectSpread({\n index: 'medias',\n tags: 'medias/tags',\n authors: 'medias/authors',\n show: 'medias/:media',\n store: 'medias',\n update: 'medias/:media',\n \"delete\": 'medias/:media'\n }, opts.routes || null)\n }));\n }\n\n _createClass(MediasApi, [{\n key: \"find\",\n value: function find(id) {\n return this.requestGet(this.route('show', {\n media: id\n }));\n }\n }, {\n key: \"get\",\n value: function get() {\n var query = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var page = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n var count = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 10;\n\n var finalQuery = _objectSpread({}, query);\n\n if (page !== null) {\n finalQuery.page = page;\n }\n\n if (count !== null) {\n finalQuery.count = count;\n }\n\n return this.requestGet(this.route('index'), finalQuery);\n }\n }, {\n key: \"getTags\",\n value: function getTags() {\n var query = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var count = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 10;\n\n var finalQuery = _objectSpread({}, query);\n\n if (count !== null) {\n finalQuery.count = count;\n }\n\n return this.requestGet(this.route('tags'), finalQuery);\n }\n }, {\n key: \"getAuthors\",\n value: function getAuthors() {\n var query = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var count = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 10;\n\n var finalQuery = _objectSpread({}, query);\n\n if (count !== null) {\n finalQuery.count = count;\n }\n\n return this.requestGet(this.route('authors'), finalQuery);\n }\n }, {\n key: \"create\",\n value: function create(data) {\n return this.requestPost(this.route('store'), data);\n }\n }, {\n key: \"update\",\n value: function update(id, data) {\n return this.requestPut(this.route('update', {\n media: id\n }), data);\n }\n }, {\n key: \"delete\",\n value: function _delete(id) {\n return this.requestDelete(this.route('delete', {\n media: id\n }));\n }\n }]);\n\n return MediasApi;\n}(Base);\n\nvar QuizApi = /*#__PURE__*/function (_Base) {\n _inherits(QuizApi, _Base);\n\n var _super = _createSuper(QuizApi);\n\n function QuizApi() {\n var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, QuizApi);\n\n return _super.call(this, _objectSpread(_objectSpread({}, opts), {}, {\n routes: _objectSpread({\n results: '/quiz/:screen',\n store: '/quiz',\n update: '/quiz/:quiz',\n \"delete\": '/quiz/:quiz'\n }, opts.routes || null)\n }));\n }\n\n _createClass(QuizApi, [{\n key: \"results\",\n value: function results(screenId) {\n return this.requestGet(this.route('results', {\n screen: screenId\n }));\n }\n }, {\n key: \"create\",\n value: function create(data) {\n return this.requestPost(this.route('store'), data);\n }\n }]);\n\n return QuizApi;\n}(Base);\n\nvar Api = /*#__PURE__*/function (_Base) {\n _inherits(Api, _Base);\n\n var _super = _createSuper(Api);\n\n function Api() {\n var _this;\n\n var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, Api);\n\n _this = _super.call(this, opts);\n _this.medias = new MediasApi(opts);\n _this.contributions = new ContributionsApi(opts);\n _this.quiz = new QuizApi(opts);\n return _this;\n }\n\n return _createClass(Api);\n}(Base);\n\n/* eslint-disable react/jsx-props-no-spreading */\nvar ApiContext = /*#__PURE__*/React.createContext(null);\nvar useApi = function useApi() {\n return useContext(ApiContext);\n};\nvar propTypes$1 = {\n api: PropTypes.instanceOf(Api),\n baseUrl: PropTypes.string,\n children: PropTypes.node.isRequired\n};\nvar defaultProps$1 = {\n api: null,\n baseUrl: undefined\n};\nvar ApiProvider = function ApiProvider(_ref) {\n var initialApi = _ref.api,\n baseUrl = _ref.baseUrl,\n children = _ref.children;\n var previousApi = useApi();\n var api = useMemo(function () {\n return initialApi || previousApi || new Api({\n baseUrl: baseUrl // baseUrl: 'https://micromag.studio.test/api',\n\n });\n }, [previousApi, initialApi, baseUrl]);\n return /*#__PURE__*/React.createElement(ApiContext.Provider, {\n value: api\n }, children);\n};\nApiProvider.propTypes = propTypes$1;\nApiProvider.defaultProps = defaultProps$1;\n\n/* eslint-disable react/jsx-props-no-spreading */\nvar propTypes = {\n api: PropTypes.instanceOf(Api),\n apiBaseUrl: PropTypes.string,\n children: PropTypes.node\n};\nvar defaultProps = {\n api: null,\n apiBaseUrl: undefined,\n children: null\n};\n\nvar DataProvider = function DataProvider(_ref) {\n var api = _ref.api,\n apiBaseUrl = _ref.apiBaseUrl,\n children = _ref.children;\n return /*#__PURE__*/React.createElement(ApiProvider, {\n api: api,\n baseUrl: apiBaseUrl\n }, children);\n};\n\nDataProvider.propTypes = propTypes;\nDataProvider.defaultProps = defaultProps;\n\nvar useContributionCreate = function useContributionCreate() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n screenId = _ref.screenId,\n _ref$onSuccess = _ref.onSuccess,\n onSuccess = _ref$onSuccess === void 0 ? null : _ref$onSuccess;\n\n var api = useApi();\n\n var _useState = useState(false),\n _useState2 = _slicedToArray(_useState, 2),\n creating = _useState2[0],\n setCreating = _useState2[1];\n\n var create = useCallback(function (data) {\n if (api === null) {\n return null;\n }\n\n setCreating(true);\n return api.contributions.create(_objectSpread({\n screen_id: screenId\n }, data)).then(function (response) {\n setCreating(false);\n\n if (onSuccess !== null) {\n onSuccess(response);\n }\n\n return response;\n });\n }, [api, setCreating, onSuccess, screenId]);\n return {\n create: create,\n creating: creating\n };\n};\n\nvar useData = function useData(loadData) {\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n _ref$initialData = _ref.initialData,\n initialData = _ref$initialData === void 0 ? null : _ref$initialData,\n _ref$autoload = _ref.autoload,\n autoload = _ref$autoload === void 0 ? true : _ref$autoload;\n\n var _useState = useState(false),\n _useState2 = _slicedToArray(_useState, 2),\n loading = _useState2[0],\n setLoading = _useState2[1];\n\n var _useState3 = useState(false),\n _useState4 = _slicedToArray(_useState3, 2),\n error = _useState4[0],\n setError = _useState4[1];\n\n var _useState5 = useState(initialData),\n _useState6 = _slicedToArray(_useState5, 2),\n data = _useState6[0],\n setData = _useState6[1];\n\n var load = useCallback(function () {\n var canceled = false;\n setLoading(true);\n var promise = loadData.apply(void 0, arguments).then(function (newData) {\n if (!canceled) {\n setData(newData);\n setLoading(false);\n }\n\n return newData;\n })[\"catch\"](function (newError) {\n setError(newError);\n setLoading(false);\n });\n\n promise.cancel = function () {\n canceled = true;\n setLoading(false);\n };\n\n return promise;\n }, [loadData, setLoading, setData]);\n useEffect(function () {\n var loader = null;\n\n if (autoload) {\n loader = load();\n }\n\n return function () {\n if (loader !== null) {\n loader.cancel();\n }\n };\n }, [autoload, load]);\n return {\n data: data,\n load: load,\n loading: loading,\n error: error\n };\n};\n\nvar _excluded$5 = [\"data\"];\nvar useContributions = function useContributions() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n screenId = _ref.screenId,\n _ref$opts = _ref.opts,\n opts = _ref$opts === void 0 ? {} : _ref$opts;\n\n var api = useApi();\n\n var _useState = useState(_toConsumableArray(new Array(10)).map(function (el, i) {\n return {\n name: \"Nom \".concat(i + 1),\n message: \"Message \".concat(i + 1)\n };\n })),\n _useState2 = _slicedToArray(_useState, 1),\n defaultContributions = _useState2[0];\n\n var loader = useCallback(function () {\n return api !== null ? api.contributions.get(screenId) : null;\n }, [api, screenId]);\n\n var _ref2 = api !== null ? useData(loader, opts) : {\n data: null\n },\n data = _ref2.data,\n request = _objectWithoutProperties(_ref2, _excluded$5);\n\n return _objectSpread({\n contributions: data || defaultContributions\n }, request);\n};\n\nvar useItems = function useItems(_ref) {\n var _ref$getPage = _ref.getPage,\n getPage = _ref$getPage === void 0 ? null : _ref$getPage,\n _ref$getItems = _ref.getItems,\n getItems = _ref$getItems === void 0 ? null : _ref$getItems,\n _ref$page = _ref.page,\n page = _ref$page === void 0 ? null : _ref$page,\n _ref$count = _ref.count,\n count = _ref$count === void 0 ? 10 : _ref$count,\n _ref$items = _ref.items,\n providedItems = _ref$items === void 0 ? null : _ref$items,\n _ref$pages = _ref.pages,\n initialPages = _ref$pages === void 0 ? null : _ref$pages,\n _ref$getPageFromRespo = _ref.getPageFromResponse,\n getPageFromResponse = _ref$getPageFromRespo === void 0 ? function (_ref2) {\n var _ref2$meta = _ref2.meta,\n currentPage = _ref2$meta.current_page,\n lastPage = _ref2$meta.last_page,\n total = _ref2$meta.total,\n items = _ref2.data;\n return {\n page: parseInt(currentPage, 10),\n lastPage: parseInt(lastPage, 10),\n total: parseInt(total, 10),\n items: items\n };\n } : _ref$getPageFromRespo,\n _ref$getItemsFromResp = _ref.getItemsFromResponse,\n getItemsFromResponse = _ref$getItemsFromResp === void 0 ? function (data) {\n return data;\n } : _ref$getItemsFromResp,\n _ref$onItemsLoaded = _ref.onItemsLoaded,\n onItemsLoaded = _ref$onItemsLoaded === void 0 ? null : _ref$onItemsLoaded,\n _ref$onPageLoaded = _ref.onPageLoaded,\n onPageLoaded = _ref$onPageLoaded === void 0 ? null : _ref$onPageLoaded,\n _ref$onLoaded = _ref.onLoaded,\n onLoaded = _ref$onLoaded === void 0 ? null : _ref$onLoaded,\n _ref$onError = _ref.onError,\n onError = _ref$onError === void 0 ? null : _ref$onError;\n var isPaginated = getPage !== null || initialPages !== null;\n var lastState = useRef(null);\n var initialState = useMemo(function () {\n var finalInitialPages = initialPages !== null ? initialPages.map(function (it) {\n return getPageFromResponse(it);\n }) : null;\n return {\n lastPage: finalInitialPages !== null ? finalInitialPages.reduce(function (currentLastPage, _ref3) {\n var initialLastPage = _ref3.lastPage;\n return initialLastPage > currentLastPage ? initialLastPage : currentLastPage;\n }, -1) : -1,\n total: finalInitialPages !== null ? finalInitialPages[0].total : (providedItems || []).length,\n loaded: providedItems !== null,\n loading: false,\n pages: finalInitialPages !== null ? finalInitialPages : null,\n items: null\n };\n }, [initialPages, providedItems]);\n\n var _useState = useState(initialState),\n _useState2 = _slicedToArray(_useState, 2),\n state = _useState2[0],\n setState = _useState2[1];\n\n var lastPage = state.lastPage,\n loaded = state.loaded,\n loading = state.loading,\n stateItems = state.items,\n pages = state.pages,\n total = state.total;\n var items = providedItems || (isPaginated && pages !== null ? pages.reduce(function (pagesItems, _ref4) {\n var pageItems = _ref4.items;\n return pagesItems.concat(pageItems);\n }, []) : stateItems) || null;\n\n var updateState = function updateState(update) {\n return setState(_objectSpread(_objectSpread({}, state), update));\n };\n\n var updateFromResponse = function updateFromResponse(response) {\n var error = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var reset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n if (error !== null) {\n updateState({\n loaded: false,\n loading: false\n });\n throw error;\n }\n\n if (isPaginated) {\n var newPage = getPageFromResponse(response);\n var newPages = (reset ? [newPage] : [].concat(_toConsumableArray((pages || []).filter(function (it) {\n return it.page !== newPage.page;\n })), [newPage])).sort(function (a, b) {\n if (a === b) {\n return 0;\n }\n\n return a > b ? 1 : -1;\n });\n updateState({\n loaded: true,\n loading: false,\n lastPage: newPage.lastPage,\n total: newPage.total,\n pages: newPages\n });\n return newPage;\n }\n\n var newItems = _toConsumableArray(getItemsFromResponse(response));\n\n updateState({\n loaded: true,\n loading: false,\n items: newItems,\n total: newItems.length\n });\n return newItems;\n };\n\n var getNextPage = function getNextPage() {\n var allPages = lastPage !== -1 ? Array.call.apply(Array, [null].concat(_toConsumableArray(Array(lastPage)))).map(function (it, index) {\n return index + 1;\n }) : [];\n var remainingPages = allPages.filter(function (pageNumber) {\n return pages.findIndex(function (it) {\n return it.page === pageNumber;\n }) === -1;\n });\n var firstItem = remainingPages.length > 0 ? remainingPages.shift() : null;\n return firstItem !== null ? firstItem : null;\n };\n\n var loadItems = function loadItems(requestPage) {\n updateState({\n loading: true\n });\n var canceled = false;\n var request = isPaginated ? getPage(requestPage, count) : getItems();\n var promise = request.then(function (response) {\n return !canceled ? updateFromResponse(response) : Promise.reject();\n })[\"catch\"](function (error) {\n return !canceled ? updateFromResponse(null, error) : Promise.reject();\n }).then(function (response) {\n if (isPaginated && onPageLoaded !== null) {\n onPageLoaded(response);\n } else if (!isPaginated && onItemsLoaded !== null) {\n onItemsLoaded(response);\n }\n\n if (onLoaded !== null) {\n onLoaded(response);\n }\n\n return response;\n })[\"catch\"](function (error) {\n if (!canceled && onError !== null) {\n onError(error);\n }\n });\n\n promise.cancel = function () {\n canceled = true;\n };\n\n return promise;\n };\n\n var loadPage = function loadPage(pageToLoad) {\n if (loading) {\n return Promise.reject();\n }\n\n if (pages.find(function (it) {\n return it.page === pageToLoad;\n }) !== -1) {\n return Promise.reject();\n }\n\n return loadItems(pageToLoad);\n };\n\n var loadNextPage = function loadNextPage() {\n if (loading) {\n return Promise.reject();\n }\n\n var nextPage = getNextPage();\n return nextPage !== null ? loadItems(nextPage) : Promise.resolve();\n };\n\n useEffect(function () {\n var hadState = lastState.current !== null;\n lastState.current = initialState;\n\n if (hadState) {\n setState(initialState);\n }\n }, [initialState]);\n useEffect(function () {\n if (getPage === null && getItems === null || providedItems !== null) {\n return function () {};\n }\n\n var loadPromise = null;\n var pageToLoad = isPaginated && initialPages === null && page === null ? 1 : page;\n\n if (!isPaginated || pageToLoad !== null) {\n loadPromise = loadItems(pageToLoad);\n }\n\n return function () {\n if (loadPromise !== null) {\n loadPromise.cancel();\n }\n };\n }, [getPage, getItems, page]);\n var currentPage = isPaginated && pages !== null ? pages.find(function (_ref5) {\n var pageNumber = _ref5.page;\n return parseInt(pageNumber, 10) === parseInt(page, 10);\n }) || null : null;\n return {\n items: items,\n pages: pages,\n pageItems: currentPage !== null ? currentPage.items : null,\n total: total,\n lastPage: lastPage,\n loaded: loaded,\n allLoaded: !isPaginated && loaded || lastPage !== -1 && isPaginated && pages.length === lastPage,\n loading: loading,\n loadNextPage: loadNextPage,\n loadPage: loadPage\n };\n};\n\nvar _excluded$4 = [\"data\"];\n\nvar useMedia = function useMedia(id, opts) {\n var api = useApi();\n var loader = useCallback(function () {\n return api.medias.find(id);\n }, [api, id]);\n\n var _useData = useData(loader, opts),\n data = _useData.data,\n request = _objectWithoutProperties(_useData, _excluded$4);\n\n return _objectSpread({\n story: data\n }, request);\n};\n\nvar _excluded$3 = [\"items\", \"pageItems\"];\n\nvar useMediaAuthors = function useMediaAuthors() {\n var query = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n var count = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 5;\n var opts = arguments.length > 2 ? arguments[2] : undefined;\n var api = useApi();\n var getItems = useCallback(function () {\n return api.medias.getAuthors(query, count);\n }, [api, query, count]);\n\n var _useItems = useItems(_objectSpread({\n getItems: getItems\n }, opts)),\n items = _useItems.items;\n _useItems.pageItems;\n var request = _objectWithoutProperties(_useItems, _excluded$3);\n\n return _objectSpread({\n authors: items\n }, request);\n};\n\nvar useMediaCreate = function useMediaCreate() {\n var _useState = useState(false),\n _useState2 = _slicedToArray(_useState, 2),\n creating = _useState2[0],\n setCreating = _useState2[1];\n\n var api = useApi();\n var create = useCallback(function (data) {\n setCreating(true);\n return api.medias.create(data).then(function (response) {\n setCreating(false);\n return response;\n });\n }, [api, setCreating]);\n return {\n create: create,\n creating: creating\n };\n};\n\nvar _excluded$2 = [\"items\", \"pageItems\"];\n\nvar useMedias = function useMedias() {\n var query = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n var page = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var count = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var opts = arguments.length > 3 ? arguments[3] : undefined;\n var api = useApi();\n var getItems = useCallback(function () {\n var requestedPage = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n return api.medias.get(query, requestedPage, count);\n }, [api, query, count]);\n\n var _useItems = useItems(_objectSpread({\n getPage: page !== null ? getItems : null,\n getItems: page === null ? getItems : null,\n page: page\n }, opts)),\n items = _useItems.items,\n pageItems = _useItems.pageItems,\n request = _objectWithoutProperties(_useItems, _excluded$2); // console.log('medias', items);\n\n\n return _objectSpread({\n medias: page !== null ? pageItems : items,\n allMedias: items\n }, request);\n};\n\nvar useMediasRecent = function useMediasRecent(opts) {\n var key = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'media-gallery-recent-searches';\n var createSearch = useCallback(function (value) {\n if (window !== undefined && value) {\n var recent = window.localStorage.getItem(key) || null;\n var current = recent !== null ? JSON.parse(recent || '[]') : [];\n var encoded = JSON.stringify([value].concat(_toConsumableArray(current)));\n window.localStorage.setItem(key, encoded);\n return true;\n }\n\n return false;\n }, [key]);\n var getSearches = useCallback(function () {\n var count = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 5;\n\n if (window !== undefined) {\n var recent = window.localStorage.getItem(key) || null;\n var current = recent !== null ? JSON.parse(recent || '[]') : [];\n return current.slice(0, count);\n }\n\n return [];\n }, [key]);\n return {\n createSearch: createSearch,\n getSearches: getSearches\n };\n};\n\nvar _excluded$1 = [\"items\", \"pageItems\"];\n\nvar useMediaTags = function useMediaTags() {\n var query = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n var count = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 5;\n var opts = arguments.length > 2 ? arguments[2] : undefined;\n var api = useApi();\n var getItems = useCallback(function () {\n return api.medias.getTags(query, count);\n }, [api, query, count]);\n\n var _useItems = useItems(_objectSpread({\n getItems: getItems\n }, opts)),\n items = _useItems.items;\n _useItems.pageItems;\n var request = _objectWithoutProperties(_useItems, _excluded$1);\n\n return _objectSpread({\n tags: items\n }, request);\n};\n\nvar useMediaUpdate = function useMediaUpdate() {\n var _useState = useState(false),\n _useState2 = _slicedToArray(_useState, 2),\n updating = _useState2[0],\n setUpdating = _useState2[1];\n\n var api = useApi();\n var update = useCallback(function (id, data) {\n setUpdating(true);\n return api.medias.update(id, data).then(function (response) {\n setUpdating(false);\n return response;\n });\n }, [api, setUpdating]);\n return {\n update: update,\n updating: updating\n };\n};\n\nvar _excluded = [\"data\"];\nvar useQuiz = function useQuiz() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n screenId = _ref.screenId,\n _ref$opts = _ref.opts,\n opts = _ref$opts === void 0 ? {} : _ref$opts;\n\n var api = useApi();\n var loader = useCallback(function () {\n return api !== null ? api.quiz.results(screenId) : null;\n }, [api, screenId]);\n\n var _ref2 = api !== null ? useData(loader, opts) : {\n data: null\n },\n data = _ref2.data,\n request = _objectWithoutProperties(_ref2, _excluded);\n\n return _objectSpread({\n quiz: data || []\n }, request);\n};\n\nvar useQuizCreate = function useQuizCreate() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n screenId = _ref.screenId,\n _ref$onSuccess = _ref.onSuccess,\n onSuccess = _ref$onSuccess === void 0 ? null : _ref$onSuccess;\n\n var api = useApi();\n\n var _useState = useState(false),\n _useState2 = _slicedToArray(_useState, 2),\n creating = _useState2[0],\n setCreating = _useState2[1];\n\n var create = useCallback(function (data) {\n if (api === null) {\n return null;\n }\n\n setCreating(true);\n return api.quiz.create(_objectSpread({\n screen_id: screenId\n }, data)).then(function (response) {\n setCreating(false);\n\n if (onSuccess !== null) {\n onSuccess(response);\n }\n\n return response;\n });\n }, [api, setCreating, onSuccess, screenId]);\n return {\n create: create,\n creating: creating\n };\n};\n\nexport { Api, ApiProvider, Base as BaseApi, DataProvider, useApi, useContributionCreate, useContributions, useData, useItems, useMedia, useMediaAuthors, useMediaCreate, useMediaTags, useMediaUpdate, useMedias, useMediasRecent as useMediasRecentSearches, useQuiz, useQuizCreate };\n","import _defineProperty from '@babel/runtime/helpers/defineProperty';\nimport _objectSpread from '@babel/runtime/helpers/objectSpread2';\nimport React from 'react';\nimport PropTypes$1 from 'prop-types';\nimport classNames from 'classnames';\nimport { PropTypes } from '@micromag/core';\nimport { Button as Button$1 } from '@micromag/core/components';\nimport { getStyleFromText, getStyleFromButton } from '@micromag/core/utils';\n\nvar styles = {\"container\":\"micromag-element-button-container\",\"active\":\"micromag-element-button-active\",\"focus\":\"micromag-element-button-focus\",\"disabled\":\"micromag-element-button-disabled\"};\n\nvar propTypes = {\n textStyle: PropTypes.textStyle,\n buttonStyle: PropTypes.buttonStyle,\n type: PropTypes$1.oneOf(['button', 'submit']),\n disabled: PropTypes$1.bool,\n focusable: PropTypes$1.bool,\n onClick: PropTypes$1.func,\n children: PropTypes$1.node,\n className: PropTypes$1.string,\n refButton: PropTypes$1.oneOfType([PropTypes$1.func, PropTypes$1.shape({\n current: PropTypes$1.any // eslint-disable-line\n\n })])\n};\nvar defaultProps = {\n textStyle: null,\n buttonStyle: null,\n type: 'button',\n disabled: false,\n focusable: true,\n onClick: null,\n children: null,\n className: null,\n refButton: null\n};\n\nvar Button = function Button(_ref) {\n var textStyle = _ref.textStyle,\n buttonStyle = _ref.buttonStyle,\n type = _ref.type,\n disabled = _ref.disabled,\n focusable = _ref.focusable,\n onClick = _ref.onClick,\n children = _ref.children,\n className = _ref.className,\n refButton = _ref.refButton;\n var finalStyle = null;\n\n if (textStyle !== null) {\n finalStyle = _objectSpread(_objectSpread({}, finalStyle), getStyleFromText(textStyle));\n }\n\n if (buttonStyle !== null) {\n finalStyle = _objectSpread(_objectSpread({}, finalStyle), getStyleFromButton(buttonStyle));\n }\n\n return /*#__PURE__*/React.createElement(Button$1, {\n className: classNames([styles.container, _defineProperty({}, className, className !== null)]),\n disabled: disabled,\n style: finalStyle,\n onClick: onClick,\n refButton: refButton,\n type: type,\n focusable: focusable\n }, children);\n};\n\nButton.propTypes = propTypes;\nButton.defaultProps = defaultProps;\n\nexport { Button as default };\n","import _defineProperty from '@babel/runtime/helpers/defineProperty';\nimport _objectSpread from '@babel/runtime/helpers/objectSpread2';\nimport { PropTypes as PropTypes$1 } from '@micromag/core';\nimport { LinkStyle, HighlightStyle } from '@micromag/core/components';\nimport { getStyleFromLink, getStyleFromHighlight, getStyleFromText, getStyleFromMargin } from '@micromag/core/utils';\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\nimport React, { useMemo } from 'react';\nimport { v1 } from 'uuid';\n\nvar styles = {\"container\":\"micromag-element-heading-container\"};\n\nvar propTypes = {\n size: PropTypes.oneOf([1, 2, 3, 4, 5, 6]),\n body: PropTypes.string,\n textStyle: PropTypes$1.textStyle,\n linksStyle: PropTypes$1.textStyle,\n margin: PropTypes$1.margin,\n className: PropTypes.string\n};\nvar defaultProps = {\n size: 1,\n body: null,\n textStyle: null,\n linksStyle: null,\n margin: null,\n className: null\n};\n\nvar Heading = function Heading(_ref) {\n var size = _ref.size,\n body = _ref.body,\n textStyle = _ref.textStyle,\n linksStyle = _ref.linksStyle,\n margin = _ref.margin,\n className = _ref.className;\n var HeadingComponent = \"h\".concat(size);\n\n var _ref2 = textStyle || {},\n _ref2$link = _ref2.link,\n linkStyle = _ref2$link === void 0 ? null : _ref2$link,\n _ref2$highlight = _ref2.highlight,\n highlightStyle = _ref2$highlight === void 0 ? null : _ref2$highlight;\n\n var finalStyle = null;\n var finalLinkStyle = linkStyle !== null ? getStyleFromLink(linkStyle) : null;\n var finalHighlightStyle = highlightStyle !== null ? getStyleFromHighlight(highlightStyle) : null;\n\n if (textStyle !== null) {\n finalStyle = _objectSpread(_objectSpread({}, finalStyle), getStyleFromText(textStyle));\n }\n\n if (margin !== null) {\n finalStyle = _objectSpread(_objectSpread({}, finalStyle), getStyleFromMargin(margin));\n }\n\n if (linksStyle !== null) {\n finalLinkStyle = _objectSpread(_objectSpread({}, finalLinkStyle), getStyleFromText(linksStyle));\n }\n\n var needsId = finalLinkStyle !== null || highlightStyle !== null;\n var id = useMemo(function () {\n return needsId ? \"text-component-\".concat(v1()) : null;\n }, [needsId]);\n return /*#__PURE__*/React.createElement(React.Fragment, null, finalLinkStyle !== null ? /*#__PURE__*/React.createElement(LinkStyle, {\n selector: \"#\".concat(id),\n style: finalLinkStyle\n }) : null, finalHighlightStyle !== null ? /*#__PURE__*/React.createElement(HighlightStyle, {\n selector: \"#\".concat(id),\n style: finalHighlightStyle\n }) : null, /*#__PURE__*/React.createElement(HeadingComponent, {\n id: id,\n className: classNames([styles.container, _defineProperty({}, className, className !== null)]),\n style: finalStyle,\n dangerouslySetInnerHTML: {\n __html: body\n }\n }));\n};\n\nHeading.propTypes = propTypes;\nHeading.defaultProps = defaultProps;\n\nexport { Heading as default };\n","import _defineProperty from '@babel/runtime/helpers/defineProperty';\nimport _slicedToArray from '@babel/runtime/helpers/slicedToArray';\nimport React, { useState, useRef, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { useResizeObserver } from '@micromag/core/hooks';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faArrowDown } from '@fortawesome/free-solid-svg-icons';\nimport { useScroll } from 'react-use-gesture';\n\nvar styles = {\"container\":\"micromag-element-scroll-container\",\"withScroll\":\"micromag-element-scroll-withScroll\",\"scrollable\":\"micromag-element-scroll-scrollable\",\"arrowContainer\":\"micromag-element-scroll-arrowContainer\",\"arrow\":\"micromag-element-scroll-arrow\",\"upAndDown\":\"micromag-element-scroll-upAndDown\",\"containOverscroll\":\"micromag-element-scroll-containOverscroll\",\"top\":\"micromag-element-scroll-top\",\"scrollee\":\"micromag-element-scroll-scrollee\",\"middle\":\"micromag-element-scroll-middle\",\"bottom\":\"micromag-element-scroll-bottom\",\"withArrow\":\"micromag-element-scroll-withArrow\"};\n\nvar propTypes = {\n width: PropTypes.number,\n height: PropTypes.number,\n disabled: PropTypes.bool,\n verticalAlign: PropTypes.oneOf(['top', 'middle', 'bottom']),\n className: PropTypes.string,\n children: PropTypes.node,\n onScrolledBottom: PropTypes.func,\n onScrolledNotBottom: PropTypes.func,\n contain: PropTypes.bool,\n scrollContainerRef: PropTypes.any // eslint-disable-line\n\n};\nvar defaultProps = {\n width: null,\n height: null,\n disabled: false,\n verticalAlign: null,\n className: null,\n children: null,\n onScrolledBottom: null,\n onScrolledNotBottom: null,\n contain: false,\n scrollContainerRef: null\n};\n\nvar Scroll = function Scroll(_ref) {\n var _ref5;\n\n var width = _ref.width,\n height = _ref.height,\n disabled = _ref.disabled,\n verticalAlign = _ref.verticalAlign,\n className = _ref.className,\n children = _ref.children,\n onScrolledBottom = _ref.onScrolledBottom,\n onScrolledNotBottom = _ref.onScrolledNotBottom,\n contain = _ref.contain,\n scrollContainerRef = _ref.scrollContainerRef;\n var finalStyle = {\n width: width,\n height: height\n };\n\n var _useState = useState(false),\n _useState2 = _slicedToArray(_useState, 2),\n withArrow = _useState2[0],\n setWithArrow = _useState2[1];\n\n var _useResizeObserver = useResizeObserver(),\n scrollableRef = _useResizeObserver.ref,\n scrollableRect = _useResizeObserver.entry.contentRect;\n\n var _ref2 = scrollableRect || {},\n scrollableHeight = _ref2.height;\n\n if (scrollContainerRef !== null) {\n scrollContainerRef.current = scrollableRef.current; // eslint-disable-line\n }\n\n var _useResizeObserver2 = useResizeObserver(),\n scrolleeRef = _useResizeObserver2.ref,\n scrolleeRect = _useResizeObserver2.entry.contentRect;\n\n var _ref3 = scrolleeRect || {},\n scrolleeHeight = _ref3.height;\n\n var scrolledBottomOnce = useRef(false);\n var scrolledNotBottomOnce = useRef(false);\n var reachedBottom = useRef(false);\n var bind = useScroll(function (_ref4) {\n var _ref4$xy = _slicedToArray(_ref4.xy, 2),\n scrollY = _ref4$xy[1];\n\n var newWithArrow = scrollY <= 1;\n var maxScrollAmount = scrolleeHeight - scrollableHeight;\n var nowReachedBottom = scrollY + 1 >= maxScrollAmount;\n\n if (nowReachedBottom) {\n if (!reachedBottom.current) {\n if (onScrolledBottom !== null) {\n onScrolledBottom({\n initial: !scrolledBottomOnce.current\n });\n }\n\n scrolledBottomOnce.current = true;\n }\n } else if (reachedBottom.current) {\n if (onScrolledNotBottom !== null) {\n onScrolledNotBottom({\n initial: !scrolledNotBottomOnce.current\n });\n }\n\n scrolledNotBottomOnce.current = true;\n }\n\n if (newWithArrow !== withArrow) {\n setWithArrow(newWithArrow);\n }\n\n reachedBottom.current = nowReachedBottom;\n }, {\n enabled: !disabled\n }); // need to call scrolled callbacks on initial render also\n\n useEffect(function () {\n if (scrolleeHeight > 0 && scrollableHeight > 0 && !disabled) {\n setWithArrow(Math.round(scrolleeHeight) > Math.round(scrollableHeight));\n var maxScrollAmount = scrolleeHeight - scrollableHeight;\n var nowReachedBottom = scrollableRef.current.scrollTop + 1 >= maxScrollAmount;\n\n if (nowReachedBottom) {\n if (onScrolledBottom !== null) {\n onScrolledBottom({\n initial: false\n });\n }\n } else if (onScrolledNotBottom !== null) {\n onScrolledNotBottom({\n initial: false\n });\n }\n }\n }, [scrollableHeight, scrolleeHeight, setWithArrow, disabled]);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames([styles.container, (_ref5 = {}, _defineProperty(_ref5, styles.withScroll, !disabled), _defineProperty(_ref5, styles.containOverscroll, contain), _defineProperty(_ref5, className, className !== null), _defineProperty(_ref5, styles[verticalAlign], verticalAlign !== null), _defineProperty(_ref5, styles.withArrow, withArrow), _ref5)]),\n style: finalStyle\n }, /*#__PURE__*/React.createElement(\"div\", Object.assign({\n className: styles.scrollable,\n ref: scrollableRef\n }, bind()), /*#__PURE__*/React.createElement(\"div\", {\n className: styles.scrollee,\n ref: scrolleeRef\n }, children)), !disabled ? /*#__PURE__*/React.createElement(\"div\", {\n className: styles.arrowContainer\n }, /*#__PURE__*/React.createElement(FontAwesomeIcon, {\n className: styles.arrow,\n icon: faArrowDown\n })) : null);\n};\n\nScroll.propTypes = propTypes;\nScroll.defaultProps = defaultProps;\nvar Scroll$1 = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(Scroll, Object.assign({\n scrollContainerRef: ref\n }, props));\n});\n\nexport { Scroll$1 as default };\n","import _defineProperty from '@babel/runtime/helpers/defineProperty';\nimport _objectSpread from '@babel/runtime/helpers/objectSpread2';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { PropTypes as PropTypes$1 } from '@micromag/core';\nimport { getStyleFromMargin, getStyleFromText, getStyleFromButton } from '@micromag/core/utils';\n\nvar styles = {\"container\":\"micromag-element-text-input-container\",\"element\":\"micromag-element-text-input-element\"};\n\nvar propTypes = {\n label: PropTypes.string,\n labelOutside: PropTypes.bool,\n labelClassName: PropTypes.string,\n textStyle: PropTypes$1.textStyle,\n buttonStyle: PropTypes$1.buttonStyle,\n labelOutsideStyle: PropTypes$1.textStyle,\n margin: PropTypes$1.margin,\n multiline: PropTypes.bool,\n value: PropTypes.string,\n onChange: PropTypes.func,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n required: PropTypes.bool,\n disabled: PropTypes.bool,\n focusable: PropTypes.bool,\n className: PropTypes.string\n};\nvar defaultProps = {\n label: null,\n labelOutside: false,\n labelClassName: null,\n textStyle: null,\n buttonStyle: null,\n labelOutsideStyle: null,\n margin: null,\n multiline: false,\n value: '',\n onChange: null,\n onFocus: null,\n onBlur: null,\n required: false,\n disabled: false,\n focusable: true,\n className: null\n};\n\nvar TextInput = function TextInput(_ref) {\n var _ref2;\n\n var label = _ref.label,\n labelOutside = _ref.labelOutside,\n labelClassName = _ref.labelClassName,\n textStyle = _ref.textStyle,\n buttonStyle = _ref.buttonStyle,\n labelOutsideStyle = _ref.labelOutsideStyle,\n margin = _ref.margin,\n multiline = _ref.multiline,\n value = _ref.value,\n onChange = _ref.onChange,\n onFocus = _ref.onFocus,\n onBlur = _ref.onBlur,\n required = _ref.required,\n disabled = _ref.disabled,\n focusable = _ref.focusable,\n className = _ref.className;\n var containerStyle = {};\n var labelStyle = {};\n var elementStyle = {};\n\n if (margin !== null) {\n containerStyle = _objectSpread(_objectSpread({}, containerStyle), getStyleFromMargin(margin));\n }\n\n if (labelOutsideStyle !== null) {\n labelStyle = _objectSpread(_objectSpread({}, labelStyle), getStyleFromText(labelOutsideStyle));\n }\n\n if (textStyle !== null) {\n elementStyle = _objectSpread(_objectSpread({}, elementStyle), getStyleFromText(textStyle));\n }\n\n if (buttonStyle !== null) {\n elementStyle = _objectSpread(_objectSpread({}, elementStyle), getStyleFromButton(buttonStyle));\n }\n\n var containerProps = {\n className: classNames([styles.container, (_ref2 = {}, _defineProperty(_ref2, className, className !== null), _defineProperty(_ref2, styles.element, !labelOutside), _ref2)]),\n style: containerStyle\n };\n\n var elementProps = _objectSpread(_objectSpread({\n className: styles.element\n }, !labelOutside ? containerProps : null), {}, {\n style: elementStyle,\n placeholder: !labelOutside ? label : undefined,\n value: value,\n onChange: onChange,\n onFocus: onFocus,\n onBlur: onBlur,\n required: required,\n disabled: disabled\n });\n\n var element = multiline ? /*#__PURE__*/React.createElement(\"textarea\", Object.assign({}, elementProps, {\n tabIndex: focusable ? '0' : '-1'\n })) : /*#__PURE__*/React.createElement(\"input\", Object.assign({}, elementProps, {\n type: \"text\",\n tabIndex: focusable ? '0' : '-1'\n }));\n return !labelOutside ? element : /*#__PURE__*/React.createElement(\"label\", containerProps, /*#__PURE__*/React.createElement(\"div\", {\n className: labelClassName,\n style: labelStyle\n }, label), element);\n};\n\nTextInput.propTypes = propTypes;\nTextInput.defaultProps = defaultProps;\n\nexport { TextInput as default };\n","import { FormattedMessage, defineMessage } from 'react-intl';\nimport _defineProperty from '@babel/runtime/helpers/defineProperty';\nimport _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';\nimport _slicedToArray from '@babel/runtime/helpers/slicedToArray';\nimport React, { useRef, useState, useCallback, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faSpinner } from '@fortawesome/free-solid-svg-icons';\nimport { PropTypes as PropTypes$1 } from '@micromag/core';\nimport { useScreenSize, useViewer, useScreenRenderContext } from '@micromag/core/contexts';\nimport { useTrackScreenEvent, useResizeObserver } from '@micromag/core/hooks';\nimport { ScreenElement, Transitions } from '@micromag/core/components';\nimport { isTextFilled, isLabelFilled, getStyleFromColor } from '@micromag/core/utils';\nimport { useContributionCreate, useContributions } from '@micromag/data';\nimport Background from '@micromag/element-background';\nimport Button from '@micromag/element-button';\nimport Container from '@micromag/element-container';\nimport Heading from '@micromag/element-heading';\nimport Scroll from '@micromag/element-scroll';\nimport CallToAction from '@micromag/element-call-to-action';\nimport Text from '@micromag/element-text';\nimport TextInput from '@micromag/element-text-input';\n\nvar styles = {\"container\":\"micromag-screen-contribution-container\",\"content\":\"micromag-screen-contribution-content\",\"buttonSubmit\":\"micromag-screen-contribution-buttonSubmit\",\"emptyInputMessage\":\"micromag-screen-contribution-emptyInputMessage\",\"emptyInputName\":\"micromag-screen-contribution-emptyInputName\",\"emptySubmit\":\"micromag-screen-contribution-emptySubmit\",\"emptyTitle\":\"micromag-screen-contribution-emptyTitle\",\"title\":\"micromag-screen-contribution-title\",\"interactiveContainer\":\"micromag-screen-contribution-interactiveContainer\",\"form\":\"micromag-screen-contribution-form\",\"inputMessage\":\"micromag-screen-contribution-inputMessage\",\"inputName\":\"micromag-screen-contribution-inputName\",\"formContent\":\"micromag-screen-contribution-formContent\",\"formLoading\":\"micromag-screen-contribution-formLoading\",\"rotate\":\"micromag-screen-contribution-rotate\",\"loadingIcon\":\"micromag-screen-contribution-loadingIcon\",\"contributionsContainer\":\"micromag-screen-contribution-contributionsContainer\",\"contributionsContent\":\"micromag-screen-contribution-contributionsContent\",\"contributions\":\"micromag-screen-contribution-contributions\",\"contribution\":\"micromag-screen-contribution-contribution\",\"callToAction\":\"micromag-screen-contribution-callToAction\",\"submitting\":\"micromag-screen-contribution-submitting\",\"submitted\":\"micromag-screen-contribution-submitted\",\"showContributions\":\"micromag-screen-contribution-showContributions\",\"isPlaceholder\":\"micromag-screen-contribution-isPlaceholder\"};\n\nvar propTypes = {\n id: PropTypes.string,\n layout: PropTypes.oneOf(['top', 'middle', 'bottom']),\n title: PropTypes$1.headingElement,\n name: PropTypes$1.inputElement,\n message: PropTypes$1.inputElement,\n submit: PropTypes$1.textElement,\n nameStyle: PropTypes$1.textStyle,\n messageStyle: PropTypes$1.textStyle,\n spacing: PropTypes.number,\n background: PropTypes$1.backgroundElement,\n callToAction: PropTypes$1.callToAction,\n current: PropTypes.bool,\n transitions: PropTypes$1.transitions,\n transitionStagger: PropTypes.number,\n resizeTransitionDuration: PropTypes.number,\n type: PropTypes.string,\n className: PropTypes.string\n};\nvar defaultProps = {\n id: null,\n layout: 'middle',\n title: null,\n name: null,\n message: null,\n submit: null,\n nameStyle: null,\n messageStyle: null,\n spacing: 20,\n background: null,\n callToAction: null,\n current: true,\n transitions: null,\n transitionStagger: 100,\n resizeTransitionDuration: 750,\n type: null,\n className: null\n};\n\nvar ContributionScreen = function ContributionScreen(_ref) {\n var _ref4;\n\n var id = _ref.id,\n layout = _ref.layout,\n title = _ref.title,\n name = _ref.name,\n message = _ref.message,\n submit = _ref.submit,\n nameStyle = _ref.nameStyle,\n messageStyle = _ref.messageStyle,\n spacing = _ref.spacing,\n background = _ref.background,\n callToAction = _ref.callToAction,\n current = _ref.current,\n transitions = _ref.transitions,\n transitionStagger = _ref.transitionStagger,\n resizeTransitionDuration = _ref.resizeTransitionDuration,\n type = _ref.type,\n className = _ref.className;\n var screenId = id || 'screen-id';\n var trackScreenEvent = useTrackScreenEvent(type);\n\n var _useScreenSize = useScreenSize(),\n width = _useScreenSize.width,\n height = _useScreenSize.height,\n menuOverScreen = _useScreenSize.menuOverScreen;\n\n var _useViewer = useViewer(),\n menuSize = _useViewer.menuSize;\n\n var _useScreenRenderConte = useScreenRenderContext(),\n isView = _useScreenRenderConte.isView,\n isPreview = _useScreenRenderConte.isPreview,\n isPlaceholder = _useScreenRenderConte.isPlaceholder,\n isEdit = _useScreenRenderConte.isEdit,\n isStatic = _useScreenRenderConte.isStatic,\n isCapture = _useScreenRenderConte.isCapture;\n\n var backgroundPlaying = current && (isView || isEdit);\n var transitionPlaying = current;\n var transitionDisabled = isStatic || isCapture || isPlaceholder || isPreview || isEdit;\n var scrollingDisabled = !isEdit && transitionDisabled || !current;\n var hasTitle = isTextFilled(title);\n var hasNameLabel = isLabelFilled(name);\n var hasMessageLabel = isLabelFilled(message);\n var hasSubmit = isTextFilled(submit);\n var contributionsRef = useRef(null);\n var formRef = useRef(null);\n\n var _useState = useState(null),\n _useState2 = _slicedToArray(_useState, 2),\n interactiveContainerHeight = _useState2[0],\n setInteractiveContainerHeight = _useState2[1];\n\n var _useState3 = useState(''),\n _useState4 = _slicedToArray(_useState3, 2),\n userName = _useState4[0],\n setUserName = _useState4[1];\n\n var _useState5 = useState(''),\n _useState6 = _slicedToArray(_useState5, 2),\n userMessage = _useState6[0],\n setUserMessage = _useState6[1]; // 0 = default, 1 = submitting, 2 = submitted, 3 = resizing, 4 = done\n\n\n var _useState7 = useState(isStatic || isCapture ? 4 : 0),\n _useState8 = _slicedToArray(_useState7, 2),\n submitState = _useState8[0],\n setSubmitState = _useState8[1];\n\n var onContributionSubmitted = useCallback(function () {\n setSubmitState(2);\n trackScreenEvent('submit_success', \"\".concat(userName, \": \").concat(userMessage));\n }, [setSubmitState, trackScreenEvent, userName, userMessage]);\n\n var _useContributionCreat = useContributionCreate({\n screenId: screenId\n }),\n submitContribution = _useContributionCreat.create;\n\n var _useContributions = useContributions({\n screenId: screenId,\n opts: {\n autoload: !isPlaceholder\n }\n }),\n contributions = _useContributions.contributions;\n\n var onNameChange = useCallback(function (e) {\n setUserName(e.currentTarget.value);\n }, [setUserName]);\n var onMessageChange = useCallback(function (e) {\n setUserMessage(e.currentTarget.value);\n }, [setUserMessage]);\n var nameFilled = useRef(false);\n var onNameBlur = useCallback(function (e) {\n if (!nameFilled.current && e.currentTarget.value.length > 0) {\n nameFilled.current = true;\n trackScreenEvent('input_filled', 'Name', {\n userName: e.currentTarget.value,\n userMessage: userMessage\n });\n }\n }, [trackScreenEvent, userMessage]);\n var messageFilled = useRef(false);\n var onMessageBlur = useCallback(function (e) {\n if (!messageFilled.current && e.currentTarget.value.length > 0) {\n messageFilled.current = true;\n trackScreenEvent('input_filled', 'Message', {\n userName: userName,\n userMessage: e.currentTarget.value\n });\n }\n }, [trackScreenEvent, userName]); // Call to Action\n\n var hasCallToAction = callToAction !== null && callToAction.active === true;\n\n var _useState9 = useState(false),\n _useState10 = _slicedToArray(_useState9, 2),\n scrolledBottom = _useState10[0],\n setScrolledBottom = _useState10[1];\n\n var swipeUpLinkActive = scrolledBottom && submitState === 4;\n\n var _useResizeObserver = useResizeObserver(),\n callToActionRef = _useResizeObserver.ref,\n callToActionRect = _useResizeObserver.entry.contentRect;\n\n var _ref2 = callToActionRect || {},\n _ref2$height = _ref2.height,\n callToActionHeight = _ref2$height === void 0 ? 0 : _ref2$height;\n\n var onScrolledBottom = useCallback(function (_ref3) {\n var initial = _ref3.initial;\n\n if (initial) {\n trackScreenEvent('scroll', 'Contributions list');\n }\n\n setScrolledBottom(true);\n }, [trackScreenEvent, setScrolledBottom]);\n var onScrolledNotBottom = useCallback(function () {\n setScrolledBottom(false);\n }, [setScrolledBottom]);\n var onSubmit = useCallback(function (e) {\n e.preventDefault();\n\n if (submitState === 0) {\n setInteractiveContainerHeight(formRef.current.offsetHeight);\n setSubmitState(1);\n submitContribution({\n name: userName,\n message: userMessage\n });\n onContributionSubmitted();\n trackScreenEvent('click_submit', \"\".concat(userName, \": \").concat(userMessage), {\n userName: userName,\n userMessage: userMessage\n });\n }\n }, [submitState, setSubmitState, userName, userMessage, trackScreenEvent, onContributionSubmitted]);\n useEffect(function () {\n var timeout = null;\n\n if (submitState === 2) {\n timeout = setTimeout(setSubmitState, resizeTransitionDuration, 4);\n setInteractiveContainerHeight(contributionsRef.current.offsetHeight);\n setSubmitState(3);\n }\n\n return function () {\n if (submitState === 3 && timeout !== null) {\n clearTimeout(timeout);\n }\n };\n }, [submitState, setInteractiveContainerHeight, setSubmitState, resizeTransitionDuration]); // Title\n\n var items = [/*#__PURE__*/React.createElement(ScreenElement, {\n key: \"title\",\n placeholder: \"title\",\n placeholderProps: {\n height: '0.75em'\n },\n emptyLabel: /*#__PURE__*/React.createElement(FormattedMessage, {\n id: \"2ZOPe+\",\n defaultMessage: [{\n \"type\": 0,\n \"value\": \"Title\"\n }]\n }),\n emptyClassName: styles.emptyTitle,\n isEmpty: !hasTitle\n }, hasTitle ? /*#__PURE__*/React.createElement(Transitions, {\n transitions: transitions,\n playing: transitionPlaying,\n disabled: transitionDisabled\n }, /*#__PURE__*/React.createElement(Heading, Object.assign({}, title, {\n className: styles.title\n }))) : null)];\n var allContributions = [].concat(_toConsumableArray(userName !== null && userMessage !== null ? [{\n name: userName,\n message: userMessage\n }] : []), _toConsumableArray(contributions || [])); // Form\n\n items.push( /*#__PURE__*/React.createElement(\"div\", {\n key: \"form\",\n className: styles.interactiveContainer,\n style: {\n height: submitState < 4 ? interactiveContainerHeight : null,\n transitionDuration: \"\".concat(resizeTransitionDuration, \"ms\")\n }\n }, /*#__PURE__*/React.createElement(\"form\", {\n className: styles.form,\n onSubmit: onSubmit,\n ref: formRef\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: styles.formContent\n }, /*#__PURE__*/React.createElement(ScreenElement, {\n placeholder: \"inputText\",\n placeholderProps: {\n height: '0.25em'\n },\n emptyLabel: /*#__PURE__*/React.createElement(FormattedMessage, {\n id: \"G/ITGY\",\n defaultMessage: [{\n \"type\": 0,\n \"value\": \"Your name\"\n }]\n }),\n emptyClassName: styles.emptyInputName,\n isEmpty: !hasNameLabel\n }, /*#__PURE__*/React.createElement(Transitions, {\n transitions: transitions,\n playing: transitionPlaying,\n delay: transitionStagger,\n disabled: transitionDisabled\n }, /*#__PURE__*/React.createElement(TextInput, Object.assign({\n className: styles.inputName\n }, name, {\n value: userName,\n onChange: function onChange(e) {\n return onNameChange(e);\n },\n onBlur: function onBlur(e) {\n return onNameBlur(e);\n },\n focusable: current && isView,\n disabled: isPreview,\n required: true\n })))), /*#__PURE__*/React.createElement(ScreenElement, {\n placeholder: \"inputText\",\n placeholderProps: {\n height: '0.75em'\n },\n emptyLabel: /*#__PURE__*/React.createElement(FormattedMessage, {\n id: \"JAguka\",\n defaultMessage: [{\n \"type\": 0,\n \"value\": \"Your message\"\n }]\n }),\n emptyClassName: styles.emptyInputMessage,\n isEmpty: !hasMessageLabel\n }, /*#__PURE__*/React.createElement(Transitions, {\n transitions: transitions,\n playing: transitionPlaying,\n delay: transitionStagger * 2,\n disabled: transitionDisabled\n }, /*#__PURE__*/React.createElement(TextInput, Object.assign({\n className: styles.inputMessage\n }, message, {\n value: userMessage,\n onChange: function onChange(e) {\n return onMessageChange(e);\n },\n onBlur: function onBlur(e) {\n return onMessageBlur(e);\n },\n disabled: isPreview,\n focusable: current && isView,\n multiline: true,\n required: true\n })))), /*#__PURE__*/React.createElement(ScreenElement, {\n placeholder: \"button\",\n emptyLabel: /*#__PURE__*/React.createElement(FormattedMessage, {\n id: \"5uH4x7\",\n defaultMessage: [{\n \"type\": 0,\n \"value\": \"Submit\"\n }]\n }),\n emptyClassName: styles.emptySubmit,\n isEmpty: !hasSubmit\n }, /*#__PURE__*/React.createElement(Transitions, {\n transitions: transitions,\n playing: transitionPlaying,\n delay: transitionStagger * 3,\n disabled: transitionDisabled\n }, /*#__PURE__*/React.createElement(Button, {\n type: \"submit\",\n className: styles.buttonSubmit,\n disabled: isPreview,\n buttonStyle: submit !== null ? submit.buttonStyle : null,\n focusable: current && isView\n }, /*#__PURE__*/React.createElement(Text, Object.assign({}, submit, {\n inline: true\n })))))), /*#__PURE__*/React.createElement(\"div\", {\n className: styles.formLoading\n }, /*#__PURE__*/React.createElement(FontAwesomeIcon, {\n className: styles.loadingIcon,\n icon: faSpinner\n }))), /*#__PURE__*/React.createElement(\"div\", {\n className: styles.contributionsContainer,\n \"aria-hidden\": submitState === 4 ? null : 'true'\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: styles.contributionsContent\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: styles.contributions,\n ref: contributionsRef\n }, allContributions.map(function (contribution, contributionIndex) {\n var nameInnerStyle = nameStyle !== null ? nameStyle.style || null : null;\n var messageInnerStyle = messageStyle !== null ? messageStyle.style || null : null;\n return /*#__PURE__*/React.createElement(\"div\", {\n key: \"contribution-\".concat(contributionIndex),\n className: styles.contribution,\n style: nameInnerStyle !== null ? getStyleFromColor(nameInnerStyle.color, 'borderColor') : null\n }, /*#__PURE__*/React.createElement(Heading, {\n className: styles.contributionName,\n body: contribution.name,\n size: 2,\n textStyle: nameInnerStyle\n }), /*#__PURE__*/React.createElement(Text, {\n className: styles.contributionMessage,\n body: contribution.message,\n textStyle: messageInnerStyle\n }));\n })))), hasCallToAction ? /*#__PURE__*/React.createElement(\"div\", {\n style: {\n height: callToActionHeight\n }\n }) : null));\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames([styles.container, (_ref4 = {}, _defineProperty(_ref4, className, className !== null), _defineProperty(_ref4, styles.isPlaceholder, isPlaceholder), _defineProperty(_ref4, styles.submitting, submitState === 1), _defineProperty(_ref4, styles.submitted, submitState > 1), _defineProperty(_ref4, styles.showContributions, submitState === 4), _ref4)]),\n \"data-screen-ready\": true\n }, !isPlaceholder ? /*#__PURE__*/React.createElement(Background, {\n background: background,\n width: width,\n height: height,\n playing: backgroundPlaying\n }) : null, /*#__PURE__*/React.createElement(Container, {\n width: width,\n height: height\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: styles.content,\n style: !isPlaceholder ? {\n padding: spacing,\n paddingTop: (menuOverScreen && !isPreview ? menuSize : 0) + spacing\n } : null\n }, /*#__PURE__*/React.createElement(Scroll, {\n verticalAlign: layout,\n disabled: scrollingDisabled,\n onScrolledBottom: onScrolledBottom,\n onScrolledNotBottom: onScrolledNotBottom\n }, items), !isPlaceholder && hasCallToAction ? /*#__PURE__*/React.createElement(CallToAction, {\n ref: callToActionRef,\n className: styles.callToAction,\n disabled: !swipeUpLinkActive,\n animationDisabled: isPreview,\n callToAction: callToAction,\n focusable: current && isView\n }) : null)));\n};\n\nContributionScreen.propTypes = propTypes;\nContributionScreen.defaultProps = defaultProps;\n\nvar definition = {\n id: 'contribution',\n type: 'screen',\n group: {\n label: defineMessage({\n \"id\": \"ZqwBOx\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Questions\"\n }]\n }),\n order: 7\n },\n title: defineMessage({\n \"id\": \"g6b9Lg\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Contribution\"\n }]\n }),\n component: ContributionScreen,\n layouts: ['top', 'middle', 'bottom'],\n fields: [{\n name: 'layout',\n type: 'screen-layout',\n defaultValue: 'top',\n label: defineMessage({\n \"id\": \"4iBXj2\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Layout\"\n }]\n })\n }, {\n name: 'title',\n type: 'heading-element',\n theme: {\n textStyle: 'heading2'\n },\n label: defineMessage({\n \"id\": \"N25iDO\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Title\"\n }]\n })\n }, {\n name: 'name',\n type: 'input-element',\n theme: {\n textStyle: 'text'\n },\n label: defineMessage({\n \"id\": \"nXVNeg\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Name\"\n }]\n })\n }, {\n name: 'message',\n type: 'input-element',\n theme: {\n textStyle: 'text'\n },\n label: defineMessage({\n \"id\": \"RcLsua\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Message\"\n }]\n })\n }, {\n name: 'submit',\n type: 'button-element',\n theme: {\n textStyle: 'button'\n },\n label: defineMessage({\n \"id\": \"uAKPQ9\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Submit\"\n }]\n })\n }, {\n name: 'nameStyle',\n type: 'item-text-style',\n theme: {\n style: {\n textStyle: 'heading2'\n }\n },\n label: defineMessage({\n \"id\": \"SyMSDa\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Published name style\"\n }]\n })\n }, {\n name: 'messageStyle',\n type: 'item-text-style',\n theme: {\n style: {\n textStyle: 'text'\n }\n },\n label: defineMessage({\n \"id\": \"+SlKOi\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Published message style\"\n }]\n })\n }, {\n name: 'background',\n type: 'background',\n label: defineMessage({\n \"id\": \"+MPZRu\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Background\"\n }]\n })\n }, {\n name: 'callToAction',\n type: 'call-to-action',\n theme: {\n label: {\n textStyle: 'heading2'\n }\n }\n }]\n};\n\nexport { ContributionScreen, definition as default };\n","import _defineProperty from '@babel/runtime/helpers/defineProperty';\nimport _objectSpread from '@babel/runtime/helpers/objectSpread2';\nimport _slicedToArray from '@babel/runtime/helpers/slicedToArray';\nimport React, { useState, useCallback } from 'react';\nimport PropTypes$1 from 'prop-types';\nimport classNames from 'classnames';\nimport { PropTypes } from '@micromag/core';\nimport { getOptimalImageUrl } from '@micromag/core/utils';\nimport { getSizeWithinBounds } from '@folklore/size';\n\nvar styles = {\"container\":\"micromag-element-image-container\",\"showEmpty\":\"micromag-element-image-showEmpty\",\"img\":\"micromag-element-image-img\"};\n\nvar propTypes = {\n media: PropTypes.imageMedia,\n alt: PropTypes$1.string,\n width: PropTypes$1.oneOfType([PropTypes$1.number, PropTypes$1.string]),\n height: PropTypes$1.oneOfType([PropTypes$1.number, PropTypes$1.string]),\n objectFit: PropTypes.objectFit,\n containerStyle: PropTypes.containerStyle,\n imageStyle: PropTypes.containerStyle,\n className: PropTypes$1.string,\n imageClassName: PropTypes$1.string,\n onLoaded: PropTypes$1.func,\n loadingMode: PropTypes$1.string\n};\nvar defaultProps = {\n media: null,\n alt: null,\n width: null,\n height: null,\n objectFit: null,\n containerStyle: {},\n //\n imageStyle: {},\n className: null,\n imageClassName: null,\n onLoaded: null,\n loadingMode: 'lazy'\n};\n\nvar Image = function Image(_ref) {\n var media = _ref.media,\n alt = _ref.alt,\n width = _ref.width,\n height = _ref.height,\n objectFit = _ref.objectFit,\n containerStyle = _ref.containerStyle,\n imageStyle = _ref.imageStyle,\n className = _ref.className,\n imageClassName = _ref.imageClassName,\n onLoaded = _ref.onLoaded,\n loadingMode = _ref.loadingMode;\n\n var _ref2 = media || {},\n _ref2$url = _ref2.url,\n url = _ref2$url === void 0 ? null : _ref2$url,\n _ref2$metadata = _ref2.metadata,\n metadata = _ref2$metadata === void 0 ? null : _ref2$metadata;\n\n var _ref3 = metadata || {},\n _ref3$width = _ref3.width,\n mediaWidth = _ref3$width === void 0 ? 0 : _ref3$width,\n _ref3$height = _ref3.height,\n mediaHeight = _ref3$height === void 0 ? 0 : _ref3$height,\n _ref3$description = _ref3.description,\n description = _ref3$description === void 0 ? 'image' : _ref3$description;\n\n var mediaRatio = mediaWidth / mediaHeight;\n\n var _useState = useState(null),\n _useState2 = _slicedToArray(_useState, 2),\n realSize = _useState2[0],\n setRealSize = _useState2[1];\n\n var _ref4 = realSize || {},\n _ref4$realWidth = _ref4.realWidth,\n realWidth = _ref4$realWidth === void 0 ? 0 : _ref4$realWidth,\n _ref4$realHeight = _ref4.realHeight,\n realHeight = _ref4$realHeight === void 0 ? 0 : _ref4$realHeight;\n\n var onImageLoaded = useCallback(function (e) {\n var _e$target = e.target,\n _e$target$naturalWidt = _e$target.naturalWidth,\n naturalWidth = _e$target$naturalWidt === void 0 ? 0 : _e$target$naturalWidt,\n _e$target$naturalHeig = _e$target.naturalHeight,\n naturalHeight = _e$target$naturalHeig === void 0 ? 0 : _e$target$naturalHeig;\n setRealSize({\n width: naturalWidth,\n height: naturalHeight\n });\n\n if (onLoaded !== null) {\n onLoaded(e);\n }\n }, [onLoaded]);\n var finalMediaWidth = realWidth || mediaWidth || 0;\n var finalMediaHeight = realHeight || mediaHeight || 0;\n var withFit = objectFit !== null;\n var mediaHasSize = finalMediaWidth > 0 && finalMediaHeight > 0;\n var finalContainerStyle;\n var finalImageStyle;\n\n if (withFit) {\n var imageTop = 0;\n var imageLeft = 0;\n var imageWidth = width;\n var imageHeight = height;\n var imageObjectFit = null;\n var imageObjectPosition = null;\n\n var _ref5 = objectFit || {},\n _ref5$fit = _ref5.fit,\n fit = _ref5$fit === void 0 ? null : _ref5$fit,\n _ref5$horizontalPosit = _ref5.horizontalPosition,\n horizontalPosition = _ref5$horizontalPosit === void 0 ? 'center' : _ref5$horizontalPosit,\n _ref5$verticalPositio = _ref5.verticalPosition,\n verticalPosition = _ref5$verticalPositio === void 0 ? 'center' : _ref5$verticalPositio;\n\n if (mediaHasSize) {\n var _getSizeWithinBounds = getSizeWithinBounds(finalMediaWidth, finalMediaHeight, width, height, {\n cover: fit === 'cover'\n }),\n resizedImageWidth = _getSizeWithinBounds.width,\n resizedImageHeight = _getSizeWithinBounds.height;\n\n imageWidth = resizedImageWidth;\n imageHeight = resizedImageHeight;\n\n if (horizontalPosition === 'center') {\n imageLeft = -(resizedImageWidth - width) / 2;\n } else if (horizontalPosition === 'right') {\n imageLeft = -(resizedImageWidth - width);\n }\n\n if (verticalPosition === 'center') {\n imageTop = -(resizedImageHeight - height) / 2;\n } else if (verticalPosition === 'bottom') {\n imageTop = -(resizedImageHeight - height);\n }\n } else {\n imageObjectFit = fit;\n imageObjectPosition = \"\".concat(horizontalPosition, \" \").concat(verticalPosition);\n }\n\n finalContainerStyle = {\n width: width,\n height: height\n };\n finalImageStyle = {\n position: 'absolute',\n width: imageWidth,\n height: imageHeight,\n top: imageTop,\n left: imageLeft,\n objectFit: imageObjectFit,\n objectPosition: imageObjectPosition\n };\n } else {\n var validWidth = width !== null && typeof width === 'number';\n var validHeight = height !== null && typeof height === 'number';\n var ratioWidth = validHeight ? height * mediaRatio : null;\n var ratioHeight = validWidth ? width / mediaRatio : null;\n\n var _finalWidth = width !== null ? width : ratioWidth;\n\n var _finalHeight = height !== null ? height : ratioHeight;\n\n if (_finalWidth === null && _finalHeight === null) {\n _finalWidth = finalMediaWidth > 0 ? mediaWidth : null;\n _finalHeight = finalMediaHeight > 0 ? mediaHeight : null;\n }\n\n finalImageStyle = {\n width: _finalWidth,\n height: _finalHeight\n };\n finalContainerStyle = finalImageStyle;\n }\n\n finalContainerStyle = _objectSpread(_objectSpread({}, finalContainerStyle), containerStyle);\n finalImageStyle = _objectSpread(_objectSpread({}, finalImageStyle), imageStyle);\n var _finalImageStyle = finalImageStyle,\n _finalImageStyle$widt = _finalImageStyle.width,\n finalWidth = _finalImageStyle$widt === void 0 ? null : _finalImageStyle$widt,\n _finalImageStyle$heig = _finalImageStyle.height,\n finalHeight = _finalImageStyle$heig === void 0 ? null : _finalImageStyle$heig;\n var finalUrl = getOptimalImageUrl(media, finalWidth, finalHeight);\n var img = url ? /*#__PURE__*/React.createElement(\"img\", {\n src: finalUrl,\n alt: alt || description,\n className: classNames([styles.img, _defineProperty({}, imageClassName, imageClassName !== null)]),\n style: finalImageStyle,\n onLoad: onImageLoaded,\n loading: loadingMode\n }) : null;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames([styles.container, _defineProperty({}, className, className !== null)]),\n style: finalContainerStyle\n }, img);\n};\n\nImage.propTypes = propTypes;\nImage.defaultProps = defaultProps;\n\nexport { Image as default };\n","import _defineProperty from '@babel/runtime/helpers/defineProperty';\nimport _objectSpread from '@babel/runtime/helpers/objectSpread2';\nimport _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';\nimport React, { useMemo } from 'react';\nimport classNames from 'classnames';\nimport PropTypes$1 from 'prop-types';\nimport { getSizeWithinBounds } from '@folklore/size';\nimport { PropTypes } from '@micromag/core';\nimport Image from '@micromag/element-image';\nimport Video from '@micromag/element-video';\n\nvar styles = {\"container\":\"micromag-element-visual-container\",\"videoContainer\":\"micromag-element-visual-videoContainer\"};\n\nvar _excluded = [\"media\", \"width\", \"height\", \"objectFit\", \"playing\", \"videoLoop\", \"videoInitialMuted\", \"onLoaded\", \"className\", \"videoClassName\"];\nvar propTypes = {\n media: PropTypes.media,\n width: PropTypes$1.oneOfType([PropTypes$1.number, PropTypes$1.string]),\n height: PropTypes$1.oneOfType([PropTypes$1.number, PropTypes$1.string]),\n objectFit: PropTypes.objectFit,\n playing: PropTypes$1.bool,\n videoLoop: PropTypes$1.bool,\n videoInitialMuted: PropTypes$1.bool,\n onLoaded: PropTypes$1.func,\n className: PropTypes$1.string,\n videoClassName: PropTypes$1.string\n};\nvar defaultProps = {\n media: null,\n width: null,\n height: null,\n objectFit: null,\n playing: true,\n videoLoop: true,\n videoInitialMuted: true,\n onLoaded: null,\n className: null,\n videoClassName: null\n};\n\nvar Visual = function Visual(_ref) {\n var media = _ref.media,\n width = _ref.width,\n height = _ref.height,\n objectFit = _ref.objectFit,\n playing = _ref.playing,\n videoLoop = _ref.videoLoop,\n videoInitialMuted = _ref.videoInitialMuted,\n onLoaded = _ref.onLoaded,\n className = _ref.className,\n videoClassName = _ref.videoClassName,\n props = _objectWithoutProperties(_ref, _excluded);\n\n var _ref2 = media || {},\n _ref2$type = _ref2.type,\n type = _ref2$type === void 0 ? null : _ref2$type,\n _ref2$thumbnail_url = _ref2.thumbnail_url,\n thumbnailUrl = _ref2$thumbnail_url === void 0 ? null : _ref2$thumbnail_url,\n metadata = _ref2.metadata,\n url = _ref2.url;\n\n var _ref3 = metadata || {},\n mime = _ref3.mime;\n\n var isVideo = type === 'video';\n var isGIF = type === 'image' && mime === 'image/gif';\n var elProps = useMemo(function () {\n return _objectSpread(_objectSpread({}, props), {}, {\n media: media\n });\n }, [props, media]);\n var imageElProps = useMemo(function () {\n var tmpProps = !playing && (isVideo || isGIF) ? _objectSpread(_objectSpread({}, elProps), {}, {\n media: {\n url: thumbnailUrl\n }\n }) : elProps;\n return isGIF && playing ? _objectSpread(_objectSpread({}, elProps), {}, {\n media: {\n url: url\n }\n }) : tmpProps;\n }, [isVideo, isGIF, elProps, thumbnailUrl, url, playing]);\n var videoContainerStyle = null;\n\n if (isVideo && objectFit !== null && playing) {\n var _ref4 = objectFit || {},\n _ref4$fit = _ref4.fit,\n fit = _ref4$fit === void 0 ? 'cover' : _ref4$fit;\n\n var _ref5 = media || {},\n _ref5$metadata = _ref5.metadata,\n videoMetadata = _ref5$metadata === void 0 ? null : _ref5$metadata;\n\n var _ref6 = videoMetadata || {},\n _ref6$width = _ref6.width,\n videoWidth = _ref6$width === void 0 ? 0 : _ref6$width,\n _ref6$height = _ref6.height,\n videoHeight = _ref6$height === void 0 ? 0 : _ref6$height;\n\n var _getSizeWithinBounds = getSizeWithinBounds(videoWidth, videoHeight, width, height, {\n cover: fit === 'cover'\n }),\n resizedVideoWidth = _getSizeWithinBounds.width,\n resizedVideoHeight = _getSizeWithinBounds.height;\n\n var resizedVideoLeft = -(resizedVideoWidth - width) / 2;\n var resizedVideoTop = -(resizedVideoHeight - height) / 2;\n videoContainerStyle = {\n width: resizedVideoWidth,\n height: resizedVideoHeight,\n left: resizedVideoLeft,\n top: resizedVideoTop\n };\n }\n\n return type !== null ? /*#__PURE__*/React.createElement(React.Fragment, null, type === 'image' || !playing ? /*#__PURE__*/React.createElement(Image, Object.assign({}, imageElProps, {\n objectFit: objectFit,\n width: width,\n height: height,\n onLoaded: onLoaded,\n className: classNames([styles.container, _defineProperty({}, className, className !== null)])\n })) : null, isVideo && playing ? /*#__PURE__*/React.createElement(\"div\", {\n className: classNames([styles.container, _defineProperty({}, className, className !== null)]),\n style: {\n width: width,\n height: height\n }\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: classNames([styles.videoContainer, _defineProperty({}, videoClassName, videoClassName !== null)]),\n style: videoContainerStyle\n }, /*#__PURE__*/React.createElement(Video, Object.assign({}, elProps, {\n width: objectFit === null ? width : null,\n height: objectFit === null ? height : null,\n autoPlay: true,\n loop: videoLoop,\n initialMuted: videoInitialMuted,\n onReady: onLoaded\n })))) : null) : null;\n};\n\nVisual.propTypes = propTypes;\nVisual.defaultProps = defaultProps;\n\nexport { Visual as default };\n","import { FormattedMessage, defineMessage } from 'react-intl';\nimport _defineProperty from '@babel/runtime/helpers/defineProperty';\nimport _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';\nimport _slicedToArray from '@babel/runtime/helpers/slicedToArray';\nimport React, { useState, useEffect, useRef, useCallback, useMemo } from 'react';\nimport PropTypes$1 from 'prop-types';\nimport classNames from 'classnames';\nimport { v1 } from 'uuid';\nimport { useScreenSize, useViewer, useScreenRenderContext } from '@micromag/core/contexts';\nimport { useTrackScreenEvent, useResizeObserver } from '@micromag/core/hooks';\nimport { ScreenElement, Transitions } from '@micromag/core/components';\nimport Background from '@micromag/element-background';\nimport Container from '@micromag/element-container';\nimport Layout from '@micromag/element-layout';\nimport Scroll from '@micromag/element-scroll';\nimport CallToAction from '@micromag/element-call-to-action';\nimport { PropTypes } from '@micromag/core';\nimport { getStyleFromColor, isTextFilled } from '@micromag/core/utils';\nimport Heading from '@micromag/element-heading';\nimport _objectSpread from '@babel/runtime/helpers/objectSpread2';\nimport Text from '@micromag/element-text';\nimport Visual from '@micromag/element-visual';\n\nvar styles = {\"container\":\"micromag-screen-conversation-container\",\"disabled\":\"micromag-screen-conversation-disabled\",\"hidden\":\"micromag-screen-conversation-hidden\",\"placeholder\":\"micromag-screen-conversation-placeholder\",\"content\":\"micromag-screen-conversation-content\",\"conversationHeader\":\"micromag-screen-conversation-conversationHeader\",\"empty\":\"micromag-screen-conversation-empty\",\"title\":\"micromag-screen-conversation-title\",\"callToAction\":\"micromag-screen-conversation-callToAction\",\"messageContainer\":\"micromag-screen-conversation-messageContainer\",\"message\":\"micromag-screen-conversation-message\",\"normalLeft\":\"micromag-screen-conversation-normalLeft\",\"inBetweenLeft\":\"micromag-screen-conversation-inBetweenLeft\",\"normalRight\":\"micromag-screen-conversation-normalRight\",\"inBetweenRight\":\"micromag-screen-conversation-inBetweenRight\",\"last\":\"micromag-screen-conversation-last\",\"speakerDetails\":\"micromag-screen-conversation-speakerDetails\",\"right\":\"micromag-screen-conversation-right\",\"avatarContainer\":\"micromag-screen-conversation-avatarContainer\",\"avatar\":\"micromag-screen-conversation-avatar\",\"imageContainer\":\"micromag-screen-conversation-imageContainer\",\"withAnimation\":\"micromag-screen-conversation-withAnimation\",\"appear\":\"micromag-screen-conversation-appear\",\"loadingContainer\":\"micromag-screen-conversation-loadingContainer\",\"loading\":\"micromag-screen-conversation-loading\",\"dot\":\"micromag-screen-conversation-dot\",\"bounce\":\"micromag-screen-conversation-bounce\",\"loadingSpeakerName\":\"micromag-screen-conversation-loadingSpeakerName\"};\n\nvar propTypes$1 = {\n message: PropTypes.conversationMessage,\n previousMessage: PropTypes.conversationMessage,\n nextMessage: PropTypes.conversationMessage,\n nextMessageState: PropTypes$1.bool,\n currentSpeaker: PropTypes.speaker,\n // state: PropTypes.oneOf(['pause', 'typing', 'send']),\n conversationTiming: PropTypes$1.number,\n typingTiming: PropTypes$1.number,\n onChange: PropTypes$1.func,\n withAnimation: PropTypes$1.bool,\n isPlaying: PropTypes$1.bool,\n speakerStyle: PropTypes.textStyle,\n messageStyle: PropTypes.textStyle,\n className: PropTypes$1.string\n};\nvar defaultProps$1 = {\n message: null,\n previousMessage: null,\n nextMessage: null,\n nextMessageState: null,\n currentSpeaker: null,\n conversationTiming: null,\n typingTiming: null,\n onChange: null,\n withAnimation: false,\n isPlaying: false,\n messageStyle: null,\n speakerStyle: null,\n className: null\n};\n\nvar ConversationMessage = function ConversationMessage(_ref) {\n var _ref4, _ref5;\n\n var message = _ref.message,\n previousMessage = _ref.previousMessage,\n nextMessage = _ref.nextMessage,\n nextMessageState = _ref.nextMessageState,\n currentSpeaker = _ref.currentSpeaker,\n conversationTiming = _ref.conversationTiming,\n typingTiming = _ref.typingTiming,\n onChange = _ref.onChange,\n withAnimation = _ref.withAnimation,\n isPlaying = _ref.isPlaying,\n messageStyle = _ref.messageStyle,\n speakerStyle = _ref.speakerStyle,\n className = _ref.className;\n\n var _ref2 = message || {},\n messageBody = _ref2.message,\n _ref2$image = _ref2.image,\n image = _ref2$image === void 0 ? null : _ref2$image;\n\n var _ref3 = currentSpeaker || {},\n _ref3$avatar = _ref3.avatar;\n\n _ref3$avatar = _ref3$avatar === void 0 ? {} : _ref3$avatar;\n var _ref3$avatar$url = _ref3$avatar.url,\n avatarUrl = _ref3$avatar$url === void 0 ? null : _ref3$avatar$url,\n speakerName = _ref3.name,\n _ref3$side = _ref3.side,\n side = _ref3$side === void 0 ? 'left' : _ref3$side,\n currentSpeakerId = _ref3.id,\n color = _ref3.color;\n var right = side === 'right';\n var isPrevSpeakerTheSame = previousMessage !== null && previousMessage.speaker === currentSpeakerId;\n var isNextSpeakerTheSame = nextMessage !== null && nextMessage.speaker === currentSpeakerId; // Timing\n\n var _useState = useState(withAnimation ? 'pause' : 'send'),\n _useState2 = _slicedToArray(_useState, 2),\n messageState = _useState2[0],\n setMessageState = _useState2[1];\n\n var pauseBeforeTyping = conversationTiming;\n var typingDuration = typingTiming;\n useEffect(function () {\n if (!withAnimation || !isPlaying) {\n return function () {};\n }\n\n var timeout = null;\n\n if (messageState === 'pause') {\n timeout = setTimeout(function () {\n return setMessageState('typing');\n }, pauseBeforeTyping);\n } else if (messageState === 'typing') {\n timeout = setTimeout(function () {\n return setMessageState('send');\n }, typingDuration);\n }\n\n return function () {\n if (timeout !== null) {\n clearTimeout(timeout);\n }\n };\n }, [withAnimation, isPlaying, messageState, setMessageState, pauseBeforeTyping, typingDuration]);\n useEffect(function () {\n if (messageState !== 'pause' && onChange !== null) {\n onChange(messageState);\n }\n }, [messageState]);\n var betweenStyle = isNextSpeakerTheSame && nextMessageState;\n return messageState !== 'pause' ? /*#__PURE__*/React.createElement(\"div\", {\n className: classNames([styles.messageContainer, (_ref4 = {}, _defineProperty(_ref4, className, className !== null), _defineProperty(_ref4, styles.withAnimation, withAnimation === true), _defineProperty(_ref4, styles.right, right), _ref4)])\n }, messageState === 'typing' ? /*#__PURE__*/React.createElement(\"div\", {\n className: styles.loadingContainer\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: styles.loading\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: styles.dot\n }), /*#__PURE__*/React.createElement(\"div\", {\n className: styles.dot\n }), /*#__PURE__*/React.createElement(\"div\", {\n className: styles.dot\n })), /*#__PURE__*/React.createElement(\"div\", {\n className: styles.loadingSpeakerName\n }, speakerName)) : /*#__PURE__*/React.createElement(\"div\", {\n className: classNames([styles.message, (_ref5 = {}, _defineProperty(_ref5, styles.normalRight, right), _defineProperty(_ref5, styles.nextTheSame, isNextSpeakerTheSame === true && isPrevSpeakerTheSame), _defineProperty(_ref5, styles.inBetweenRight, betweenStyle && right), _defineProperty(_ref5, styles.normalLeft, !right), _defineProperty(_ref5, styles.inBetweenLeft, betweenStyle && !right), _defineProperty(_ref5, styles.last, isNextSpeakerTheSame === false), _ref5)]),\n style: _objectSpread({}, getStyleFromColor(color))\n }, !isPrevSpeakerTheSame ? /*#__PURE__*/React.createElement(\"div\", {\n className: classNames([styles.speakerDetails, _defineProperty({}, styles.right, side === 'right')])\n }, avatarUrl !== null ? /*#__PURE__*/React.createElement(\"div\", {\n className: classNames([styles.avatarContainer, _defineProperty({}, styles.right, side === 'right')])\n }, /*#__PURE__*/React.createElement(\"img\", {\n className: styles.avatar,\n src: avatarUrl,\n alt: speakerName\n })) : null, /*#__PURE__*/React.createElement(Text, {\n body: speakerName,\n textStyle: speakerStyle\n })) : null, /*#__PURE__*/React.createElement(\"div\", null), /*#__PURE__*/React.createElement(\"div\", {\n className: styles.messageBody\n }, image !== null ? /*#__PURE__*/React.createElement(\"div\", {\n className: styles.imageContainer\n }, /*#__PURE__*/React.createElement(Visual, {\n media: image,\n width: \"100%\",\n playing: isPlaying\n })) : null, /*#__PURE__*/React.createElement(Text, {\n className: styles.messageBody,\n body: messageBody,\n textStyle: messageStyle\n })))) : null;\n};\n\nConversationMessage.propTypes = propTypes$1;\nConversationMessage.defaultProps = defaultProps$1;\n\nvar propTypes = {\n // id: PropTypes.string,\n // layout: PropTypes.oneOf(['normal']),\n title: PropTypes.headingElement,\n timing: PropTypes$1.oneOf(['instant', 'sequence']),\n spacing: PropTypes$1.number,\n background: PropTypes.backgroundElement,\n callToAction: PropTypes.callToAction,\n current: PropTypes$1.bool,\n type: PropTypes$1.string,\n conversation: PropTypes.conversation,\n transitions: PropTypes.transitions,\n className: PropTypes$1.string\n};\nvar defaultProps = {\n // layout: 'normal',\n title: null,\n timing: 'sequence',\n spacing: 20,\n background: null,\n callToAction: null,\n current: true,\n type: null,\n conversation: null,\n transitions: null,\n className: null\n};\n\nvar ConversationScreen = function ConversationScreen(_ref) {\n var _ref8;\n\n var title = _ref.title,\n timingMode = _ref.timing,\n spacing = _ref.spacing,\n background = _ref.background,\n callToAction = _ref.callToAction,\n current = _ref.current,\n type = _ref.type,\n conversation = _ref.conversation,\n transitions = _ref.transitions,\n className = _ref.className;\n\n var _useScreenSize = useScreenSize(),\n width = _useScreenSize.width,\n height = _useScreenSize.height,\n menuOverScreen = _useScreenSize.menuOverScreen;\n\n var _useViewer = useViewer(),\n menuSize = _useViewer.menuSize;\n\n var trackScreenEvent = useTrackScreenEvent(type);\n\n var _useScreenRenderConte = useScreenRenderContext(),\n isView = _useScreenRenderConte.isView,\n isPreview = _useScreenRenderConte.isPreview,\n isPlaceholder = _useScreenRenderConte.isPlaceholder,\n isEdit = _useScreenRenderConte.isEdit,\n isStatic = _useScreenRenderConte.isStatic,\n isCapture = _useScreenRenderConte.isCapture;\n\n var backgroundPlaying = current && (isView || isEdit);\n var withAnimation = isView && !isStatic && timingMode === 'sequence';\n\n var _ref2 = conversation || {},\n _ref2$speakers = _ref2.speakers,\n speakers = _ref2$speakers === void 0 ? null : _ref2$speakers,\n _ref2$messages = _ref2.messages,\n messages = _ref2$messages === void 0 ? [] : _ref2$messages,\n messageStyle = _ref2.messageStyle,\n speakerStyle = _ref2.speakerStyle;\n\n var _useState = useState([]),\n _useState2 = _slicedToArray(_useState, 2),\n conversationState = _useState2[0],\n setConversationState = _useState2[1];\n\n var chatBottomRef = useRef(null);\n var hasTitle = isTextFilled(title);\n\n var _useResizeObserver = useResizeObserver(),\n contentRef = _useResizeObserver.ref,\n scrollContentRect = _useResizeObserver.entry.contentRect;\n\n var _ref3 = scrollContentRect || {},\n scrollHeight = _ref3.height;\n\n var scrollRef = useRef(null);\n useEffect(function () {\n if (withAnimation && scrollRef.current !== null) {\n scrollRef.current.scrollTo({\n top: scrollHeight,\n behavior: 'smooth'\n });\n }\n }, [scrollHeight, withAnimation]);\n var animationFinished = messages.length === conversationState.length;\n var conversationStateChange = useCallback(function (state) {\n var newConversationState = _toConsumableArray(conversationState);\n\n if (state === 'send') {\n newConversationState.push(true);\n setConversationState(newConversationState);\n }\n }, [conversationState, setConversationState]); // sequence timings\n\n var defaultTimingFactor = 40;\n var defaultHesitationDelay = 1000;\n var filteredMessages = (messages || []).filter(function (m) {\n return m !== null;\n });\n var timings = filteredMessages.map(function () {\n var _ref4 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref4$timing = _ref4.timing,\n timing = _ref4$timing === void 0 ? null : _ref4$timing,\n _ref4$message = _ref4.message,\n message = _ref4$message === void 0 ? null : _ref4$message;\n\n var messageI = arguments.length > 1 ? arguments[1] : undefined;\n\n if (timing !== null) {\n return timing;\n }\n\n if (messageI === 0) {\n return 0;\n }\n\n var finalTime = defaultTimingFactor * ((message || '').length || 10);\n return finalTime < 2000 ? finalTime : 2000;\n });\n var hesitationTimings = filteredMessages.map(function () {\n var _ref5 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref5$hesitation = _ref5.hesitation,\n hesitation = _ref5$hesitation === void 0 ? null : _ref5$hesitation;\n\n return hesitation !== null ? hesitation : defaultHesitationDelay;\n });\n var messagesUniqueId = useMemo(function () {\n return (messages || []).map(function () {\n return v1();\n });\n }, [messages]); // scroll\n\n var transitionDisabled = isStatic || isCapture || isPlaceholder || isPreview || isEdit;\n var scrollingDisabled = !isEdit && transitionDisabled || !current; // CTA\n\n var hasCallToAction = callToAction !== null && callToAction.active === true;\n\n var _useState3 = useState(false),\n _useState4 = _slicedToArray(_useState3, 2),\n scrolledBottom = _useState4[0],\n setScrolledBottom = _useState4[1];\n\n var _useResizeObserver2 = useResizeObserver(),\n callToActionRef = _useResizeObserver2.ref,\n callToActionRect = _useResizeObserver2.entry.contentRect;\n\n var _ref6 = callToActionRect || {},\n _ref6$height = _ref6.height,\n callToActionHeight = _ref6$height === void 0 ? 0 : _ref6$height;\n\n var viewCTA = animationFinished && !isPlaceholder && hasCallToAction || !withAnimation;\n var onScrolledBottom = useCallback(function (_ref7) {\n var initial = _ref7.initial;\n\n if (initial) {\n trackScreenEvent('scroll', 'Screen');\n }\n\n setScrolledBottom(true);\n }, [trackScreenEvent]);\n var onScrolledNotBottom = useCallback(function () {\n setScrolledBottom(false);\n }, [setScrolledBottom]);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames([styles.container, (_ref8 = {}, _defineProperty(_ref8, className, className !== null), _defineProperty(_ref8, styles.isPlaceholder, isPlaceholder), _ref8)]),\n \"data-screen-ready\": true\n }, !isPlaceholder ? /*#__PURE__*/React.createElement(Background, {\n background: background,\n width: width,\n height: height,\n playing: backgroundPlaying\n }) : null, /*#__PURE__*/React.createElement(Container, {\n width: width,\n height: height\n }, /*#__PURE__*/React.createElement(Scroll, {\n ref: scrollRef,\n disabled: scrollingDisabled,\n onScrolledBottom: onScrolledBottom,\n onScrolledNotBottom: onScrolledNotBottom\n }, /*#__PURE__*/React.createElement(\"div\", {\n ref: contentRef\n }, /*#__PURE__*/React.createElement(Layout, {\n className: styles.layout,\n style: !isPlaceholder ? {\n padding: spacing,\n paddingTop: (menuOverScreen && !isPreview ? menuSize : 0) + spacing\n } : null\n }, /*#__PURE__*/React.createElement(ScreenElement, {\n placeholder: \"conversation\",\n emptyLabel: /*#__PURE__*/React.createElement(FormattedMessage, {\n id: \"NmCfTO\",\n defaultMessage: [{\n \"type\": 0,\n \"value\": \"Conversation\"\n }]\n }),\n emptyClassName: styles.empty,\n isEmpty: messages.length === 0 && title === null\n }, /*#__PURE__*/React.createElement(Transitions, {\n transitions: transitions,\n playing: current,\n disabled: transitionDisabled\n }, hasTitle ? /*#__PURE__*/React.createElement(Heading, Object.assign({}, title, {\n className: styles.title,\n isEmpty: title === null\n })) : null, /*#__PURE__*/React.createElement(\"div\", {\n className: styles.conversation\n }, filteredMessages.map(function (m, messageI) {\n var previousMessage = messageI !== 0 ? messages[messageI - 1] : null;\n var nextMessage = messageI + 1 < messages.length ? messages[messageI + 1] : null;\n var speaker = m.speaker;\n var currentSpeaker = (speakers || []).find(function (s) {\n return s.id === speaker;\n }) || null;\n var shouldPlay = messageI === 0 || conversationState[messageI - 1] === true;\n var pauseTiming = hesitationTimings[messageI];\n var typingTiming = timings[messageI];\n return /*#__PURE__*/React.createElement(ConversationMessage, {\n key: \"\".concat(m.message, \"-\").concat(messagesUniqueId[messageI]),\n message: m,\n previousMessage: previousMessage,\n nextMessage: nextMessage,\n nextMessageState: conversationState[messageI + 1] || !withAnimation,\n currentSpeaker: currentSpeaker,\n conversationTiming: pauseTiming,\n typingTiming: typingTiming,\n onChange: conversationStateChange,\n withAnimation: withAnimation,\n isPlaying: current && shouldPlay,\n messageStyle: messageStyle,\n speakerStyle: speakerStyle\n });\n })), viewCTA ? /*#__PURE__*/React.createElement(\"div\", {\n style: {\n minHeight: callToActionHeight\n }\n }, /*#__PURE__*/React.createElement(CallToAction, {\n ref: callToActionRef,\n className: styles.callToAction,\n disabled: !scrolledBottom,\n animationDisabled: isPreview,\n callToAction: callToAction,\n focusable: current && isView\n })) : null, /*#__PURE__*/React.createElement(\"div\", {\n ref: chatBottomRef\n }))))))));\n};\n\nConversationScreen.propTypes = propTypes;\nConversationScreen.defaultProps = defaultProps;\nvar ConversationScreen$1 = /*#__PURE__*/React.memo(ConversationScreen);\n\nvar definition = {\n id: 'conversation',\n type: 'screen',\n group: {\n label: defineMessage({\n \"id\": \"fIawTr\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Text\"\n }]\n }),\n order: 3\n },\n title: defineMessage({\n \"id\": \"rBPIgw\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Conversation\"\n }]\n }),\n component: ConversationScreen$1,\n layouts: ['normal'],\n fields: [// {\n // name: 'theme',\n // type: 'select',\n // options: [\n // {\n // value: 'ios',\n // label: 'iOS',\n // },\n // ],\n // label: defineMessage({\n // defaultMessage: 'Theme',\n // description: 'Theme field label',\n // }),\n // },\n {\n name: 'timing',\n type: 'select',\n options: [{\n value: 'instant',\n label: 'Instant'\n }, {\n value: 'sequence',\n label: 'Sequence'\n }],\n label: defineMessage({\n \"id\": \"6DV50M\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Timing\"\n }]\n })\n }, {\n name: 'title',\n type: 'heading-element',\n theme: {\n textStyle: 'heading1'\n },\n label: defineMessage({\n \"id\": \"N25iDO\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Title\"\n }]\n })\n }, {\n name: 'conversation',\n type: 'conversation',\n label: defineMessage({\n \"id\": \"8tANs8\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Conversation\"\n }]\n })\n }, {\n name: 'background',\n type: 'background',\n label: defineMessage({\n \"id\": \"+MPZRu\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Background\"\n }]\n })\n }, {\n name: 'callToAction',\n type: 'call-to-action',\n theme: {\n label: {\n textStyle: 'heading2'\n }\n }\n }]\n};\n\nexport { ConversationScreen$1 as ConversationScreen, definition as default };\n","import _defineProperty from '@babel/runtime/helpers/defineProperty';\nimport React from 'react';\nimport PropTypes$1 from 'prop-types';\nimport classNames from 'classnames';\nimport isArray from 'lodash/isArray';\nimport { PropTypes } from '@micromag/core';\n\nvar styles = {\"container\":\"micromag-element-grid-container\",\"items\":\"micromag-element-grid-items\",\"cross\":\"micromag-element-grid-cross\",\"axis\":\"micromag-element-grid-axis\"};\n\nvar propTypes = {\n layout: PropTypes.gridLayout,\n items: PropTypes$1.arrayOf(PropTypes$1.node),\n width: PropTypes$1.number,\n height: PropTypes$1.number,\n spacing: PropTypes$1.number,\n vertical: PropTypes$1.bool,\n className: PropTypes$1.string,\n axisClassName: PropTypes$1.string,\n crossClassName: PropTypes$1.string\n};\nvar defaultProps = {\n layout: null,\n items: [],\n width: null,\n height: null,\n spacing: 0,\n vertical: false,\n className: null,\n axisClassName: null,\n crossClassName: null\n};\n\nvar Grid = function Grid(_ref) {\n var items = _ref.items,\n layout = _ref.layout,\n width = _ref.width,\n height = _ref.height,\n spacing = _ref.spacing,\n vertical = _ref.vertical,\n className = _ref.className,\n axisClassName = _ref.axisClassName,\n crossClassName = _ref.crossClassName;\n var itemIndex = 0;\n var finalLayout = isArray(layout) ? layout : [{\n rows: vertical ? items.map(function () {\n return 1;\n }) : 1,\n columns: vertical ? 1 : items.map(function () {\n return 1;\n })\n }];\n var crossTotal = finalLayout.reduce(function (total, _ref2) {\n var _ref2$rows = _ref2.rows,\n rows = _ref2$rows === void 0 ? 1 : _ref2$rows,\n _ref2$columns = _ref2.columns,\n columns = _ref2$columns === void 0 ? 1 : _ref2$columns;\n return total + (vertical ? columns : rows);\n }, 0);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames([styles.container, _defineProperty({}, className, className !== null)]),\n style: {\n width: width,\n height: height,\n padding: spacing !== null && spacing > 0 ? spacing / 2 : null\n }\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: styles.items,\n style: {\n flexDirection: vertical ? 'row' : 'column'\n }\n }, finalLayout.map(function (_ref4, crossIndex) {\n var rows = _ref4.rows,\n columns = _ref4.columns;\n var crossSizeRatio = (vertical ? columns : rows) / crossTotal;\n var crossSize = \"\".concat(100 * crossSizeRatio, \"%\");\n var axisItems = vertical ? rows : columns;\n var finalAxisItems = isArray(axisItems) ? axisItems : [axisItems];\n var axisTotal = finalAxisItems.reduce(function (total, it) {\n return total + it;\n }, 0);\n return /*#__PURE__*/React.createElement(\"div\", {\n key: \"cross-\".concat(crossIndex),\n className: classNames([styles.cross, _defineProperty({}, crossClassName, crossClassName !== null)]),\n style: {\n flexDirection: vertical ? 'column' : 'row',\n width: vertical ? crossSize : null,\n height: vertical ? null : crossSize\n }\n }, finalAxisItems.map(function (axisItem, axisIndex) {\n var axisSizeRatio = axisItem / axisTotal;\n var axisSize = \"\".concat(100 * axisSizeRatio, \"%\");\n var item = items[itemIndex];\n itemIndex += 1;\n return /*#__PURE__*/React.createElement(\"div\", {\n key: \"axis-\".concat(axisIndex),\n className: classNames([styles.axis, _defineProperty({}, axisClassName, axisClassName !== null)]),\n style: {\n width: vertical ? null : axisSize,\n height: vertical ? axisSize : null,\n padding: spacing > 0 ? spacing / 2 : 0\n }\n }, item);\n }));\n })));\n};\n\nGrid.propTypes = propTypes;\nGrid.defaultProps = defaultProps;\n\nexport { Grid as default };\n","import { FormattedMessage, defineMessage } from 'react-intl';\nimport _defineProperty from '@babel/runtime/helpers/defineProperty';\nimport _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';\nimport _slicedToArray from '@babel/runtime/helpers/slicedToArray';\nimport React, { useState, useCallback, useRef, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport isPlainObject from 'lodash/isPlainObject';\nimport { PropTypes as PropTypes$1 } from '@micromag/core';\nimport { useScreenSize, useViewer, useScreenRenderContext } from '@micromag/core/contexts';\nimport { Transitions, ScreenElement } from '@micromag/core/components';\nimport { isImageFilled, isTextFilled } from '@micromag/core/utils';\nimport { useResizeObserver } from '@micromag/core/hooks';\nimport Background from '@micromag/element-background';\nimport Container from '@micromag/element-container';\nimport Grid from '@micromag/element-grid';\nimport Visual from '@micromag/element-visual';\nimport Text from '@micromag/element-text';\nimport CallToAction from '@micromag/element-call-to-action';\nimport _extends from '@babel/runtime/helpers/extends';\nimport _objectSpread from '@babel/runtime/helpers/objectSpread2';\nimport { Mosaic, Container as Container$1 } from '@micromag/transforms/apple-news';\n\nvar layoutProps = {\n // 2\n 'two-vertical-equal': {\n vertical: true,\n layout: [{\n columns: 1,\n rows: [1, 1]\n }]\n },\n 'two-vertical-top': {\n vertical: true,\n layout: [{\n columns: 1,\n rows: [2, 1]\n }]\n },\n 'two-vertical-bottom': {\n vertical: true,\n layout: [{\n columns: 1,\n rows: [1, 2]\n }]\n },\n // 3\n 'three-vertical': {\n vertical: true,\n layout: [{\n columns: 1,\n rows: [1, 1, 1]\n }]\n },\n 'one-two': {\n layout: [{\n rows: 2,\n columns: [1]\n }, {\n rows: 1,\n columns: [1, 1]\n }]\n },\n 'two-one': {\n layout: [{\n rows: 1,\n columns: [1, 1]\n }, {\n rows: 2,\n columns: [1]\n }]\n },\n // 4\n 'two-by-two': {\n layout: [{\n rows: 1,\n columns: [1, 1]\n }, {\n rows: 1,\n columns: [1, 1]\n }]\n },\n 'four-vertical': {\n vertical: true,\n layout: [{\n columns: 1,\n rows: [1, 1, 1, 1]\n }]\n },\n 'one-two-one': {\n layout: [{\n rows: 3,\n columns: [1]\n }, {\n rows: 2,\n columns: [1, 1]\n }, {\n rows: 3,\n columns: [1]\n }]\n },\n 'four-mosaic': {\n vertical: true,\n layout: [{\n columns: 1,\n rows: [2, 1]\n }, {\n columns: 1,\n rows: [1, 2]\n }]\n },\n // 5 \n 'two-one-two': {\n layout: [{\n rows: 2,\n columns: [1, 1]\n }, {\n rows: 3,\n columns: [1]\n }, {\n rows: 2,\n columns: [1, 1]\n }]\n },\n 'one-two-two': {\n layout: [{\n rows: 3,\n columns: [1]\n }, {\n rows: 2,\n columns: [1, 1]\n }, {\n rows: 2,\n columns: [1, 1]\n }]\n },\n 'two-two-one': {\n layout: [{\n rows: 2,\n columns: [1, 1]\n }, {\n rows: 2,\n columns: [1, 1]\n }, {\n rows: 3,\n columns: [1]\n }]\n },\n // 6\n 'two-by-three': {\n layout: [{\n rows: 1,\n columns: [1, 1]\n }, {\n rows: 1,\n columns: [1, 1]\n }, {\n rows: 1,\n columns: [1, 1]\n }]\n },\n 'one-one-two-two': {\n layout: [{\n rows: 1,\n columns: [1]\n }, {\n rows: 1,\n columns: [1]\n }, {\n rows: 1,\n columns: [1, 1]\n }, {\n rows: 1,\n columns: [1, 1]\n }]\n },\n 'two-two-one-one': {\n layout: [{\n rows: 1,\n columns: [1, 1]\n }, {\n rows: 1,\n columns: [1, 1]\n }, {\n rows: 1,\n columns: [1]\n }, {\n rows: 1,\n columns: [1]\n }]\n }\n};\n\nvar styles = {\"container\":\"micromag-screen-gallery-container\",\"content\":\"micromag-screen-gallery-content\",\"image\":\"micromag-screen-gallery-image\",\"disabled\":\"micromag-screen-gallery-disabled\",\"hidden\":\"micromag-screen-gallery-hidden\",\"placeholder\":\"micromag-screen-gallery-placeholder\",\"emptyCaption\":\"micromag-screen-gallery-emptyCaption\",\"emptyImage\":\"micromag-screen-gallery-emptyImage\",\"grid\":\"micromag-screen-gallery-grid\",\"gridItem\":\"micromag-screen-gallery-gridItem\",\"imageContainer\":\"micromag-screen-gallery-imageContainer\",\"caption\":\"micromag-screen-gallery-caption\"};\n\nvar propTypes = {\n layout: PropTypes.oneOf([// 2\n 'two-vertical-equal', 'two-vertical-top', 'two-vertical-bottom', // 3\n 'three-vertical', 'one-two', 'two-one', // 4\n 'two-by-two', 'four-vertical', 'one-two-one', 'four-mosaic', // 5\n 'two-one-two', 'one-two-two', 'two-two-one', // 6\n 'two-by-three', 'one-one-two-two', 'two-two-one-one']),\n images: PropTypes.oneOfType([PropTypes$1.imageMedias, PropTypes$1.imageElements]),\n withCaptions: PropTypes.bool,\n spacing: PropTypes.number,\n captionMaxLines: PropTypes.number,\n background: PropTypes$1.backgroundElement,\n callToAction: PropTypes$1.callToAction,\n current: PropTypes.bool,\n transitions: PropTypes$1.transitions,\n transitionStagger: PropTypes.number,\n className: PropTypes.string\n};\nvar defaultProps = {\n layout: 'four-mosaic',\n withCaptions: false,\n images: [],\n spacing: 20,\n captionMaxLines: 2,\n background: null,\n callToAction: null,\n current: true,\n transitions: null,\n transitionStagger: 50,\n className: null\n};\n\nvar GalleryScreen = function GalleryScreen(_ref) {\n var _ref6;\n\n var layout = _ref.layout,\n images = _ref.images,\n withCaptions = _ref.withCaptions,\n background = _ref.background,\n callToAction = _ref.callToAction,\n current = _ref.current,\n spacing = _ref.spacing,\n captionMaxLines = _ref.captionMaxLines,\n transitions = _ref.transitions,\n transitionStagger = _ref.transitionStagger,\n className = _ref.className;\n\n var _useScreenSize = useScreenSize(),\n width = _useScreenSize.width,\n height = _useScreenSize.height,\n menuOverScreen = _useScreenSize.menuOverScreen;\n\n var _useViewer = useViewer(),\n menuSize = _useViewer.menuSize;\n\n var _useScreenRenderConte = useScreenRenderContext(),\n isView = _useScreenRenderConte.isView,\n isPreview = _useScreenRenderConte.isPreview,\n isPlaceholder = _useScreenRenderConte.isPlaceholder,\n isEdit = _useScreenRenderConte.isEdit,\n isStatic = _useScreenRenderConte.isStatic,\n isCapture = _useScreenRenderConte.isCapture;\n\n var backgroundPlaying = current && (isView || isEdit);\n var finalSpacing = isPlaceholder ? 5 : spacing;\n var grid = isPlainObject(layoutProps[layout]) ? layoutProps[layout] : {};\n var _grid$layout = grid.layout,\n gridLayout = _grid$layout === void 0 ? [] : _grid$layout,\n _grid$vertical = grid.vertical,\n vertical = _grid$vertical === void 0 ? false : _grid$vertical;\n var gridSpaces = gridLayout.reduce(function (acc, _ref2) {\n var rows = _ref2.rows,\n columns = _ref2.columns;\n return acc + (vertical ? rows : columns).length;\n }, 0);\n\n var _useState = useState(0),\n _useState2 = _slicedToArray(_useState, 2),\n imagesLoaded = _useState2[0],\n setImagesLoaded = _useState2[1];\n\n var imagesCount = images !== null ? Math.min(gridSpaces, images.length) : 0;\n var ready = imagesLoaded >= imagesCount;\n var transitionPlaying = current && ready;\n var transitionDisabled = isStatic || isCapture || isPlaceholder || isPreview || isEdit;\n var onImageLoaded = useCallback(function () {\n setImagesLoaded(imagesLoaded + 1);\n }, [imagesLoaded, setImagesLoaded]);\n var imagesEl = useRef([]);\n\n var _useState3 = useState([]),\n _useState4 = _slicedToArray(_useState3, 2),\n imagesSizes = _useState4[0],\n setImagesSizes = _useState4[1];\n\n var _useResizeObserver = useResizeObserver(),\n contentRef = _useResizeObserver.ref,\n contentRect = _useResizeObserver.entry.contentRect;\n\n var _ref3 = contentRect || {},\n _ref3$width = _ref3.width,\n contentWidth = _ref3$width === void 0 ? null : _ref3$width,\n _ref3$height = _ref3.height,\n contentHeight = _ref3$height === void 0 ? null : _ref3$height;\n\n useEffect(function () {\n if (imagesEl.current.length) {\n setImagesSizes(imagesEl.current.map(function (imageEl) {\n return imageEl !== null ? {\n width: imageEl.offsetWidth,\n height: imageEl.offsetHeight\n } : {};\n }));\n }\n }, [contentWidth, contentHeight, layout, setImagesSizes]); // Call to Action\n\n var hasCallToAction = callToAction !== null && callToAction.active === true;\n\n var _useResizeObserver2 = useResizeObserver(),\n callToActionRef = _useResizeObserver2.ref,\n callToActionRect = _useResizeObserver2.entry.contentRect;\n\n var _ref4 = callToActionRect || {},\n _ref4$height = _ref4.height,\n callToActionHeight = _ref4$height === void 0 ? 0 : _ref4$height;\n\n var items = _toConsumableArray(Array(gridSpaces)).map(function (item, itemI) {\n var image = images !== null ? images[itemI] : null;\n var imageSize = imagesSizes[itemI] || {};\n var finalImage = withCaptions ? image : {\n media: image\n };\n\n var _ref5 = finalImage || {},\n _ref5$caption = _ref5.caption,\n caption = _ref5$caption === void 0 ? null : _ref5$caption;\n\n var hasImage = isImageFilled(finalImage);\n var hasCaption = isTextFilled(caption);\n return /*#__PURE__*/React.createElement(\"div\", {\n key: \"item-\".concat(itemI),\n className: styles.gridItem\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: styles.imageContainer,\n ref: function ref(el) {\n imagesEl.current[itemI] = el;\n }\n }, /*#__PURE__*/React.createElement(Transitions, {\n transitions: transitions,\n delay: itemI * transitionStagger,\n playing: transitionPlaying,\n disabled: transitionDisabled,\n fullscreen: true\n }, /*#__PURE__*/React.createElement(ScreenElement, {\n placeholder: \"image\",\n placeholderProps: {\n className: styles.placeholder,\n height: '100%'\n },\n emptyLabel: /*#__PURE__*/React.createElement(FormattedMessage, {\n id: \"ebsPd4\",\n defaultMessage: [{\n \"type\": 0,\n \"value\": \"Image\"\n }]\n }),\n emptyClassName: styles.emptyImage,\n isEmpty: !hasImage\n }, /*#__PURE__*/React.createElement(Visual, Object.assign({\n className: styles.image\n }, finalImage, imageSize, {\n objectFit: {\n fit: 'cover'\n },\n playing: backgroundPlaying,\n onLoaded: onImageLoaded\n }))))), withCaptions ? /*#__PURE__*/React.createElement(Transitions, {\n transitions: transitions,\n delay: itemI * transitionStagger,\n playing: transitionPlaying,\n disabled: transitionDisabled\n }, /*#__PURE__*/React.createElement(ScreenElement, {\n placeholder: \"line\",\n emptyLabel: /*#__PURE__*/React.createElement(FormattedMessage, {\n id: \"6tIigB\",\n defaultMessage: [{\n \"type\": 0,\n \"value\": \"Caption\"\n }]\n }),\n emptyClassName: styles.emptyCaption,\n isEmpty: !hasCaption\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: styles.caption\n }, /*#__PURE__*/React.createElement(Text, Object.assign({}, caption, {\n className: styles.captionText,\n lineClamp: captionMaxLines\n }))))) : null);\n });\n\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames([styles.container, (_ref6 = {}, _defineProperty(_ref6, className, className !== null), _defineProperty(_ref6, styles.isPlaceholder, isPlaceholder), _ref6)]),\n \"data-screen-ready\": ready\n }, !isPlaceholder ? /*#__PURE__*/React.createElement(Background, {\n background: background,\n width: width,\n height: height,\n playing: backgroundPlaying\n }) : null, /*#__PURE__*/React.createElement(Container, {\n width: width,\n height: height\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: styles.content,\n style: {\n paddingTop: menuOverScreen && !isPreview ? menuSize : null,\n paddingBottom: hasCallToAction ? callToActionHeight - finalSpacing : 0\n },\n ref: contentRef\n }, /*#__PURE__*/React.createElement(Grid, Object.assign({\n className: styles.grid,\n spacing: finalSpacing,\n items: items\n }, grid)), !isPlaceholder && hasCallToAction ? /*#__PURE__*/React.createElement(\"div\", {\n style: {\n marginTop: -finalSpacing\n }\n }, /*#__PURE__*/React.createElement(CallToAction, {\n ref: callToActionRef,\n className: styles.callToAction,\n callToAction: callToAction,\n animationDisabled: isPreview,\n focusable: current && isView\n })) : null)));\n};\n\nGalleryScreen.propTypes = propTypes;\nGalleryScreen.defaultProps = defaultProps;\nvar GalleryScreen$1 = /*#__PURE__*/React.memo(GalleryScreen);\n\nvar GalleryCaptionsScreen = function GalleryCaptionsScreen(_ref) {\n var props = _extends({}, _ref);\n\n return /*#__PURE__*/React.createElement(GalleryScreen$1, Object.assign({}, props, {\n withCaptions: true\n }));\n};\n\nvar transform = function transform(newStory, _ref) {\n var images = _ref.images;\n\n var _Mosaic = Mosaic(newStory, {\n images: images\n }),\n titleStory = _Mosaic.story,\n titleComponent = _Mosaic.component;\n\n var _Container = Container$1(titleStory, _toConsumableArray(titleComponent ? [titleComponent] : [])),\n containerStory = _Container.story,\n containerComponent = _Container.component;\n\n return _objectSpread(_objectSpread({}, containerStory), {}, {\n components: [].concat(_toConsumableArray(newStory.components || []), _toConsumableArray(containerComponent ? [containerComponent] : []))\n });\n};\n\n// eslint-disable-next-line\n\nvar transforms = /*#__PURE__*/Object.freeze({\n __proto__: null,\n appleNews: transform\n});\n\nvar definition = [{\n id: 'gallery',\n type: 'screen',\n group: {\n label: defineMessage({\n \"id\": \"6mX2ya\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Images\"\n }]\n }),\n order: 4\n },\n title: defineMessage({\n \"id\": \"jaFXki\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Gallery\"\n }]\n }),\n component: GalleryScreen$1,\n layouts: [// 2\n 'two-vertical-equal', 'two-vertical-top', 'two-vertical-bottom', // 3\n 'three-vertical', 'one-two', 'two-one', // 4\n 'two-by-two', 'four-vertical', 'one-two-one', 'four-mosaic', // 5\n 'two-one-two', 'one-two-two', 'two-two-one', // 6\n 'two-by-three', 'one-one-two-two', 'two-two-one-one'],\n transforms: transforms,\n fields: [{\n name: 'layout',\n type: 'screen-layout',\n defaultValue: 'two-vertical-equal',\n label: defineMessage({\n \"id\": \"4iBXj2\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Layout\"\n }]\n })\n }, {\n name: 'images',\n type: 'visuals',\n label: defineMessage({\n \"id\": \"muYwrB\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Images\"\n }]\n })\n }, {\n name: 'background',\n type: 'background',\n label: defineMessage({\n \"id\": \"+MPZRu\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Background\"\n }]\n })\n }, {\n name: 'callToAction',\n type: 'call-to-action',\n theme: {\n label: {\n textStyle: 'heading2'\n }\n }\n }]\n}, {\n id: 'gallery-captions',\n type: 'screen',\n group: {\n label: defineMessage({\n \"id\": \"6mX2ya\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Images\"\n }]\n }),\n order: 4\n },\n title: defineMessage({\n \"id\": \"MmJQ7o\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Gallery with captions\"\n }]\n }),\n component: GalleryCaptionsScreen,\n layouts: [// 2\n 'two-vertical-equal', 'two-vertical-top', 'two-vertical-bottom', // 3\n 'three-vertical', 'one-two', 'two-one', // 4\n 'two-by-two', 'four-vertical', 'one-two-one', 'four-mosaic', // 5\n 'two-one-two', 'one-two-two', 'two-two-one', // 6\n 'two-by-three', 'one-one-two-two', 'two-two-one-one'],\n transforms: transforms,\n fields: [{\n name: 'layout',\n type: 'screen-layout',\n defaultValue: 'two-vertical-equal',\n label: defineMessage({\n \"id\": \"4iBXj2\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Layout\"\n }]\n })\n }, {\n name: 'images',\n type: 'visuals-with-caption',\n theme: {\n caption: {\n textStyle: 'text'\n }\n },\n label: defineMessage({\n \"id\": \"59f2bg\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Images\"\n }]\n })\n }, {\n name: 'background',\n type: 'background',\n label: defineMessage({\n \"id\": \"+MPZRu\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Background\"\n }]\n })\n }, {\n name: 'callToAction',\n type: 'call-to-action',\n theme: {\n label: {\n textStyle: 'heading2'\n }\n }\n }]\n}];\n\nexport { GalleryCaptionsScreen, GalleryScreen$1 as GalleryScreen, definition as default };\n","import { FormattedMessage, defineMessage } from 'react-intl';\nimport _defineProperty from '@babel/runtime/helpers/defineProperty';\nimport _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';\nimport _slicedToArray from '@babel/runtime/helpers/slicedToArray';\nimport React, { useState, useCallback } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { PropTypes as PropTypes$1 } from '@micromag/core';\nimport { useScreenSize, useViewer, useScreenRenderContext } from '@micromag/core/contexts';\nimport { ScreenElement, TransitionsStagger } from '@micromag/core/components';\nimport { useTrackScreenEvent, useResizeObserver } from '@micromag/core/hooks';\nimport { isImageFilled, isTextFilled } from '@micromag/core/utils';\nimport Background from '@micromag/element-background';\nimport Container from '@micromag/element-container';\nimport Layout from '@micromag/element-layout';\nimport Scroll from '@micromag/element-scroll';\nimport Visual from '@micromag/element-visual';\nimport Text from '@micromag/element-text';\nimport CallToAction from '@micromag/element-call-to-action';\nimport _extends from '@babel/runtime/helpers/extends';\nimport _objectSpread from '@babel/runtime/helpers/objectSpread2';\nimport { Gallery, Container as Container$1 } from '@micromag/transforms/apple-news';\n\nvar styles = {\"container\":\"micromag-screen-gallery-feed-container\",\"emptyCaption\":\"micromag-screen-gallery-feed-emptyCaption\",\"emptyImage\":\"micromag-screen-gallery-feed-emptyImage\",\"callToAction\":\"micromag-screen-gallery-feed-callToAction\",\"isPlaceholder\":\"micromag-screen-gallery-feed-isPlaceholder\",\"layout\":\"micromag-screen-gallery-feed-layout\"};\n\nvar propTypes = {\n layout: PropTypes.oneOf(['normal', 'reverse']),\n images: PropTypes.oneOfType([PropTypes$1.imageElementsWithCaption, PropTypes$1.imageMedias]),\n withCaptions: PropTypes.bool,\n spacing: PropTypes.number,\n background: PropTypes$1.backgroundElement,\n callToAction: PropTypes$1.callToAction,\n current: PropTypes.bool,\n transitions: PropTypes$1.transitions,\n transitionStagger: PropTypes.number,\n type: PropTypes.string,\n className: PropTypes.string\n};\nvar defaultProps = {\n layout: 'normal',\n images: null,\n withCaptions: false,\n spacing: 20,\n background: null,\n callToAction: null,\n current: true,\n transitions: null,\n transitionStagger: 75,\n type: null,\n className: null\n};\n\nvar GalleryFeedScreen = function GalleryFeedScreen(_ref) {\n var _ref6;\n\n var layout = _ref.layout,\n images = _ref.images,\n withCaptions = _ref.withCaptions,\n spacing = _ref.spacing,\n background = _ref.background,\n callToAction = _ref.callToAction,\n current = _ref.current,\n transitions = _ref.transitions,\n transitionStagger = _ref.transitionStagger,\n type = _ref.type,\n className = _ref.className;\n var trackScreenEvent = useTrackScreenEvent(type);\n\n var _useScreenSize = useScreenSize(),\n width = _useScreenSize.width,\n height = _useScreenSize.height,\n menuOverScreen = _useScreenSize.menuOverScreen;\n\n var _useViewer = useViewer(),\n menuSize = _useViewer.menuSize;\n\n var _useScreenRenderConte = useScreenRenderContext(),\n isView = _useScreenRenderConte.isView,\n isPreview = _useScreenRenderConte.isPreview,\n isPlaceholder = _useScreenRenderConte.isPlaceholder,\n isEdit = _useScreenRenderConte.isEdit,\n isStatic = _useScreenRenderConte.isStatic,\n isCapture = _useScreenRenderConte.isCapture;\n\n var backgroundPlaying = current && (isView || isEdit);\n var hasImages = images !== null;\n var imagesCount = hasImages ? images.length : 0;\n\n var _useState = useState(0),\n _useState2 = _slicedToArray(_useState, 2),\n imagesLoaded = _useState2[0],\n setImagesLoaded = _useState2[1];\n\n var ready = imagesLoaded >= imagesCount;\n var transitionPlaying = current && ready;\n var transitionDisabled = isStatic || isCapture || isPlaceholder || isPreview || isEdit;\n var scrollingDisabled = !isEdit && transitionDisabled || !current;\n var onImageLoaded = useCallback(function () {\n setImagesLoaded(imagesLoaded + 1);\n }, [imagesLoaded, setImagesLoaded]);\n var isReversed = layout === 'reverse';\n var items = [];\n var editImages = isEdit && imagesCount === 0 ? [null] : images;\n var finalImages = isPlaceholder ? _toConsumableArray(Array(5)) : editImages;\n\n var _useResizeObserver = useResizeObserver(),\n firstImageRef = _useResizeObserver.ref,\n contentRect = _useResizeObserver.entry.contentRect;\n\n var _ref2 = contentRect || {},\n firstImageRefWidth = _ref2.width;\n\n (finalImages || []).forEach(function (image, index) {\n var finalImage = withCaptions ? image : {\n media: image\n };\n\n var _ref3 = finalImage || {},\n _ref3$caption = _ref3.caption,\n caption = _ref3$caption === void 0 ? null : _ref3$caption;\n\n var hasImage = isImageFilled(finalImage);\n var hasCaption = isTextFilled(caption);\n var imageElement = /*#__PURE__*/React.createElement(ScreenElement, {\n key: \"image-\".concat(index),\n placeholder: \"image\",\n emptyLabel: /*#__PURE__*/React.createElement(FormattedMessage, {\n id: \"ebsPd4\",\n defaultMessage: [{\n \"type\": 0,\n \"value\": \"Image\"\n }]\n }),\n emptyClassName: styles.emptyImage,\n isEmpty: !hasImage\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: styles.imageContainer,\n ref: index === 0 ? firstImageRef : null\n }, /*#__PURE__*/React.createElement(Visual, Object.assign({}, finalImage, {\n width: firstImageRefWidth,\n onLoaded: onImageLoaded,\n playing: backgroundPlaying\n }))));\n var captionElement = null;\n\n if (withCaptions) {\n var marginTop = !isReversed || index > 0 ? spacing / 2 : 0;\n var marginBottom = isReversed || index < (finalImages || []).length - 1 ? spacing / 2 : 0;\n captionElement = /*#__PURE__*/React.createElement(ScreenElement, {\n key: \"caption-\".concat(index),\n placeholder: \"text\",\n placeholderProps: {\n lines: 2\n },\n emptyLabel: /*#__PURE__*/React.createElement(FormattedMessage, {\n id: \"6tIigB\",\n defaultMessage: [{\n \"type\": 0,\n \"value\": \"Caption\"\n }]\n }),\n emptyClassName: styles.emptyCaption,\n isEmpty: !hasCaption\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: styles.caption,\n style: {\n marginTop: marginTop,\n marginBottom: marginBottom\n }\n }, /*#__PURE__*/React.createElement(Text, Object.assign({}, caption, {\n className: styles.captionText\n }))));\n }\n\n if (isReversed) {\n if (withCaptions) {\n items.push(captionElement);\n }\n\n items.push(imageElement);\n } else {\n items.push(imageElement);\n\n if (withCaptions) {\n items.push(captionElement);\n }\n }\n\n if (!isPlaceholder && index < (finalImages || []).length - 1) {\n items.push( /*#__PURE__*/React.createElement(\"div\", {\n key: \"spacing-\".concat(index),\n style: {\n height: spacing\n }\n }));\n }\n }); // Call to Action\n\n var hasCallToAction = callToAction !== null && callToAction.active === true;\n\n var _useState3 = useState(false),\n _useState4 = _slicedToArray(_useState3, 2),\n scrolledBottom = _useState4[0],\n setScrolledBottom = _useState4[1];\n\n var _useResizeObserver2 = useResizeObserver(),\n callToActionRef = _useResizeObserver2.ref,\n callToActionRect = _useResizeObserver2.entry.contentRect;\n\n var _ref4 = callToActionRect || {},\n _ref4$height = _ref4.height,\n callToActionHeight = _ref4$height === void 0 ? 0 : _ref4$height;\n\n if (!isPlaceholder && hasCallToAction) {\n items.push( /*#__PURE__*/React.createElement(\"div\", {\n key: \"cta-spacer\",\n style: {\n height: callToActionHeight\n }\n }));\n }\n\n var onScrolledBottom = useCallback(function (_ref5) {\n var initial = _ref5.initial;\n\n if (initial) {\n trackScreenEvent('scroll', 'Screen');\n }\n\n setScrolledBottom(true);\n }, [trackScreenEvent]);\n var onScrolledNotBottom = useCallback(function () {\n setScrolledBottom(false);\n }, [setScrolledBottom]);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames([styles.container, (_ref6 = {}, _defineProperty(_ref6, className, className !== null), _defineProperty(_ref6, styles.isPlaceholder, isPlaceholder), _ref6)]),\n \"data-screen-ready\": ready\n }, !isPlaceholder ? /*#__PURE__*/React.createElement(Background, {\n background: background,\n width: width,\n height: height,\n playing: backgroundPlaying\n }) : null, /*#__PURE__*/React.createElement(Container, {\n width: width,\n height: height\n }, /*#__PURE__*/React.createElement(Scroll, {\n disabled: scrollingDisabled,\n onScrolledBottom: onScrolledBottom,\n onScrolledNotBottom: onScrolledNotBottom\n }, /*#__PURE__*/React.createElement(Layout, {\n className: styles.layout,\n style: !isPlaceholder ? {\n padding: spacing,\n paddingTop: (menuOverScreen && !isPreview ? menuSize : 0) + spacing\n } : null\n }, /*#__PURE__*/React.createElement(TransitionsStagger, {\n transitions: transitions,\n stagger: transitionStagger,\n disabled: transitionDisabled,\n playing: transitionPlaying\n }, items))), !isPlaceholder && hasCallToAction ? /*#__PURE__*/React.createElement(CallToAction, {\n ref: callToActionRef,\n className: styles.callToAction,\n disabled: !scrolledBottom,\n animationDisabled: isPreview,\n callToAction: callToAction,\n focusable: current && isView\n }) : null));\n};\n\nGalleryFeedScreen.propTypes = propTypes;\nGalleryFeedScreen.defaultProps = defaultProps;\nvar GalleryFeedScreen$1 = /*#__PURE__*/React.memo(GalleryFeedScreen);\n\nvar GalleryFeedCaptionsScreen = function GalleryFeedCaptionsScreen(_ref) {\n var props = _extends({}, _ref);\n\n return /*#__PURE__*/React.createElement(GalleryFeedScreen$1, Object.assign({}, props, {\n withCaptions: true\n }));\n};\n\nvar transform = function transform(newStory, _ref) {\n var images = _ref.images;\n\n var _Gallery = Gallery(newStory, {\n images: images\n }),\n titleStory = _Gallery.story,\n titleComponent = _Gallery.component;\n\n var _Container = Container$1(titleStory, _toConsumableArray(titleComponent ? [titleComponent] : [])),\n containerStory = _Container.story,\n containerComponent = _Container.component;\n\n return _objectSpread(_objectSpread({}, containerStory), {}, {\n components: [].concat(_toConsumableArray(newStory.components || []), _toConsumableArray(containerComponent ? [containerComponent] : []))\n });\n};\n\n// eslint-disable-next-line\n\nvar transforms = /*#__PURE__*/Object.freeze({\n __proto__: null,\n appleNews: transform\n});\n\nvar definition = [{\n id: 'gallery-feed',\n type: 'screen',\n group: {\n label: defineMessage({\n \"id\": \"6mX2ya\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Images\"\n }]\n }),\n order: 4\n },\n title: defineMessage({\n \"id\": \"4bHvRS\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Gallery Feed\"\n }]\n }),\n component: GalleryFeedScreen$1,\n layouts: ['normal'],\n transforms: transforms,\n fields: [{\n name: 'images',\n type: 'visuals',\n label: defineMessage({\n \"id\": \"muYwrB\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Images\"\n }]\n })\n }, {\n name: 'background',\n type: 'background',\n label: defineMessage({\n \"id\": \"+MPZRu\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Background\"\n }]\n })\n }, {\n name: 'callToAction',\n type: 'call-to-action',\n theme: {\n label: {\n textStyle: 'heading2'\n }\n }\n }]\n}, {\n id: 'gallery-feed-captions',\n type: 'screen',\n group: {\n label: defineMessage({\n \"id\": \"6mX2ya\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Images\"\n }]\n }),\n order: 4\n },\n title: defineMessage({\n \"id\": \"XTJGzY\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Gallery feed with captions\"\n }]\n }),\n component: GalleryFeedCaptionsScreen,\n layouts: ['normal', 'reverse'],\n transforms: transforms,\n fields: [{\n name: 'layout',\n type: 'screen-layout',\n defaultValue: 'normal',\n label: defineMessage({\n \"id\": \"4iBXj2\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Layout\"\n }]\n })\n }, {\n name: 'images',\n type: 'visuals-with-caption',\n theme: {\n caption: {\n textStyle: 'text'\n }\n },\n label: defineMessage({\n \"id\": \"T9NZPQ\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Images\"\n }]\n })\n }, {\n name: 'background',\n type: 'background',\n label: defineMessage({\n \"id\": \"+MPZRu\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Background\"\n }]\n })\n }, {\n name: 'callToAction',\n type: 'call-to-action',\n theme: {\n label: {\n textStyle: 'heading2'\n }\n }\n }]\n}];\n\nexport { GalleryFeedCaptionsScreen, GalleryFeedScreen$1 as GalleryFeedScreen, definition as default };\n","import { FormattedMessage, defineMessage } from 'react-intl';\nimport _defineProperty from '@babel/runtime/helpers/defineProperty';\nimport _slicedToArray from '@babel/runtime/helpers/slicedToArray';\nimport React, { useMemo, useState, useCallback } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { PropTypes as PropTypes$1 } from '@micromag/core';\nimport { useScreenSize, useViewer, useScreenRenderContext } from '@micromag/core/contexts';\nimport { ScreenElement, Transitions } from '@micromag/core/components';\nimport { useResizeObserver } from '@micromag/core/hooks';\nimport { isTextFilled } from '@micromag/core/utils';\nimport Background from '@micromag/element-background';\nimport Container from '@micromag/element-container';\nimport Layout from '@micromag/element-layout';\nimport Visual from '@micromag/element-visual';\nimport Heading from '@micromag/element-heading';\nimport Text from '@micromag/element-text';\nimport CallToAction from '@micromag/element-call-to-action';\nimport _extends from '@babel/runtime/helpers/extends';\nimport _objectSpread from '@babel/runtime/helpers/objectSpread2';\nimport _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';\nimport { Image, Heading1, Text as Text$1, Container as Container$1 } from '@micromag/transforms/apple-news';\n\nvar styles = {\"container\":\"micromag-screen-image-container\",\"image\":\"micromag-screen-image-image\",\"disabled\":\"micromag-screen-image-disabled\",\"hidden\":\"micromag-screen-image-hidden\",\"placeholder\":\"micromag-screen-image-placeholder\",\"content\":\"micromag-screen-image-content\",\"emptyImage\":\"micromag-screen-image-emptyImage\",\"emptyLegend\":\"micromag-screen-image-emptyLegend\",\"emptyText\":\"micromag-screen-image-emptyText\",\"emptyTitle\":\"micromag-screen-image-emptyTitle\",\"imageContainer\":\"micromag-screen-image-imageContainer\",\"placeholderImage\":\"micromag-screen-image-placeholderImage\",\"callToAction\":\"micromag-screen-image-callToAction\",\"isPlaceholder\":\"micromag-screen-image-isPlaceholder\",\"layout\":\"micromag-screen-image-layout\",\"isCard\":\"micromag-screen-image-isCard\",\"isCardReverse\":\"micromag-screen-image-isCardReverse\",\"isFullscreen\":\"micromag-screen-image-isFullscreen\"};\n\nvar propTypes = {\n layout: PropTypes.oneOf(['normal', 'fullscreen', 'reverse', 'card', 'card-reverse', 'title-top']),\n image: PropTypes$1.imageMedia,\n imageFit: PropTypes.oneOf(['contain', 'cover']),\n defaultImageFit: PropTypes.string,\n title: PropTypes$1.headingElement,\n text: PropTypes$1.textElement,\n legend: PropTypes$1.textElement,\n withTitle: PropTypes.bool,\n withText: PropTypes.bool,\n withLegend: PropTypes.bool,\n spacing: PropTypes.number,\n background: PropTypes$1.backgroundElement,\n callToAction: PropTypes$1.callToAction,\n current: PropTypes.bool,\n transitions: PropTypes$1.transitions,\n className: PropTypes.string\n};\nvar defaultProps = {\n layout: 'normal',\n image: null,\n imageFit: null,\n defaultImageFit: 'cover',\n title: null,\n text: null,\n legend: null,\n withTitle: false,\n withText: false,\n withLegend: false,\n spacing: 20,\n background: null,\n callToAction: null,\n current: true,\n transitions: null,\n className: null\n};\n\nvar ImageScreen = function ImageScreen(_ref) {\n var _ref3;\n\n var layout = _ref.layout,\n image = _ref.image,\n imageFit = _ref.imageFit,\n defaultImageFit = _ref.defaultImageFit,\n title = _ref.title,\n text = _ref.text,\n legend = _ref.legend,\n withTitle = _ref.withTitle,\n withText = _ref.withText,\n withLegend = _ref.withLegend,\n spacing = _ref.spacing,\n background = _ref.background,\n callToAction = _ref.callToAction,\n current = _ref.current,\n transitions = _ref.transitions,\n className = _ref.className;\n var finalImageFit = useMemo(function () {\n return {\n fit: imageFit || defaultImageFit\n };\n }, [imageFit, defaultImageFit]);\n\n var _useScreenSize = useScreenSize(),\n width = _useScreenSize.width,\n height = _useScreenSize.height,\n menuOverScreen = _useScreenSize.menuOverScreen;\n\n var _useViewer = useViewer(),\n menuSize = _useViewer.menuSize;\n\n var _useScreenRenderConte = useScreenRenderContext(),\n isView = _useScreenRenderConte.isView,\n isPreview = _useScreenRenderConte.isPreview,\n isPlaceholder = _useScreenRenderConte.isPlaceholder,\n isEdit = _useScreenRenderConte.isEdit,\n isStatic = _useScreenRenderConte.isStatic,\n isCapture = _useScreenRenderConte.isCapture;\n\n var backgroundPlaying = current && (isView || isEdit);\n var hasImage = image !== null;\n var hasTitle = isTextFilled(title);\n var hasText = isTextFilled(text);\n var hasLegend = isTextFilled(legend);\n\n var _useState = useState(!hasImage),\n _useState2 = _slicedToArray(_useState, 2),\n ready = _useState2[0],\n setReady = _useState2[1];\n\n var transitionPlaying = current && ready;\n var transitionDisabled = isStatic || isCapture || isPlaceholder || isPreview || isEdit;\n var onImageLoaded = useCallback(function () {\n setReady(true);\n }, [setReady]);\n var isReversed = layout === 'reverse' || layout === 'card-reverse';\n var isTitleTop = layout === 'title-top';\n var isCard = layout === 'card' || layout === 'card-reverse';\n var isCardReverse = layout === 'card-reverse';\n var isFullscreen = layout === 'fullscreen';\n var finalSpacing = !isFullscreen && !isPlaceholder ? spacing : 0;\n\n var _useResizeObserver = useResizeObserver(),\n imageCntRef = _useResizeObserver.ref,\n contentRect = _useResizeObserver.entry.contentRect;\n\n var _ref2 = contentRect || {},\n imageWidth = _ref2.width,\n imageHeight = _ref2.height;\n\n var cardImageMargin = isCardReverse ? \"\".concat(finalSpacing / 2, \"px \").concat(-finalSpacing / 2, \"px 0\") : \"0 \".concat(-finalSpacing / 2, \"px \").concat(finalSpacing / 2, \"px\");\n var imageMargin = isCard || isCardReverse ? cardImageMargin : finalSpacing / 2;\n var items = [/*#__PURE__*/React.createElement(\"div\", {\n key: \"image\",\n ref: imageCntRef,\n className: styles.imageContainer,\n style: !isPlaceholder ? {\n margin: imageMargin\n } : null\n }, /*#__PURE__*/React.createElement(ScreenElement, {\n placeholder: \"image\",\n placeholderProps: {\n className: styles.placeholderImage,\n height: '100%'\n },\n emptyLabel: /*#__PURE__*/React.createElement(FormattedMessage, {\n id: \"ebsPd4\",\n defaultMessage: [{\n \"type\": 0,\n \"value\": \"Image\"\n }]\n }),\n emptyClassName: styles.emptyImage,\n isEmpty: !hasImage\n }, hasImage ? /*#__PURE__*/React.createElement(Transitions, {\n transitions: transitions,\n playing: transitionPlaying,\n disabled: transitionDisabled,\n fullscreen: true\n }, /*#__PURE__*/React.createElement(Visual, {\n className: styles.image,\n media: image,\n objectFit: finalImageFit,\n width: imageWidth,\n height: imageHeight,\n playing: backgroundPlaying,\n onLoaded: onImageLoaded\n })) : null)), withTitle && /*#__PURE__*/React.createElement(ScreenElement, {\n key: \"title\",\n placeholder: \"title\",\n emptyLabel: /*#__PURE__*/React.createElement(FormattedMessage, {\n id: \"2ZOPe+\",\n defaultMessage: [{\n \"type\": 0,\n \"value\": \"Title\"\n }]\n }),\n emptyClassName: styles.emptyTitle,\n isEmpty: !hasTitle\n }, hasTitle ? /*#__PURE__*/React.createElement(Transitions, {\n transitions: transitions,\n playing: transitionPlaying,\n disabled: transitionDisabled\n }, /*#__PURE__*/React.createElement(\"div\", {\n style: !isPlaceholder ? {\n margin: finalSpacing / 2\n } : null\n }, /*#__PURE__*/React.createElement(Heading, title))) : null), withText && /*#__PURE__*/React.createElement(ScreenElement, {\n key: \"text\",\n placeholder: \"text\",\n emptyLabel: /*#__PURE__*/React.createElement(FormattedMessage, {\n id: \"z4CiV1\",\n defaultMessage: [{\n \"type\": 0,\n \"value\": \"Text\"\n }]\n }),\n emptyClassName: styles.emptyText,\n isEmpty: !hasText\n }, hasText ? /*#__PURE__*/React.createElement(Transitions, {\n transitions: transitions,\n playing: transitionPlaying,\n disabled: transitionDisabled\n }, /*#__PURE__*/React.createElement(\"div\", {\n style: !isPlaceholder ? {\n margin: finalSpacing / 2\n } : null\n }, /*#__PURE__*/React.createElement(Text, text))) : null), withLegend && /*#__PURE__*/React.createElement(ScreenElement, {\n key: \"legend\",\n placeholder: \"shortText\",\n emptyLabel: /*#__PURE__*/React.createElement(FormattedMessage, {\n id: \"dqnkQk\",\n defaultMessage: [{\n \"type\": 0,\n \"value\": \"Legend\"\n }]\n }),\n emptyClassName: styles.emptyLegend,\n isEmpty: !hasLegend\n }, hasLegend ? /*#__PURE__*/React.createElement(Transitions, {\n transitions: transitions,\n playing: transitionPlaying,\n disabled: transitionDisabled\n }, /*#__PURE__*/React.createElement(\"div\", {\n style: !isPlaceholder ? {\n margin: finalSpacing / 2\n } : null\n }, /*#__PURE__*/React.createElement(Text, legend))) : null)];\n\n if (isReversed) {\n items.reverse();\n } else if (isTitleTop) {\n if (withTitle && (hasTitle || isPlaceholder)) {\n items.splice(0, 0, items.splice(1, 1)[0]);\n }\n }\n\n var hasCallToAction = callToAction !== null && callToAction.active === true;\n\n if (!isPlaceholder && hasCallToAction) {\n items.push( /*#__PURE__*/React.createElement(\"div\", {\n style: {\n margin: -finalSpacing / 2,\n marginTop: 0\n },\n key: \"call-to-action\"\n }, /*#__PURE__*/React.createElement(CallToAction, {\n className: styles.callToAction,\n callToAction: callToAction,\n animationDisabled: isPreview,\n focusable: current && isView\n })));\n }\n\n var paddingBottom = finalSpacing / 2;\n var paddingTop = (menuOverScreen && !isPreview ? menuSize : 0) + finalSpacing / 2;\n\n if (isCard || isFullscreen) {\n paddingTop = 0;\n }\n\n if (isCardReverse) {\n paddingTop = menuOverScreen ? menuSize : finalSpacing / 2;\n paddingBottom = 0;\n }\n\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames([styles.container, (_ref3 = {}, _defineProperty(_ref3, className, className !== null), _defineProperty(_ref3, styles.isReversed, isReversed), _defineProperty(_ref3, styles.isPlaceholder, isPlaceholder), _defineProperty(_ref3, styles.isCard, isCard), _defineProperty(_ref3, styles.isCardReverse, isCardReverse), _defineProperty(_ref3, styles.isFullscreen, isFullscreen), _ref3)]),\n \"data-screen-ready\": ready\n }, !isPlaceholder ? /*#__PURE__*/React.createElement(Background, {\n background: background,\n width: width,\n height: height,\n playing: backgroundPlaying\n }) : null, /*#__PURE__*/React.createElement(Container, {\n width: width,\n height: height\n }, /*#__PURE__*/React.createElement(Layout, {\n className: styles.layout,\n fullscreen: true,\n style: !isPlaceholder ? {\n padding: finalSpacing / 2,\n paddingTop: paddingTop,\n paddingBottom: paddingBottom\n } : null\n }, items)));\n};\n\nImageScreen.propTypes = propTypes;\nImageScreen.defaultProps = defaultProps;\nvar ImageScreen$1 = /*#__PURE__*/React.memo(ImageScreen);\n\nvar ImageTitleScreen = function ImageTitleScreen(_ref) {\n var props = _extends({}, _ref);\n\n return /*#__PURE__*/React.createElement(ImageScreen$1, Object.assign({}, props, {\n withTitle: true\n }));\n};\n\nvar ImageTextScreen = function ImageTextScreen(_ref) {\n var props = _extends({}, _ref);\n\n return /*#__PURE__*/React.createElement(ImageScreen$1, Object.assign({}, props, {\n withText: true\n }));\n};\n\nvar ImageTitleTextScreen = function ImageTitleTextScreen(_ref) {\n var props = _extends({}, _ref);\n\n return /*#__PURE__*/React.createElement(ImageScreen$1, Object.assign({}, props, {\n withTitle: true,\n withText: true\n }));\n};\n\nvar ImageLegendScreen = function ImageLegendScreen(_ref) {\n var props = _extends({}, _ref);\n\n return /*#__PURE__*/React.createElement(ImageScreen$1, Object.assign({}, props, {\n withLegend: true\n }));\n};\n\nvar transform = function transform(newStory, _ref) {\n var layout = _ref.layout,\n image = _ref.image,\n text = _ref.text,\n title = _ref.title;\n\n var _Image = Image(newStory, image),\n imageStory = _Image.story,\n imageComponent = _Image.component;\n\n var _Heading = Heading1(imageStory, title),\n titleStory = _Heading.story,\n titleComponent = _Heading.component;\n\n var _Text = Text$1(titleStory, text),\n textStory = _Text.story,\n textComponent = _Text.component;\n\n var items = [];\n\n switch (layout) {\n case 'reverse':\n items = [].concat(_toConsumableArray(textComponent ? [textComponent] : []), _toConsumableArray(titleComponent ? [titleComponent] : []), _toConsumableArray(imageComponent ? [imageComponent] : []));\n break;\n\n case 'title-top':\n items = [].concat(_toConsumableArray(titleComponent ? [titleComponent] : []), _toConsumableArray(imageComponent ? [imageComponent] : []), _toConsumableArray(textComponent ? [textComponent] : []));\n break;\n\n default:\n items = [].concat(_toConsumableArray(imageComponent ? [imageComponent] : []), _toConsumableArray(titleComponent ? [titleComponent] : []), _toConsumableArray(textComponent ? [textComponent] : []));\n break;\n }\n\n var _Container = Container$1(textStory, items),\n containerStory = _Container.story,\n component = _Container.component;\n\n return _objectSpread(_objectSpread({}, containerStory), {}, {\n components: [].concat(_toConsumableArray(newStory.components || []), _toConsumableArray(component ? [component] : []))\n });\n};\n\n// eslint-disable-next-line\n\nvar transforms = /*#__PURE__*/Object.freeze({\n __proto__: null,\n appleNews: transform\n});\n\nvar definition = [{\n id: 'image',\n type: 'screen',\n group: {\n label: defineMessage({\n \"id\": \"6mX2ya\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Images\"\n }]\n }),\n order: 4\n },\n title: defineMessage({\n \"id\": \"uJ9eBc\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Image\"\n }]\n }),\n component: ImageScreen$1,\n layouts: ['normal', 'fullscreen'],\n transforms: transforms,\n fields: [{\n name: 'layout',\n type: 'screen-layout',\n defaultValue: 'normal',\n label: defineMessage({\n \"id\": \"4iBXj2\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Layout\"\n }]\n })\n }, {\n name: 'image',\n type: 'visual',\n label: defineMessage({\n \"id\": \"xsipID\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Image\"\n }]\n })\n }, {\n name: 'imageFit',\n type: 'fit',\n defaultValue: 'cover',\n values: ['cover', 'contain'],\n label: defineMessage({\n \"id\": \"dkBBRa\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Image fit\"\n }]\n })\n }, {\n name: 'background',\n type: 'background',\n label: defineMessage({\n \"id\": \"+MPZRu\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Background\"\n }]\n })\n }, {\n name: 'callToAction',\n type: 'call-to-action',\n theme: {\n label: {\n textStyle: 'heading2'\n }\n }\n }]\n}, {\n id: 'image-title',\n type: 'screen',\n group: {\n label: defineMessage({\n \"id\": \"S/mavZ\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Text and Images\"\n }]\n }),\n order: 3\n },\n title: defineMessage({\n \"id\": \"AA8TV9\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Image with title\"\n }]\n }),\n component: ImageTitleScreen,\n layouts: ['normal', 'reverse', 'card', 'card-reverse'],\n transforms: transforms,\n fields: [{\n name: 'layout',\n type: 'screen-layout',\n defaultValue: 'normal',\n label: defineMessage({\n \"id\": \"4iBXj2\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Layout\"\n }]\n })\n }, {\n name: 'image',\n type: 'visual',\n label: defineMessage({\n \"id\": \"xsipID\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Image\"\n }]\n })\n }, {\n name: 'imageFit',\n type: 'fit',\n defaultValue: 'cover',\n values: ['cover', 'contain'],\n label: defineMessage({\n \"id\": \"dkBBRa\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Image fit\"\n }]\n })\n }, {\n name: 'title',\n type: 'heading-element',\n inline: true,\n theme: {\n textStyle: 'heading2'\n },\n label: defineMessage({\n \"id\": \"N25iDO\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Title\"\n }]\n })\n }, {\n name: 'background',\n type: 'background',\n label: defineMessage({\n \"id\": \"+MPZRu\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Background\"\n }]\n })\n }, {\n name: 'callToAction',\n type: 'call-to-action',\n theme: {\n label: {\n textStyle: 'heading2'\n }\n }\n }]\n}, {\n id: 'image-text',\n type: 'screen',\n group: {\n label: defineMessage({\n \"id\": \"S/mavZ\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Text and Images\"\n }]\n }),\n order: 3\n },\n title: defineMessage({\n \"id\": \"CJmQeh\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Image with text\"\n }]\n }),\n component: ImageTextScreen,\n layouts: ['normal', 'reverse', 'card', 'card-reverse'],\n transforms: transforms,\n fields: [{\n name: 'layout',\n type: 'screen-layout',\n defaultValue: 'normal',\n label: defineMessage({\n \"id\": \"4iBXj2\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Layout\"\n }]\n })\n }, {\n name: 'image',\n type: 'visual',\n label: defineMessage({\n \"id\": \"xsipID\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Image\"\n }]\n })\n }, {\n name: 'imageFit',\n type: 'fit',\n defaultValue: 'cover',\n values: ['cover', 'contain'],\n label: defineMessage({\n \"id\": \"dkBBRa\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Image fit\"\n }]\n })\n }, {\n name: 'text',\n type: 'text-element',\n theme: {\n textStyle: 'text'\n },\n label: defineMessage({\n \"id\": \"4E2gbX\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Text\"\n }]\n })\n }, {\n name: 'background',\n type: 'background',\n label: defineMessage({\n \"id\": \"+MPZRu\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Background\"\n }]\n })\n }, {\n name: 'callToAction',\n type: 'call-to-action',\n theme: {\n label: {\n textStyle: 'heading2'\n }\n }\n }]\n}, {\n id: 'image-title-text',\n type: 'screen',\n group: {\n label: defineMessage({\n \"id\": \"S/mavZ\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Text and Images\"\n }]\n }),\n order: 3\n },\n title: defineMessage({\n \"id\": \"eWIM/8\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Image with title and text\"\n }]\n }),\n component: ImageTitleTextScreen,\n layouts: ['normal', 'reverse', 'title-top', 'card', 'card-reverse'],\n transforms: transforms,\n fields: [{\n name: 'layout',\n type: 'screen-layout',\n defaultValue: 'normal',\n label: defineMessage({\n \"id\": \"4iBXj2\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Layout\"\n }]\n })\n }, {\n name: 'image',\n type: 'visual',\n isHorizontal: false,\n label: defineMessage({\n \"id\": \"xsipID\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Image\"\n }]\n })\n }, {\n name: 'imageFit',\n type: 'fit',\n defaultValue: 'cover',\n values: ['cover', 'contain'],\n label: defineMessage({\n \"id\": \"dkBBRa\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Image fit\"\n }]\n })\n }, {\n name: 'title',\n type: 'text-element',\n inline: true,\n theme: {\n textStyle: 'heading2'\n },\n label: defineMessage({\n \"id\": \"N25iDO\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Title\"\n }]\n })\n }, {\n name: 'text',\n type: 'text-element',\n theme: {\n textStyle: 'text'\n },\n label: defineMessage({\n \"id\": \"4E2gbX\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Text\"\n }]\n })\n }, {\n name: 'background',\n type: 'background',\n label: defineMessage({\n \"id\": \"+MPZRu\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Background\"\n }]\n })\n }, {\n name: 'callToAction',\n type: 'call-to-action',\n theme: {\n label: {\n textStyle: 'heading2'\n }\n }\n }]\n}, {\n id: 'image-legend',\n type: 'screen',\n group: {\n label: defineMessage({\n \"id\": \"6mX2ya\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Images\"\n }]\n }),\n order: 4\n },\n title: defineMessage({\n \"id\": \"H1YcaV\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Image with legend\"\n }]\n }),\n component: ImageLegendScreen,\n layouts: ['normal', 'reverse', 'card', 'card-reverse'],\n transforms: transforms,\n fields: [{\n name: 'layout',\n type: 'screen-layout',\n defaultValue: 'normal',\n label: defineMessage({\n \"id\": \"4iBXj2\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Layout\"\n }]\n })\n }, {\n name: 'image',\n type: 'visual',\n label: defineMessage({\n \"id\": \"xsipID\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Image\"\n }]\n })\n }, {\n name: 'imageFit',\n type: 'fit',\n defaultValue: 'cover',\n values: ['cover', 'contain'],\n label: defineMessage({\n \"id\": \"dkBBRa\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Image fit\"\n }]\n })\n }, {\n name: 'legend',\n type: 'text-element',\n theme: {\n textStyle: 'text'\n },\n label: defineMessage({\n \"id\": \"3OS3Ms\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Legend\"\n }]\n })\n }, {\n name: 'background',\n type: 'background',\n label: defineMessage({\n \"id\": \"+MPZRu\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Background\"\n }]\n })\n }, {\n name: 'callToAction',\n type: 'call-to-action',\n theme: {\n label: {\n textStyle: 'heading2'\n }\n }\n }]\n}];\n\nexport { ImageLegendScreen, ImageScreen$1 as ImageScreen, ImageTextScreen, ImageTitleScreen, ImageTitleTextScreen, definition as default };\n","import _typeof from '@babel/runtime/helpers/typeof';\nimport _defineProperty from '@babel/runtime/helpers/defineProperty';\nimport _slicedToArray from '@babel/runtime/helpers/slicedToArray';\nimport React, { useState, useRef, useEffect, useCallback, useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { useGoogleMapsClient } from '@micromag/core/contexts';\nimport { useResizeObserver } from '@micromag/core/hooks';\nimport { PropTypes as PropTypes$1 } from '@micromag/core';\nimport isObject from 'lodash/isObject';\n\nvar styles$2 = [{\n elementType: 'geometry',\n stylers: [{\n color: '#f5f5f5'\n }]\n}, {\n elementType: 'labels.icon',\n stylers: [{\n visibility: 'off'\n }]\n}, {\n elementType: 'labels.text.fill',\n stylers: [{\n color: '#616161'\n }]\n}, {\n elementType: 'labels.text.stroke',\n stylers: [{\n color: '#f5f5f5'\n }]\n}, {\n featureType: 'administrative.land_parcel',\n stylers: [{\n visibility: 'off'\n }]\n}, {\n featureType: 'administrative.land_parcel',\n elementType: 'labels.text.fill',\n stylers: [{\n color: '#bdbdbd'\n }]\n}, {\n featureType: 'administrative.neighborhood',\n stylers: [{\n visibility: 'off'\n }]\n}, {\n featureType: 'poi',\n elementType: 'geometry',\n stylers: [{\n color: '#eeeeee'\n }]\n}, {\n featureType: 'poi',\n elementType: 'labels.text',\n stylers: [{\n visibility: 'off'\n }]\n}, {\n featureType: 'poi',\n elementType: 'labels.text.fill',\n stylers: [{\n color: '#757575'\n }]\n}, {\n featureType: 'poi.business',\n stylers: [{\n visibility: 'off'\n }]\n}, {\n featureType: 'poi.park',\n elementType: 'geometry',\n stylers: [{\n color: '#e5e5e5'\n }]\n}, {\n featureType: 'poi.park',\n elementType: 'labels.text.fill',\n stylers: [{\n color: '#9e9e9e'\n }]\n}, {\n featureType: 'road',\n elementType: 'geometry',\n stylers: [{\n color: '#ffffff'\n }]\n}, {\n featureType: 'road',\n elementType: 'labels',\n stylers: [{\n visibility: 'off'\n }]\n}, {\n featureType: 'road',\n elementType: 'labels.icon',\n stylers: [{\n visibility: 'off'\n }]\n}, {\n featureType: 'road.arterial',\n elementType: 'labels',\n stylers: [{\n visibility: 'off'\n }]\n}, {\n featureType: 'road.arterial',\n elementType: 'labels.text.fill',\n stylers: [{\n color: '#757575'\n }]\n}, {\n featureType: 'road.highway',\n elementType: 'geometry',\n stylers: [{\n color: '#dadada'\n }]\n}, {\n featureType: 'road.highway',\n elementType: 'labels',\n stylers: [{\n visibility: 'off'\n }]\n}, {\n featureType: 'road.highway',\n elementType: 'labels.text.fill',\n stylers: [{\n color: '#616161'\n }]\n}, {\n featureType: 'road.local',\n stylers: [{\n visibility: 'off'\n }]\n}, {\n featureType: 'road.local',\n elementType: 'labels.text.fill',\n stylers: [{\n color: '#9e9e9e'\n }]\n}, {\n featureType: 'transit',\n stylers: [{\n visibility: 'off'\n }]\n}, {\n featureType: 'transit.line',\n elementType: 'geometry',\n stylers: [{\n color: '#e5e5e5'\n }]\n}, {\n featureType: 'transit.station',\n elementType: 'geometry',\n stylers: [{\n color: '#eeeeee'\n }]\n}, {\n featureType: 'water',\n elementType: 'geometry',\n stylers: [{\n color: '#c9c9c9'\n }]\n}, {\n featureType: 'water',\n elementType: 'labels.text',\n stylers: [{\n visibility: 'off'\n }]\n}, {\n featureType: 'water',\n elementType: 'labels.text.fill',\n stylers: [{\n color: '#9e9e9e'\n }]\n}];\n\nvar eventsMapping = {\n onClick: ['click', function (map) {\n return map.getCenter();\n }],\n onCenterChanged: ['center_changed', function (map) {\n return map.getCenter();\n }],\n onBoundsChanged: ['bounds_changed', function (map) {\n return map.getBounds();\n }],\n onDragEnd: ['dragend', function (map) {\n return map.getCenter();\n }],\n onTilesLoaded: ['tilesloaded', function () {}]\n};\nfunction useGoogleMap(_ref) {\n var zoom = _ref.zoom,\n _ref$maxZoom = _ref.maxZoom,\n maxZoom = _ref$maxZoom === void 0 ? null : _ref$maxZoom,\n _ref$center = _ref.center,\n center = _ref$center === void 0 ? null : _ref$center,\n _ref$withoutStyle = _ref.withoutStyle,\n withoutStyle = _ref$withoutStyle === void 0 ? false : _ref$withoutStyle,\n _ref$fitBounds = _ref.fitBounds,\n fitBounds = _ref$fitBounds === void 0 ? false : _ref$fitBounds,\n _ref$bounds = _ref.bounds,\n bounds = _ref$bounds === void 0 ? null : _ref$bounds,\n events = _ref.events,\n _ref$draggable = _ref.draggable,\n draggable = _ref$draggable === void 0 ? false : _ref$draggable,\n zoomControl = _ref.zoomControl,\n mapTypeControl = _ref.mapTypeControl,\n scaleControl = _ref.scaleControl,\n streetViewControl = _ref.streetViewControl,\n rotateControl = _ref.rotateControl,\n fullscreenControl = _ref.fullscreenControl;\n var client = useGoogleMapsClient();\n\n var _useState = useState(false),\n _useState2 = _slicedToArray(_useState, 2),\n ready = _useState2[0],\n setReady = _useState2[1];\n\n var containerRef = useRef(null);\n var mapRef = useRef(null);\n\n var _useResizeObserver = useResizeObserver(),\n resizeRef = _useResizeObserver.ref,\n elContentRect = _useResizeObserver.entry.contentRect;\n\n var _ref2 = elContentRect || {},\n _ref2$width = _ref2.width,\n width = _ref2$width === void 0 ? null : _ref2$width,\n _ref2$height = _ref2.height,\n height = _ref2$height === void 0 ? null : _ref2$height;\n\n useEffect(function () {\n var map = mapRef.current;\n\n if (map !== null && center !== null) {\n var _ref3 = center || {},\n _ref3$lat = _ref3.lat,\n lat = _ref3$lat === void 0 ? null : _ref3$lat,\n _ref3$lng = _ref3.lng,\n lng = _ref3$lng === void 0 ? null : _ref3$lng;\n\n map.panTo({\n lat: lat || 0,\n lng: lng || 0\n });\n }\n }, [center]);\n useEffect(function () {\n var map = mapRef.current;\n\n if (map !== null && zoom !== null) {\n map.setZoom(Math.min(maxZoom, zoom));\n }\n }, [zoom, maxZoom]);\n var updateBounds = useCallback(function (map, newBounds) {\n if (newBounds === null || newBounds.equals(map.getBounds())) {\n return;\n }\n\n map.fitBounds(newBounds);\n\n if (map.getZoom() > maxZoom) {\n map.setZoom(maxZoom);\n }\n\n map.panToBounds(newBounds);\n }, [maxZoom]);\n useEffect(function () {\n var map = mapRef.current;\n\n if (map !== null && fitBounds) {\n updateBounds(map, bounds);\n }\n }, [updateBounds, bounds, fitBounds, width, height]);\n useEffect(function () {\n var map = mapRef.current;\n\n if (ready && map !== null) {\n map.setOptions({\n draggable: draggable,\n scrollWheel: draggable,\n disableDoubleClickZoom: !draggable,\n gestureHandling: draggable ? 'cooperative' : 'none'\n });\n }\n }, [ready, draggable]);\n useEffect(function () {\n if (client === null || containerRef.current === null || mapRef.current !== null) {\n return function () {};\n }\n\n var map = new client.maps.Map(containerRef.current, {\n zoom: zoom,\n center: center,\n styles: !withoutStyle ? styles$2 : null,\n zoomControl: zoomControl,\n mapTypeControl: mapTypeControl,\n scaleControl: scaleControl,\n streetViewControl: streetViewControl,\n rotateControl: rotateControl,\n fullscreenControl: fullscreenControl\n });\n\n if (fitBounds) {\n updateBounds(map, bounds);\n }\n\n mapRef.current = map; // @TODO unbind events\n\n if (events !== null) {\n Object.keys(events).forEach(function (eventName) {\n if (events[eventName] !== null) {\n map.addListener(eventsMapping[eventName][0], function () {\n return events[eventName](eventsMapping[eventName][1](map));\n });\n }\n });\n }\n\n setReady(true);\n return function () {};\n }, [client, setReady]);\n var finalRef = useCallback(function (ref) {\n resizeRef.current = ref;\n containerRef.current = ref;\n }, []);\n return {\n ref: finalRef,\n map: mapRef.current,\n ready: ready,\n loading: !ready\n };\n}\n\nvar styles$1 = {\"container\":\"micromag-element-map-container\",\"map\":\"micromag-element-map-map\",\"preventScroll\":\"micromag-element-map-preventScroll\"};\n\nvar propTypes$2 = {\n center: PropTypes.shape({\n lat: PropTypes.number,\n lng: PropTypes.number\n }),\n zoom: PropTypes.number,\n maxZoom: PropTypes.number,\n bounds: PropTypes.object,\n // eslint-disable-line\n draggable: PropTypes.bool,\n withoutStyle: PropTypes.bool,\n // Global maps events\n events: PropTypes.object,\n // eslint-disable-line\n fitBounds: PropTypes.bool,\n zoomControl: PropTypes.bool,\n mapTypeControl: PropTypes.bool,\n scaleControl: PropTypes.bool,\n streetViewControl: PropTypes.bool,\n rotateControl: PropTypes.bool,\n fullscreenControl: PropTypes.bool,\n className: PropTypes.string,\n children: PropTypes.node,\n focusable: PropTypes.bool\n};\nvar defaultProps$2 = {\n center: null,\n zoom: null,\n maxZoom: 18,\n bounds: null,\n events: null,\n fitBounds: false,\n draggable: true,\n withoutStyle: false,\n zoomControl: false,\n mapTypeControl: false,\n scaleControl: false,\n streetViewControl: false,\n rotateControl: false,\n fullscreenControl: false,\n className: null,\n children: null,\n focusable: true\n};\n\nvar Map$1 = function Map(_ref) {\n var _ref2;\n\n var center = _ref.center,\n zoom = _ref.zoom,\n maxZoom = _ref.maxZoom,\n bounds = _ref.bounds,\n draggable = _ref.draggable,\n withoutStyle = _ref.withoutStyle,\n events = _ref.events,\n fitBounds = _ref.fitBounds,\n zoomControl = _ref.zoomControl,\n mapTypeControl = _ref.mapTypeControl,\n scaleControl = _ref.scaleControl,\n streetViewControl = _ref.streetViewControl,\n rotateControl = _ref.rotateControl,\n fullscreenControl = _ref.fullscreenControl,\n className = _ref.className,\n children = _ref.children,\n focusable = _ref.focusable;\n\n var _useGoogleMap = useGoogleMap({\n zoom: zoom,\n maxZoom: maxZoom,\n bounds: bounds,\n draggable: draggable,\n fitBounds: fitBounds,\n center: center,\n events: events,\n withoutStyle: withoutStyle,\n zoomControl: zoomControl,\n mapTypeControl: mapTypeControl,\n scaleControl: scaleControl,\n streetViewControl: streetViewControl,\n rotateControl: rotateControl,\n fullscreenControl: fullscreenControl\n }),\n map = _useGoogleMap.map,\n mapRef = _useGoogleMap.ref;\n\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames([styles$1.container, (_ref2 = {}, _defineProperty(_ref2, className, className !== null), _defineProperty(_ref2, styles$1.preventScroll, !draggable), _ref2)])\n }, /*#__PURE__*/React.createElement(\"div\", {\n ref: mapRef,\n className: styles$1.map,\n tabIndex: focusable ? '0' : '-1'\n }), React.Children.map(children, function (child) {\n return /*#__PURE__*/React.cloneElement(child, {\n map: map\n });\n }));\n};\n\nMap$1.propTypes = propTypes$2;\nMap$1.defaultProps = defaultProps$2;\n\nvar eventMapping = {\n onClick: 'click',\n onDoubleClick: 'dblclick'\n};\nfunction useGoogleMapMarker(map) {\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n _ref$position = _ref.position,\n position = _ref$position === void 0 ? null : _ref$position,\n _ref$icon = _ref.icon,\n icon = _ref$icon === void 0 ? null : _ref$icon,\n _ref$iconSize = _ref.iconSize,\n iconSize = _ref$iconSize === void 0 ? null : _ref$iconSize,\n events = _ref.events,\n title = _ref.title;\n\n var client = useGoogleMapsClient();\n var markerRef = useRef(null);\n useEffect(function () {\n var marker = markerRef.current;\n\n if (marker !== null && position !== null) {\n marker.setPosition(position);\n }\n }, [position]);\n var updateIcon = useCallback(function (marker, newIcon) {\n if (client === null) {\n return;\n }\n\n if (isObject(newIcon)) {\n var _ref2 = newIcon || {},\n _ref2$url = _ref2.url,\n iconUrl = _ref2$url === void 0 ? null : _ref2$url;\n\n marker.setIcon({\n url: iconUrl,\n scaledSize: new client.maps.Size(iconSize.width, iconSize.height)\n });\n } else {\n marker.setIcon(newIcon);\n }\n }, [client, iconSize]);\n useEffect(function () {\n var marker = markerRef.current;\n\n if (marker === null || client === null) {\n return;\n }\n\n updateIcon(marker, icon);\n }, [client, icon, updateIcon]);\n useEffect(function () {\n if (client === null || map === null || markerRef.current !== null) {\n return function () {};\n }\n\n var marker = new client.maps.Marker({\n position: position,\n map: map,\n title: title\n });\n updateIcon(marker, icon);\n Object.keys(events).forEach(function (eventName) {\n marker.addListener(eventMapping[eventName], events[eventName]);\n });\n markerRef.current = marker;\n return function () {\n client.maps.event.clearInstanceListeners(marker);\n marker.setMap(null);\n };\n }, [client, map]);\n return markerRef.current;\n}\n\nvar img$1 = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABsAAAArCAYAAACJrvP4AAAC+ElEQVR4AWIgBP7//88DxCGAWssB1pIkCsO1iLG27WCtYG17x3Ywtm3bthlNMLZtz/NrXvStM/cbP/Vln6RSOfq/xqlOi2nO10bxUe26RRKLRdnxiZOnTqVpQO6NOc5AiYSd6O4dRcbAnlJQv4rk/fWt5HzzkbDjEydPHfX0pQr6Q4dcI7RqqZP7Z1z8i/cSLuqop4/+ZCB3iOt214UFVkG9SoikvOijHx1fGAXeqWNm7u9f0Zj2oh+dCoHcOlfkA0oZiB66ZYaBZ53uo/N7pOiWGBqmyF21xKEg24uhQf/mOWJsmaYgYOiiDwfYn5yTRE2X42vNWy/KyKcelZ6PPMCOTzwhEH04ii8ABzMRaNwzj0uXB+8rs4gnAqIPR/HJ4UvgV8wdlICUXOR9+9GHo/jG8enxK+aR+cDI+/ajD0eJ50Vzvv3Yt5h35Acj79ePPhylbetyXuVfA70z9OEoXVy0pbBl40DfGfpwVMy1R1kTRnpBTqM1cZQHh3P2Tiwv1wzynKEPR2HaNI4VNmsQyBcE3bj+UTgYE1kncmCvFQQMXRGpfQsmcre27fNFHVtkFYSeOM459OHcDvw+/mwtzkQ2QOigh64qz7RlrXRmTw1nA4ZOXG+F3z/Iozrkmvm1/80IRD866CkfY1hqeSeOGZnA6EdHJWPaNjdYw/tH0wHRR38q/43Padcx8/75ISUQ9fTRr1IxiUZbR7ZtSulxUk9fsoySZ8+xjxZ1bpkUiDrq6Uv3f/9TXVxk53z3qS+IPHXUq0xMbHuRNWGk77CQp05laiLysoRCbu4vn5cLIk6eOpUN06a52J46zisPRpy8ypaJyOvaMqycrz4sAcInTl5l07RprC3u1qYEDJ+4yraJSI3w5vVmiXO1dYNJPAjYQzo+CDlfvi+A2PGJqyBMG8aegiY1BRg7vgrKYqY53RjUS4Cx4wcGk1isa3zUNTB2/OBgIvVDq5bawNjxg4R96Z07U5T393fCjh8k7E7t2PPEi7rs+Kn0XwF82Z38cjx5pwAAAABJRU5ErkJggg==\";\n\nvar img = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABsAAAArCAYAAACJrvP4AAAACXBIWXMAAAsTAAALEwEAmpwYAAAFFmlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDAgNzkuMTYwNDUxLCAyMDE3LzA1LzA2LTAxOjA4OjIxICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgKE1hY2ludG9zaCkiIHhtcDpDcmVhdGVEYXRlPSIyMDIwLTA0LTA3VDE2OjQ0OjQ4LTA0OjAwIiB4bXA6TW9kaWZ5RGF0ZT0iMjAyMC0wNC0wN1QxNzo1MToxMi0wNDowMCIgeG1wOk1ldGFkYXRhRGF0ZT0iMjAyMC0wNC0wN1QxNzo1MToxMi0wNDowMCIgZGM6Zm9ybWF0PSJpbWFnZS9wbmciIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiIHBob3Rvc2hvcDpJQ0NQcm9maWxlPSJzUkdCIElFQzYxOTY2LTIuMSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoxMDRhNzAzOS01Mjk1LTQz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\";\n\nvar propTypes$1 = {\n // map: PropTypes.object.isRequired, // eslint-disable-line\n map: PropTypes.object,\n // eslint-disable-line\n position: PropTypes.shape({\n lat: PropTypes.number,\n lng: PropTypes.number\n }).isRequired,\n type: PropTypes.string,\n // .isRequired,\n events: PropTypes.object,\n // eslint-disable-line\n active: PropTypes.bool,\n title: PropTypes.string,\n image: PropTypes$1.imageMedia,\n iconSize: PropTypes.shape({\n width: PropTypes.number,\n height: PropTypes.number\n })\n};\nvar defaultProps$1 = {\n map: null,\n events: null,\n active: true,\n title: null,\n image: null,\n iconSize: {\n width: 50,\n height: 50\n }\n};\n\nvar Marker = function Marker(_ref) {\n var map = _ref.map,\n position = _ref.position,\n type = _ref.type,\n events = _ref.events,\n active = _ref.active,\n title = _ref.title,\n image = _ref.image,\n iconSize = _ref.iconSize;\n useGoogleMapMarker(map, {\n position: position,\n type: type,\n events: events,\n title: title,\n icon: image || (active ? img$1 : img),\n iconSize: iconSize\n });\n return null;\n};\n\nMarker.propTypes = propTypes$1;\nMarker.defaultProps = defaultProps$1;\n\n// import { useEffect } from 'react';\n({\n map: PropTypes.object,\n // eslint-disable-line\n coords: PropTypes.arrayOf(PropTypes.shape({\n lat: PropTypes.number,\n lng: PropTypes.number\n })).isRequired,\n events: PropTypes.object // eslint-disable-line\n\n});\n\n({\n map: PropTypes.object,\n // eslint-disable-line\n enabled: PropTypes.bool\n});\n\nvar styles = {\"container\":\"micromag-element-map-container\"};\n\nvar propTypes = {\n center: PropTypes.shape({\n lat: PropTypes.number,\n lng: PropTypes.number\n }),\n zoom: PropTypes.number,\n draggable: PropTypes.bool,\n markers: PropTypes.arrayOf(PropTypes.object),\n onClickMap: PropTypes.func,\n onClickMarker: PropTypes.func,\n className: PropTypes.string,\n onReady: PropTypes.func,\n onCenterChanged: PropTypes.func,\n onBoundsChanged: PropTypes.func,\n onDragEnd: PropTypes.func,\n withoutStyle: PropTypes.bool,\n fitBounds: PropTypes.bool,\n zoomControl: PropTypes.bool,\n mapTypeControl: PropTypes.bool,\n scaleControl: PropTypes.bool,\n streetViewControl: PropTypes.bool,\n rotateControl: PropTypes.bool,\n fullscreenControl: PropTypes.bool,\n focusable: PropTypes.bool\n};\nvar defaultProps = {\n center: null,\n zoom: null,\n draggable: true,\n markers: [],\n onClickMap: null,\n onClickMarker: null,\n className: null,\n onReady: null,\n onCenterChanged: null,\n onBoundsChanged: null,\n onDragEnd: null,\n withoutStyle: false,\n fitBounds: false,\n zoomControl: false,\n mapTypeControl: false,\n scaleControl: false,\n streetViewControl: false,\n rotateControl: false,\n fullscreenControl: false,\n focusable: true\n};\n\nvar Map = function Map(_ref) {\n var center = _ref.center,\n zoom = _ref.zoom,\n draggable = _ref.draggable,\n markers = _ref.markers,\n onClickMap = _ref.onClickMap,\n onClickMarker = _ref.onClickMarker,\n className = _ref.className,\n onReady = _ref.onReady,\n onCenterChanged = _ref.onCenterChanged,\n onBoundsChanged = _ref.onBoundsChanged,\n onDragEnd = _ref.onDragEnd,\n withoutStyle = _ref.withoutStyle,\n fitBounds = _ref.fitBounds,\n zoomControl = _ref.zoomControl,\n mapTypeControl = _ref.mapTypeControl,\n scaleControl = _ref.scaleControl,\n streetViewControl = _ref.streetViewControl,\n rotateControl = _ref.rotateControl,\n fullscreenControl = _ref.fullscreenControl,\n focusable = _ref.focusable;\n var client = useGoogleMapsClient();\n var onClick = useCallback(function (position) {\n if (onClickMap !== null) {\n onClickMap(position);\n }\n }, [onClickMap]);\n var bounds = useMemo(function () {\n if (client === null || markers === null || markers.length === 0) {\n return null;\n }\n\n var markersBounds = markers.reduce(function (newBounds, _ref2) {\n var _ref2$geoPosition = _ref2.geoPosition,\n geoPosition = _ref2$geoPosition === void 0 ? null : _ref2$geoPosition;\n\n var _ref3 = geoPosition || {},\n _ref3$lat = _ref3.lat,\n lat = _ref3$lat === void 0 ? null : _ref3$lat,\n _ref3$lng = _ref3.lng,\n lng = _ref3$lng === void 0 ? null : _ref3$lng;\n\n if (lat !== null && lng !== null) {\n newBounds.extend(new client.maps.LatLng(lat, lng));\n }\n\n return newBounds;\n }, new client.maps.LatLngBounds());\n return markersBounds;\n }, [client, markers]);\n\n var _useState = useState(false),\n _useState2 = _slicedToArray(_useState, 2),\n loaded = _useState2[0],\n setLoaded = _useState2[1];\n\n useEffect(function () {\n if (client !== null && loaded) {\n if (onReady !== null) {\n onReady(client);\n }\n }\n }, [client, loaded, onReady]);\n var onTilesLoaded = useCallback(function () {\n return setLoaded(true);\n }, [setLoaded]);\n var events = useMemo(function () {\n return {\n onClick: onClick,\n onCenterChanged: onCenterChanged,\n onBoundsChanged: onBoundsChanged,\n onDragEnd: onDragEnd,\n onTilesLoaded: onTilesLoaded\n };\n }, [onClick, onCenterChanged, onBoundsChanged, onDragEnd, onTilesLoaded]);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames([styles.container, _defineProperty({}, className, className !== null)])\n }, /*#__PURE__*/React.createElement(Map$1, {\n center: center,\n zoom: zoom,\n withoutStyle: withoutStyle,\n bounds: bounds,\n draggable: draggable,\n events: events,\n fitBounds: fitBounds,\n zoomControl: zoomControl,\n mapTypeControl: mapTypeControl,\n scaleControl: scaleControl,\n streetViewControl: streetViewControl,\n rotateControl: rotateControl,\n fullscreenControl: fullscreenControl,\n focusable: focusable\n }, markers !== null ? markers.map(function (_ref5, index) {\n var _ref5$active = _ref5.active,\n active = _ref5$active === void 0 ? true : _ref5$active,\n _ref5$geoPosition = _ref5.geoPosition,\n geoPosition = _ref5$geoPosition === void 0 ? null : _ref5$geoPosition,\n _ref5$image = _ref5.image,\n image = _ref5$image === void 0 ? null : _ref5$image,\n _ref5$title = _ref5.title,\n title = _ref5$title === void 0 ? null : _ref5$title;\n return geoPosition !== null && (geoPosition.lat || null) !== null && (geoPosition.lng || null) !== null ? /*#__PURE__*/React.createElement(Marker, {\n key: \"marker-\".concat(index),\n active: active,\n title: title !== null && _typeof(title.body) ? title.body : null,\n image: image,\n position: geoPosition,\n events: {\n onClick: onClickMarker !== null ? function (e) {\n return onClickMarker(e, index);\n } : function () {\n return console.log(index);\n } // eslint-disable-line no-console\n\n }\n }) : /*#__PURE__*/React.createElement(\"div\", null);\n }) : null));\n};\n\nMap.propTypes = propTypes;\nMap.defaultProps = defaultProps;\n\nexport { img$1 as Pin, Map as default };\n","import { useIntl, FormattedMessage, defineMessage } from 'react-intl';\nimport _defineProperty from '@babel/runtime/helpers/defineProperty';\nimport _objectSpread from '@babel/runtime/helpers/objectSpread2';\nimport _slicedToArray from '@babel/runtime/helpers/slicedToArray';\nimport React, { useState, useRef, useCallback, useMemo, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { PropTypes as PropTypes$1 } from '@micromag/core';\nimport { useGoogleKeys, useScreenSize, useScreenRenderContext } from '@micromag/core/contexts';\nimport { Transitions, Button, ScreenElement, PlaceholderMap } from '@micromag/core/components';\nimport { useTrackScreenEvent, useResizeObserver } from '@micromag/core/hooks';\nimport { getStyleFromColor, isTextFilled } from '@micromag/core/utils';\nimport { Background } from '@micromag/element-background';\nimport Container from '@micromag/element-container';\nimport Map from '@micromag/element-map';\nimport Heading from '@micromag/element-heading';\nimport Scroll from '@micromag/element-scroll';\nimport Text from '@micromag/element-text';\nimport ImageElement from '@micromag/element-image';\nimport ButtonElement from '@micromag/element-button';\nimport _extends from '@babel/runtime/helpers/extends';\nimport _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';\nimport { Map as Map$1, Container as Container$1 } from '@micromag/transforms/apple-news';\n\nvar styles = {\"container\":\"micromag-screen-map-container\",\"markerOverlayContainer\":\"micromag-screen-map-markerOverlayContainer\",\"markerOverlayScrollable\":\"micromag-screen-map-markerOverlayScrollable\",\"splash\":\"micromag-screen-map-splash\",\"disabled\":\"micromag-screen-map-disabled\",\"hidden\":\"micromag-screen-map-hidden\",\"placeholder\":\"micromag-screen-map-placeholder\",\"content\":\"micromag-screen-map-content\",\"markerOverlaySafe\":\"micromag-screen-map-markerOverlaySafe\",\"markerOverlay\":\"micromag-screen-map-markerOverlay\",\"markerOverlayContent\":\"micromag-screen-map-markerOverlayContent\",\"markerOverlayContentInner\":\"micromag-screen-map-markerOverlayContentInner\",\"swipeIndicator\":\"micromag-screen-map-swipeIndicator\",\"description\":\"micromag-screen-map-description\",\"title\":\"micromag-screen-map-title\",\"button\":\"micromag-screen-map-button\",\"emptyButton\":\"micromag-screen-map-emptyButton\",\"emptyDescription\":\"micromag-screen-map-emptyDescription\",\"emptyTitle\":\"micromag-screen-map-emptyTitle\",\"splashButton\":\"micromag-screen-map-splashButton\",\"closeButton\":\"micromag-screen-map-closeButton\",\"markerDescription\":\"micromag-screen-map-markerDescription\",\"markerImage\":\"micromag-screen-map-markerImage\",\"markerSubtitle\":\"micromag-screen-map-markerSubtitle\",\"markerTitle\":\"micromag-screen-map-markerTitle\",\"hasSelectedMarker\":\"micromag-screen-map-hasSelectedMarker\",\"opened\":\"micromag-screen-map-opened\"};\n\nvar defaultCenter = {\n lat: 45.5,\n lng: -73.56\n};\nvar defaultZoom = 10;\nvar propTypes = {\n layout: PropTypes.oneOf(['normal']),\n draggable: PropTypes.bool,\n markers: PropTypes.oneOfType([PropTypes$1.markers, PropTypes$1.markersWithImage]),\n title: PropTypes$1.textElement,\n description: PropTypes$1.textElement,\n button: PropTypes$1.textElement,\n openedMarkerSpacerHeight: PropTypes.number,\n withMarkerImages: PropTypes.bool,\n background: PropTypes$1.backgroundElement,\n current: PropTypes.bool,\n transitions: PropTypes$1.transitions,\n onEnableInteraction: PropTypes.func,\n onDisableInteraction: PropTypes.func,\n type: PropTypes.string,\n className: PropTypes.string\n};\nvar defaultProps = {\n layout: 'normal',\n draggable: true,\n markers: [],\n title: null,\n description: null,\n button: null,\n openedMarkerSpacerHeight: 0.75,\n withMarkerImages: false,\n background: null,\n current: true,\n transitions: null,\n onEnableInteraction: null,\n onDisableInteraction: null,\n type: null,\n className: null\n};\n\nvar MapScreen = function MapScreen(_ref) {\n var _ref13;\n\n var layout = _ref.layout,\n draggable = _ref.draggable,\n markers = _ref.markers,\n title = _ref.title,\n description = _ref.description,\n button = _ref.button,\n openedMarkerSpacerHeight = _ref.openedMarkerSpacerHeight,\n withMarkerImages = _ref.withMarkerImages,\n background = _ref.background,\n current = _ref.current,\n transitions = _ref.transitions,\n onEnableInteraction = _ref.onEnableInteraction,\n onDisableInteraction = _ref.onDisableInteraction,\n type = _ref.type,\n className = _ref.className;\n\n var _useIntl = useIntl(),\n locale = _useIntl.locale;\n\n var _useGoogleKeys = useGoogleKeys(),\n _useGoogleKeys$apiKey = _useGoogleKeys.apiKey,\n apiKey = _useGoogleKeys$apiKey === void 0 ? null : _useGoogleKeys$apiKey;\n\n var trackScreenEvent = useTrackScreenEvent(type);\n\n var _useState = useState(null),\n _useState2 = _slicedToArray(_useState, 2),\n selectedMarkerIndex = _useState2[0],\n setSelectedMarkerIndex = _useState2[1];\n\n var hasSelectedMarker = selectedMarkerIndex !== null;\n var lastRenderedMarker = useRef(null);\n\n var _useScreenSize = useScreenSize(),\n width = _useScreenSize.width,\n height = _useScreenSize.height;\n\n var _ref2 = background || {},\n backgroundColor = _ref2.color;\n\n var markerOverlayContentStyle = getStyleFromColor(backgroundColor);\n\n var _useScreenRenderConte = useScreenRenderContext(),\n isView = _useScreenRenderConte.isView,\n isPreview = _useScreenRenderConte.isPreview,\n isPlaceholder = _useScreenRenderConte.isPlaceholder,\n isEdit = _useScreenRenderConte.isEdit,\n isStatic = _useScreenRenderConte.isStatic,\n isCapture = _useScreenRenderConte.isCapture;\n\n var _useState3 = useState(false),\n _useState4 = _slicedToArray(_useState3, 2),\n ready = _useState4[0],\n setReady = _useState4[1];\n\n var transitionPlaying = current && ready;\n var transitionDisabled = isStatic || isCapture || isPlaceholder || isPreview || isEdit;\n var scrollingDisabled = !isEdit && transitionDisabled || !current;\n var backgroundPlaying = current && (isView || isEdit);\n\n var _useState5 = useState(isStatic || isCapture),\n _useState6 = _slicedToArray(_useState5, 2),\n opened = _useState6[0],\n setOpened = _useState6[1];\n\n var onMapReady = useCallback(function () {\n return setReady(true);\n }, [setReady]);\n var finalMarkers = useMemo(function () {\n return (markers || []).map(function (marker, markerI) {\n return _objectSpread(_objectSpread({}, marker), {}, {\n active: markerI === selectedMarkerIndex\n });\n });\n }, [markers, selectedMarkerIndex]);\n var closeMarker = useCallback(function () {\n var lastMarker = finalMarkers[selectedMarkerIndex];\n lastRenderedMarker.current = lastMarker;\n setSelectedMarkerIndex(null);\n }, [finalMarkers, selectedMarkerIndex, setSelectedMarkerIndex]);\n var onClickMap = useCallback(function () {\n var lastMarker = finalMarkers[selectedMarkerIndex];\n trackScreenEvent('click_marker_close', \"Marker \".concat(selectedMarkerIndex + 1, \": \").concat(lastMarker.title.body), {\n marker: lastMarker,\n markerIndex: selectedMarkerIndex\n });\n closeMarker();\n }, [finalMarkers, selectedMarkerIndex, trackScreenEvent, closeMarker]);\n var onClickMarker = useCallback(function (e, index) {\n var marker = finalMarkers[index];\n setSelectedMarkerIndex(index);\n trackScreenEvent('click_marker_open', \"Marker \".concat(index + 1, \": \").concat(marker.title.body), {\n marker: marker,\n markerIndex: index\n });\n }, [finalMarkers, setSelectedMarkerIndex, trackScreenEvent]);\n var onButtonClick = useCallback(function () {\n setOpened(true);\n\n if (onDisableInteraction !== null) {\n onDisableInteraction();\n }\n\n trackScreenEvent('click_button', button.body);\n }, [setOpened, onDisableInteraction, trackScreenEvent, button]);\n var onCloseClick = useCallback(function () {\n setOpened(false);\n\n if (onEnableInteraction !== null) {\n onEnableInteraction();\n }\n\n trackScreenEvent('click_close', 'Close icon');\n closeMarker();\n }, [setOpened, onEnableInteraction, trackScreenEvent]);\n var onMapDragEnd = useCallback(function (center) {\n var coords = center.toJSON();\n trackScreenEvent('drag_map', \"Latitude: \".concat(coords.lat.toFixed(4), \", Longitude: \").concat(coords.lng.toFixed(4)), {\n coords: coords\n });\n }, [trackScreenEvent]);\n var onScrolledBottom = useCallback(function (_ref3) {\n var initial = _ref3.initial;\n\n if (initial) {\n var selectedMarker = (markers || [])[selectedMarkerIndex];\n trackScreenEvent('scroll', \"Marker \".concat(selectedMarkerIndex + 1, \": \").concat(selectedMarker.title.body), {\n marker: selectedMarker,\n markerIndex: selectedMarkerIndex\n });\n }\n }, [trackScreenEvent, markers, selectedMarkerIndex]);\n\n var _useResizeObserver = useResizeObserver({\n disabled: !isView\n }),\n markerOverContentInnerRef = _useResizeObserver.ref,\n markerOverContentInnerRect = _useResizeObserver.entry.contentRect;\n\n var _ref4 = markerOverContentInnerRect || {},\n _ref4$width = _ref4.width,\n markerOverContentInnerWidth = _ref4$width === void 0 ? '100%' : _ref4$width;\n\n var _useState7 = useState(0),\n _useState8 = _slicedToArray(_useState7, 2),\n markerImagesLoaded = _useState8[0],\n setMarkerImagesLoaded = _useState8[1];\n\n var allMarkersImagesLoaded = markerImagesLoaded === (markers || []).length;\n var finalReady = ready && (!withMarkerImages || allMarkersImagesLoaded);\n useEffect(function () {\n if (withMarkerImages && markers !== null && (markers || []).length) {\n setMarkerImagesLoaded(0);\n var imgs = markers.map(function (marker) {\n var _ref5 = marker || {},\n _ref5$image = _ref5.image,\n image = _ref5$image === void 0 ? null : _ref5$image;\n\n var _ref6 = image || {},\n _ref6$url = _ref6.url,\n url = _ref6$url === void 0 ? null : _ref6$url;\n\n var withUrl = url !== null;\n\n if (withUrl) {\n var img = new Image();\n img.src = url;\n\n img.onload = function () {\n setMarkerImagesLoaded(function (index) {\n return setMarkerImagesLoaded(index + 1);\n });\n };\n\n return img;\n }\n\n return null;\n });\n return function () {\n imgs.filter(function (img) {\n return img !== null;\n }).forEach(function (img) {\n img.onload = function () {}; // eslint-disable-line no-param-reassign\n\n });\n };\n }\n\n return function () {};\n }, [withMarkerImages, markers]);\n var element = null;\n\n if (isPlaceholder) {\n element = /*#__PURE__*/React.createElement(PlaceholderMap, {\n className: styles.placeholder,\n withImages: withMarkerImages\n });\n } else if (isPreview) {\n if (width > 0 && height > 0 && apiKey !== null) {\n var staticUrl = \"https://maps.googleapis.com/maps/api/staticmap?size=\".concat(Math.round(width), \"x\").concat(Math.round(height));\n\n if (defaultCenter !== null && (markers === null || markers.length === 0)) {\n var _ref7 = defaultCenter || {},\n _ref7$lat = _ref7.lat,\n lat = _ref7$lat === void 0 ? null : _ref7$lat,\n _ref7$lng = _ref7.lng,\n lng = _ref7$lng === void 0 ? null : _ref7$lng;\n\n staticUrl += \"¢er=\".concat(lat, \",\").concat(lng);\n }\n\n {\n staticUrl += \"&zoom=\".concat(defaultZoom);\n }\n\n if (apiKey !== null) {\n staticUrl += \"&key=\".concat(apiKey);\n }\n\n if (locale !== null) {\n staticUrl += \"&language=\".concat(locale);\n }\n\n if (markers !== null) {\n staticUrl += markers.map(function (marker) {\n var _ref8 = marker || {},\n _ref8$geoPosition = _ref8.geoPosition,\n geoPosition = _ref8$geoPosition === void 0 ? null : _ref8$geoPosition;\n\n var _ref9 = geoPosition || {},\n _ref9$lat = _ref9.lat,\n lat = _ref9$lat === void 0 ? null : _ref9$lat,\n _ref9$lng = _ref9.lng,\n lng = _ref9$lng === void 0 ? null : _ref9$lng;\n\n var _ref10 = marker || {},\n _ref10$image = _ref10.image,\n image = _ref10$image === void 0 ? null : _ref10$image;\n\n var _ref11 = image || {},\n _ref11$url = _ref11.url,\n url = _ref11$url === void 0 ? null : _ref11$url;\n\n return lat !== null && lng !== null ? \"&markers=\".concat(url !== null ? \"icon:\".concat(url) : '', \"%7C\").concat(lat, \",\").concat(lng) : '';\n }).join('');\n }\n\n element = /*#__PURE__*/React.createElement(ImageElement, {\n media: {\n url: staticUrl,\n metadata: {\n width: Math.min(640, width),\n height: Math.min(640, height)\n }\n },\n width: width,\n height: height,\n objectFit: {\n fit: 'cover'\n }\n });\n }\n } else {\n var renderedMarker = hasSelectedMarker ? finalMarkers[selectedMarkerIndex] : lastRenderedMarker.current;\n\n var _ref12 = renderedMarker || {},\n _ref12$title = _ref12.title,\n markerTitle = _ref12$title === void 0 ? null : _ref12$title,\n _ref12$subtitle = _ref12.subtitle,\n markerSubtitle = _ref12$subtitle === void 0 ? null : _ref12$subtitle,\n _ref12$description = _ref12.description,\n markerDescription = _ref12$description === void 0 ? null : _ref12$description,\n _ref12$image = _ref12.image,\n markerImage = _ref12$image === void 0 ? null : _ref12$image;\n\n var hasMarkerTitle = markerTitle !== null;\n var hasMarkerSubtitle = markerSubtitle !== null;\n var hasMarkerDescription = markerDescription !== null;\n var hasMarkerImage = markerImage !== null;\n var hasTitle = isTextFilled(title);\n var hasDescription = isTextFilled(description);\n var hasButton = isTextFilled(button);\n element = /*#__PURE__*/React.createElement(Transitions, {\n transitions: transitions,\n playing: transitionPlaying,\n fullscreen: true,\n disabled: transitionDisabled\n }, /*#__PURE__*/React.createElement(Map, {\n key: \"map\",\n center: defaultCenter,\n zoom: defaultZoom,\n draggable: draggable,\n markers: finalMarkers,\n fitBounds: true,\n onClickMarker: onClickMarker,\n onReady: onMapReady,\n onDragEnd: onMapDragEnd\n }), /*#__PURE__*/React.createElement(\"div\", {\n key: \"marker-overlay\",\n className: styles.markerOverlayContainer\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: styles.markerOverlayScrollable\n }, /*#__PURE__*/React.createElement(Scroll, {\n fullscreen: true,\n disabled: scrollingDisabled,\n onScrolledBottom: onScrolledBottom\n }, /*#__PURE__*/React.createElement(Button, {\n className: styles.markerOverlaySafe,\n onClick: onClickMap,\n withoutStyle: true,\n style: {\n height: height * openedMarkerSpacerHeight\n },\n disabled: isPreview,\n focusable: current && isView\n }), /*#__PURE__*/React.createElement(\"div\", {\n className: styles.markerOverlay,\n style: {\n minHeight: height * (1 - openedMarkerSpacerHeight)\n }\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: styles.markerOverlayContent,\n style: markerOverlayContentStyle\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: styles.swipeIndicator\n }), /*#__PURE__*/React.createElement(\"div\", {\n className: styles.markerOverlayContentInner,\n key: \"markerContent-\".concat(selectedMarkerIndex),\n ref: markerOverContentInnerRef\n }, hasMarkerImage ? /*#__PURE__*/React.createElement(ImageElement, {\n className: styles.markerImage,\n media: markerImage,\n width: markerOverContentInnerWidth\n }) : null, hasMarkerTitle ? /*#__PURE__*/React.createElement(Heading, Object.assign({\n className: styles.markerTitle\n }, markerTitle)) : null, hasMarkerSubtitle ? /*#__PURE__*/React.createElement(Heading, Object.assign({\n size: 3,\n className: styles.markerSubtitle\n }, markerSubtitle)) : null, hasMarkerDescription ? /*#__PURE__*/React.createElement(Text, Object.assign({\n className: styles.markerDescription\n }, markerDescription)) : null)))))), /*#__PURE__*/React.createElement(\"div\", {\n key: \"splash\",\n className: classNames([styles.splash])\n }, /*#__PURE__*/React.createElement(ScreenElement, {\n emptyLabel: /*#__PURE__*/React.createElement(FormattedMessage, {\n id: \"2ZOPe+\",\n defaultMessage: [{\n \"type\": 0,\n \"value\": \"Title\"\n }]\n }),\n emptyClassName: styles.emptyTitle,\n isEmpty: !hasTitle\n }, /*#__PURE__*/React.createElement(Heading, Object.assign({\n className: styles.title\n }, title))), /*#__PURE__*/React.createElement(ScreenElement, {\n emptyLabel: /*#__PURE__*/React.createElement(FormattedMessage, {\n id: \"507VAi\",\n defaultMessage: [{\n \"type\": 0,\n \"value\": \"Description\"\n }]\n }),\n emptyClassName: styles.emptyDescription,\n isEmpty: !hasDescription\n }, /*#__PURE__*/React.createElement(Text, Object.assign({\n className: styles.description\n }, description))), /*#__PURE__*/React.createElement(ScreenElement, {\n emptyLabel: /*#__PURE__*/React.createElement(FormattedMessage, {\n id: \"bv3rRe\",\n defaultMessage: [{\n \"type\": 0,\n \"value\": \"Button\"\n }]\n }),\n emptyClassName: styles.emptyButton,\n isEmpty: !hasButton\n }, /*#__PURE__*/React.createElement(ButtonElement, {\n className: styles.splashButton,\n onClick: onButtonClick,\n buttonStyle: button !== null ? button.buttonStyle : null,\n focusable: current && isView\n }, /*#__PURE__*/React.createElement(Text, Object.assign({\n className: styles.button\n }, button))))), !isStatic && !isCapture ? /*#__PURE__*/React.createElement(Button, {\n key: \"close-button\",\n className: styles.closeButton,\n onClick: onCloseClick,\n focusable: current && isView\n }, \"\\xD7\") : null);\n }\n\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames([styles.container, (_ref13 = {}, _defineProperty(_ref13, className, className !== null), _defineProperty(_ref13, styles[\"\".concat(layout, \"Layout\")], layout !== null), _defineProperty(_ref13, styles.opened, opened), _defineProperty(_ref13, styles.hasSelectedMarker, hasSelectedMarker), _ref13)]),\n \"data-screen-ready\": finalReady\n }, !isPlaceholder ? /*#__PURE__*/React.createElement(Background, {\n color: {\n color: '#FFFFFF',\n alpha: 1\n },\n width: width,\n height: height,\n playing: backgroundPlaying\n }) : null, /*#__PURE__*/React.createElement(Container, {\n width: width,\n height: height\n }, element));\n};\n\nMapScreen.propTypes = propTypes;\nMapScreen.defaultProps = defaultProps;\n\nvar MapImagesScreen = function MapImagesScreen(_ref) {\n var props = _extends({}, _ref);\n\n return /*#__PURE__*/React.createElement(MapScreen, Object.assign({}, props, {\n withMarkerImages: true\n }));\n};\n\nvar transform = function transform(newStory, _ref) {\n var markers = _ref.markers;\n var marker = markers.find(function (_ref2) {\n var _ref2$geoPosition = _ref2.geoPosition,\n geoPosition = _ref2$geoPosition === void 0 ? null : _ref2$geoPosition;\n return geoPosition !== null && geoPosition.latitude !== null && geoPosition.longitude !== null;\n });\n\n var _ref3 = marker || {},\n _ref3$geoPosition = _ref3.geoPosition,\n geoPosition = _ref3$geoPosition === void 0 ? {} : _ref3$geoPosition;\n\n var _ref4 = geoPosition || {},\n _ref4$lat = _ref4.lat,\n lat = _ref4$lat === void 0 ? null : _ref4$lat,\n _ref4$lng = _ref4.lng,\n lng = _ref4$lng === void 0 ? null : _ref4$lng;\n\n var _Map = Map$1(newStory, {\n latitude: lat,\n longitude: lng\n }),\n titleStory = _Map.story,\n titleComponent = _Map.component;\n\n var _Container = Container$1(titleStory, _toConsumableArray(titleComponent ? [titleComponent] : [])),\n containerStory = _Container.story,\n containerComponent = _Container.component;\n\n return _objectSpread(_objectSpread({}, containerStory), {}, {\n components: [].concat(_toConsumableArray(newStory.components || []), _toConsumableArray(containerComponent ? [containerComponent] : []))\n });\n};\n\n// eslint-disable-next-line\n\nvar transforms = /*#__PURE__*/Object.freeze({\n __proto__: null,\n appleNews: transform\n});\n\nvar definition = [{\n id: 'map',\n type: 'screen',\n group: {\n label: defineMessage({\n \"id\": \"8vroDx\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Map\"\n }]\n }),\n order: 6\n },\n title: defineMessage({\n \"id\": \"dmuKH3\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Map\"\n }]\n }),\n component: MapScreen,\n layouts: ['normal'],\n transforms: transforms,\n fields: [{\n name: 'title',\n type: 'heading-element',\n theme: {\n textStyle: 'heading1'\n },\n label: defineMessage({\n \"id\": \"N25iDO\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Title\"\n }]\n })\n }, {\n name: 'description',\n type: 'text-element',\n theme: {\n textStyle: 'text'\n },\n label: defineMessage({\n \"id\": \"1ezz2m\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Description\"\n }]\n })\n }, {\n name: 'button',\n type: 'button-element',\n theme: {\n textStyle: 'button'\n },\n label: defineMessage({\n \"id\": \"enPTxj\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Button\"\n }]\n })\n }, {\n name: 'draggable',\n type: 'toggle',\n defaultValue: true,\n label: defineMessage({\n \"id\": \"8Dl/S1\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Draggable\"\n }]\n })\n }, {\n name: 'markers',\n type: 'markers',\n theme: {\n title: {\n textStyle: 'heading3'\n },\n description: {\n textStyle: 'text'\n }\n },\n label: defineMessage({\n \"id\": \"PbHeHc\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Markers\"\n }]\n })\n }, {\n name: 'background',\n type: 'background',\n label: defineMessage({\n \"id\": \"+MPZRu\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Background\"\n }]\n })\n }]\n}, {\n id: 'map-images',\n type: 'screen',\n group: {\n label: defineMessage({\n \"id\": \"8vroDx\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Map\"\n }]\n }),\n order: 6\n },\n title: defineMessage({\n \"id\": \"MLuvzG\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Map with image markers\"\n }]\n }),\n component: MapImagesScreen,\n layouts: ['normal'],\n transforms: transforms,\n fields: [{\n name: 'title',\n type: 'heading-element',\n theme: {\n textStyle: 'heading1'\n },\n label: defineMessage({\n \"id\": \"N25iDO\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Title\"\n }]\n })\n }, {\n name: 'description',\n type: 'text-element',\n theme: {\n textStyle: 'text'\n },\n label: defineMessage({\n \"id\": \"1ezz2m\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Description\"\n }]\n })\n }, {\n name: 'button',\n type: 'button-element',\n theme: {\n textStyle: 'button'\n },\n label: defineMessage({\n \"id\": \"enPTxj\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Button\"\n }]\n })\n }, {\n name: 'draggable',\n type: 'toggle',\n defaultValue: true,\n label: defineMessage({\n \"id\": \"8Dl/S1\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Draggable\"\n }]\n })\n }, {\n name: 'markers',\n type: 'markers-with-image',\n theme: {\n title: {\n textStyle: 'heading3'\n },\n description: {\n textStyle: 'text'\n }\n },\n label: defineMessage({\n \"id\": \"D0+Cxr\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Markers with image\"\n }]\n })\n }, {\n name: 'background',\n type: 'background',\n label: defineMessage({\n \"id\": \"+MPZRu\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Background\"\n }]\n })\n }]\n}];\n\nexport { MapImagesScreen, MapScreen, definition as default };\n","import { FormattedMessage, defineMessage } from 'react-intl';\nimport _objectSpread from '@babel/runtime/helpers/objectSpread2';\nimport _defineProperty from '@babel/runtime/helpers/defineProperty';\nimport _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';\nimport _slicedToArray from '@babel/runtime/helpers/slicedToArray';\nimport { faCheck, faTimes } from '@fortawesome/free-solid-svg-icons';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { PropTypes as PropTypes$1 } from '@micromag/core';\nimport { ScreenElement, Transitions } from '@micromag/core/components';\nimport { useScreenSize, useViewer, useScreenRenderContext } from '@micromag/core/contexts';\nimport { useTrackScreenEvent, useResizeObserver } from '@micromag/core/hooks';\nimport { isTextFilled, getStyleFromButton, getStyleFromColor } from '@micromag/core/utils';\nimport { useQuizCreate } from '@micromag/data';\nimport Background from '@micromag/element-background';\nimport Button from '@micromag/element-button';\nimport CallToAction from '@micromag/element-call-to-action';\nimport Container from '@micromag/element-container';\nimport Heading from '@micromag/element-heading';\nimport Layout, { Spacer } from '@micromag/element-layout';\nimport Text from '@micromag/element-text';\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\nimport React, { useState, useCallback, useEffect } from 'react';\n\nvar styles = {\"container\":\"micromag-screen-quiz-container\",\"disabled\":\"micromag-screen-quiz-disabled\",\"hidden\":\"micromag-screen-quiz-hidden\",\"placeholder\":\"micromag-screen-quiz-placeholder\",\"content\":\"micromag-screen-quiz-content\",\"emptyAnswer\":\"micromag-screen-quiz-emptyAnswer\",\"emptyResult\":\"micromag-screen-quiz-emptyResult\",\"emptyTitle\":\"micromag-screen-quiz-emptyTitle\",\"button\":\"micromag-screen-quiz-button\",\"question\":\"micromag-screen-quiz-question\",\"answers\":\"micromag-screen-quiz-answers\",\"items\":\"micromag-screen-quiz-items\",\"item\":\"micromag-screen-quiz-item\",\"rightAnswer\":\"micromag-screen-quiz-rightAnswer\",\"resultIcon\":\"micromag-screen-quiz-resultIcon\",\"itemContent\":\"micromag-screen-quiz-itemContent\",\"result\":\"micromag-screen-quiz-result\",\"resultContent\":\"micromag-screen-quiz-resultContent\",\"callToAction\":\"micromag-screen-quiz-callToAction\",\"answered\":\"micromag-screen-quiz-answered\",\"showResults\":\"micromag-screen-quiz-showResults\",\"answerTransitionComplete\":\"micromag-screen-quiz-answerTransitionComplete\",\"isPlaceholder\":\"micromag-screen-quiz-isPlaceholder\",\"layout\":\"micromag-screen-quiz-layout\"};\n\nvar propTypes = {\n id: PropTypes.string,\n layout: PropTypes.oneOf(['top', 'middle', 'bottom', 'split']),\n question: PropTypes$1.textElement,\n answers: PropTypes$1.quizAnswers,\n result: PropTypes.shape({\n image: PropTypes$1.imageElement,\n text: PropTypes$1.textElement\n }),\n buttonsStyle: PropTypes$1.buttonStyle,\n goodAnswerColor: PropTypes$1.color,\n badAnswerColor: PropTypes$1.color,\n spacing: PropTypes.number,\n showResultsDelay: PropTypes.number,\n background: PropTypes$1.backgroundElement,\n callToAction: PropTypes$1.callToAction,\n current: PropTypes.bool,\n transitions: PropTypes$1.transitions,\n transitionStagger: PropTypes.number,\n resultsTransitionDuration: PropTypes.number,\n type: PropTypes.string,\n className: PropTypes.string\n};\nvar defaultProps = {\n id: null,\n layout: 'middle',\n question: null,\n answers: null,\n result: null,\n buttonsStyle: null,\n goodAnswerColor: null,\n badAnswerColor: null,\n spacing: 20,\n showResultsDelay: 750,\n background: null,\n callToAction: null,\n current: true,\n transitions: null,\n transitionStagger: 100,\n resultsTransitionDuration: 500,\n type: null,\n className: null\n};\n\nvar QuizScreen = function QuizScreen(_ref) {\n var _ref13;\n\n var id = _ref.id,\n layout = _ref.layout,\n question = _ref.question,\n answers = _ref.answers,\n result = _ref.result,\n buttonsStyle = _ref.buttonsStyle,\n goodAnswerColor = _ref.goodAnswerColor,\n badAnswerColor = _ref.badAnswerColor,\n spacing = _ref.spacing,\n showResultsDelay = _ref.showResultsDelay,\n background = _ref.background,\n callToAction = _ref.callToAction,\n current = _ref.current,\n transitions = _ref.transitions,\n transitionStagger = _ref.transitionStagger,\n resultsTransitionDuration = _ref.resultsTransitionDuration,\n type = _ref.type,\n className = _ref.className;\n var screenId = id || 'screen-id';\n var trackScreenEvent = useTrackScreenEvent(type);\n\n var _useScreenSize = useScreenSize(),\n width = _useScreenSize.width,\n height = _useScreenSize.height,\n menuOverScreen = _useScreenSize.menuOverScreen;\n\n var _useViewer = useViewer(),\n menuSize = _useViewer.menuSize;\n\n var _useScreenRenderConte = useScreenRenderContext(),\n isView = _useScreenRenderConte.isView,\n isPreview = _useScreenRenderConte.isPreview,\n isPlaceholder = _useScreenRenderConte.isPlaceholder,\n isEdit = _useScreenRenderConte.isEdit,\n isStatic = _useScreenRenderConte.isStatic,\n isCapture = _useScreenRenderConte.isCapture;\n\n var hasQuestion = isTextFilled(question);\n var hasResult = isTextFilled(result);\n var showInstantAnswer = isStatic || isCapture;\n var goodAnswerIndex = answers !== null ? answers.findIndex(function (answer) {\n return answer !== null && answer.good;\n }) : null;\n\n var _useState = useState(showInstantAnswer ? goodAnswerIndex : null),\n _useState2 = _slicedToArray(_useState, 2),\n userAnswerIndex = _useState2[0],\n setUserAnswerIndex = _useState2[1];\n\n var _useState3 = useState(showInstantAnswer),\n _useState4 = _slicedToArray(_useState3, 2),\n showResults = _useState4[0],\n setShowResults = _useState4[1]; // const [answerTransitionProps, setAnswerTransitionProps] = useState(null);\n\n\n var _useState5 = useState(showInstantAnswer),\n _useState6 = _slicedToArray(_useState5, 2),\n answerTransitionComplete = _useState6[0],\n setAnswerTransitionComplete = _useState6[1];\n\n var answered = userAnswerIndex !== null;\n\n var _ref2 = userAnswerIndex !== null && answers ? answers[userAnswerIndex] : {},\n _ref2$good = _ref2.good,\n hasUserAnsweredRight = _ref2$good === void 0 ? false : _ref2$good;\n\n var isSplitted = layout === 'split';\n var verticalAlign = isSplitted ? null : layout;\n var transitionPlaying = current;\n var transitionDisabled = isStatic || isCapture || isPlaceholder || isPreview || isEdit;\n var backgroundPlaying = current && (isView || isEdit); // Call to Action\n\n var hasCallToAction = callToAction !== null && callToAction.active === true;\n\n var _useResizeObserver = useResizeObserver(),\n callToActionRef = _useResizeObserver.ref,\n callToActionRect = _useResizeObserver.entry.contentRect;\n\n var _ref3 = callToActionRect || {},\n _ref3$height = _ref3.height,\n callToActionHeight = _ref3$height === void 0 ? 0 : _ref3$height;\n\n var _useQuizCreate = useQuizCreate({\n screenId: screenId\n }),\n submitQuiz = _useQuizCreate.create;\n\n var onAnswerClick = useCallback(function (answerI) {\n var timeout = null;\n\n if (userAnswerIndex === null) {\n setUserAnswerIndex(answerI);\n timeout = setTimeout(setShowResults, showResultsDelay, true);\n var answer = answers[answerI];\n trackScreenEvent('click_answer', \"\".concat(userAnswerIndex + 1, \": \").concat(answer.label.body), {\n answer: answer,\n answerIndex: answerI\n });\n }\n\n return function () {\n if (timeout !== null) {\n clearTimeout(timeout);\n }\n };\n }, [userAnswerIndex, setUserAnswerIndex, showResultsDelay, trackScreenEvent, answers]);\n useEffect(function () {\n if (!current && isEdit && userAnswerIndex !== null) {\n setUserAnswerIndex(null);\n setShowResults(false);\n setAnswerTransitionComplete(false);\n }\n }, [isEdit, current, userAnswerIndex, setUserAnswerIndex, setShowResults, setAnswerTransitionComplete]); // we get .answer's current and future height to animate its height\n // we also get the right answer's Y to animate its position\n\n var _useResizeObserver2 = useResizeObserver(),\n answerRef = _useResizeObserver2.ref,\n answerContentRect = _useResizeObserver2.entry.contentRect;\n\n var _ref4 = answerContentRect || {},\n answerHeight = _ref4.height;\n\n var _useResizeObserver3 = useResizeObserver(),\n rightAnswerRef = _useResizeObserver3.ref,\n rightAnswerContentRect = _useResizeObserver3.entry.contentRect;\n\n var _ref5 = rightAnswerContentRect || {},\n rightAnswerHeight = _ref5.height;\n\n var _useResizeObserver4 = useResizeObserver(),\n resultRef = _useResizeObserver4.ref,\n resultContentRect = _useResizeObserver4.entry.contentRect;\n\n var _ref6 = resultContentRect || {},\n resultHeight = _ref6.height;\n\n var _useState7 = useState(0),\n _useState8 = _slicedToArray(_useState7, 2),\n rightAnswerTop = _useState8[0],\n setRightAnswerTop = _useState8[1];\n\n useEffect(function () {\n if (rightAnswerRef.current !== null) {\n setRightAnswerTop(rightAnswerRef.current.offsetTop);\n }\n }, [rightAnswerHeight]); // when the animation is done, we set a state to remove animations props\n // .results' position changes from absolute to relative\n // the wrong answers are removed from DOM\n\n useEffect(function () {\n var timeout = null;\n\n if (!showInstantAnswer && showResults) {\n timeout = setTimeout(setAnswerTransitionComplete, resultsTransitionDuration, true);\n }\n\n return function () {\n if (timeout) {\n clearTimeout(timeout);\n }\n };\n }, [showResults, resultsTransitionDuration, setAnswerTransitionComplete, showInstantAnswer]);\n useEffect(function () {\n if (userAnswerIndex !== null) {\n var _ref7 = userAnswerIndex !== null && answers ? answers[userAnswerIndex] : {},\n _ref7$good = _ref7.good,\n isGood = _ref7$good === void 0 ? false : _ref7$good,\n _ref7$label = _ref7.label,\n label = _ref7$label === void 0 ? {} : _ref7$label;\n\n var _ref8 = label || {},\n _ref8$body = _ref8.body,\n body = _ref8$body === void 0 ? '' : _ref8$body;\n\n submitQuiz({\n choice: body || userAnswerIndex,\n value: isGood ? 1 : 0\n });\n }\n }, [userAnswerIndex, answers, submitQuiz]); // Question\n\n var items = [/*#__PURE__*/React.createElement(ScreenElement, {\n key: \"question\",\n placeholder: \"title\",\n emptyLabel: /*#__PURE__*/React.createElement(FormattedMessage, {\n id: \"e1I+KU\",\n defaultMessage: [{\n \"type\": 0,\n \"value\": \"Question\"\n }]\n }),\n emptyClassName: styles.emptyTitle,\n isEmpty: !hasQuestion\n }, hasQuestion ? /*#__PURE__*/React.createElement(Transitions, {\n transitions: transitions,\n playing: transitionPlaying,\n disabled: transitionDisabled\n }, /*#__PURE__*/React.createElement(Heading, Object.assign({}, question, {\n className: styles.question\n }))) : null)];\n\n if (isSplitted) {\n items.push( /*#__PURE__*/React.createElement(Spacer, {\n key: \"spacer\"\n }));\n } // Answer\n\n\n items.push( /*#__PURE__*/React.createElement(\"div\", {\n key: \"answers\",\n className: styles.answers,\n ref: answerRef,\n style: answered && !answerTransitionComplete && (isView || isEdit) ? {\n transitionDuration: \"\".concat(resultsTransitionDuration, \"ms\"),\n height: !showResults ? answerHeight : rightAnswerHeight + resultHeight\n } : null\n }, answers !== null || isPlaceholder ? /*#__PURE__*/React.createElement(\"div\", {\n className: styles.items\n }, (isPlaceholder ? _toConsumableArray(new Array(2)) : answers).map(function (answer, answerI) {\n var _ref12;\n\n var userAnswer = answerI === userAnswerIndex;\n\n var _ref9 = answer || {},\n _ref9$good = _ref9.good,\n rightAnswer = _ref9$good === void 0 ? false : _ref9$good,\n _ref9$label = _ref9.label,\n label = _ref9$label === void 0 ? null : _ref9$label,\n _ref9$buttonStyle = _ref9.buttonStyle,\n answerButtonStyle = _ref9$buttonStyle === void 0 ? null : _ref9$buttonStyle;\n\n var _ref10 = label || {},\n _ref10$textStyle = _ref10.textStyle,\n textStyle = _ref10$textStyle === void 0 ? null : _ref10$textStyle;\n\n var _ref11 = textStyle || {};\n _ref11.color;\n\n var hasAnswer = isTextFilled(label);\n return answerTransitionComplete && !rightAnswer ? null : /*#__PURE__*/React.createElement(\"div\", {\n key: \"answer-\".concat(answerI),\n ref: rightAnswer ? rightAnswerRef : null,\n className: classNames([styles.item, (_ref12 = {}, _defineProperty(_ref12, styles.rightAnswer, rightAnswer), _defineProperty(_ref12, styles.userAnswer, userAnswer), _ref12)]),\n style: showResults && rightAnswer && !answerTransitionComplete ? {\n transform: \"translateY(\".concat(-rightAnswerTop, \"px)\"),\n transitionDuration: \"\".concat(resultsTransitionDuration, \"ms\")\n } : null\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: styles.itemContent\n }, /*#__PURE__*/React.createElement(ScreenElement, {\n placeholder: \"quizAnswer\",\n placeholderProps: {\n good: answerI === 0\n },\n emptyLabel: /*#__PURE__*/React.createElement(FormattedMessage, {\n id: \"+Ok+7S\",\n defaultMessage: [{\n \"type\": 0,\n \"value\": \"Answer\"\n }]\n }),\n emptyClassName: styles.emptyAnswer,\n isEmpty: !hasAnswer\n }, hasAnswer ? /*#__PURE__*/React.createElement(Transitions, {\n transitions: transitions,\n playing: transitionPlaying,\n delay: (answerI + 1) * transitionStagger,\n disabled: transitionDisabled\n }, /*#__PURE__*/React.createElement(Button, {\n className: styles.button,\n onClick: function onClick() {\n return onAnswerClick(answerI);\n },\n disabled: isPreview,\n focusable: current && isView,\n buttonStyle: _objectSpread(_objectSpread({}, getStyleFromButton(buttonsStyle)), getStyleFromButton(answerButtonStyle))\n }, rightAnswer ? /*#__PURE__*/React.createElement(\"span\", {\n className: styles.resultIcon,\n style: getStyleFromColor(goodAnswerColor, 'backgroundColor')\n }, /*#__PURE__*/React.createElement(FontAwesomeIcon, {\n className: styles.faIcon,\n icon: faCheck\n })) : null, answered && !hasUserAnsweredRight && userAnswer ? /*#__PURE__*/React.createElement(\"span\", {\n className: styles.resultIcon,\n style: getStyleFromColor(badAnswerColor, 'backgroundColor')\n }, /*#__PURE__*/React.createElement(FontAwesomeIcon, {\n className: styles.faIcon,\n icon: faTimes\n })) : null, /*#__PURE__*/React.createElement(Text, Object.assign({}, label, {\n className: styles.optionLabel\n })))) : null)));\n })) : null, /*#__PURE__*/React.createElement(\"div\", {\n className: styles.result,\n ref: resultRef\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: styles.resultContent\n }, /*#__PURE__*/React.createElement(ScreenElement, {\n emptyLabel: answered ? /*#__PURE__*/React.createElement(FormattedMessage, {\n id: \"li7ADr\",\n defaultMessage: [{\n \"type\": 0,\n \"value\": \"Result\"\n }]\n }) : null,\n isEmpty: answered && !hasResult,\n emptyClassName: styles.emptyResult\n }, hasResult && answers !== null ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Transitions, {\n transitions: transitions,\n playing: transitionPlaying,\n delay: (1 + answers.length) * transitionStagger,\n disabled: transitionDisabled\n }, /*#__PURE__*/React.createElement(Text, Object.assign({}, result, {\n className: styles.resultText\n })), hasCallToAction ? /*#__PURE__*/React.createElement(\"div\", {\n style: {\n height: callToActionHeight\n }\n }) : null)) : null)))));\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames([styles.container, (_ref13 = {}, _defineProperty(_ref13, className, className !== null), _defineProperty(_ref13, styles.isPlaceholder, isPlaceholder), _defineProperty(_ref13, styles.answered, answered), _defineProperty(_ref13, styles.showResults, showResults), _defineProperty(_ref13, styles.answerTransitionComplete, answerTransitionComplete), _ref13)]),\n \"data-screen-ready\": true\n }, !isPlaceholder ? /*#__PURE__*/React.createElement(Background, {\n background: background,\n width: width,\n height: height,\n playing: backgroundPlaying\n }) : null, /*#__PURE__*/React.createElement(Container, {\n width: width,\n height: height\n }, /*#__PURE__*/React.createElement(Layout, {\n className: styles.layout,\n fullscreen: true,\n verticalAlign: verticalAlign,\n style: !isPlaceholder ? {\n padding: spacing,\n paddingTop: (menuOverScreen && !isPreview ? menuSize : 0) + spacing\n } : null\n }, items), !isPlaceholder && hasCallToAction ? /*#__PURE__*/React.createElement(CallToAction, {\n ref: callToActionRef,\n className: styles.callToAction,\n callToAction: callToAction,\n disabled: !answerTransitionComplete,\n animationDisabled: isPreview,\n focusable: current && isView\n }) : null));\n};\n\nQuizScreen.propTypes = propTypes;\nQuizScreen.defaultProps = defaultProps;\n\nvar definition = {\n id: 'quiz',\n type: 'screen',\n group: {\n label: defineMessage({\n \"id\": \"ZqwBOx\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Questions\"\n }]\n }),\n order: 7\n },\n title: defineMessage({\n \"id\": \"zW7IVm\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Quiz\"\n }]\n }),\n component: QuizScreen,\n layouts: ['top', 'middle', 'bottom', 'split'],\n fields: [{\n name: 'layout',\n type: 'screen-layout',\n defaultValue: 'top',\n label: defineMessage({\n \"id\": \"4iBXj2\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Layout\"\n }]\n })\n }, {\n name: 'question',\n type: 'heading-element',\n theme: {\n textStyle: 'heading2'\n },\n label: defineMessage({\n \"id\": \"hVE7TA\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Question\"\n }]\n })\n }, {\n name: 'answers',\n type: 'quiz-answers',\n theme: {\n label: {\n textStyle: 'button'\n }\n },\n label: defineMessage({\n \"id\": \"KHWeV7\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Answers\"\n }]\n })\n }, {\n name: 'result',\n type: 'text-element',\n theme: {\n textStyle: 'text'\n },\n label: defineMessage({\n \"id\": \"FJygXH\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Result\"\n }]\n })\n }, {\n type: 'fields',\n isList: true,\n label: defineMessage({\n \"id\": \"R9DB4a\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Styles\"\n }]\n }),\n fields: [{\n name: 'buttonsStyle',\n type: 'field-with-form',\n label: defineMessage({\n \"id\": \"l5uLMd\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Buttons\"\n }]\n }),\n noValueLabel: defineMessage({\n \"id\": \"65rc70\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Edit style...\"\n }]\n }),\n field: {\n type: 'button-style'\n }\n }, {\n name: 'goodAnswerColor',\n type: 'color',\n label: defineMessage({\n \"id\": \"I2bIHm\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Good answer color\"\n }]\n })\n }, {\n name: 'badAnswerColor',\n type: 'color',\n label: defineMessage({\n \"id\": \"ru3tjH\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Bad answer color\"\n }]\n })\n }]\n }, {\n name: 'background',\n type: 'background',\n label: defineMessage({\n \"id\": \"+MPZRu\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Background\"\n }]\n })\n }, {\n name: 'callToAction',\n type: 'call-to-action',\n theme: {\n label: {\n textStyle: 'heading2'\n }\n }\n }]\n};\n\nexport { QuizScreen, definition as default };\n","import _defineProperty from '@babel/runtime/helpers/defineProperty';\nimport _objectSpread from '@babel/runtime/helpers/objectSpread2';\nimport React, { useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport { v1 } from 'uuid';\nimport classNames from 'classnames';\nimport { PropTypes as PropTypes$1 } from '@micromag/core';\nimport { getStyleFromText, getStyleFromMargin } from '@micromag/core/utils';\nimport { LinkStyle } from '@micromag/core/components';\n\nvar styles = {\"container\":\"micromag-element-quote-container\",\"showEmpty\":\"micromag-element-quote-showEmpty\"};\n\nvar propTypes = {\n body: PropTypes.string,\n textStyle: PropTypes$1.textStyle,\n linksStyle: PropTypes$1.textStyle,\n margin: PropTypes$1.margin,\n showEmpty: PropTypes.bool,\n className: PropTypes.string,\n emptyClassName: PropTypes.string\n};\nvar defaultProps = {\n body: null,\n textStyle: null,\n linksStyle: null,\n margin: null,\n showEmpty: false,\n className: null,\n emptyClassName: null\n};\n\nvar Quote = function Quote(_ref) {\n var _ref2;\n\n var body = _ref.body,\n textStyle = _ref.textStyle,\n linksStyle = _ref.linksStyle,\n margin = _ref.margin,\n showEmpty = _ref.showEmpty,\n className = _ref.className,\n emptyClassName = _ref.emptyClassName;\n var finalStyle = null;\n var finalLinkStyle = null;\n\n if (textStyle !== null) {\n finalStyle = _objectSpread(_objectSpread({}, finalStyle), getStyleFromText(textStyle));\n }\n\n if (margin !== null) {\n finalStyle = _objectSpread(_objectSpread({}, finalStyle), getStyleFromMargin(margin));\n }\n\n if (linksStyle !== null) {\n finalLinkStyle = _objectSpread(_objectSpread({}, finalLinkStyle), getStyleFromText(linksStyle));\n }\n\n var id = useMemo(function () {\n return finalLinkStyle !== null ? \"quote-component-\".concat(v1()) : null;\n }, [finalLinkStyle !== null]);\n return /*#__PURE__*/React.createElement(React.Fragment, null, finalLinkStyle !== null ? /*#__PURE__*/React.createElement(LinkStyle, {\n selector: \"#\".concat(id),\n style: finalLinkStyle\n }) : null, /*#__PURE__*/React.createElement(\"blockquote\", {\n id: id,\n className: classNames([styles.container, (_ref2 = {}, _defineProperty(_ref2, styles.showEmpty, showEmpty), _defineProperty(_ref2, emptyClassName, showEmpty && emptyClassName !== null), _defineProperty(_ref2, className, className !== null), _ref2)]),\n style: finalStyle,\n dangerouslySetInnerHTML: {\n __html: body\n }\n }));\n};\n\nQuote.propTypes = propTypes;\nQuote.defaultProps = defaultProps;\n\nexport { Quote as default };\n","import { FormattedMessage, defineMessage } from 'react-intl';\nimport _defineProperty from '@babel/runtime/helpers/defineProperty';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { PropTypes as PropTypes$1 } from '@micromag/core';\nimport { useScreenSize, useViewer, useScreenRenderContext } from '@micromag/core/contexts';\nimport { ScreenElement, TransitionsStagger } from '@micromag/core/components';\nimport { isTextFilled } from '@micromag/core/utils';\nimport Background from '@micromag/element-background';\nimport Container from '@micromag/element-container';\nimport Layout, { Spacer } from '@micromag/element-layout';\nimport Quote from '@micromag/element-quote';\nimport Text from '@micromag/element-text';\nimport CallToAction from '@micromag/element-call-to-action';\nimport _objectSpread from '@babel/runtime/helpers/objectSpread2';\nimport _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';\nimport { Quote as Quote$1, Author, Container as Container$1 } from '@micromag/transforms/apple-news';\n\nvar styles = {\"container\":\"micromag-screen-quote-container\",\"disabled\":\"micromag-screen-quote-disabled\",\"hidden\":\"micromag-screen-quote-hidden\",\"placeholder\":\"micromag-screen-quote-placeholder\",\"content\":\"micromag-screen-quote-content\",\"emptyAuthor\":\"micromag-screen-quote-emptyAuthor\",\"emptyQuote\":\"micromag-screen-quote-emptyQuote\",\"quote\":\"micromag-screen-quote-quote\",\"withMargin\":\"micromag-screen-quote-withMargin\",\"isPlaceholder\":\"micromag-screen-quote-isPlaceholder\",\"layout\":\"micromag-screen-quote-layout\"};\n\nvar propTypes = {\n layout: PropTypes.oneOf(['top', 'middle', 'bottom', 'split']),\n quote: PropTypes$1.textElement,\n author: PropTypes$1.textElement,\n spacing: PropTypes.number,\n background: PropTypes$1.backgroundElement,\n callToAction: PropTypes$1.callToAction,\n current: PropTypes.bool,\n transitions: PropTypes$1.transitions,\n transitionStagger: PropTypes.number,\n className: PropTypes.string\n};\nvar defaultProps = {\n layout: 'top',\n quote: null,\n author: null,\n spacing: 20,\n background: null,\n callToAction: null,\n current: true,\n transitions: null,\n transitionStagger: 100,\n className: null\n};\n\nvar QuoteScreen = function QuoteScreen(_ref) {\n var _ref3;\n\n var layout = _ref.layout,\n quote = _ref.quote,\n author = _ref.author,\n spacing = _ref.spacing,\n background = _ref.background,\n callToAction = _ref.callToAction,\n current = _ref.current,\n transitions = _ref.transitions,\n transitionStagger = _ref.transitionStagger,\n className = _ref.className;\n\n var _useScreenSize = useScreenSize(),\n width = _useScreenSize.width,\n height = _useScreenSize.height,\n menuOverScreen = _useScreenSize.menuOverScreen;\n\n var _useViewer = useViewer(),\n menuSize = _useViewer.menuSize;\n\n var _useScreenRenderConte = useScreenRenderContext(),\n isView = _useScreenRenderConte.isView,\n isPreview = _useScreenRenderConte.isPreview,\n isPlaceholder = _useScreenRenderConte.isPlaceholder,\n isEdit = _useScreenRenderConte.isEdit,\n isStatic = _useScreenRenderConte.isStatic,\n isCapture = _useScreenRenderConte.isCapture;\n\n var hasQuote = isTextFilled(quote);\n var hasAuthor = isTextFilled(author);\n var isSplitted = layout === 'split';\n var isTopLayout = layout === 'top';\n var isMiddleLayout = layout === 'middle';\n var verticalAlign = isSplitted ? null : layout;\n var quoteWithMargin = hasQuote && hasAuthor && !isSplitted;\n var transitionPlaying = current;\n var transitionDisabled = isStatic || isCapture || isPlaceholder || isPreview || isEdit;\n var backgroundPlaying = current && (isView || isEdit);\n var hasCallToAction = callToAction !== null && callToAction.active === true;\n var items = [!isPlaceholder && hasCallToAction && isMiddleLayout ? /*#__PURE__*/React.createElement(Spacer, {\n key: \"spacer-cta-top\"\n }) : null, /*#__PURE__*/React.createElement(ScreenElement, {\n key: \"quote\",\n placeholder: \"quote\",\n emptyLabel: /*#__PURE__*/React.createElement(FormattedMessage, {\n id: \"CrzYgw\",\n defaultMessage: [{\n \"type\": 0,\n \"value\": \"Quote\"\n }]\n }),\n emptyClassName: styles.emptyQuote,\n isEmpty: !hasQuote\n }, hasQuote ? /*#__PURE__*/React.createElement(Quote, Object.assign({\n className: classNames([styles.quote, _defineProperty({}, styles.withMargin, quoteWithMargin)])\n }, quote)) : null), isSplitted && /*#__PURE__*/React.createElement(Spacer, {\n key: \"spacer\"\n }), /*#__PURE__*/React.createElement(ScreenElement, {\n key: \"author\",\n placeholder: \"subtitle\",\n emptyLabel: /*#__PURE__*/React.createElement(FormattedMessage, {\n id: \"xYqGzM\",\n defaultMessage: [{\n \"type\": 0,\n \"value\": \"Author\"\n }]\n }),\n emptyClassName: styles.emptyAuthor,\n isEmpty: !hasAuthor\n }, hasAuthor ? /*#__PURE__*/React.createElement(Text, Object.assign({\n className: styles.author\n }, author)) : null), !isPlaceholder && hasCallToAction && (isTopLayout || isMiddleLayout) ? /*#__PURE__*/React.createElement(Spacer, {\n key: \"spacer-cta-bottom\"\n }) : null, !isPlaceholder && hasCallToAction ? /*#__PURE__*/React.createElement(\"div\", {\n style: {\n margin: -spacing,\n marginTop: 0\n },\n key: \"call-to-action\"\n }, /*#__PURE__*/React.createElement(CallToAction, {\n callToAction: callToAction,\n animationDisabled: isPreview,\n focusable: current && isView\n })) : null].filter(function (el) {\n return el !== null;\n });\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames([styles.container, (_ref3 = {}, _defineProperty(_ref3, className, className), _defineProperty(_ref3, styles.isPlaceholder, isPlaceholder), _ref3)]),\n \"data-screen-ready\": true\n }, !isPlaceholder ? /*#__PURE__*/React.createElement(Background, {\n background: background,\n width: width,\n height: height,\n playing: backgroundPlaying\n }) : null, /*#__PURE__*/React.createElement(Container, {\n width: width,\n height: height\n }, /*#__PURE__*/React.createElement(Layout, {\n className: styles.layout,\n fullscreen: true,\n verticalAlign: verticalAlign,\n style: !isPlaceholder ? {\n padding: spacing,\n paddingTop: (menuOverScreen && !isPreview ? menuSize : 0) + spacing\n } : null\n }, /*#__PURE__*/React.createElement(TransitionsStagger, {\n transitions: transitions,\n stagger: transitionStagger,\n disabled: transitionDisabled,\n playing: transitionPlaying\n }, items))));\n};\n\nQuoteScreen.propTypes = propTypes;\nQuoteScreen.defaultProps = defaultProps;\nvar QuoteScreen$1 = /*#__PURE__*/React.memo(QuoteScreen);\n\nvar transform = function transform(newStory, _ref) {\n var quote = _ref.quote,\n author = _ref.author;\n\n var _Quote = Quote$1(newStory, quote),\n quoteStory = _Quote.story,\n quoteComponent = _Quote.component;\n\n var _Author = Author(quoteStory, author),\n authorStory = _Author.story,\n authorComponent = _Author.component;\n\n var _Container = Container$1(authorStory, [].concat(_toConsumableArray(quoteComponent ? [quoteComponent] : []), _toConsumableArray(authorComponent ? [authorComponent] : []))),\n containerStory = _Container.story,\n containerComponent = _Container.component;\n\n return _objectSpread(_objectSpread({}, containerStory), {}, {\n components: [].concat(_toConsumableArray(newStory.components || []), _toConsumableArray(containerComponent ? [containerComponent] : []))\n });\n};\n\n// eslint-disable-next-line\n\nvar transforms = /*#__PURE__*/Object.freeze({\n __proto__: null,\n appleNews: transform\n});\n\nvar definition = {\n id: 'quote',\n type: 'screen',\n group: {\n label: defineMessage({\n \"id\": \"fIawTr\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Text\"\n }]\n }),\n order: 2\n },\n title: defineMessage({\n \"id\": \"3q9GPv\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Quote\"\n }]\n }),\n component: QuoteScreen$1,\n layouts: ['top', 'middle', 'bottom', 'split'],\n transforms: transforms,\n fields: [{\n name: 'layout',\n type: 'screen-layout',\n defaultValue: 'top',\n label: defineMessage({\n \"id\": \"4iBXj2\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Layout\"\n }]\n })\n }, {\n name: 'quote',\n type: 'heading-element',\n fieldType: 'multi',\n theme: {\n textStyle: 'heading2'\n },\n label: defineMessage({\n \"id\": \"88/Ge8\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Quote\"\n }]\n })\n }, {\n name: 'author',\n type: 'text-element',\n theme: {\n textStyle: 'text'\n },\n label: defineMessage({\n \"id\": \"73hxYw\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Author\"\n }]\n })\n }, {\n name: 'background',\n type: 'background',\n label: defineMessage({\n \"id\": \"+MPZRu\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Background\"\n }]\n })\n }, {\n name: 'callToAction',\n type: 'call-to-action',\n theme: {\n label: {\n textStyle: 'heading2'\n }\n }\n }]\n};\n\nexport { QuoteScreen$1 as QuoteScreen, definition as default };\n","import { FormattedMessage, defineMessage } from 'react-intl';\nimport _defineProperty from '@babel/runtime/helpers/defineProperty';\nimport _slicedToArray from '@babel/runtime/helpers/slicedToArray';\nimport _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';\nimport React, { useState, useCallback } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { PropTypes as PropTypes$1 } from '@micromag/core';\nimport { Transitions, ScreenElement } from '@micromag/core/components';\nimport { useScreenSize, useViewer, useScreenRenderContext } from '@micromag/core/contexts';\nimport { useTrackScreenEvent, useResizeObserver } from '@micromag/core/hooks';\nimport { isTextFilled } from '@micromag/core/utils';\nimport Background from '@micromag/element-background';\nimport Container from '@micromag/element-container';\nimport Layout from '@micromag/element-layout';\nimport Text from '@micromag/element-text';\nimport Heading from '@micromag/element-heading';\nimport Scroll from '@micromag/element-scroll';\nimport CallToAction from '@micromag/element-call-to-action';\nimport _objectSpread from '@babel/runtime/helpers/objectSpread2';\nimport { Text as Text$1, Container as Container$1 } from '@micromag/transforms/apple-news';\n\nvar styles = {\"container\":\"micromag-screen-ranking-container\",\"empty\":\"micromag-screen-ranking-empty\",\"item\":\"micromag-screen-ranking-item\",\"rankText\":\"micromag-screen-ranking-rankText\",\"description\":\"micromag-screen-ranking-description\",\"title\":\"micromag-screen-ranking-title\",\"callToAction\":\"micromag-screen-ranking-callToAction\",\"sideLayout\":\"micromag-screen-ranking-sideLayout\",\"layout\":\"micromag-screen-ranking-layout\",\"content\":\"micromag-screen-ranking-content\",\"rank\":\"micromag-screen-ranking-rank\",\"isPlaceholder\":\"micromag-screen-ranking-isPlaceholder\",\"scroll\":\"micromag-screen-ranking-scroll\"};\n\nvar propTypes = {\n layout: PropTypes.oneOf(['side', 'over']),\n items: PropTypes.arrayOf(PropTypes$1.textElement),\n numbersStyle: PropTypes$1.textStyle,\n ascending: PropTypes.bool,\n spacing: PropTypes.number,\n background: PropTypes$1.backgroundElement,\n callToAction: PropTypes$1.callToAction,\n current: PropTypes.bool,\n transitions: PropTypes$1.transitions,\n transitionStagger: PropTypes.number,\n type: PropTypes.string,\n className: PropTypes.string\n};\nvar defaultProps = {\n layout: 'side',\n items: [null],\n numbersStyle: null,\n ascending: false,\n spacing: 20,\n background: null,\n callToAction: null,\n current: true,\n transitions: null,\n transitionStagger: 75,\n type: null,\n className: null\n};\n\nvar RankingScreen = function RankingScreen(_ref) {\n var _ref5;\n\n var layout = _ref.layout,\n items = _ref.items,\n numbersStyle = _ref.numbersStyle,\n ascending = _ref.ascending,\n spacing = _ref.spacing,\n background = _ref.background,\n callToAction = _ref.callToAction,\n current = _ref.current,\n transitions = _ref.transitions,\n transitionStagger = _ref.transitionStagger,\n type = _ref.type,\n className = _ref.className;\n var trackScreenEvent = useTrackScreenEvent(type);\n\n var _useScreenSize = useScreenSize(),\n width = _useScreenSize.width,\n height = _useScreenSize.height,\n menuOverScreen = _useScreenSize.menuOverScreen;\n\n var _useViewer = useViewer(),\n menuSize = _useViewer.menuSize;\n\n var _useScreenRenderConte = useScreenRenderContext(),\n isView = _useScreenRenderConte.isView,\n isPreview = _useScreenRenderConte.isPreview,\n isPlaceholder = _useScreenRenderConte.isPlaceholder,\n isEdit = _useScreenRenderConte.isEdit,\n isStatic = _useScreenRenderConte.isStatic,\n isCapture = _useScreenRenderConte.isCapture;\n\n var finalItems = isPlaceholder ? _toConsumableArray(new Array(10)).map(function () {\n return {};\n }) : items || [null];\n var itemsCount = finalItems !== null ? finalItems.length : 0;\n var transitionPlaying = current;\n var transitionDisabled = isStatic || isCapture || isPlaceholder || isPreview || isEdit;\n var scrollingDisabled = !isEdit && transitionDisabled || !current;\n var backgroundPlaying = current && (isView || isEdit);\n var elements = (finalItems || []).map(function (item, itemI) {\n var _ref2 = item || {},\n _ref2$title = _ref2.title,\n title = _ref2$title === void 0 ? null : _ref2$title,\n _ref2$description = _ref2.description,\n description = _ref2$description === void 0 ? null : _ref2$description;\n\n var hasTitle = isTextFilled(title);\n var hasDescription = isTextFilled(description);\n var titleElement = /*#__PURE__*/React.createElement(\"div\", {\n className: styles.title\n }, /*#__PURE__*/React.createElement(ScreenElement, {\n placeholder: \"title\",\n emptyLabel: /*#__PURE__*/React.createElement(FormattedMessage, {\n id: \"2ZOPe+\",\n defaultMessage: [{\n \"type\": 0,\n \"value\": \"Title\"\n }]\n }),\n emptyClassName: styles.empty,\n isEmpty: !hasTitle\n }, hasTitle ? /*#__PURE__*/React.createElement(Transitions, {\n transitions: transitions,\n playing: transitionPlaying,\n delay: transitionStagger * itemI,\n disabled: transitionDisabled\n }, /*#__PURE__*/React.createElement(Heading, title)) : null));\n var descriptionElement = /*#__PURE__*/React.createElement(\"div\", {\n className: styles.description\n }, /*#__PURE__*/React.createElement(ScreenElement, {\n placeholder: \"text\",\n emptyLabel: /*#__PURE__*/React.createElement(FormattedMessage, {\n id: \"507VAi\",\n defaultMessage: [{\n \"type\": 0,\n \"value\": \"Description\"\n }]\n }),\n emptyClassName: styles.empty,\n isEmpty: !hasDescription\n }, hasDescription ? /*#__PURE__*/React.createElement(Transitions, {\n transitions: transitions,\n playing: transitionPlaying,\n delay: transitionStagger * itemI,\n disabled: transitionDisabled\n }, /*#__PURE__*/React.createElement(Text, description)) : null));\n var rankText = \"\".concat(ascending ? itemI + 1 : itemsCount - itemI);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: styles.item,\n key: \"item-\".concat(itemI)\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: styles.rank\n }, isPlaceholder ? rankText : /*#__PURE__*/React.createElement(Transitions, {\n transitions: transitions,\n playing: transitionPlaying,\n delay: transitionStagger * itemI,\n disabled: transitionDisabled\n }, /*#__PURE__*/React.createElement(Text, {\n className: styles.rankText,\n body: rankText,\n textStyle: numbersStyle\n }))), /*#__PURE__*/React.createElement(\"div\", {\n className: styles.content\n }, titleElement, descriptionElement));\n }); // Call to Action\n\n var hasCallToAction = callToAction !== null && callToAction.active === true;\n\n var _useState = useState(false),\n _useState2 = _slicedToArray(_useState, 2),\n scrolledBottom = _useState2[0],\n setScrolledBottom = _useState2[1];\n\n var _useResizeObserver = useResizeObserver(),\n callToActionRef = _useResizeObserver.ref,\n callToActionRect = _useResizeObserver.entry.contentRect;\n\n var _ref3 = callToActionRect || {},\n _ref3$height = _ref3.height,\n callToActionHeight = _ref3$height === void 0 ? 0 : _ref3$height;\n\n if (hasCallToAction) {\n elements.push( /*#__PURE__*/React.createElement(\"div\", {\n key: \"call-to-action-spacer\",\n style: {\n height: callToActionHeight\n }\n }));\n }\n\n var onScrolledBottom = useCallback(function (_ref4) {\n var initial = _ref4.initial;\n\n if (initial) {\n trackScreenEvent('scroll', 'Screen');\n }\n\n setScrolledBottom(true);\n }, [trackScreenEvent]);\n var onScrolledNotBottom = useCallback(function () {\n setScrolledBottom(false);\n }, [setScrolledBottom]);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames([styles.container, (_ref5 = {}, _defineProperty(_ref5, className, className !== null), _defineProperty(_ref5, styles[\"\".concat(layout, \"Layout\")], layout !== null), _defineProperty(_ref5, styles.isPlaceholder, isPlaceholder), _ref5)]),\n \"data-screen-ready\": true\n }, !isPlaceholder ? /*#__PURE__*/React.createElement(Background, {\n background: background,\n width: width,\n height: height,\n playing: backgroundPlaying\n }) : null, /*#__PURE__*/React.createElement(Container, {\n width: width,\n height: height\n }, /*#__PURE__*/React.createElement(Scroll, {\n className: styles.scroll,\n verticalAlign: \"middle\",\n disabled: scrollingDisabled,\n onScrolledBottom: onScrolledBottom,\n onScrolledNotBottom: onScrolledNotBottom\n }, /*#__PURE__*/React.createElement(Layout, {\n className: styles.layout,\n style: !isPlaceholder ? {\n padding: spacing,\n paddingTop: (menuOverScreen && !isPreview ? menuSize : 0) + spacing\n } : null\n }, elements)), !isPlaceholder && hasCallToAction ? /*#__PURE__*/React.createElement(CallToAction, {\n ref: callToActionRef,\n className: styles.callToAction,\n disabled: !scrolledBottom,\n animationDisabled: isPreview,\n callToAction: callToAction,\n focusable: current && isView\n }) : null));\n};\n\nRankingScreen.propTypes = propTypes;\nRankingScreen.defaultProps = defaultProps;\n\nvar transform = function transform(newStory, _ref) {\n var _ref$items = _ref.items,\n items = _ref$items === void 0 ? [] : _ref$items,\n _ref$ascending = _ref.ascending,\n ascending = _ref$ascending === void 0 ? false : _ref$ascending;\n var allItems = items || [];\n var ordered = ascending ? allItems.reverse() : allItems;\n var list = ordered.reduce(function (acc, it) {\n var _Text = Text$1(acc.story, it.title),\n titleStory = _Text.story,\n titleComponent = _Text.component;\n\n var _Text2 = Text$1(titleStory, it.description),\n descriptionStory = _Text2.story,\n descriptionComponent = _Text2.component;\n\n var _Container = Container$1(descriptionStory, [].concat(_toConsumableArray(titleComponent ? [titleComponent] : []), _toConsumableArray(descriptionComponent ? [descriptionComponent] : []))),\n containerStory = _Container.story,\n containerComponent = _Container.component;\n\n return {\n story: containerStory,\n components: [].concat(_toConsumableArray(acc.components || []), _toConsumableArray(containerComponent ? [containerComponent] : []))\n };\n }, {\n story: newStory,\n components: []\n });\n\n var _ref2 = list || {},\n reducedStory = _ref2.story,\n _ref2$components = _ref2.components,\n reducedComponents = _ref2$components === void 0 ? [] : _ref2$components;\n\n var _Container2 = Container$1(reducedStory, reducedComponents),\n bigContainerStory = _Container2.story,\n bigContainerComponent = _Container2.component;\n\n return _objectSpread(_objectSpread({}, bigContainerStory), {}, {\n components: [].concat(_toConsumableArray(newStory.components || []), _toConsumableArray(bigContainerComponent ? [bigContainerComponent] : []))\n });\n};\n\n// eslint-disable-next-line\n\nvar transforms = /*#__PURE__*/Object.freeze({\n __proto__: null,\n appleNews: transform\n});\n\nvar definition = {\n id: 'ranking',\n type: 'screen',\n group: {\n label: defineMessage({\n \"id\": \"cGItoy\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"List\"\n }]\n }),\n order: 8\n },\n title: defineMessage({\n \"id\": \"17BMn2\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Ranking\"\n }]\n }),\n component: RankingScreen,\n layouts: ['side', 'over'],\n transforms: transforms,\n fields: [{\n name: 'layout',\n type: 'screen-layout',\n defaultValue: 'side',\n label: defineMessage({\n \"id\": \"4iBXj2\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Layout\"\n }]\n })\n }, {\n name: 'items',\n type: 'entries',\n theme: {\n title: {\n textStyle: 'heading2'\n },\n description: {\n textStyle: 'text'\n }\n },\n label: defineMessage({\n \"id\": \"sESmah\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Entries\"\n }]\n })\n }, {\n name: 'ascending',\n type: 'toggle',\n label: defineMessage({\n \"id\": \"9DhYaZ\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Ascending\"\n }]\n })\n }, {\n name: 'numbersStyle',\n type: 'text-style',\n theme: {\n textStyle: 'heading1'\n },\n label: defineMessage({\n \"id\": \"UdrdRF\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Numbers style\"\n }]\n })\n }, {\n name: 'background',\n type: 'background',\n label: defineMessage({\n \"id\": \"+MPZRu\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Background\"\n }]\n })\n }, {\n name: 'callToAction',\n type: 'call-to-action',\n theme: {\n label: {\n textStyle: 'heading2'\n }\n }\n }]\n};\n\nexport { RankingScreen, definition as default };\n","import { FormattedMessage, defineMessage } from 'react-intl';\nimport _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';\nimport _defineProperty from '@babel/runtime/helpers/defineProperty';\nimport _objectSpread from '@babel/runtime/helpers/objectSpread2';\nimport _slicedToArray from '@babel/runtime/helpers/slicedToArray';\nimport { PropTypes as PropTypes$1 } from '@micromag/core';\nimport { ScreenElement, Transitions } from '@micromag/core/components';\nimport { useScreenSize, useViewer, useScreenRenderContext } from '@micromag/core/contexts';\nimport { useTrackScreenEvent } from '@micromag/core/hooks';\nimport { isTextFilled, getLargestRemainderRound, getStyleFromButton, getStyleFromColor } from '@micromag/core/utils';\nimport { useQuizCreate, useQuiz } from '@micromag/data';\nimport Background from '@micromag/element-background';\nimport Button from '@micromag/element-button';\nimport CallToAction from '@micromag/element-call-to-action';\nimport Container from '@micromag/element-container';\nimport Heading from '@micromag/element-heading';\nimport Layout, { Spacer } from '@micromag/element-layout';\nimport Text from '@micromag/element-text';\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\nimport React, { useState, useMemo, useCallback, useEffect, useRef } from 'react';\n\nvar styles = {\"container\":\"micromag-screen-survey-container\",\"disabled\":\"micromag-screen-survey-disabled\",\"hidden\":\"micromag-screen-survey-hidden\",\"placeholder\":\"micromag-screen-survey-placeholder\",\"content\":\"micromag-screen-survey-content\",\"emptyAnswer\":\"micromag-screen-survey-emptyAnswer\",\"emptyQuestion\":\"micromag-screen-survey-emptyQuestion\",\"question\":\"micromag-screen-survey-question\",\"answers\":\"micromag-screen-survey-answers\",\"items\":\"micromag-screen-survey-items\",\"item\":\"micromag-screen-survey-item\",\"placeholderAnswer\":\"micromag-screen-survey-placeholderAnswer\",\"itemContent\":\"micromag-screen-survey-itemContent\",\"resultContainer\":\"micromag-screen-survey-resultContainer\",\"resultContent\":\"micromag-screen-survey-resultContent\",\"result\":\"micromag-screen-survey-result\",\"resultLabel\":\"micromag-screen-survey-resultLabel\",\"itemInner\":\"micromag-screen-survey-itemInner\",\"button\":\"micromag-screen-survey-button\",\"itemLabel\":\"micromag-screen-survey-itemLabel\",\"answered\":\"micromag-screen-survey-answered\",\"userAnswer\":\"micromag-screen-survey-userAnswer\",\"isPlaceholder\":\"micromag-screen-survey-isPlaceholder\",\"layout\":\"micromag-screen-survey-layout\"};\n\nvar propTypes = {\n id: PropTypes.string,\n layout: PropTypes.oneOf(['top', 'middle', 'bottom', 'split']),\n question: PropTypes$1.textElement,\n answers: PropTypes$1.answers,\n buttonsStyle: PropTypes$1.buttonStyle,\n resultsStyle: PropTypes.shape({\n barColor: PropTypes$1.color,\n textColor: PropTypes$1.color\n }),\n spacing: PropTypes.number,\n background: PropTypes$1.backgroundElement,\n callToAction: PropTypes$1.callToAction,\n withPercentLabels: PropTypes.bool,\n current: PropTypes.bool,\n transitions: PropTypes$1.transitions,\n transitionStagger: PropTypes.number,\n resultTransitionDuration: PropTypes.number,\n type: PropTypes.string,\n className: PropTypes.string\n};\nvar defaultProps = {\n id: null,\n layout: 'middle',\n question: null,\n answers: null,\n buttonsStyle: null,\n resultsStyle: null,\n spacing: 20,\n background: null,\n callToAction: null,\n withPercentLabels: true,\n current: true,\n transitions: null,\n transitionStagger: 100,\n resultTransitionDuration: 500,\n type: null,\n className: null\n};\n\nvar SurveyScreen = function SurveyScreen(_ref) {\n var _ref14;\n\n var id = _ref.id,\n layout = _ref.layout,\n question = _ref.question,\n answers = _ref.answers,\n buttonsStyle = _ref.buttonsStyle,\n resultsStyle = _ref.resultsStyle,\n spacing = _ref.spacing,\n background = _ref.background,\n callToAction = _ref.callToAction,\n withPercentLabels = _ref.withPercentLabels,\n current = _ref.current,\n transitions = _ref.transitions,\n transitionStagger = _ref.transitionStagger,\n resultTransitionDuration = _ref.resultTransitionDuration,\n type = _ref.type,\n className = _ref.className;\n var screenId = id || 'screen-id';\n var trackScreenEvent = useTrackScreenEvent(type);\n\n var _useScreenSize = useScreenSize(),\n width = _useScreenSize.width,\n height = _useScreenSize.height,\n menuOverScreen = _useScreenSize.menuOverScreen;\n\n var _useViewer = useViewer(),\n menuSize = _useViewer.menuSize;\n\n var _useQuizCreate = useQuizCreate({\n screenId: screenId\n }),\n submitQuiz = _useQuizCreate.create;\n\n var _useScreenRenderConte = useScreenRenderContext(),\n isView = _useScreenRenderConte.isView,\n isPreview = _useScreenRenderConte.isPreview,\n isPlaceholder = _useScreenRenderConte.isPlaceholder,\n isEdit = _useScreenRenderConte.isEdit,\n isStatic = _useScreenRenderConte.isStatic,\n isCapture = _useScreenRenderConte.isCapture;\n\n var hasCallToAction = callToAction !== null && callToAction.active === true;\n\n var _useQuiz = useQuiz({\n screenId: screenId,\n opts: {\n autoload: !isPlaceholder\n }\n }),\n _useQuiz$quiz = _useQuiz.quiz,\n quizAnswers = _useQuiz$quiz === void 0 ? [] : _useQuiz$quiz;\n\n var hasQuestion = isTextFilled(question);\n var showInstantAnswer = isStatic || isCapture;\n\n var _useState = useState(showInstantAnswer ? -1 : null),\n _useState2 = _slicedToArray(_useState, 2),\n userAnswerIndex = _useState2[0],\n setUserAnswerIndex = _useState2[1];\n\n var answered = userAnswerIndex !== null;\n var quizAnswersComputed = useMemo(function () {\n var total = answers !== null ? (quizAnswers || []).reduce(function (points, _ref2) {\n var _ref2$count = _ref2.count,\n count = _ref2$count === void 0 ? 0 : _ref2$count;\n return points + parseInt(count, 10);\n }, userAnswerIndex !== null && userAnswerIndex > -1 ? 1 : 0) : 0;\n var computed = answers !== null ? (answers || []).reduce(function (answersTotal, ans, i) {\n var _ref3 = ans || {},\n _ref3$label = _ref3.label,\n label = _ref3$label === void 0 ? {} : _ref3$label;\n\n var _ref4 = label || {},\n _ref4$body = _ref4.body,\n body = _ref4$body === void 0 ? null : _ref4$body;\n\n var _ref5 = quizAnswers.find(function (qa) {\n return qa.choice === body;\n }) || {},\n _ref5$count = _ref5.count,\n count = _ref5$count === void 0 ? 0 : _ref5$count;\n\n var countWithUser = i === userAnswerIndex ? count + 1 : count;\n\n if (body !== null) {\n return _objectSpread(_objectSpread({}, answersTotal), {}, _defineProperty({}, body, {\n percent: total > 0 ? countWithUser / total * 100 : 0,\n count: countWithUser\n }));\n }\n\n return answersTotal;\n }, {}) : {};\n var quizAnswersPct = total > 0 ? Object.keys(computed).map(function (key) {\n return computed[key].percent || 0;\n }) : [];\n var evenlySplit = getLargestRemainderRound(quizAnswersPct, 100);\n return Object.keys(computed).reduce(function (acc, key, i) {\n return _objectSpread(_objectSpread({}, acc), {}, _defineProperty({}, key, _objectSpread(_objectSpread({}, computed[key]), {}, {\n percent: evenlySplit[i]\n })));\n }, {});\n }, [answers, quizAnswers, userAnswerIndex]);\n var isSplitted = layout === 'split';\n var isTopLayout = layout === 'top';\n var isMiddleLayout = layout === 'middle';\n var verticalAlign = isSplitted ? null : layout;\n var transitionPlaying = current;\n var transitionDisabled = isStatic || isCapture || isPlaceholder || isPreview || isEdit;\n var backgroundPlaying = current && (isView || isEdit);\n var onAnswerClick = useCallback(function (answerIndex) {\n if (userAnswerIndex === null) {\n setUserAnswerIndex(answerIndex);\n var answer = answers[answerIndex];\n submitQuiz({\n choice: answer.label.body || answerIndex,\n value: 1\n });\n trackScreenEvent('click_answer', \"Answer \".concat(userAnswerIndex + 1, \": \").concat(answer.label.body), {\n answer: answer,\n answerIndex: answerIndex\n });\n }\n }, [userAnswerIndex, setUserAnswerIndex, trackScreenEvent, submitQuiz]);\n useEffect(function () {\n if (!current && isEdit && userAnswerIndex !== null) {\n setUserAnswerIndex(null);\n }\n }, [isEdit, current, userAnswerIndex, setUserAnswerIndex]); // Question\n\n var items = [/*#__PURE__*/React.createElement(ScreenElement, {\n key: \"question\",\n placeholder: \"title\",\n emptyLabel: /*#__PURE__*/React.createElement(FormattedMessage, {\n id: \"e1I+KU\",\n defaultMessage: [{\n \"type\": 0,\n \"value\": \"Question\"\n }]\n }),\n emptyClassName: styles.emptyQuestion,\n isEmpty: !hasQuestion\n }, hasQuestion ? /*#__PURE__*/React.createElement(Transitions, {\n transitions: transitions,\n playing: transitionPlaying,\n disabled: transitionDisabled\n }, /*#__PURE__*/React.createElement(Heading, Object.assign({}, question, {\n className: styles.question\n }))) : null)];\n\n if (isSplitted || !isPlaceholder && hasCallToAction && isMiddleLayout) {\n items.push( /*#__PURE__*/React.createElement(Spacer, {\n key: \"spacer\"\n }));\n } // Answer\n\n\n var buttonsRefs = useRef([]);\n var labelsRefs = useRef([]);\n\n var _useState3 = useState(null),\n _useState4 = _slicedToArray(_useState3, 2),\n buttonMaxWidth = _useState4[0],\n setButtonMaxWidth = _useState4[1];\n\n var finalTransitionDuration = showInstantAnswer ? 0 : \"\".concat(resultTransitionDuration, \"ms\");\n\n var _useState5 = useState(false),\n _useState6 = _slicedToArray(_useState5, 2),\n ready = _useState6[0],\n setReady = _useState6[1];\n\n useEffect(function () {\n if (answers === null || isPlaceholder) {\n return;\n }\n\n var maxWidth = answers.reduce(function (currentMaxWidth, answer, answerI) {\n var button = buttonsRefs.current[answerI] || null;\n var label = labelsRefs.current[answerI] || null;\n\n if (button !== null && label !== null) {\n var borderWidth = button.offsetWidth - button.clientWidth;\n var totalWidth = borderWidth + label.getBoundingClientRect().width + 20;\n return Math.max(currentMaxWidth, totalWidth);\n }\n\n return currentMaxWidth;\n }, 0);\n setButtonMaxWidth(Math.min(width * 0.75, Math.max(width * 0.2, maxWidth)));\n setReady(true);\n }, [answers, width, height, setButtonMaxWidth, finalTransitionDuration, isPlaceholder]);\n\n var _ref6 = resultsStyle || {},\n _ref6$barColor = _ref6.barColor,\n resultsBarColor = _ref6$barColor === void 0 ? null : _ref6$barColor,\n _ref6$textColor = _ref6.textColor,\n resultsTextColor = _ref6$textColor === void 0 ? null : _ref6$textColor;\n\n items.push( /*#__PURE__*/React.createElement(\"div\", {\n key: \"answers\",\n className: styles.answers\n }, answers !== null || isPlaceholder ? /*#__PURE__*/React.createElement(\"div\", {\n className: styles.items\n }, (isPlaceholder ? _toConsumableArray(new Array(3)) : answers).map(function (answer, answerIndex) {\n var hasAnswer = answer !== null;\n\n var _ref7 = answer || {},\n _ref7$label = _ref7.label,\n label = _ref7$label === void 0 ? null : _ref7$label,\n _ref7$buttonStyle = _ref7.buttonStyle,\n answerButtonStyle = _ref7$buttonStyle === void 0 ? null : _ref7$buttonStyle,\n _ref7$resultStyle = _ref7.resultStyle,\n answerResultStyle = _ref7$resultStyle === void 0 ? null : _ref7$resultStyle;\n\n var _ref8 = answerResultStyle || {},\n _ref8$barColor = _ref8.barColor,\n answerResultBarColor = _ref8$barColor === void 0 ? null : _ref8$barColor,\n answerResultTextColor = _ref8.textColor;\n\n var _ref9 = label || {},\n _ref9$body = _ref9.body,\n body = _ref9$body === void 0 ? null : _ref9$body;\n\n var _ref10 = body !== null ? quizAnswersComputed[body] || {} : {},\n _ref10$percent = _ref10.percent,\n percent = _ref10$percent === void 0 ? 0 : _ref10$percent;\n\n var _ref11 = label || {},\n _ref11$textStyle = _ref11.textStyle,\n textStyle = _ref11$textStyle === void 0 ? null : _ref11$textStyle;\n\n var _ref12 = textStyle || {},\n _ref12$color = _ref12.color,\n labelColor = _ref12$color === void 0 ? null : _ref12$color;\n\n var hasAnswerLabel = isTextFilled(label);\n var userAnswer = userAnswerIndex === answerIndex;\n return /*#__PURE__*/React.createElement(\"div\", {\n key: \"answer-\".concat(answerIndex),\n className: classNames([styles.item, _defineProperty({}, styles.userAnswer, userAnswer)])\n }, /*#__PURE__*/React.createElement(ScreenElement, {\n placeholder: \"surveyAnswer\",\n placeholderProps: {\n className: styles.placeholderAnswer\n },\n emptyLabel: /*#__PURE__*/React.createElement(FormattedMessage, {\n id: \"+Ok+7S\",\n defaultMessage: [{\n \"type\": 0,\n \"value\": \"Answer\"\n }]\n }),\n emptyClassName: styles.emptyAnswer,\n isEmpty: !hasAnswerLabel\n }, hasAnswer ? /*#__PURE__*/React.createElement(Transitions, {\n transitions: transitions,\n playing: transitionPlaying,\n delay: (answerIndex + 1) * transitionStagger,\n disabled: transitionDisabled\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: styles.itemContent\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: styles.itemInner,\n style: {\n width: answered ? buttonMaxWidth : null,\n transitionDuration: finalTransitionDuration\n }\n }, /*#__PURE__*/React.createElement(Button, {\n className: styles.button,\n onClick: function onClick() {\n return onAnswerClick(answerIndex);\n },\n refButton: function refButton(el) {\n buttonsRefs.current[answerIndex] = el;\n },\n disabled: isPreview,\n focusable: current && isView,\n buttonStyle: !answered ? _objectSpread(_objectSpread({}, getStyleFromButton(buttonsStyle)), getStyleFromButton(answerButtonStyle)) : null\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: styles.itemLabel,\n ref: function ref(el) {\n labelsRefs.current[answerIndex] = el;\n }\n }, /*#__PURE__*/React.createElement(Text, Object.assign({}, label, {\n textStyle: textStyle,\n inline: true,\n className: styles.itemText\n }))))), /*#__PURE__*/React.createElement(\"div\", {\n className: styles.resultContainer,\n style: {\n transitionDuration: finalTransitionDuration\n }\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: styles.resultContent,\n style: {\n transitionDelay: finalTransitionDuration,\n transitionDuration: finalTransitionDuration\n }\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: styles.result,\n style: _objectSpread({\n width: \"\".concat(percent, \"%\")\n }, getStyleFromColor(answered ? answerResultBarColor || resultsBarColor || labelColor : null, 'backgroundColor'))\n }, withPercentLabels ? /*#__PURE__*/React.createElement(\"div\", {\n className: styles.resultLabel,\n style: _objectSpread({}, getStyleFromColor(answered ? answerResultTextColor || resultsTextColor || answerResultBarColor || resultsBarColor || labelColor : null, 'color'))\n }, \"\".concat(percent, \"%\")) : null))))) : null));\n })) : null)); // Call to Action\n\n if (!isPlaceholder && hasCallToAction) {\n if (isTopLayout || isMiddleLayout) {\n items.push( /*#__PURE__*/React.createElement(Spacer, {\n key: \"spacer-cta-bottom\"\n }));\n }\n\n items.push( /*#__PURE__*/React.createElement(\"div\", {\n style: {\n margin: -spacing,\n marginTop: 0\n },\n key: \"call-to-action\"\n }, /*#__PURE__*/React.createElement(CallToAction, {\n callToAction: callToAction,\n disabled: !answered,\n animationDisabled: isPreview,\n focusable: current && isView\n })));\n }\n\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames([styles.container, (_ref14 = {}, _defineProperty(_ref14, className, className !== null), _defineProperty(_ref14, styles.answered, answered), _defineProperty(_ref14, styles.isPlaceholder, isPlaceholder), _ref14)]),\n \"data-screen-ready\": ready\n }, !isPlaceholder ? /*#__PURE__*/React.createElement(Background, {\n background: background,\n width: width,\n height: height,\n playing: backgroundPlaying\n }) : null, /*#__PURE__*/React.createElement(Container, {\n width: width,\n height: height\n }, /*#__PURE__*/React.createElement(Layout, {\n className: styles.layout,\n fullscreen: true,\n verticalAlign: verticalAlign,\n style: !isPlaceholder ? {\n padding: spacing,\n paddingTop: (menuOverScreen && !isPreview ? menuSize : 0) + spacing\n } : null\n }, items)));\n};\n\nSurveyScreen.propTypes = propTypes;\nSurveyScreen.defaultProps = defaultProps;\n\nvar definition = {\n id: 'survey',\n type: 'screen',\n group: {\n label: defineMessage({\n \"id\": \"ZqwBOx\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Questions\"\n }]\n }),\n order: 7\n },\n title: defineMessage({\n \"id\": \"650XRF\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Survey\"\n }]\n }),\n component: SurveyScreen,\n layouts: ['top', 'middle', 'bottom', 'split'],\n fields: [{\n name: 'layout',\n type: 'screen-layout',\n defaultValue: 'top',\n label: defineMessage({\n \"id\": \"4iBXj2\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Layout\"\n }]\n })\n }, {\n name: 'question',\n type: 'heading-element',\n theme: {\n textStyle: 'heading2'\n },\n label: defineMessage({\n \"id\": \"hVE7TA\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Question\"\n }]\n })\n }, {\n name: 'answers',\n type: 'answers',\n theme: {\n label: {\n textStyle: 'button'\n }\n },\n label: defineMessage({\n \"id\": \"KHWeV7\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Answers\"\n }]\n })\n }, {\n type: 'fields',\n isList: true,\n label: defineMessage({\n \"id\": \"R9DB4a\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Styles\"\n }]\n }),\n fields: [{\n name: 'buttonsStyle',\n type: 'field-with-form',\n label: defineMessage({\n \"id\": \"l5uLMd\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Buttons\"\n }]\n }),\n noValueLabel: defineMessage({\n \"id\": \"65rc70\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Edit style...\"\n }]\n }),\n field: {\n type: 'button-style'\n }\n }, {\n name: 'resultsStyle',\n type: 'field-with-form',\n label: defineMessage({\n \"id\": \"e4UTx9\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Results\"\n }]\n }),\n noValueLabel: defineMessage({\n \"id\": \"65rc70\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Edit style...\"\n }]\n }),\n field: {\n type: 'graph-bar-style'\n }\n }]\n }, {\n name: 'background',\n type: 'background',\n label: defineMessage({\n \"id\": \"+MPZRu\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Background\"\n }]\n })\n }, {\n name: 'callToAction',\n type: 'call-to-action',\n theme: {\n label: {\n textStyle: 'heading2'\n }\n }\n }]\n};\n\nexport { SurveyScreen, definition as default };\n","import { FormattedMessage, defineMessage } from 'react-intl';\nimport _defineProperty from '@babel/runtime/helpers/defineProperty';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { PropTypes as PropTypes$1 } from '@micromag/core';\nimport { useScreenSize, useViewer, useScreenRenderContext } from '@micromag/core/contexts';\nimport { ScreenElement, TransitionsStagger } from '@micromag/core/components';\nimport { isTextFilled } from '@micromag/core/utils';\nimport Background from '@micromag/element-background';\nimport Container from '@micromag/element-container';\nimport Layout, { Spacer } from '@micromag/element-layout';\nimport Heading from '@micromag/element-heading';\nimport Text from '@micromag/element-text';\nimport CallToAction from '@micromag/element-call-to-action';\nimport _extends from '@babel/runtime/helpers/extends';\nimport _objectSpread from '@babel/runtime/helpers/objectSpread2';\nimport _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';\nimport { Heading1, Text as Text$1, Container as Container$1 } from '@micromag/transforms/apple-news';\n\nvar styles = {\"container\":\"micromag-screen-text-container\",\"disabled\":\"micromag-screen-text-disabled\",\"hidden\":\"micromag-screen-text-hidden\",\"placeholder\":\"micromag-screen-text-placeholder\",\"content\":\"micromag-screen-text-content\",\"emptyText\":\"micromag-screen-text-emptyText\",\"emptyTitle\":\"micromag-screen-text-emptyTitle\",\"title\":\"micromag-screen-text-title\",\"withMargin\":\"micromag-screen-text-withMargin\",\"isPlaceholder\":\"micromag-screen-text-isPlaceholder\",\"layout\":\"micromag-screen-text-layout\"};\n\nvar propTypes = {\n layout: PropTypes.oneOf(['top', 'middle', 'bottom', 'split']),\n text: PropTypes$1.textElement,\n title: PropTypes$1.headingElement,\n withTitle: PropTypes.bool,\n spacing: PropTypes.number,\n background: PropTypes$1.backgroundElement,\n callToAction: PropTypes$1.callToAction,\n current: PropTypes.bool,\n transitions: PropTypes$1.transitions,\n transitionStagger: PropTypes.number,\n className: PropTypes.string\n};\nvar defaultProps = {\n layout: 'top',\n text: null,\n title: null,\n withTitle: false,\n spacing: 20,\n background: null,\n callToAction: null,\n current: true,\n transitions: null,\n transitionStagger: 100,\n className: null\n};\n\nvar TextScreen = function TextScreen(_ref) {\n var _ref3;\n\n var layout = _ref.layout,\n text = _ref.text,\n title = _ref.title,\n withTitle = _ref.withTitle,\n spacing = _ref.spacing,\n background = _ref.background,\n callToAction = _ref.callToAction,\n current = _ref.current,\n transitions = _ref.transitions,\n transitionStagger = _ref.transitionStagger,\n className = _ref.className;\n\n var _useScreenSize = useScreenSize(),\n width = _useScreenSize.width,\n height = _useScreenSize.height,\n menuOverScreen = _useScreenSize.menuOverScreen;\n\n var _useViewer = useViewer(),\n menuSize = _useViewer.menuSize;\n\n var _useScreenRenderConte = useScreenRenderContext(),\n isView = _useScreenRenderConte.isView,\n isPreview = _useScreenRenderConte.isPreview,\n isPlaceholder = _useScreenRenderConte.isPlaceholder,\n isEdit = _useScreenRenderConte.isEdit,\n isStatic = _useScreenRenderConte.isStatic,\n isCapture = _useScreenRenderConte.isCapture;\n\n var hasTitle = isTextFilled(title);\n var hasText = isTextFilled(text);\n var isSplitted = layout === 'split';\n var isTopLayout = layout === 'top';\n var isMiddleLayout = layout === 'middle';\n var verticalAlign = isSplitted ? null : layout;\n var titleWithMargin = hasTitle && hasText && !isSplitted;\n var transitionPlaying = current;\n var transitionDisabled = isStatic || isCapture || isPlaceholder || isPreview || isEdit;\n var backgroundPlaying = current && (isView || isEdit);\n var hasCallToAction = callToAction !== null && callToAction.active === true; // Create elements\n\n var items = [!isPlaceholder && hasCallToAction && isMiddleLayout ? /*#__PURE__*/React.createElement(Spacer, {\n key: \"spacer-cta-top\"\n }) : null, withTitle ? /*#__PURE__*/React.createElement(ScreenElement, {\n key: \"title\",\n placeholder: \"title\",\n emptyLabel: /*#__PURE__*/React.createElement(FormattedMessage, {\n id: \"2ZOPe+\",\n defaultMessage: [{\n \"type\": 0,\n \"value\": \"Title\"\n }]\n }),\n emptyClassName: styles.emptyTitle,\n isEmpty: !hasTitle\n }, hasTitle ? /*#__PURE__*/React.createElement(Heading, Object.assign({\n className: classNames([styles.title, _defineProperty({}, styles.withMargin, titleWithMargin)])\n }, title)) : null) : null, isSplitted && withTitle ? /*#__PURE__*/React.createElement(Spacer, {\n key: \"spacer\"\n }) : null, /*#__PURE__*/React.createElement(ScreenElement, {\n key: \"description\",\n placeholder: \"text\",\n emptyLabel: /*#__PURE__*/React.createElement(FormattedMessage, {\n id: \"z4CiV1\",\n defaultMessage: [{\n \"type\": 0,\n \"value\": \"Text\"\n }]\n }),\n emptyClassName: styles.emptyText,\n isEmpty: !hasText\n }, hasText ? /*#__PURE__*/React.createElement(Text, Object.assign({\n className: styles.text\n }, text)) : null), !isPlaceholder && hasCallToAction && (isTopLayout || isMiddleLayout) ? /*#__PURE__*/React.createElement(Spacer, {\n key: \"spacer-cta-bottom\"\n }) : null, !isPlaceholder && hasCallToAction ? /*#__PURE__*/React.createElement(\"div\", {\n style: {\n margin: -spacing,\n marginTop: 0\n },\n key: \"call-to-action\"\n }, /*#__PURE__*/React.createElement(CallToAction, {\n callToAction: callToAction,\n animationDisabled: isPreview,\n focusable: current && isView\n })) : null].filter(function (el) {\n return el !== null;\n });\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames([styles.container, (_ref3 = {}, _defineProperty(_ref3, className, className !== null), _defineProperty(_ref3, styles.isPlaceholder, isPlaceholder), _ref3)]),\n \"data-screen-ready\": true\n }, !isPlaceholder ? /*#__PURE__*/React.createElement(Background, {\n background: background,\n width: width,\n height: height,\n playing: backgroundPlaying\n }) : null, /*#__PURE__*/React.createElement(Container, {\n width: width,\n height: height\n }, /*#__PURE__*/React.createElement(Layout, {\n className: styles.layout,\n fullscreen: true,\n verticalAlign: verticalAlign,\n style: !isPlaceholder ? {\n padding: spacing,\n paddingTop: (menuOverScreen && !isPreview ? menuSize : 0) + spacing\n } : null\n }, /*#__PURE__*/React.createElement(TransitionsStagger, {\n transitions: transitions,\n stagger: transitionStagger,\n disabled: transitionDisabled,\n playing: transitionPlaying\n }, items))));\n};\n\nTextScreen.propTypes = propTypes;\nTextScreen.defaultProps = defaultProps;\nvar TextScreen$1 = /*#__PURE__*/React.memo(TextScreen);\n\nvar TextTitleScreen = function TextTitleScreen(_ref) {\n var props = _extends({}, _ref);\n\n return /*#__PURE__*/React.createElement(TextScreen$1, Object.assign({}, props, {\n withTitle: true\n }));\n};\n\nvar transform = function transform(newStory, _ref) {\n var text = _ref.text,\n title = _ref.title;\n\n var _Heading = Heading1(newStory, title),\n titleStory = _Heading.story,\n titleComponent = _Heading.component;\n\n var _Text = Text$1(titleStory, text),\n textStory = _Text.story,\n textComponent = _Text.component;\n\n var _Container = Container$1(textStory, [].concat(_toConsumableArray(titleComponent ? [titleComponent] : []), _toConsumableArray(textComponent ? [textComponent] : []))),\n containerStory = _Container.story,\n containerComponent = _Container.component;\n\n return _objectSpread(_objectSpread({}, containerStory), {}, {\n components: [].concat(_toConsumableArray(newStory.components || []), _toConsumableArray(containerComponent ? [containerComponent] : []))\n });\n};\n\n// eslint-disable-next-line\n\nvar transforms = /*#__PURE__*/Object.freeze({\n __proto__: null,\n appleNews: transform\n});\n\nvar definition = [{\n id: 'text',\n type: 'screen',\n group: {\n label: defineMessage({\n \"id\": \"fIawTr\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Text\"\n }]\n }),\n order: 2\n },\n title: defineMessage({\n \"id\": \"S9YpbV\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Text\"\n }]\n }),\n component: TextScreen$1,\n layouts: ['top', 'middle', 'bottom'],\n transforms: transforms,\n fields: [{\n name: 'layout',\n type: 'screen-layout',\n defaultValue: 'top',\n label: defineMessage({\n \"id\": \"4iBXj2\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Layout\"\n }]\n })\n }, {\n name: 'text',\n type: 'text-element',\n theme: {\n textStyle: 'text'\n },\n label: defineMessage({\n \"id\": \"4E2gbX\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Text\"\n }]\n })\n }, {\n name: 'background',\n type: 'background',\n label: defineMessage({\n \"id\": \"+MPZRu\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Background\"\n }]\n })\n }, {\n name: 'callToAction',\n type: 'call-to-action',\n theme: {\n label: {\n textStyle: 'heading2'\n }\n }\n }]\n}, {\n id: 'text-title',\n type: 'screen',\n group: {\n label: defineMessage({\n \"id\": \"fIawTr\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Text\"\n }]\n }),\n order: 2\n },\n title: defineMessage({\n \"id\": \"oCBQKV\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Text with title\"\n }]\n }),\n component: TextTitleScreen,\n layouts: ['top', 'middle', 'bottom', 'split'],\n transforms: transforms,\n fields: [{\n name: 'layout',\n type: 'screen-layout',\n defaultValue: 'top',\n label: defineMessage({\n \"id\": \"4iBXj2\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Layout\"\n }]\n })\n }, {\n name: 'title',\n type: 'heading-element',\n inline: true,\n theme: {\n textStyle: 'heading2'\n },\n label: defineMessage({\n \"id\": \"N25iDO\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Title\"\n }]\n })\n }, {\n name: 'text',\n type: 'text-element',\n theme: {\n textStyle: 'text'\n },\n label: defineMessage({\n \"id\": \"4E2gbX\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Text\"\n }]\n })\n }, {\n name: 'background',\n type: 'background',\n label: defineMessage({\n \"id\": \"+MPZRu\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Background\"\n }]\n })\n }, {\n name: 'callToAction',\n type: 'call-to-action',\n theme: {\n label: {\n textStyle: 'heading2'\n }\n }\n }]\n}];\n\nexport { TextScreen$1 as TextScreen, definition as default };\n","import { FormattedMessage, defineMessage } from 'react-intl';\nimport _objectSpread from '@babel/runtime/helpers/objectSpread2';\nimport _defineProperty from '@babel/runtime/helpers/defineProperty';\nimport _slicedToArray from '@babel/runtime/helpers/slicedToArray';\nimport _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';\nimport React, { useState, useCallback, useRef, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { PropTypes as PropTypes$1 } from '@micromag/core';\nimport { Transitions, ScreenElement } from '@micromag/core/components';\nimport { useScreenSize, useViewer, useScreenRenderContext } from '@micromag/core/contexts';\nimport { useTrackScreenEvent, useResizeObserver } from '@micromag/core/hooks';\nimport { isTextFilled, getStyleFromColor } from '@micromag/core/utils';\nimport Background from '@micromag/element-background';\nimport Container from '@micromag/element-container';\nimport Layout from '@micromag/element-layout';\nimport Text from '@micromag/element-text';\nimport Visual from '@micromag/element-visual';\nimport Heading from '@micromag/element-heading';\nimport Scroll from '@micromag/element-scroll';\nimport CallToAction from '@micromag/element-call-to-action';\nimport _extends from '@babel/runtime/helpers/extends';\nimport { Text as Text$1, Container as Container$1 } from '@micromag/transforms/apple-news';\n\nvar styles = {\"container\":\"micromag-screen-timeline-container\",\"empty\":\"micromag-screen-timeline-empty\",\"item\":\"micromag-screen-timeline-item\",\"element\":\"micromag-screen-timeline-element\",\"timeline\":\"micromag-screen-timeline-timeline\",\"line\":\"micromag-screen-timeline-line\",\"hidden\":\"micromag-screen-timeline-hidden\",\"bullet\":\"micromag-screen-timeline-bullet\",\"content\":\"micromag-screen-timeline-content\",\"lastContent\":\"micromag-screen-timeline-lastContent\",\"description\":\"micromag-screen-timeline-description\",\"imageContainer\":\"micromag-screen-timeline-imageContainer\",\"title\":\"micromag-screen-timeline-title\",\"image\":\"micromag-screen-timeline-image\",\"video\":\"micromag-screen-timeline-video\",\"callToAction\":\"micromag-screen-timeline-callToAction\",\"isPlaceholder\":\"micromag-screen-timeline-isPlaceholder\",\"scroll\":\"micromag-screen-timeline-scroll\",\"circleBulletShape\":\"micromag-screen-timeline-circleBulletShape\",\"withoutLines\":\"micromag-screen-timeline-withoutLines\"};\n\nvar propTypes = {\n layout: PropTypes.oneOf(['normal', 'title-description-image', 'title-image-description', 'image-title-description']),\n items: PropTypes.arrayOf(PropTypes$1.textElement),\n bulletColor: PropTypes$1.color,\n lineColor: PropTypes$1.color,\n bulletShape: PropTypes.oneOf(['circle', 'square']),\n bulletFilled: PropTypes.bool,\n illustrated: PropTypes.bool,\n spacing: PropTypes.number,\n background: PropTypes$1.backgroundElement,\n callToAction: PropTypes$1.callToAction,\n current: PropTypes.bool,\n transitions: PropTypes$1.transitions,\n transitionStagger: PropTypes.number,\n type: PropTypes.string,\n className: PropTypes.string\n};\nvar defaultProps = {\n layout: 'normal',\n items: [null],\n bulletColor: null,\n lineColor: null,\n bulletShape: 'circle',\n bulletFilled: true,\n illustrated: false,\n spacing: 20,\n background: null,\n callToAction: null,\n current: true,\n transitions: null,\n transitionStagger: 75,\n type: null,\n className: null\n};\n\nvar Timeline = function Timeline(_ref) {\n var _ref9;\n\n var layout = _ref.layout,\n items = _ref.items,\n bulletColor = _ref.bulletColor,\n lineColor = _ref.lineColor,\n bulletShape = _ref.bulletShape,\n bulletFilled = _ref.bulletFilled,\n illustrated = _ref.illustrated,\n spacing = _ref.spacing,\n background = _ref.background,\n callToAction = _ref.callToAction,\n current = _ref.current,\n transitions = _ref.transitions,\n transitionStagger = _ref.transitionStagger,\n type = _ref.type,\n className = _ref.className;\n var trackScreenEvent = useTrackScreenEvent(type);\n\n var _useScreenSize = useScreenSize(),\n width = _useScreenSize.width,\n height = _useScreenSize.height,\n menuOverScreen = _useScreenSize.menuOverScreen;\n\n var _useViewer = useViewer(),\n menuSize = _useViewer.menuSize;\n\n var _useScreenRenderConte = useScreenRenderContext(),\n isView = _useScreenRenderConte.isView,\n isPreview = _useScreenRenderConte.isPreview,\n isPlaceholder = _useScreenRenderConte.isPlaceholder,\n isEdit = _useScreenRenderConte.isEdit,\n isStatic = _useScreenRenderConte.isStatic,\n isCapture = _useScreenRenderConte.isCapture;\n\n var finalItems = isPlaceholder ? _toConsumableArray(new Array(5)).map(function () {\n return {};\n }) : items || [null];\n var itemsCount = finalItems !== null ? finalItems.length : 0;\n var hasItems = finalItems !== null && itemsCount;\n var imagesCount = hasItems ? finalItems.reduce(function (acc, curr) {\n var _ref2 = curr || {},\n _ref2$image = _ref2.image,\n image = _ref2$image === void 0 ? null : _ref2$image;\n\n return acc + (image !== null ? 1 : 0);\n }, 0) : 0;\n\n var _useState = useState(0),\n _useState2 = _slicedToArray(_useState, 2),\n imagesLoaded = _useState2[0],\n setImagesLoaded = _useState2[1];\n\n var ready = imagesLoaded >= imagesCount;\n var transitionsPlaying = current && ready;\n var transitionDisabled = isStatic || isCapture || isPlaceholder || isPreview || isEdit;\n var scrollingDisabled = !isEdit && transitionDisabled || !current;\n var backgroundPlaying = current && (isView || isEdit);\n var onImageLoaded = useCallback(function () {\n setImagesLoaded(imagesLoaded + 1);\n }, [imagesLoaded, setImagesLoaded]);\n var firstLineRef = useRef(null);\n var firstContentRef = useRef(null);\n\n var _useState3 = useState(0),\n _useState4 = _slicedToArray(_useState3, 2),\n imageWidth = _useState4[0],\n setImageWidth = _useState4[1];\n\n useEffect(function () {\n setImageWidth(firstContentRef.current.offsetWidth - firstLineRef.current.offsetWidth);\n }, [width, height]);\n var timelineElements = (finalItems || []).map(function (item, itemI) {\n var _ref3 = item || {},\n _ref3$title = _ref3.title,\n title = _ref3$title === void 0 ? null : _ref3$title,\n _ref3$description = _ref3.description,\n description = _ref3$description === void 0 ? null : _ref3$description,\n _ref3$image = _ref3.image,\n image = _ref3$image === void 0 ? null : _ref3$image;\n\n var hasTitle = isTextFilled(title);\n var hasDescription = isTextFilled(description);\n var hasImage = image !== null;\n var elementsTypes = (layout === 'normal' ? 'title-description-image' : layout).split('-');\n var titleIndex = elementsTypes.indexOf('title');\n var imageIndex = elementsTypes.indexOf('image');\n\n if (!illustrated) {\n elementsTypes.splice(imageIndex, 1);\n }\n\n var typesCount = elementsTypes.length;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: styles.item,\n key: \"item-\".concat(itemI)\n }, /*#__PURE__*/React.createElement(Transitions, {\n transitions: transitions,\n playing: transitionsPlaying,\n delay: transitionStagger * itemI,\n disabled: transitionDisabled\n }, elementsTypes.map(function (elementType, typeI) {\n var hasElement = false;\n var elementContent;\n\n switch (elementType) {\n case 'title':\n hasElement = hasTitle;\n elementContent = /*#__PURE__*/React.createElement(\"div\", {\n className: styles.title\n }, /*#__PURE__*/React.createElement(ScreenElement, {\n placeholder: \"title\",\n emptyLabel: /*#__PURE__*/React.createElement(FormattedMessage, {\n id: \"2ZOPe+\",\n defaultMessage: [{\n \"type\": 0,\n \"value\": \"Title\"\n }]\n }),\n emptyClassName: styles.empty,\n isEmpty: !hasTitle\n }, hasElement ? /*#__PURE__*/React.createElement(Heading, title) : null));\n break;\n\n case 'description':\n default:\n hasElement = hasDescription;\n elementContent = /*#__PURE__*/React.createElement(\"div\", {\n className: styles.description\n }, /*#__PURE__*/React.createElement(ScreenElement, {\n placeholder: \"text\",\n emptyLabel: /*#__PURE__*/React.createElement(FormattedMessage, {\n id: \"507VAi\",\n defaultMessage: [{\n \"type\": 0,\n \"value\": \"Description\"\n }]\n }),\n emptyClassName: styles.empty,\n isEmpty: !hasDescription\n }, hasElement ? /*#__PURE__*/React.createElement(Text, description) : null));\n break;\n\n case 'image':\n hasElement = hasImage;\n elementContent = /*#__PURE__*/React.createElement(\"div\", {\n className: styles.imageContainer\n }, /*#__PURE__*/React.createElement(ScreenElement, {\n placeholder: \"image\",\n emptyLabel: /*#__PURE__*/React.createElement(FormattedMessage, {\n id: \"ebsPd4\",\n defaultMessage: [{\n \"type\": 0,\n \"value\": \"Image\"\n }]\n }),\n emptyClassName: styles.empty,\n isEmpty: !hasImage\n }, hasElement ? /*#__PURE__*/React.createElement(Visual, {\n className: styles.image,\n videoClassName: styles.video,\n media: image,\n width: imageWidth,\n playing: backgroundPlaying,\n onLoaded: onImageLoaded\n }) : null));\n break;\n }\n\n var firstItem = itemI === 0;\n var lastItem = itemI === itemsCount - 1;\n var lastType = typeI === typesCount - 1;\n var topLineHidden = firstItem && typeI <= titleIndex || lastItem && typeI > titleIndex;\n var bottomLineHidden = firstItem && typeI < titleIndex || lastItem && typeI >= titleIndex;\n return /*#__PURE__*/React.createElement(\"div\", {\n key: \"element-\".concat(elementType),\n className: classNames([styles.element, styles[\"element-\".concat(elementType)]]),\n ref: itemI === 0 ? firstContentRef : null\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: styles.timeline,\n ref: itemI === 0 ? firstLineRef : null\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: classNames([styles.line, _defineProperty({}, styles.hidden, topLineHidden)]),\n style: _objectSpread({}, !topLineHidden ? getStyleFromColor(lineColor, 'backgroundColor') : null)\n }), elementType === 'title' ? /*#__PURE__*/React.createElement(\"div\", {\n className: styles.bullet,\n style: _objectSpread(_objectSpread({}, getStyleFromColor(bulletColor, 'borderColor')), bulletFilled ? getStyleFromColor(bulletColor, 'backgroundColor') : null)\n }) : null, /*#__PURE__*/React.createElement(\"div\", {\n className: classNames([styles.line, _defineProperty({}, styles.hidden, bottomLineHidden)]),\n style: _objectSpread({}, !bottomLineHidden ? getStyleFromColor(lineColor, 'backgroundColor') : null)\n })), /*#__PURE__*/React.createElement(\"div\", {\n className: classNames([styles.content, _defineProperty({}, styles.lastContent, lastType && !lastItem)])\n }, elementContent));\n })));\n }); // Call to Action\n\n var hasCallToAction = callToAction !== null && callToAction.active === true;\n\n var _useState5 = useState(false),\n _useState6 = _slicedToArray(_useState5, 2),\n scrolledBottom = _useState6[0],\n setScrolledBottom = _useState6[1];\n\n var _useResizeObserver = useResizeObserver(),\n callToActionRef = _useResizeObserver.ref,\n callToActionRect = _useResizeObserver.entry.contentRect;\n\n var _ref7 = callToActionRect || {},\n _ref7$height = _ref7.height,\n callToActionHeight = _ref7$height === void 0 ? 0 : _ref7$height;\n\n var onScrolledBottom = useCallback(function (_ref8) {\n var initial = _ref8.initial;\n\n if (initial) {\n trackScreenEvent('scroll', 'Screen');\n }\n\n setScrolledBottom(true);\n }, [trackScreenEvent]);\n var onScrolledNotBottom = useCallback(function () {\n setScrolledBottom(false);\n }, [setScrolledBottom]);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames([styles.container, (_ref9 = {}, _defineProperty(_ref9, className, className !== null), _defineProperty(_ref9, styles.isPlaceholder, isPlaceholder), _defineProperty(_ref9, styles[\"\".concat(bulletShape, \"BulletShape\")], bulletShape !== null), _defineProperty(_ref9, styles.withoutLines, itemsCount < 2), _ref9)]),\n \"data-screen-ready\": ready\n }, !isPlaceholder ? /*#__PURE__*/React.createElement(Background, {\n background: background,\n width: width,\n height: height,\n playing: backgroundPlaying\n }) : null, /*#__PURE__*/React.createElement(Container, {\n width: width,\n height: height\n }, /*#__PURE__*/React.createElement(Scroll, {\n className: styles.scroll,\n verticalAlign: \"middle\",\n disabled: scrollingDisabled,\n onScrolledBottom: onScrolledBottom,\n onScrolledNotBottom: onScrolledNotBottom\n }, /*#__PURE__*/React.createElement(Layout, {\n style: !isPlaceholder ? {\n padding: spacing,\n paddingTop: (menuOverScreen && !isPreview ? menuSize : 0) + spacing\n } : null\n }, timelineElements, !isPlaceholder && hasCallToAction ? /*#__PURE__*/React.createElement(\"div\", {\n style: {\n height: callToActionHeight\n }\n }) : null)), !isPlaceholder && hasCallToAction ? /*#__PURE__*/React.createElement(CallToAction, {\n ref: callToActionRef,\n className: styles.callToAction,\n disabled: !scrolledBottom,\n animationDisabled: isPreview,\n callToAction: callToAction,\n focusable: current && isView\n }) : null));\n};\n\nTimeline.propTypes = propTypes;\nTimeline.defaultProps = defaultProps;\n\nvar TimelineIllustratedScreen = function TimelineIllustratedScreen(_ref) {\n var props = _extends({}, _ref);\n\n return /*#__PURE__*/React.createElement(Timeline, Object.assign({}, props, {\n illustrated: true\n }));\n};\n\nvar transform = function transform(newStory, _ref) {\n var _ref$items = _ref.items,\n items = _ref$items === void 0 ? [] : _ref$items;\n var allItems = items || [];\n var list = allItems.reduce(function (acc, it) {\n var _Text = Text$1(acc.story, it.title),\n titleStory = _Text.story,\n titleComponent = _Text.component;\n\n var _Text2 = Text$1(titleStory, it.description),\n descriptionStory = _Text2.story,\n descriptionComponent = _Text2.component;\n\n var _Container = Container$1(descriptionStory, [].concat(_toConsumableArray(titleComponent ? [titleComponent] : []), _toConsumableArray(descriptionComponent ? [descriptionComponent] : []))),\n containerStory = _Container.story,\n containerComponent = _Container.component;\n\n return {\n story: containerStory,\n components: [].concat(_toConsumableArray(acc.components || []), _toConsumableArray(containerComponent ? [containerComponent] : []))\n };\n }, {\n story: newStory,\n components: []\n });\n\n var _ref2 = list || {},\n reducedStory = _ref2.story,\n _ref2$components = _ref2.components,\n reducedComponents = _ref2$components === void 0 ? [] : _ref2$components;\n\n var _Container2 = Container$1(reducedStory, reducedComponents),\n bigContainerStory = _Container2.story,\n bigContainerComponent = _Container2.component;\n\n return _objectSpread(_objectSpread({}, bigContainerStory), {}, {\n components: [].concat(_toConsumableArray(newStory.components || []), _toConsumableArray(bigContainerComponent ? [bigContainerComponent] : []))\n });\n};\n\n// eslint-disable-next-line\n\nvar transforms = /*#__PURE__*/Object.freeze({\n __proto__: null,\n appleNews: transform\n});\n\nvar definition = [{\n id: 'timeline',\n type: 'screen',\n group: {\n label: defineMessage({\n \"id\": \"cGItoy\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"List\"\n }]\n }),\n order: 8\n },\n title: defineMessage({\n \"id\": \"GzoKNb\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Timeline\"\n }]\n }),\n component: Timeline,\n layouts: ['normal'],\n transforms: transforms,\n fields: [{\n name: 'items',\n type: 'entries',\n theme: {\n title: {\n textStyle: 'heading2'\n },\n description: {\n textStyle: 'text'\n }\n },\n label: defineMessage({\n \"id\": \"3ifj0j\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Entries\"\n }]\n })\n }, {\n name: 'bulletShape',\n type: 'radios',\n defaultValue: 'circle',\n options: [{\n value: 'circle',\n label: defineMessage({\n \"id\": \"+uInZz\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Circle\"\n }]\n })\n }, {\n value: 'square',\n label: defineMessage({\n \"id\": \"fusnxf\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Square\"\n }]\n })\n }],\n label: defineMessage({\n \"id\": \"twTaAZ\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Bullet shape\"\n }]\n })\n }, {\n name: 'bulletFilled',\n type: 'toggle',\n defaultValue: false,\n label: defineMessage({\n \"id\": \"YWcp4v\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Bullet filled\"\n }]\n })\n }, {\n name: 'bulletColor',\n type: 'color',\n defaultValue: {\n alpha: 1,\n color: '#FFFFFF'\n },\n label: defineMessage({\n \"id\": \"uNpHnA\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Bullet color\"\n }]\n })\n }, {\n name: 'lineColor',\n type: 'color',\n defaultValue: {\n alpha: 1,\n color: '#FFFFFF'\n },\n label: defineMessage({\n \"id\": \"RHMS2f\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Line color\"\n }]\n })\n }, {\n name: 'background',\n type: 'background',\n label: defineMessage({\n \"id\": \"+MPZRu\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Background\"\n }]\n })\n }, {\n name: 'callToAction',\n type: 'call-to-action',\n theme: {\n label: {\n textStyle: 'heading2'\n }\n }\n }]\n}, {\n id: 'timeline-illustrated',\n type: 'screen',\n group: {\n label: defineMessage({\n \"id\": \"cGItoy\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"List\"\n }]\n }),\n order: 8\n },\n title: defineMessage({\n \"id\": \"33UbSd\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Timeline with images\"\n }]\n }),\n component: TimelineIllustratedScreen,\n layouts: ['title-image-description', 'title-description-image', 'image-title-description'],\n fields: [{\n name: 'layout',\n type: 'screen-layout',\n defaultValue: 'title-image-description',\n label: defineMessage({\n \"id\": \"4iBXj2\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Layout\"\n }]\n })\n }, {\n name: 'items',\n type: 'entries-with-visual',\n theme: {\n title: {\n textStyle: 'heading2'\n },\n description: {\n textStyle: 'text'\n }\n },\n label: defineMessage({\n \"id\": \"3ifj0j\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Entries\"\n }]\n })\n }, {\n name: 'bulletShape',\n type: 'radios',\n defaultValue: 'circle',\n options: [{\n value: 'circle',\n label: defineMessage({\n \"id\": \"+uInZz\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Circle\"\n }]\n })\n }, {\n value: 'square',\n label: defineMessage({\n \"id\": \"fusnxf\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Square\"\n }]\n })\n }],\n label: defineMessage({\n \"id\": \"twTaAZ\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Bullet shape\"\n }]\n })\n }, {\n name: 'bulletFilled',\n type: 'toggle',\n defaultValue: false,\n label: defineMessage({\n \"id\": \"YWcp4v\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Bullet filled\"\n }]\n })\n }, {\n name: 'bulletColor',\n type: 'color',\n defaultValue: {\n alpha: 1,\n color: '#FFFFFF'\n },\n label: defineMessage({\n \"id\": \"uNpHnA\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Bullet color\"\n }]\n })\n }, {\n name: 'lineColor',\n type: 'color',\n defaultValue: {\n alpha: 1,\n color: '#FFFFFF'\n },\n label: defineMessage({\n \"id\": \"RHMS2f\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Line color\"\n }]\n })\n }, {\n name: 'background',\n type: 'background',\n label: defineMessage({\n \"id\": \"+MPZRu\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Background\"\n }]\n })\n }, {\n name: 'callToAction',\n type: 'call-to-action',\n theme: {\n label: {\n textStyle: 'heading2'\n }\n }\n }]\n}];\n\nexport { TimelineIllustratedScreen, Timeline as TimelineScreen, definition as default };\n","import { FormattedMessage, defineMessage } from 'react-intl';\nimport _defineProperty from '@babel/runtime/helpers/defineProperty';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { PropTypes as PropTypes$1 } from '@micromag/core';\nimport { useScreenSize, useViewer, useScreenRenderContext } from '@micromag/core/contexts';\nimport { ScreenElement, TransitionsStagger } from '@micromag/core/components';\nimport { isTextFilled } from '@micromag/core/utils';\nimport Background from '@micromag/element-background';\nimport Container from '@micromag/element-container';\nimport Layout, { Spacer } from '@micromag/element-layout';\nimport Heading from '@micromag/element-heading';\nimport Text from '@micromag/element-text';\nimport CallToAction from '@micromag/element-call-to-action';\nimport _extends from '@babel/runtime/helpers/extends';\nimport _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';\nimport _objectSpread from '@babel/runtime/helpers/objectSpread2';\nimport _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';\nimport { Heading1, Heading2, Text as Text$1, Container as Container$1 } from '@micromag/transforms/apple-news';\n\nvar styles = {\"container\":\"micromag-screen-title-container\",\"disabled\":\"micromag-screen-title-disabled\",\"hidden\":\"micromag-screen-title-hidden\",\"placeholder\":\"micromag-screen-title-placeholder\",\"content\":\"micromag-screen-title-content\",\"emptyDescription\":\"micromag-screen-title-emptyDescription\",\"emptySubtitle\":\"micromag-screen-title-emptySubtitle\",\"emptyTitle\":\"micromag-screen-title-emptyTitle\",\"subtitle\":\"micromag-screen-title-subtitle\",\"withMargin\":\"micromag-screen-title-withMargin\",\"title\":\"micromag-screen-title-title\",\"isPlaceholder\":\"micromag-screen-title-isPlaceholder\",\"layout\":\"micromag-screen-title-layout\"};\n\nvar propTypes$1 = {\n layout: PropTypes.oneOf(['top', 'middle', 'bottom', 'split', 'split-top', 'split-bottom']),\n title: PropTypes$1.headingElement,\n subtitle: PropTypes$1.headingElement,\n description: PropTypes$1.textElement,\n withSubtitle: PropTypes.bool,\n withDescription: PropTypes.bool,\n spacing: PropTypes.number,\n descriptionEmptyLabel: PropTypes$1.label,\n background: PropTypes$1.backgroundElement,\n callToAction: PropTypes$1.callToAction,\n current: PropTypes.bool,\n transitions: PropTypes$1.transitions,\n transitionStagger: PropTypes.number,\n className: PropTypes.string\n};\nvar defaultProps$1 = {\n layout: 'top',\n title: null,\n subtitle: null,\n description: null,\n withSubtitle: false,\n withDescription: false,\n spacing: 20,\n descriptionEmptyLabel: /*#__PURE__*/React.createElement(FormattedMessage, {\n id: \"507VAi\",\n defaultMessage: [{\n \"type\": 0,\n \"value\": \"Description\"\n }]\n }),\n background: null,\n callToAction: null,\n current: true,\n transitions: null,\n transitionStagger: 100,\n className: null\n};\n\nvar TitleScreen = function TitleScreen(_ref) {\n var _ref4;\n\n var layout = _ref.layout,\n title = _ref.title,\n subtitle = _ref.subtitle,\n description = _ref.description,\n withSubtitle = _ref.withSubtitle,\n withDescription = _ref.withDescription,\n spacing = _ref.spacing,\n descriptionEmptyLabel = _ref.descriptionEmptyLabel,\n background = _ref.background,\n callToAction = _ref.callToAction,\n current = _ref.current,\n transitions = _ref.transitions,\n transitionStagger = _ref.transitionStagger,\n className = _ref.className;\n\n var _useScreenSize = useScreenSize(),\n width = _useScreenSize.width,\n height = _useScreenSize.height,\n menuOverScreen = _useScreenSize.menuOverScreen;\n\n var _useViewer = useViewer(),\n menuSize = _useViewer.menuSize;\n\n var _useScreenRenderConte = useScreenRenderContext(),\n isView = _useScreenRenderConte.isView,\n isPreview = _useScreenRenderConte.isPreview,\n isPlaceholder = _useScreenRenderConte.isPlaceholder,\n isEdit = _useScreenRenderConte.isEdit,\n isStatic = _useScreenRenderConte.isStatic,\n isCapture = _useScreenRenderConte.isCapture;\n\n var hasTitle = isTextFilled(title);\n var hasSubtitle = isTextFilled(subtitle);\n var hasDescription = isTextFilled(description);\n var layoutParts = layout.split('-');\n var isSplitted = layoutParts[0] === 'split';\n var isTopLayout = layout === 'top';\n var isMiddleLayout = layout === 'middle';\n var verticalAlign = isSplitted ? layoutParts[1] || null : layoutParts[0];\n var titleWithMargin = hasTitle && (hasSubtitle || hasDescription) && (!isSplitted || verticalAlign === 'top');\n var subtitleWithMargin = hasSubtitle && hasDescription && (!isSplitted || verticalAlign === 'bottom');\n var transitionPlaying = current;\n var transitionDisabled = isStatic || isCapture || isPlaceholder || isPreview || isEdit;\n var backgroundPlaying = current && (isView || isEdit);\n var hasCallToAction = callToAction !== null && callToAction.active === true; // Create elements\n\n var items = [!isPlaceholder && hasCallToAction && isMiddleLayout ? /*#__PURE__*/React.createElement(Spacer, {\n key: \"spacer-cta-top\"\n }) : null, /*#__PURE__*/React.createElement(ScreenElement, {\n key: \"title\",\n placeholder: \"title\",\n emptyLabel: /*#__PURE__*/React.createElement(FormattedMessage, {\n id: \"2ZOPe+\",\n defaultMessage: [{\n \"type\": 0,\n \"value\": \"Title\"\n }]\n }),\n emptyClassName: styles.emptyTitle,\n isEmpty: !hasTitle\n }, hasTitle ? /*#__PURE__*/React.createElement(Heading, Object.assign({\n className: classNames([styles.title, _defineProperty({}, styles.withMargin, titleWithMargin)])\n }, title, {\n size: 1\n })) : null), isSplitted && (!withDescription || verticalAlign === 'bottom') && /*#__PURE__*/React.createElement(Spacer, {\n key: \"spacer1\"\n }), withSubtitle && /*#__PURE__*/React.createElement(ScreenElement, {\n key: \"subtitle\",\n placeholder: \"subtitle\",\n emptyLabel: /*#__PURE__*/React.createElement(FormattedMessage, {\n id: \"d60tSn\",\n defaultMessage: [{\n \"type\": 0,\n \"value\": \"Subtitle\"\n }]\n }),\n emptyClassName: styles.emptySubtitle,\n isEmpty: !hasSubtitle\n }, hasSubtitle ? /*#__PURE__*/React.createElement(Heading, Object.assign({\n className: classNames([styles.subtitle, _defineProperty({}, styles.withMargin, subtitleWithMargin)])\n }, subtitle, {\n size: 2\n })) : null), isSplitted && withDescription && verticalAlign === 'top' && /*#__PURE__*/React.createElement(Spacer, {\n key: \"spacer2\"\n }), withDescription && /*#__PURE__*/React.createElement(ScreenElement, {\n key: \"description\",\n placeholder: \"shortText\",\n emptyLabel: descriptionEmptyLabel,\n emptyClassName: styles.emptyDescription,\n isEmpty: !hasDescription\n }, hasDescription ? /*#__PURE__*/React.createElement(Text, description) : null), !isPlaceholder && hasCallToAction && (isTopLayout || isMiddleLayout) ? /*#__PURE__*/React.createElement(Spacer, {\n key: \"spacer-cta-bottom\"\n }) : null, !isPlaceholder && hasCallToAction ? /*#__PURE__*/React.createElement(\"div\", {\n style: {\n margin: -spacing,\n marginTop: 0\n },\n key: \"call-to-action\"\n }, /*#__PURE__*/React.createElement(CallToAction, {\n callToAction: callToAction,\n animationDisabled: isPreview,\n focusable: current && isView\n })) : null];\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames([styles.container, (_ref4 = {}, _defineProperty(_ref4, className, className !== null), _defineProperty(_ref4, styles.isPlaceholder, isPlaceholder), _ref4)]),\n \"data-screen-ready\": true\n }, !isPlaceholder ? /*#__PURE__*/React.createElement(Background, {\n background: background,\n width: width,\n height: height,\n playing: backgroundPlaying\n }) : null, /*#__PURE__*/React.createElement(Container, {\n width: width,\n height: height\n }, /*#__PURE__*/React.createElement(Layout, {\n className: styles.layout,\n fullscreen: true,\n verticalAlign: verticalAlign,\n style: !isPlaceholder ? {\n padding: spacing,\n paddingTop: (menuOverScreen && !isPreview ? menuSize : 0) + spacing\n } : null\n }, /*#__PURE__*/React.createElement(TransitionsStagger, {\n transitions: transitions,\n stagger: transitionStagger,\n disabled: transitionDisabled,\n playing: transitionPlaying,\n focusable: current && isView\n }, items))));\n};\n\nTitleScreen.propTypes = propTypes$1;\nTitleScreen.defaultProps = defaultProps$1;\nvar TitleScreen$1 = /*#__PURE__*/React.memo(TitleScreen);\n\nvar TitleSubtitleScreen = function TitleSubtitleScreen(_ref) {\n var props = _extends({}, _ref);\n\n return /*#__PURE__*/React.createElement(TitleScreen$1, Object.assign({}, props, {\n withSubtitle: true\n }));\n};\n\nvar _excluded = [\"credits\"];\nvar propTypes = {\n credits: PropTypes$1.textElement\n};\nvar defaultProps = {\n credits: null\n};\n\nvar TitleSubtitleCreditsScreen = function TitleSubtitleCreditsScreen(_ref) {\n var credits = _ref.credits,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(TitleScreen$1, Object.assign({}, props, {\n description: credits,\n withSubtitle: true,\n withDescription: true,\n descriptionEmptyLabel: /*#__PURE__*/React.createElement(FormattedMessage, {\n id: \"/hupzO\",\n defaultMessage: [{\n \"type\": 0,\n \"value\": \"Credits\"\n }]\n })\n }));\n};\n\nTitleSubtitleCreditsScreen.propTypes = propTypes;\nTitleSubtitleCreditsScreen.defaultProps = defaultProps;\n\nvar transform = function transform(newStory, _ref) {\n var title = _ref.title,\n subtitle = _ref.subtitle,\n credits = _ref.credits;\n\n var _Heading = Heading1(newStory, title),\n titleStory = _Heading.story,\n titleComponent = _Heading.component;\n\n var _Heading2 = Heading2(titleStory, subtitle),\n subtitleStory = _Heading2.story,\n subtitleComponent = _Heading2.component;\n\n var _Text = Text$1(subtitleStory, credits),\n creditsStory = _Text.story,\n creditsComponent = _Text.component;\n\n var _Container = Container$1(creditsStory, [].concat(_toConsumableArray(titleComponent ? [titleComponent] : []), _toConsumableArray(subtitleComponent ? [subtitleComponent] : []), _toConsumableArray(creditsComponent ? [creditsComponent] : []))),\n containerStory = _Container.story,\n containerComponent = _Container.component;\n\n return _objectSpread(_objectSpread({}, containerStory), {}, {\n components: [].concat(_toConsumableArray(newStory.components || []), _toConsumableArray(containerComponent ? [containerComponent] : []))\n });\n};\n\n// eslint-disable-next-line\n\nvar transforms = /*#__PURE__*/Object.freeze({\n __proto__: null,\n appleNews: transform\n});\n\nvar definition = [{\n id: 'title',\n type: 'screen',\n group: {\n label: defineMessage({\n \"id\": \"uKJRh2\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Title\"\n }]\n }),\n order: 1\n },\n title: defineMessage({\n \"id\": \"dVcog7\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Title\"\n }]\n }),\n component: TitleScreen$1,\n layouts: ['top', 'middle', 'bottom'],\n transforms: transforms,\n fields: [{\n name: 'layout',\n type: 'screen-layout',\n defaultValue: 'top',\n label: defineMessage({\n \"id\": \"4iBXj2\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Layout\"\n }]\n })\n }, {\n name: 'title',\n type: 'heading-element',\n theme: {\n textStyle: 'heading1'\n },\n label: defineMessage({\n \"id\": \"N25iDO\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Title\"\n }]\n })\n }, {\n name: 'background',\n type: 'background',\n label: defineMessage({\n \"id\": \"+MPZRu\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Background\"\n }]\n })\n }, {\n name: 'callToAction',\n type: 'call-to-action',\n theme: {\n label: {\n textStyle: 'heading2'\n }\n }\n }]\n}, {\n id: 'title-subtitle',\n type: 'screen',\n group: {\n label: defineMessage({\n \"id\": \"uKJRh2\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Title\"\n }]\n }),\n order: 1\n },\n title: defineMessage({\n \"id\": \"P1dwGU\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Title with subtitle\"\n }]\n }),\n component: TitleSubtitleScreen,\n layouts: ['top', 'middle', 'bottom', 'split'],\n transforms: transforms,\n fields: [{\n name: 'layout',\n type: 'screen-layout',\n defaultValue: 'top',\n label: defineMessage({\n \"id\": \"4iBXj2\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Layout\"\n }]\n })\n }, {\n name: 'title',\n type: 'heading-element',\n theme: {\n textStyle: 'heading1'\n },\n label: defineMessage({\n \"id\": \"N25iDO\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Title\"\n }]\n })\n }, {\n name: 'subtitle',\n type: 'heading-element',\n theme: {\n textStyle: 'heading2'\n },\n label: defineMessage({\n \"id\": \"EcZYpr\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Subtitle\"\n }]\n })\n }, {\n name: 'background',\n type: 'background',\n label: defineMessage({\n \"id\": \"+MPZRu\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Background\"\n }]\n })\n }, {\n name: 'callToAction',\n type: 'call-to-action',\n theme: {\n label: {\n textStyle: 'heading2'\n }\n }\n }]\n}, {\n id: 'title-subtitle-credits',\n type: 'screen',\n group: {\n label: defineMessage({\n \"id\": \"uKJRh2\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Title\"\n }]\n }),\n order: 1\n },\n title: defineMessage({\n \"id\": \"vZrFq6\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Title with subtitle and credits\"\n }]\n }),\n component: TitleSubtitleCreditsScreen,\n layouts: ['top', 'middle', 'bottom', 'split-top', 'split-bottom'],\n transforms: transforms,\n fields: [{\n name: 'layout',\n type: 'screen-layout',\n defaultValue: 'top',\n label: defineMessage({\n \"id\": \"4iBXj2\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Layout\"\n }]\n })\n }, {\n name: 'title',\n type: 'heading-element',\n theme: {\n textStyle: 'heading1'\n },\n label: defineMessage({\n \"id\": \"N25iDO\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Title\"\n }]\n })\n }, {\n name: 'subtitle',\n type: 'heading-element',\n theme: {\n textStyle: 'heading2'\n },\n label: defineMessage({\n \"id\": \"EcZYpr\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Subtitle\"\n }]\n })\n }, {\n name: 'credits',\n type: 'text-element',\n theme: {\n textStyle: 'text'\n },\n label: defineMessage({\n \"id\": \"upzOTm\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Credits\"\n }]\n })\n }, {\n name: 'background',\n type: 'background',\n label: defineMessage({\n \"id\": \"+MPZRu\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Background\"\n }]\n })\n }, {\n name: 'callToAction',\n type: 'call-to-action',\n theme: {\n label: {\n textStyle: 'heading2'\n }\n }\n }]\n}];\n\nexport { TitleScreen$1 as TitleScreen, TitleSubtitleCreditsScreen, TitleSubtitleScreen, definition as default };\n","import { FormattedMessage, defineMessage } from 'react-intl';\nimport _defineProperty from '@babel/runtime/helpers/defineProperty';\nimport _objectSpread from '@babel/runtime/helpers/objectSpread2';\nimport _slicedToArray from '@babel/runtime/helpers/slicedToArray';\nimport React, { useRef, useEffect, useState, useCallback, useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { getSizeWithinBounds } from '@folklore/size';\nimport { PropTypes as PropTypes$1 } from '@micromag/core';\nimport { ScreenElement, PlaceholderVideo, Empty, Transitions } from '@micromag/core/components';\nimport { useScreenSize, useScreenRenderContext } from '@micromag/core/contexts';\nimport { useTrackScreenMedia, useLongPress } from '@micromag/core/hooks';\nimport Background from '@micromag/element-background';\nimport Container from '@micromag/element-container';\nimport ClosedCaptions from '@micromag/element-closed-captions';\nimport MediaControls from '@micromag/element-media-controls';\nimport Image from '@micromag/element-image';\nimport Video from '@micromag/element-video';\nimport CallToAction from '@micromag/element-call-to-action';\nimport _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';\nimport { Video as Video$1, Container as Container$1 } from '@micromag/transforms/apple-news';\n\nvar styles = {\"container\":\"micromag-screen-video-container\",\"content\":\"micromag-screen-video-content\",\"empty\":\"micromag-screen-video-empty\",\"emptyContainer\":\"micromag-screen-video-emptyContainer\",\"fullscreen\":\"micromag-screen-video-fullscreen\",\"image\":\"micromag-screen-video-image\",\"placeholder\":\"micromag-screen-video-placeholder\",\"video\":\"micromag-screen-video-video\",\"disabled\":\"micromag-screen-video-disabled\",\"hidden\":\"micromag-screen-video-hidden\",\"mediaControls\":\"micromag-screen-video-mediaControls\",\"videoContainer\":\"micromag-screen-video-videoContainer\",\"bottomContent\":\"micromag-screen-video-bottomContent\"};\n\nvar propTypes = {\n layout: PropTypes.oneOf(['middle', 'full']),\n video: PropTypes$1.videoElement,\n background: PropTypes$1.backgroundElement,\n callToAction: PropTypes$1.callToAction,\n current: PropTypes.bool,\n // active: PropTypes.bool,\n transitions: PropTypes$1.transitions,\n spacing: PropTypes.number,\n getMediaRef: PropTypes.func,\n className: PropTypes.string\n};\nvar defaultProps = {\n layout: 'middle',\n video: null,\n background: null,\n callToAction: null,\n current: true,\n // active: true,\n transitions: null,\n spacing: 20,\n getMediaRef: null,\n className: null\n};\n\nvar VideoScreen = function VideoScreen(_ref) {\n var _ref8;\n\n var layout = _ref.layout,\n video = _ref.video,\n background = _ref.background,\n callToAction = _ref.callToAction,\n current = _ref.current,\n transitions = _ref.transitions,\n spacing = _ref.spacing,\n getMediaRef = _ref.getMediaRef,\n className = _ref.className;\n var trackScreenMedia = useTrackScreenMedia('video');\n\n var _useScreenSize = useScreenSize(),\n width = _useScreenSize.width,\n height = _useScreenSize.height;\n\n var _useScreenRenderConte = useScreenRenderContext(),\n isView = _useScreenRenderConte.isView,\n isPreview = _useScreenRenderConte.isPreview,\n isPlaceholder = _useScreenRenderConte.isPlaceholder,\n isEdit = _useScreenRenderConte.isEdit,\n isStatic = _useScreenRenderConte.isStatic,\n isCapture = _useScreenRenderConte.isCapture;\n\n var backgroundPlaying = current && (isView || isEdit);\n var apiRef = useRef();\n\n var _ref2 = apiRef.current || {},\n togglePlay = _ref2.togglePlay,\n toggleMute = _ref2.toggleMute,\n seek = _ref2.seek,\n play = _ref2.play,\n pause = _ref2.pause,\n _ref2$mediaRef = _ref2.mediaRef,\n apiMediaRef = _ref2$mediaRef === void 0 ? null : _ref2$mediaRef;\n\n useEffect(function () {\n if (apiMediaRef !== null && getMediaRef !== null) {\n getMediaRef(apiMediaRef.current);\n }\n }, [apiMediaRef, getMediaRef]); // Get api state updates from callback\n\n var _useState = useState(null),\n _useState2 = _slicedToArray(_useState, 2),\n currentTime = _useState2[0],\n setCurrentTime = _useState2[1];\n\n var _useState3 = useState(null),\n _useState4 = _slicedToArray(_useState3, 2),\n duration = _useState4[0],\n setDuration = _useState4[1];\n\n var _useState5 = useState(false),\n _useState6 = _slicedToArray(_useState5, 2),\n playing = _useState6[0],\n setPlaying = _useState6[1];\n\n var _useState7 = useState(false),\n _useState8 = _slicedToArray(_useState7, 2),\n muted = _useState8[0],\n setMuted = _useState8[1];\n\n var onTimeUpdate = useCallback(function (time) {\n setCurrentTime(time);\n }, [setDuration, duration]);\n var onProgressStep = useCallback(function (step) {\n trackScreenMedia(video, \"progress_\".concat(Math.round(step * 100, 10), \"%\"));\n }, [trackScreenMedia, video]);\n var onDurationChanged = useCallback(function (dur) {\n setDuration(dur);\n }, [setDuration]);\n var onPlay = useCallback(function (_ref3) {\n var initial = _ref3.initial;\n setPlaying(true);\n trackScreenMedia(video, initial ? 'play' : 'resume');\n }, [trackScreenMedia, video]);\n var onPause = useCallback(function (_ref4) {\n var midway = _ref4.midway;\n setPlaying(false);\n trackScreenMedia(video, midway ? 'pause' : 'ended');\n }, [trackScreenMedia, video]);\n var onVolumeChanged = useCallback(function (isMuted) {\n setMuted(isMuted);\n trackScreenMedia(video, isMuted ? 'mute' : 'unmute');\n }, [trackScreenMedia, video]);\n var onSeeked = useCallback(function (time) {\n if (time > 0) {\n trackScreenMedia(video, 'seek');\n }\n }, [trackScreenMedia, video]);\n var onToggleMute = useCallback(function () {\n if (muted && !playing) {\n play();\n }\n\n toggleMute();\n }, [muted, toggleMute]);\n useEffect(function () {\n if (!current && playing) {\n pause();\n }\n }, [playing, current]); // ------------------------------------\n\n var longPressBind = useLongPress({\n onLongPress: togglePlay\n });\n var fullscreen = layout === 'full';\n var hasCallToAction = callToAction !== null && callToAction.active === true;\n var hasVideo = video !== null;\n\n var _useState9 = useState(hasVideo),\n _useState10 = _slicedToArray(_useState9, 2),\n ready = _useState10[0],\n setReady = _useState10[1]; // useState(!hasVideo);\n\n\n var transitionPlaying = current && ready;\n var transitionDisabled = isStatic || isCapture || isPlaceholder || isPreview || isEdit; // get resized video style props\n\n var _ref5 = video || {},\n _ref5$autoPlay = _ref5.autoPlay,\n autoPlay = _ref5$autoPlay === void 0 ? true : _ref5$autoPlay,\n _ref5$media = _ref5.media,\n videoMedia = _ref5$media === void 0 ? null : _ref5$media,\n _ref5$closedCaptions = _ref5.closedCaptions,\n closedCaptions = _ref5$closedCaptions === void 0 ? null : _ref5$closedCaptions,\n _ref5$withSeekBar = _ref5.withSeekBar,\n withSeekBar = _ref5$withSeekBar === void 0 ? false : _ref5$withSeekBar,\n _ref5$withPlayPause = _ref5.withPlayPause,\n withPlayPause = _ref5$withPlayPause === void 0 ? false : _ref5$withPlayPause;\n\n var finalVideo = useMemo(function () {\n return hasVideo ? _objectSpread(_objectSpread({}, video), {}, {\n autoPlay: !isPreview && !isStatic && !isCapture && autoPlay && current\n }) : null;\n }, [hasVideo, video, isPreview, isStatic, isCapture, autoPlay, current]);\n\n var _ref6 = videoMedia || {},\n _ref6$metadata = _ref6.metadata,\n videoMetadata = _ref6$metadata === void 0 ? null : _ref6$metadata,\n _ref6$url = _ref6.url,\n videoUrl = _ref6$url === void 0 ? null : _ref6$url,\n _ref6$thumbnail_url = _ref6.thumbnail_url,\n thumbnailUrl = _ref6$thumbnail_url === void 0 ? null : _ref6$thumbnail_url;\n\n var hasVideoUrl = videoUrl !== null; // const hasThumbnail = thumbnailUrl !== null;\n // const [posterReady, setPosterReady] = useState(!hasThumbnail);\n\n var _ref7 = videoMetadata || {},\n _ref7$width = _ref7.width,\n videoWidth = _ref7$width === void 0 ? 0 : _ref7$width,\n _ref7$height = _ref7.height,\n videoHeight = _ref7$height === void 0 ? 0 : _ref7$height;\n\n var _getSizeWithinBounds = getSizeWithinBounds(videoWidth, videoHeight, width, height, {\n cover: fullscreen\n }),\n resizedVideoWidth = _getSizeWithinBounds.width,\n resizedVideoHeight = _getSizeWithinBounds.height;\n\n var resizedVideoLeft = -(resizedVideoWidth - width) / 2;\n var resizedVideoTop = -(resizedVideoHeight - height) / 2;\n var placeholderProps = fullscreen ? {\n width: '100%',\n height: '100%'\n } : {\n width: '100%'\n };\n useEffect(function () {\n setReady(!hasVideoUrl);\n }, [videoUrl, hasVideoUrl, setReady]); // useEffect(() => {\n // setPosterReady(!hasThumbnail);\n // }, [thumbnailUrl, hasThumbnail, setPosterReady]);\n\n var onVideoReady = useCallback(function () {\n setReady(true);\n }, [setReady]); // const onPosterLoaded = useCallback(() => {\n // setPosterReady(true);\n // }, [isStatic, isCapture, setPosterReady]);\n\n var items = [/*#__PURE__*/React.createElement(ScreenElement, {\n key: \"video\",\n placeholder: /*#__PURE__*/React.createElement(PlaceholderVideo, Object.assign({\n className: styles.placeholder\n }, placeholderProps)),\n empty: /*#__PURE__*/React.createElement(\"div\", {\n className: styles.emptyContainer\n }, /*#__PURE__*/React.createElement(Empty, {\n className: styles.empty\n }, /*#__PURE__*/React.createElement(FormattedMessage, {\n id: \"3ext9Q\",\n defaultMessage: [{\n \"type\": 0,\n \"value\": \"Video\"\n }]\n }))),\n isEmpty: !hasVideoUrl\n }, hasVideoUrl ? /*#__PURE__*/React.createElement(\"div\", {\n className: styles.videoContainer,\n style: {\n width: resizedVideoWidth,\n height: resizedVideoHeight,\n left: resizedVideoLeft,\n top: resizedVideoTop\n }\n }, isPreview || isCapture ? /*#__PURE__*/React.createElement(Image, {\n className: styles.image,\n media: {\n url: thumbnailUrl,\n metadata: {\n width: videoWidth,\n height: videoHeight\n }\n },\n width: \"100%\",\n height: \"100%\"\n }) : /*#__PURE__*/React.createElement(Video, Object.assign({}, finalVideo, {\n ref: apiRef,\n className: styles.video,\n onReady: onVideoReady,\n onPlay: onPlay,\n onPause: onPause,\n onTimeUpdate: onTimeUpdate,\n onProgressStep: onProgressStep,\n onDurationChanged: onDurationChanged,\n onSeeked: onSeeked,\n onVolumeChanged: onVolumeChanged,\n focusable: current && isView // onPosterLoaded={onPosterLoaded}\n\n }))) : null), !isPlaceholder ? /*#__PURE__*/React.createElement(\"div\", {\n key: \"bottom-content\",\n className: styles.bottomContent\n }, /*#__PURE__*/React.createElement(Transitions, {\n playing: transitionPlaying,\n transitions: transitions,\n disabled: transitionDisabled\n }, closedCaptions !== null && !isPreview && !isCapture && !isStatic ? /*#__PURE__*/React.createElement(ClosedCaptions, {\n className: styles.closedCaptions,\n media: closedCaptions,\n currentTime: currentTime\n }) : null, hasVideoUrl ? /*#__PURE__*/React.createElement(MediaControls, {\n className: styles.mediaControls,\n withSeekBar: withSeekBar,\n withPlayPause: withPlayPause,\n playing: playing,\n muted: muted,\n currentTime: currentTime,\n duration: duration,\n onTogglePlay: togglePlay,\n onToggleMute: onToggleMute,\n onSeek: seek,\n focusable: current && isView\n }) : null, hasCallToAction ? /*#__PURE__*/React.createElement(\"div\", {\n style: {\n marginTop: -spacing\n }\n }, /*#__PURE__*/React.createElement(CallToAction, {\n callToAction: callToAction,\n animationDisabled: isPreview,\n focusable: current && isView\n })) : null)) : null];\n return /*#__PURE__*/React.createElement(\"div\", Object.assign({\n className: classNames([styles.container, (_ref8 = {}, _defineProperty(_ref8, className, className !== null), _defineProperty(_ref8, styles.fullscreen, fullscreen), _ref8)]),\n \"data-screen-ready\": isStatic || isCapture\n /* && posterReady */\n || ready\n }, longPressBind), !isPlaceholder ? /*#__PURE__*/React.createElement(Background, {\n background: background,\n width: width,\n height: height,\n playing: backgroundPlaying\n }) : null, /*#__PURE__*/React.createElement(Container, {\n width: width,\n height: height\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: styles.content\n }, items)));\n};\n\nVideoScreen.propTypes = propTypes;\nVideoScreen.defaultProps = defaultProps;\nvar VideoScreen$1 = /*#__PURE__*/React.memo(VideoScreen);\n\nvar transform = function transform(newStory, _ref) {\n var video = _ref.video;\n\n var _ref2 = video || {},\n _ref2$media = _ref2.media,\n media = _ref2$media === void 0 ? null : _ref2$media;\n\n var _Video = Video$1(newStory, media),\n titleStory = _Video.story,\n titleComponent = _Video.component;\n\n var _Container = Container$1(titleStory, _toConsumableArray(titleComponent ? [titleComponent] : [])),\n containerStory = _Container.story,\n containerComponent = _Container.component;\n\n return _objectSpread(_objectSpread({}, containerStory), {}, {\n components: [].concat(_toConsumableArray(newStory.components || []), _toConsumableArray(containerComponent ? [containerComponent] : []))\n });\n};\n\n// eslint-disable-next-line\n\nvar transforms = /*#__PURE__*/Object.freeze({\n __proto__: null,\n appleNews: transform\n});\n\nvar definition = {\n id: 'video',\n type: 'screen',\n group: {\n label: defineMessage({\n \"id\": \"+9akmg\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Audio and Video\"\n }]\n }),\n order: 5\n },\n title: defineMessage({\n \"id\": \"UBXIYP\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Video\"\n }]\n }),\n component: VideoScreen$1,\n layouts: ['middle', 'full'],\n transforms: transforms,\n fields: [{\n name: 'layout',\n type: 'screen-layout',\n defaultValue: 'middle',\n label: defineMessage({\n \"id\": \"4iBXj2\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Layout\"\n }]\n })\n }, {\n name: 'video',\n type: 'video-element',\n theme: {\n color: 'primary'\n },\n defaultValue: {\n autoPlay: true\n },\n label: defineMessage({\n \"id\": \"tvl2Zc\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Video\"\n }]\n })\n }, {\n name: 'background',\n type: 'background',\n label: defineMessage({\n \"id\": \"+MPZRu\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Background\"\n }]\n })\n }, {\n name: 'callToAction',\n type: 'call-to-action',\n theme: {\n label: {\n textStyle: 'heading2'\n }\n }\n }]\n};\n\nexport { VideoScreen$1 as VideoScreen, definition as default };\n","import { FormattedMessage, defineMessage } from 'react-intl';\nimport _defineProperty from '@babel/runtime/helpers/defineProperty';\nimport _objectSpread from '@babel/runtime/helpers/objectSpread2';\nimport _slicedToArray from '@babel/runtime/helpers/slicedToArray';\nimport 'whatwg-fetch';\nimport React, { useState, useEffect, useRef, useCallback } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { getSizeWithinBounds } from '@folklore/size';\nimport { PropTypes as PropTypes$1 } from '@micromag/core';\nimport { ScreenElement, PlaceholderVideo360, Transitions } from '@micromag/core/components';\nimport { useScreenSize, useScreenRenderContext } from '@micromag/core/contexts';\nimport { useTrackScreenEvent, useTrackScreenMedia, useAnimationFrame } from '@micromag/core/hooks';\nimport Background from '@micromag/element-background';\nimport Container from '@micromag/element-container';\nimport ClosedCaptions from '@micromag/element-closed-captions';\nimport MediaControls from '@micromag/element-media-controls';\nimport Image from '@micromag/element-image';\nimport Video from '@micromag/element-video';\nimport CallToAction from '@micromag/element-call-to-action';\nimport _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';\nimport { Video as Video$1, Container as Container$1 } from '@micromag/transforms/apple-news';\n\n/**\n * Locale loader\n */\n\nvar packageCache = null;\n\nvar useThree = function useThree() {\n // transport\n var _useState = useState({\n \"package\": packageCache\n }),\n _useState2 = _slicedToArray(_useState, 2),\n loadedPackage = _useState2[0][\"package\"],\n setLoadedPackage = _useState2[1];\n\n useEffect(function () {\n var canceled = false;\n\n if (loadedPackage !== null) {\n return function () {\n canceled = true;\n };\n }\n\n import('three').then(function (_ref) {\n var Scene = _ref.Scene,\n PerspectiveCamera = _ref.PerspectiveCamera,\n SphereBufferGeometry = _ref.SphereBufferGeometry,\n VideoTexture = _ref.VideoTexture,\n MeshBasicMaterial = _ref.MeshBasicMaterial,\n Mesh = _ref.Mesh,\n WebGLRenderer = _ref.WebGLRenderer,\n MathUtils = _ref.MathUtils;\n packageCache = {\n Scene: Scene,\n PerspectiveCamera: PerspectiveCamera,\n SphereBufferGeometry: SphereBufferGeometry,\n VideoTexture: VideoTexture,\n MeshBasicMaterial: MeshBasicMaterial,\n Mesh: Mesh,\n WebGLRenderer: WebGLRenderer,\n MathUtils: MathUtils\n };\n\n if (!canceled) {\n setLoadedPackage({\n \"package\": packageCache\n });\n }\n });\n return function () {\n canceled = true;\n };\n }, [loadedPackage, setLoadedPackage]);\n return loadedPackage;\n};\n\nvar styles = {\"container\":\"micromag-screen-video-360-container\",\"canvasButton\":\"micromag-screen-video-360-canvasButton\",\"canvas\":\"micromag-screen-video-360-canvas\",\"content\":\"micromag-screen-video-360-content\",\"placeholder\":\"micromag-screen-video-360-placeholder\",\"video\":\"micromag-screen-video-360-video\",\"disabled\":\"micromag-screen-video-360-disabled\",\"hidden\":\"micromag-screen-video-360-hidden\",\"empty\":\"micromag-screen-video-360-empty\",\"videoContainer\":\"micromag-screen-video-360-videoContainer\",\"mediaControls\":\"micromag-screen-video-360-mediaControls\",\"bottomContent\":\"micromag-screen-video-360-bottomContent\",\"showVideo\":\"micromag-screen-video-360-showVideo\"};\n\nvar propTypes = {\n layout: PropTypes.oneOf(['full']),\n video: PropTypes$1.videoElement,\n background: PropTypes$1.backgroundElement,\n callToAction: PropTypes$1.callToAction,\n current: PropTypes.bool,\n // active: PropTypes.bool,\n transitions: PropTypes$1.transitions,\n onPrevious: PropTypes.func,\n onNext: PropTypes.func,\n type: PropTypes.string,\n spacing: PropTypes.number,\n className: PropTypes.string\n};\nvar defaultProps = {\n layout: 'full',\n video: null,\n background: null,\n callToAction: null,\n current: true,\n // active: true,\n transitions: null,\n onPrevious: null,\n onNext: null,\n type: null,\n spacing: 20,\n className: null\n};\n\nvar Video360Screen = function Video360Screen(_ref) {\n var _ref12;\n\n _ref.layout;\n var video = _ref.video,\n background = _ref.background,\n callToAction = _ref.callToAction,\n current = _ref.current,\n transitions = _ref.transitions,\n onPrevious = _ref.onPrevious,\n onNext = _ref.onNext,\n type = _ref.type,\n spacing = _ref.spacing,\n className = _ref.className;\n var THREE = useThree();\n var trackScreenEvent = useTrackScreenEvent(type);\n var trackScreenMedia = useTrackScreenMedia('video_360');\n\n var _useScreenSize = useScreenSize(),\n width = _useScreenSize.width,\n height = _useScreenSize.height,\n landscape = _useScreenSize.landscape;\n\n var _useScreenRenderConte = useScreenRenderContext(),\n isView = _useScreenRenderConte.isView,\n isPreview = _useScreenRenderConte.isPreview,\n isPlaceholder = _useScreenRenderConte.isPlaceholder,\n isEdit = _useScreenRenderConte.isEdit,\n isStatic = _useScreenRenderConte.isStatic,\n isCapture = _useScreenRenderConte.isCapture;\n\n var backgroundPlaying = current && (isView || isEdit);\n var videoContainerRef = useRef();\n var apiRef = useRef();\n\n var _ref2 = apiRef.current || {},\n togglePlay = _ref2.togglePlay,\n toggleMute = _ref2.toggleMute,\n seek = _ref2.seek,\n play = _ref2.play,\n pause = _ref2.pause;\n\n var _useState = useState(null),\n _useState2 = _slicedToArray(_useState, 2),\n currentTime = _useState2[0],\n setCurrentTime = _useState2[1];\n\n var _useState3 = useState(null),\n _useState4 = _slicedToArray(_useState3, 2),\n duration = _useState4[0],\n setDuration = _useState4[1];\n\n var _useState5 = useState(false),\n _useState6 = _slicedToArray(_useState5, 2),\n playing = _useState6[0],\n setPlaying = _useState6[1];\n\n var _useState7 = useState(false),\n _useState8 = _slicedToArray(_useState7, 2),\n muted = _useState8[0],\n setMuted = _useState8[1];\n\n var onTimeUpdate = useCallback(function (time) {\n setCurrentTime(time);\n }, [setDuration, duration]);\n var onProgressStep = useCallback(function (step) {\n trackScreenMedia(video, \"progress_\".concat(Math.round(step * 100, 10), \"%\"));\n }, [trackScreenMedia, video]);\n var onDurationChanged = useCallback(function (dur) {\n setDuration(dur);\n }, [setDuration]);\n var onPlay = useCallback(function (_ref3) {\n var initial = _ref3.initial;\n setPlaying(true);\n trackScreenMedia(video, initial ? 'play' : 'resume');\n }, [trackScreenMedia, video]);\n var onPause = useCallback(function (_ref4) {\n var midway = _ref4.midway;\n setPlaying(false);\n trackScreenMedia(video, midway ? 'pause' : 'ended');\n }, [trackScreenMedia, video]);\n var onVolumeChanged = useCallback(function (isMuted) {\n setMuted(isMuted);\n trackScreenMedia(video, isMuted ? 'mute' : 'unmute');\n }, [trackScreenMedia, video]);\n var onSeeked = useCallback(function (time) {\n if (time > 0) {\n trackScreenMedia(video, 'seek');\n }\n }, [trackScreenMedia, video]);\n var onToggleMute = useCallback(function () {\n if (muted && !playing) {\n play();\n }\n\n toggleMute();\n }, [muted, toggleMute]);\n useEffect(function () {\n if (!current && playing) {\n pause();\n }\n }, [playing, current]); // ------------------------------------\n\n var hasVideo = video !== null;\n\n var _useState9 = useState(!hasVideo),\n _useState10 = _slicedToArray(_useState9, 2),\n ready = _useState10[0],\n setReady = _useState10[1];\n\n var transitionPlaying = current && ready;\n var transitionDisabled = isStatic || isCapture || isPlaceholder || isPreview || isEdit;\n\n var _ref5 = video || {},\n _ref5$media = _ref5.media,\n videoMedia = _ref5$media === void 0 ? null : _ref5$media,\n _ref5$closedCaptions = _ref5.closedCaptions,\n closedCaptions = _ref5$closedCaptions === void 0 ? null : _ref5$closedCaptions,\n _ref5$withSeekBar = _ref5.withSeekBar,\n withSeekBar = _ref5$withSeekBar === void 0 ? false : _ref5$withSeekBar,\n _ref5$withPlayPause = _ref5.withPlayPause,\n withPlayPause = _ref5$withPlayPause === void 0 ? false : _ref5$withPlayPause,\n _ref5$autoPlay = _ref5.autoPlay,\n autoPlay = _ref5$autoPlay === void 0 ? true : _ref5$autoPlay;\n\n var finalVideo = hasVideo ? _objectSpread(_objectSpread({}, video), {}, {\n autoPlay: !isPreview && !isStatic && !isCapture && autoPlay && current\n }) : null;\n\n var _ref6 = videoMedia || {},\n _ref6$metadata = _ref6.metadata,\n videoMetadata = _ref6$metadata === void 0 ? null : _ref6$metadata,\n _ref6$url = _ref6.url,\n videoUrl = _ref6$url === void 0 ? null : _ref6$url,\n _ref6$thumbnail_url = _ref6.thumbnail_url,\n thumbnailUrl = _ref6$thumbnail_url === void 0 ? null : _ref6$thumbnail_url;\n\n var hasVideoUrl = videoUrl !== null;\n\n var _ref7 = videoMetadata || {},\n _ref7$width = _ref7.width,\n videoWidth = _ref7$width === void 0 ? 0 : _ref7$width,\n _ref7$height = _ref7.height,\n videoHeight = _ref7$height === void 0 ? 0 : _ref7$height;\n\n var hasThumbnail = thumbnailUrl !== null;\n\n var _useState11 = useState(!hasThumbnail),\n _useState12 = _slicedToArray(_useState11, 2),\n posterReady = _useState12[0],\n setPosterReady = _useState12[1];\n\n var withVideoSphere = hasVideoUrl && (isView || isEdit) && !isCapture && !isStatic;\n\n var _getSizeWithinBounds = getSizeWithinBounds(videoWidth, videoHeight, width, height, {\n cover: true\n }),\n resizedVideoWidth = _getSizeWithinBounds.width,\n resizedVideoHeight = _getSizeWithinBounds.height;\n\n var resizedVideoLeft = -(resizedVideoWidth - width) / 2;\n var resizedVideoTop = -(resizedVideoHeight - height) / 2;\n useEffect(function () {\n setReady(!hasVideoUrl);\n }, [videoUrl, hasVideoUrl, setReady]);\n useEffect(function () {\n setPosterReady(!hasThumbnail);\n }, [thumbnailUrl, hasThumbnail, setPosterReady]);\n var onVideoReady = useCallback(function () {\n setReady(true);\n }, [setReady]);\n var onPosterLoaded = useCallback(function () {\n setPosterReady(true);\n }, [posterReady]); // 3D layer --------------------------\n\n var canvasRef = useRef(null);\n var camera = useRef(null);\n var scene = useRef(null);\n var renderer = useRef(null);\n var lon = useRef(0);\n var lat = useRef(0);\n var phi = useRef(0);\n var theta = useRef(0);\n var distance = useRef(50);\n var pointerDown = useRef(false);\n var pointerDownX = useRef(0);\n var pointerDownY = useRef(0);\n var pointerLon = useRef(0);\n var pointerLat = useRef(0); // render 3D frame\n\n var render3D = useCallback(function () {\n var MathUtils = THREE.MathUtils;\n lat.current = Math.max(-85, Math.min(85, lat.current));\n phi.current = MathUtils.degToRad(90 - lat.current);\n theta.current = MathUtils.degToRad(lon.current);\n camera.current.position.x = distance.current * Math.sin(phi.current) * Math.cos(theta.current);\n camera.current.position.y = distance.current * Math.cos(phi.current);\n camera.current.position.z = distance.current * Math.sin(phi.current) * Math.sin(theta.current);\n camera.current.lookAt(0, 0, 0);\n renderer.current.render(scene.current, camera.current);\n }, []); // Init 3D layer\n\n useEffect(function () {\n if (THREE !== null && hasVideoUrl && withVideoSphere) {\n var Scene = THREE.Scene,\n PerspectiveCamera = THREE.PerspectiveCamera,\n SphereBufferGeometry = THREE.SphereBufferGeometry,\n VideoTexture = THREE.VideoTexture,\n MeshBasicMaterial = THREE.MeshBasicMaterial,\n Mesh = THREE.Mesh,\n WebGLRenderer = THREE.WebGLRenderer;\n var _canvasRef$current = canvasRef.current,\n canvasWidth = _canvasRef$current.offsetWidth,\n canvasHeight = _canvasRef$current.offsetHeight;\n camera.current = new PerspectiveCamera(75, canvasWidth / canvasHeight, 1, 1100);\n scene.current = new Scene();\n var geometry = new SphereBufferGeometry(500, 60, 40);\n geometry.scale(-1, 1, 1);\n\n var _ref8 = apiRef.current || {},\n _ref8$mediaRef = _ref8.mediaRef,\n videoMediaRef = _ref8$mediaRef === void 0 ? null : _ref8$mediaRef;\n\n var _ref9 = videoMediaRef || {},\n _ref9$current = _ref9.current,\n videoElement = _ref9$current === void 0 ? null : _ref9$current;\n\n var videoTexture = new VideoTexture(videoElement);\n var videoMaterial = new MeshBasicMaterial({\n map: videoTexture\n });\n var mesh = new Mesh(geometry, videoMaterial);\n scene.current.add(mesh);\n renderer.current = new WebGLRenderer({\n canvas: canvasRef.current\n });\n renderer.current.setPixelRatio(typeof window !== 'undefined' ? window.devicePixelRatio : 1);\n renderer.current.setSize(canvasWidth, canvasHeight);\n render3D();\n }\n\n return function () {\n if (withVideoSphere) {\n camera.current = null;\n scene.current = null;\n renderer.current = null;\n }\n };\n }, [hasVideoUrl, withVideoSphere, render3D]);\n useAnimationFrame(render3D, {\n disabled: !withVideoSphere\n }); // Resize 3D layer\n\n useEffect(function () {\n if (camera.current !== null && renderer.current !== null) {\n camera.current.aspect = width / height;\n camera.current.updateProjectionMatrix();\n renderer.current.setSize(width, height);\n }\n }, [width, height]); // Pointer interaction\n\n var togglePlayTimeout = useRef(null);\n var onPointerDown = useCallback(function (e) {\n pointerDown.current = true;\n pointerDownX.current = e.clientX;\n pointerDownY.current = e.clientY;\n pointerLon.current = lon.current;\n pointerLat.current = lat.current;\n\n if (togglePlayTimeout.current !== null) {\n clearTimeout(togglePlayTimeout.current);\n }\n\n togglePlayTimeout.current = setTimeout(function () {\n togglePlay();\n togglePlayTimeout.current = null;\n }, 300);\n }, [togglePlay]);\n var pixelsMoved = useRef(0);\n var lastPointerClient = useRef(null);\n var pixelsMovedTracked = useRef(false);\n var onPointerMove = useCallback(function (e) {\n if (pointerDown.current) {\n var _ref10 = e || {},\n _ref10$clientX = _ref10.clientX,\n clientX = _ref10$clientX === void 0 ? null : _ref10$clientX,\n _ref10$clientY = _ref10.clientY,\n clientY = _ref10$clientY === void 0 ? null : _ref10$clientY;\n\n var downDeltaX = pointerDownX.current - clientX;\n var downDeltaY = pointerDownY.current - clientY;\n lon.current = downDeltaX * 0.2 + pointerLon.current;\n lat.current = downDeltaY * 0.2 + pointerLat.current;\n\n var _ref11 = lastPointerClient.current || {},\n _ref11$x = _ref11.x,\n lastX = _ref11$x === void 0 ? clientX : _ref11$x,\n _ref11$y = _ref11.y,\n lastY = _ref11$y === void 0 ? clientY : _ref11$y;\n\n var deltaX = Math.abs(lastX - clientX) || 0;\n var deltaY = Math.abs(lastY - clientY) || 0;\n pixelsMoved.current += deltaX + deltaY;\n\n if (!pixelsMovedTracked.current && pixelsMoved.current > Math.min(width, height)) {\n trackScreenEvent('drag_sphere', video.name);\n pixelsMovedTracked.current = true;\n }\n\n lastPointerClient.current = {\n x: clientX,\n y: clientY\n };\n\n if (Math.abs(downDeltaX) > 3 || Math.abs(downDeltaY) > 3) {\n if (togglePlayTimeout.current !== null) {\n clearTimeout(togglePlayTimeout.current);\n togglePlayTimeout.current = null;\n }\n }\n }\n }, [width, height, trackScreenEvent, video]);\n var onPointerUp = useCallback(function (e) {\n var videoContainer = videoContainerRef.current;\n\n if (pointerDown.current && videoContainer !== null) {\n var distX = Math.abs(pointerDownX.current - e.clientX);\n var distY = Math.abs(pointerDownY.current - e.clientY);\n var pixelsMovedTolerance = 3;\n var tapNextScreenWidthPercent = 0.5;\n var canTapToNavigate = !landscape && togglePlayTimeout.current !== null;\n var validNavigateTap = canTapToNavigate && distX < pixelsMovedTolerance && distY < pixelsMovedTolerance;\n\n if (validNavigateTap) {\n var _videoContainer$getBo = videoContainer.getBoundingClientRect(),\n _videoContainer$getBo2 = _videoContainer$getBo.left,\n containerX = _videoContainer$getBo2 === void 0 ? 0 : _videoContainer$getBo2,\n containerWidth = _videoContainer$getBo.width;\n\n var hasTappedLeft = e.clientX - containerX < containerWidth * (1 - tapNextScreenWidthPercent);\n\n if (hasTappedLeft) {\n if (onPrevious !== null) {\n onPrevious();\n }\n } else if (onNext !== null) {\n onNext();\n }\n }\n\n if (togglePlayTimeout.current !== null) {\n clearTimeout(togglePlayTimeout.current);\n togglePlayTimeout.current = null;\n }\n }\n\n pointerDown.current = false;\n }, [onPrevious, onNext, landscape]);\n var hasCallToAction = callToAction !== null && callToAction.active === true; // Building elements ------------------\n\n var items = [/*#__PURE__*/React.createElement(ScreenElement, {\n key: \"video\",\n placeholder: /*#__PURE__*/React.createElement(PlaceholderVideo360, {\n className: styles.placeholder,\n width: \"100%\",\n height: \"100%\"\n }),\n emptyClassName: styles.empty,\n emptyLabel: /*#__PURE__*/React.createElement(FormattedMessage, {\n id: \"oLtEu6\",\n defaultMessage: [{\n \"type\": 0,\n \"value\": \"Video 360\"\n }]\n }),\n isEmpty: !withVideoSphere\n }, /*#__PURE__*/React.createElement(Transitions, {\n playing: transitionPlaying,\n transitions: transitions,\n disabled: transitionDisabled,\n fullscreen: true\n }, withVideoSphere ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"canvas\", {\n ref: canvasRef,\n className: styles.canvas\n }), /*#__PURE__*/React.createElement(\"button\", {\n className: styles.canvasButton,\n type: \"button\",\n \"aria-label\": \"canvas-interaction\",\n onPointerDown: onPointerDown,\n onPointerMove: onPointerMove,\n onPointerUp: onPointerUp,\n tabIndex: current && isView ? null : '-1'\n })) : /*#__PURE__*/React.createElement(\"div\", {\n className: styles.videoContainer,\n style: {\n width: resizedVideoWidth,\n height: resizedVideoHeight,\n left: resizedVideoLeft,\n top: resizedVideoTop\n }\n }, /*#__PURE__*/React.createElement(Image, {\n className: styles.video,\n media: {\n url: thumbnailUrl,\n metadata: {\n width: videoWidth,\n height: videoHeight\n }\n },\n width: \"100%\",\n height: \"100%\"\n })))), !isPlaceholder ? /*#__PURE__*/React.createElement(\"div\", {\n key: \"bottom-content\",\n className: styles.bottomContent\n }, /*#__PURE__*/React.createElement(Transitions, {\n playing: transitionPlaying,\n transitions: transitions,\n disabled: transitionDisabled\n }, closedCaptions !== null && !isPreview && !isCapture && !isStatic ? /*#__PURE__*/React.createElement(ClosedCaptions, {\n className: styles.closedCaptions,\n media: closedCaptions,\n currentTime: currentTime\n }) : null, withVideoSphere ? /*#__PURE__*/React.createElement(MediaControls, {\n className: styles.mediaControls,\n withSeekBar: withSeekBar,\n withPlayPause: withPlayPause,\n playing: playing,\n muted: muted,\n currentTime: currentTime,\n duration: duration,\n onTogglePlay: togglePlay,\n onToggleMute: onToggleMute,\n onSeek: seek,\n focusable: current && isView\n }) : null, hasCallToAction ? /*#__PURE__*/React.createElement(\"div\", {\n style: {\n marginTop: -spacing\n }\n }, /*#__PURE__*/React.createElement(CallToAction, {\n callToAction: callToAction,\n animationDisabled: isPreview,\n focusable: current && isView\n })) : null)) : null];\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames([styles.container, (_ref12 = {}, _defineProperty(_ref12, className, className !== null), _defineProperty(_ref12, styles.showVideo, isPreview || isStatic || isCapture), _ref12)]),\n \"data-screen-ready\": (isStatic || isCapture) && posterReady || ready\n }, !isPlaceholder ? /*#__PURE__*/React.createElement(Background, {\n background: background,\n width: width,\n height: height,\n playing: backgroundPlaying\n }) : null, /*#__PURE__*/React.createElement(Container, {\n width: width,\n height: height\n }, withVideoSphere ? /*#__PURE__*/React.createElement(\"div\", {\n ref: videoContainerRef,\n className: styles.videoContainer,\n style: {\n width: resizedVideoWidth,\n height: resizedVideoHeight,\n left: resizedVideoLeft,\n top: resizedVideoTop\n }\n }, /*#__PURE__*/React.createElement(Video, Object.assign({}, finalVideo, {\n ref: apiRef,\n className: styles.video,\n withoutCors: true,\n onReady: onVideoReady,\n onPlay: onPlay,\n onPause: onPause,\n onTimeUpdate: onTimeUpdate,\n onProgressStep: onProgressStep,\n onDurationChanged: onDurationChanged,\n onSeeked: onSeeked,\n onVolumeChanged: onVolumeChanged,\n onPosterLoaded: onPosterLoaded,\n focusable: current && isView\n }))) : null, /*#__PURE__*/React.createElement(\"div\", {\n className: styles.content\n }, items)));\n};\n\nVideo360Screen.propTypes = propTypes;\nVideo360Screen.defaultProps = defaultProps;\nvar Video360Screen$1 = /*#__PURE__*/React.memo(Video360Screen);\n\nvar transform = function transform(newStory, _ref) {\n var video = _ref.video;\n\n var _ref2 = video || {},\n _ref2$media = _ref2.media,\n media = _ref2$media === void 0 ? null : _ref2$media;\n\n var _Video = Video$1(newStory, media),\n titleStory = _Video.story,\n titleComponent = _Video.component;\n\n var _Container = Container$1(titleStory, _toConsumableArray(titleComponent ? [titleComponent] : [])),\n containerStory = _Container.story,\n containerComponent = _Container.component;\n\n return _objectSpread(_objectSpread({}, containerStory), {}, {\n components: [].concat(_toConsumableArray(newStory.components || []), _toConsumableArray(containerComponent ? [containerComponent] : []))\n });\n};\n\n// eslint-disable-next-line\n\nvar transforms = /*#__PURE__*/Object.freeze({\n __proto__: null,\n appleNews: transform\n});\n\nvar definition = {\n id: 'video-360',\n type: 'screen',\n group: {\n label: defineMessage({\n \"id\": \"+9akmg\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Audio and Video\"\n }]\n }),\n order: 5\n },\n title: defineMessage({\n \"id\": \"GRVidW\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"360 Video\"\n }]\n }),\n component: Video360Screen$1,\n layouts: ['full'],\n transforms: transforms,\n fields: [{\n name: 'video',\n type: 'video-element',\n theme: {\n color: 'primary'\n },\n defaultValue: {\n autoPlay: true\n },\n label: defineMessage({\n \"id\": \"tvl2Zc\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Video\"\n }]\n })\n }, {\n name: 'background',\n type: 'background',\n label: defineMessage({\n \"id\": \"+MPZRu\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Background\"\n }]\n })\n }, {\n name: 'callToAction',\n type: 'call-to-action',\n theme: {\n label: {\n textStyle: 'heading2'\n }\n }\n }]\n};\n\nexport { Video360Screen$1 as Video360Screen, definition as default };\n","import { ScreensManager } from '@micromag/core';\nimport audio from '@micromag/screen-audio';\nimport contribution from '@micromag/screen-contribution';\nimport conversation from '@micromag/screen-conversation';\nimport gallery from '@micromag/screen-gallery';\nimport galleryFeed from '@micromag/screen-gallery-feed';\nimport image from '@micromag/screen-image';\nimport map from '@micromag/screen-map';\nimport quiz from '@micromag/screen-quiz';\nimport quote from '@micromag/screen-quote';\nimport ranking from '@micromag/screen-ranking';\nimport survey from '@micromag/screen-survey';\nimport text from '@micromag/screen-text';\nimport timeline from '@micromag/screen-timeline';\nimport title from '@micromag/screen-title';\nimport video from '@micromag/screen-video';\nimport video360 from '@micromag/screen-video-360';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { ScreensProvider as ScreensProvider$1 } from '@micromag/core/contexts';\n\nvar manager$1 = new ScreensManager();\nmanager$1.addDefinition(audio);\nmanager$1.addDefinition(contribution);\nmanager$1.addDefinition(conversation);\nmanager$1.addDefinition(gallery);\nmanager$1.addDefinition(galleryFeed);\nmanager$1.addDefinition(image);\nmanager$1.addDefinition(map);\nmanager$1.addDefinition(quiz);\nmanager$1.addDefinition(quote);\nmanager$1.addDefinition(ranking);\nmanager$1.addDefinition(survey);\nmanager$1.addDefinition(text);\nmanager$1.addDefinition(timeline);\nmanager$1.addDefinition(title);\nmanager$1.addDefinition(video);\nmanager$1.addDefinition(video360);\n\nvar manager = new ScreensManager();\nmanager.merge(manager$1);\n\n/* eslint-disable react/jsx-props-no-spreading */\nvar propTypes = {\n children: PropTypes.node.isRequired\n};\nvar defaultProps = {};\n\nvar ScreensProvider = function ScreensProvider(_ref) {\n var children = _ref.children;\n return /*#__PURE__*/React.createElement(ScreensProvider$1, {\n manager: manager\n }, children);\n};\n\nScreensProvider.propTypes = propTypes;\nScreensProvider.defaultProps = defaultProps;\n\nexport { ScreensProvider, manager as default };\n","import _objectSpread from '@babel/runtime/helpers/objectSpread2';\nimport _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';\nimport _classCallCheck from '@babel/runtime/helpers/classCallCheck';\nimport _createClass from '@babel/runtime/helpers/createClass';\nimport React, { useContext, useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport { IntlContext, IntlProvider as IntlProvider$1 } from 'react-intl';\n\nvar IntlManager = /*#__PURE__*/function () {\n function IntlManager() {\n _classCallCheck(this, IntlManager);\n\n this.locales = [];\n }\n\n _createClass(IntlManager, [{\n key: \"addLocale\",\n value: function addLocale(locale, messages) {\n var replace = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var currentLocale = this.getLocale(locale);\n this.locales = [].concat(_toConsumableArray(currentLocale !== null ? this.locales.filter(function (it) {\n return it.locale !== locale;\n }) : this.locales), [{\n locale: locale,\n messages: currentLocale !== null && !replace ? _objectSpread(_objectSpread({}, currentLocale.messages), messages) : messages\n }]);\n }\n }, {\n key: \"getLocale\",\n value: function getLocale(locale) {\n return this.locales.find(function (it) {\n return it.locale === locale;\n }) || null;\n }\n }, {\n key: \"hasLocale\",\n value: function hasLocale(locale) {\n return this.getLocale(locale) !== null;\n }\n }, {\n key: \"getMessages\",\n value: function getMessages(locale) {\n var localeObj = this.locales.find(function (it) {\n return it.locale === locale;\n }) || null;\n\n if (localeObj === null) {\n return null;\n }\n\n return localeObj.messages;\n }\n }]);\n\n return IntlManager;\n}();\n\nvar intlManager = new IntlManager();\n\nvar defaultLocales = ['en', 'fr'];\nvar LocalesContext = /*#__PURE__*/React.createContext(defaultLocales);\nvar useLocales = function useLocales() {\n return useContext(LocalesContext);\n};\nvar useOtherLocales = function useOtherLocales() {\n var locales = useLocales();\n\n var _useContext = useContext(IntlContext),\n locale = _useContext.locale;\n\n var otherLocales = useMemo(function () {\n return locales.filter(function (it) {\n return it !== locale;\n });\n }, [locales, locale]);\n return otherLocales;\n};\nvar propTypes = {\n intlManager: PropTypes.instanceOf(IntlManager),\n locale: PropTypes.string,\n locales: PropTypes.arrayOf(PropTypes.string),\n extraMessages: PropTypes.objectOf(PropTypes.string),\n children: PropTypes.node\n};\nvar defaultProps = {\n intlManager: intlManager,\n locale: null,\n locales: null,\n extraMessages: null,\n children: null\n};\nvar IntlProvider = function IntlProvider(_ref) {\n var intlManager = _ref.intlManager,\n locale = _ref.locale,\n locales = _ref.locales,\n children = _ref.children,\n extraMessages = _ref.extraMessages;\n var previousLocales = useLocales();\n\n var _ref2 = useContext(IntlContext) || {},\n _ref2$locale = _ref2.locale,\n previousLocale = _ref2$locale === void 0 ? null : _ref2$locale,\n _ref2$messages = _ref2.messages,\n previousMessages = _ref2$messages === void 0 ? null : _ref2$messages;\n\n var messages = useMemo(function () {\n var currentMessages = intlManager.getMessages(locale);\n\n return _objectSpread(_objectSpread(_objectSpread({}, currentMessages), extraMessages), previousLocale === locale ? previousMessages : null);\n }, [locale, previousLocale, previousMessages, extraMessages]);\n return /*#__PURE__*/React.createElement(IntlProvider$1, {\n locale: locale,\n messages: messages\n }, /*#__PURE__*/React.createElement(LocalesContext.Provider, {\n value: locales || previousLocales\n }, children));\n};\nIntlProvider.propTypes = propTypes;\nIntlProvider.defaultProps = defaultProps;\n\nexport { IntlManager, IntlProvider, LocalesContext, intlManager as default, useLocales, useOtherLocales };\n","import { FieldsManager } from '@micromag/core';\nimport { defineMessage } from 'react-intl';\nimport _objectSpread from '@babel/runtime/helpers/objectSpread2';\nimport _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';\nimport { v1 } from 'uuid';\n\nvar audio = {\n id: 'audio',\n component: 'audio',\n media: true\n};\n\nvar audioElement = {\n id: 'audio-element',\n fields: [{\n name: 'media',\n type: 'audio'\n }],\n settings: [{\n name: 'autoPlay',\n type: 'toggle',\n label: defineMessage({\n \"id\": \"pJgYyE\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"AutoPlay\"\n }]\n })\n }, {\n name: 'loop',\n type: 'toggle',\n label: defineMessage({\n \"id\": \"F2SD/0\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Loop\"\n }]\n })\n }, {\n name: 'withPlayPause',\n type: 'toggle',\n label: defineMessage({\n \"id\": \"8EI08h\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"With play/pause button\"\n }]\n })\n }, {\n name: 'closedCaptions',\n type: 'closed-captions',\n label: defineMessage({\n \"id\": \"4H2n5r\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Closed captions\"\n }]\n })\n }]\n};\n\nvar answer = {\n id: 'answer',\n component: 'field-with-form',\n labelPath: 'label.body',\n fields: [{\n name: 'label',\n type: 'text-element',\n label: defineMessage({\n \"id\": \"OJi+eg\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Label\"\n }]\n })\n }, {\n name: 'buttonStyle',\n type: 'button-style',\n className: 'mt-4'\n }, {\n name: 'resultStyle',\n type: 'graph-bar-style',\n isList: true,\n label: defineMessage({\n \"id\": \"6Q4tcn\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Result style\"\n }]\n })\n }]\n};\n\nvar answers = {\n id: 'answers',\n component: 'items',\n noItemLabel: defineMessage({\n \"id\": \"A+a0kL\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"No answer...\"\n }]\n }),\n addItemLabel: defineMessage({\n \"id\": \"lGh/NP\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Add an answer\"\n }]\n }),\n itemsField: {\n type: 'answer',\n breadcrumbLabel: defineMessage({\n \"id\": \"Xdsq3k\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Answer\"\n }]\n })\n }\n};\n\nvar background = {\n id: 'background',\n isList: true,\n fields: [{\n name: 'color',\n type: 'color',\n label: defineMessage({\n \"id\": \"aarOkd\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Color\"\n }]\n }),\n breadcrumbLabel: defineMessage({\n \"id\": \"JDPMlG\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Background color\"\n }]\n })\n }, {\n name: 'image',\n type: 'image',\n label: defineMessage({\n \"id\": \"xT/onn\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Image\"\n }]\n }),\n breadcrumbLabel: defineMessage({\n \"id\": \"ySApyR\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Background image\"\n }]\n })\n }, {\n name: 'video',\n type: 'video',\n label: defineMessage({\n \"id\": \"vERejo\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Video\"\n }]\n }),\n breadcrumbLabel: defineMessage({\n \"id\": \"/MeuM1\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Background video\"\n }]\n })\n }],\n settings: [{\n type: 'fields',\n isList: true,\n fields: [{\n name: 'fit',\n type: 'fit',\n label: defineMessage({\n \"id\": \"amEvH1\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Fit\"\n }]\n })\n }, {\n name: 'repeat',\n type: 'toggle',\n label: defineMessage({\n \"id\": \"WlNxMj\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Repeat\"\n }]\n })\n }]\n }]\n};\n\nvar borderRadius = {\n id: 'border-radius',\n component: 'border-radius'\n};\n\nvar borderStyle = {\n id: 'border-style',\n component: 'border-style'\n};\n\nvar borderWidth = {\n id: 'border-width',\n component: 'border-width'\n};\n\nvar buttonStyle = {\n id: 'button-style',\n fields: [{\n type: 'fields',\n label: defineMessage({\n \"id\": \"JnCf7K\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Button style\"\n }]\n }),\n isList: true,\n fields: [{\n name: 'backgroundColor',\n label: defineMessage({\n \"id\": \"vzW/wd\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Background color\"\n }]\n }),\n type: 'color'\n }, {\n name: 'borderRadius',\n type: 'number',\n isHorizontal: true,\n dataList: [0, 2, 4, 6, 8, 10],\n label: defineMessage({\n \"id\": \"7j/LQ6\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Rounded corners\"\n }]\n })\n }]\n }, {\n type: 'fields',\n label: defineMessage({\n \"id\": \"vA+9dU\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Border\"\n }]\n }),\n isList: true,\n fields: [{\n name: 'borderWidth',\n type: 'number',\n isHorizontal: true,\n dataList: [0, 1, 2, 3, 4, 5],\n label: defineMessage({\n \"id\": \"4HlSsf\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Size\"\n }]\n })\n }, {\n name: 'borderColor',\n type: 'color',\n label: defineMessage({\n \"id\": \"+VD/9p\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Color\"\n }]\n })\n }, {\n name: 'borderStyle',\n type: 'border-style',\n isHorizontal: true\n }]\n }]\n};\n\nvar buttonElement = {\n id: 'button-element',\n component: 'text-element',\n inline: true,\n settings: [{\n name: 'textStyle',\n type: 'text-style'\n }, {\n name: 'buttonStyle',\n type: 'button-style',\n className: 'mt-4'\n }]\n};\n\nvar callToAction = {\n id: 'call-to-action',\n isList: true,\n component: 'call-to-action',\n fields: [{\n name: 'active',\n type: 'toggle',\n isHorizontal: true,\n label: defineMessage({\n \"id\": \"52tY6n\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Call to Action\"\n }]\n })\n }, {\n name: 'type',\n type: 'radios',\n options: [{\n value: 'swipe-up',\n label: defineMessage({\n \"id\": \"jvvJbk\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Swipe up\"\n }]\n })\n }, {\n value: 'button',\n label: defineMessage({\n \"id\": \"fxfV+l\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Button\"\n }]\n })\n }],\n firstOptionAsDefault: true,\n isHorizontal: true,\n label: defineMessage({\n \"id\": \"ZvKOEb\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Type\"\n }]\n })\n }, {\n name: 'url',\n type: 'url',\n // isHorizontal: true,\n label: defineMessage({\n \"id\": \"TXkHah\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Link\"\n }]\n })\n }, {\n name: 'label',\n type: 'text-element',\n textOnly: true,\n label: defineMessage({\n \"id\": \"D/N9gA\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Label\"\n }]\n })\n }]\n};\n\nvar checkboxes = {\n id: 'checkboxes',\n component: 'checkboxes'\n};\n\nvar closedCaptions = {\n id: 'closed-captions',\n component: 'closed-captions'\n};\n\nvar color = {\n id: 'color',\n component: 'color'\n};\n\nvar conversation = {\n id: 'conversation',\n component: 'conversation',\n fields: [{\n name: 'speakers',\n type: 'speakers',\n label: defineMessage({\n \"id\": \"JC9Qlf\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Speakers\"\n }]\n })\n }, {\n name: 'messages',\n type: 'messages',\n label: defineMessage({\n \"id\": \"f68O+0\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Messages\"\n }]\n })\n }],\n settings: [{\n name: 'messageStyle',\n type: 'text-style',\n label: defineMessage({\n \"id\": \"k81FRn\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Message style\"\n }]\n })\n }, {\n name: 'speakerStyle',\n type: 'text-style',\n className: 'mt-4',\n label: defineMessage({\n \"id\": \"9PfjeE\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Speaker style\"\n }]\n })\n }]\n};\n\nvar email = {\n id: 'email',\n component: 'text',\n type: 'email'\n};\n\nvar entries = {\n id: 'entries',\n component: 'items',\n noItemLabel: defineMessage({\n \"id\": \"iHV3W3\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"No entry...\"\n }]\n }),\n addItemLabel: defineMessage({\n \"id\": \"l/Y6or\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Add an entry\"\n }]\n }),\n itemsField: {\n type: 'entry',\n breadcrumbLabel: defineMessage({\n \"id\": \"wsNfYo\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Entry\"\n }]\n })\n }\n};\n\nvar entriesWithImage = _objectSpread(_objectSpread({}, entries), {}, {\n id: 'entries-with-image',\n itemsField: {\n type: 'entry-with-image',\n breadcrumbLabel: defineMessage({\n \"id\": \"wsNfYo\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Entry\"\n }]\n })\n }\n});\n\nvar entriesWithVisual = _objectSpread(_objectSpread({}, entries), {}, {\n id: 'entries-with-visual',\n itemsField: {\n type: 'entry-with-visual',\n breadcrumbLabel: defineMessage({\n \"id\": \"wsNfYo\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Entry\"\n }]\n })\n }\n});\n\nvar entry = {\n id: 'entry',\n component: 'field-with-form',\n labelPath: 'title.body',\n fields: [{\n name: 'title',\n type: 'heading-element',\n label: defineMessage({\n \"id\": \"+AEVbJ\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Title\"\n }]\n })\n }, {\n name: 'description',\n type: 'text-element',\n label: defineMessage({\n \"id\": \"ZCe0r4\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Description\"\n }]\n })\n }]\n};\n\nvar entryWithImage = _objectSpread(_objectSpread({}, entry), {}, {\n id: 'entry-with-image',\n fields: [].concat(_toConsumableArray(entry.fields), [{\n name: 'image',\n type: 'image',\n label: defineMessage({\n \"id\": \"xT/onn\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Image\"\n }]\n })\n }])\n});\n\nvar entryWithVisual = _objectSpread(_objectSpread({}, entry), {}, {\n id: 'entry-with-visual',\n fields: [].concat(_toConsumableArray(entry.fields), [{\n name: 'image',\n type: 'visual',\n label: defineMessage({\n \"id\": \"xT/onn\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Image\"\n }]\n })\n }])\n});\n\nvar fieldWithForm = {\n id: 'field-with-form',\n component: 'field-with-form'\n};\n\nvar fields$1 = {\n id: 'fields',\n component: 'fields'\n};\n\nvar fit = {\n id: 'fit',\n component: 'fit'\n};\n\nvar font = {\n id: 'font',\n component: 'font',\n media: true\n};\n\nvar fonts = {\n id: 'fonts',\n component: 'fonts',\n itemsField: {\n type: 'font'\n }\n};\n\nvar fontFamily = {\n id: 'font-family',\n component: 'font-family'\n};\n\nvar fontSize = {\n id: 'font-size',\n component: 'font-size'\n};\n\nvar geoPosition = {\n id: 'geo-position',\n component: 'geo-position'\n};\n\nvar graphBarStyle = {\n id: 'graph-bar-style',\n isList: true,\n fields: [{\n name: 'barColor',\n type: 'color',\n label: defineMessage({\n \"id\": \"qjL/eA\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Bar\"\n }]\n })\n }, {\n name: 'textColor',\n type: 'color',\n label: defineMessage({\n \"id\": \"ZMS1Wv\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Text\"\n }]\n })\n }]\n};\n\nvar textElement = {\n id: 'text-element',\n component: 'text-element',\n settings: [{\n name: 'textStyle',\n type: 'text-style'\n }]\n};\n\nvar headingElement = _objectSpread(_objectSpread({}, textElement), {}, {\n id: 'heading-element',\n size: 'lg',\n inline: true\n});\n\nvar imageWithCaption = {\n id: 'image-with-caption',\n component: 'field-with-form',\n labelPath: 'caption.body',\n thumbnailPath: 'media.thumbnail_url',\n fields: [{\n name: 'media',\n type: 'image',\n label: defineMessage({\n \"id\": \"xT/onn\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Image\"\n }]\n })\n }, {\n name: 'caption',\n type: 'text-element',\n label: defineMessage({\n \"id\": \"p85qJD\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Caption\"\n }]\n })\n }]\n};\n\nvar image = {\n id: 'image',\n component: 'image',\n media: true\n};\n\nvar imagesWithCaption = {\n id: 'images-with-caption',\n component: 'items',\n noItemLabel: defineMessage({\n \"id\": \"dFMzBu\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"No image...\"\n }]\n }),\n addItemLabel: defineMessage({\n \"id\": \"QSmRdP\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Add an image\"\n }]\n }),\n itemsField: {\n type: 'image-with-caption',\n breadcrumbLabel: defineMessage({\n \"id\": \"S3gGiD\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Image\"\n }]\n })\n }\n};\n\nvar images = {\n id: 'images',\n component: 'images',\n itemsField: {\n type: 'image',\n breadcrumbLabel: defineMessage({\n \"id\": \"/UoxuB\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Image\"\n }]\n })\n }\n};\n\nvar inputElement = {\n id: 'input-element',\n component: 'input-element',\n settings: [{\n name: 'textStyle',\n type: 'text-style'\n }, {\n name: 'buttonStyle',\n type: 'button-style',\n className: 'mt-4'\n }]\n};\n\nvar items = {\n id: 'items',\n component: 'items'\n};\n\nvar itemTextStyle = {\n id: 'item-text-style',\n component: 'field-with-form',\n fields: [{\n name: 'style',\n type: 'text-style'\n }]\n};\n\nvar letterSpacing = {\n id: 'letter-spacing',\n component: 'number-with-icon',\n icon: {\n icon: [48, 48, [], 'f067', 'M12 14h5l-7-7-7 7h5v20h-5l7 7 7-7h-5v-20zm8-4v4h24v-4h-24zm0 28h24v-4h-24v4zm0-12h24v-4h-24v4z'],\n iconName: 'letter-spacing',\n prefix: 'fas'\n },\n iconRotation: -90,\n dataList: [-2, -1.5, -1, -0.5, 0, 0.5, 1, 1.5, 2],\n \"float\": true\n};\n\nvar lineHeight = {\n id: 'line-height',\n component: 'number-with-icon',\n icon: {\n icon: [48, 48, [], 'f067', 'M12 14h5l-7-7-7 7h5v20h-5l7 7 7-7h-5v-20zm8-4v4h24v-4h-24zm0 28h24v-4h-24v4zm0-12h24v-4h-24v4z'],\n iconName: 'line-height',\n prefix: 'fas'\n },\n dataList: [1, 1.1, 1.2, 1.3, 1.4, 1.5, 2],\n \"float\": true\n};\n\nvar marker = {\n id: 'marker',\n component: 'field-with-form',\n labelPath: 'title.body',\n fields: [{\n name: 'title',\n type: 'heading-element',\n label: defineMessage({\n \"id\": \"+AEVbJ\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Title\"\n }]\n })\n }, {\n name: 'description',\n type: 'text-element',\n label: defineMessage({\n \"id\": \"ZCe0r4\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Description\"\n }]\n })\n }, {\n name: 'geoPosition',\n type: 'geo-position',\n label: defineMessage({\n \"id\": \"u3ok54\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Position\"\n }]\n })\n }]\n};\n\nvar markerWithImage = {\n id: 'marker-with-image',\n component: 'field-with-form',\n labelPath: 'title.body',\n fields: [{\n name: 'title',\n type: 'heading-element',\n label: defineMessage({\n \"id\": \"+AEVbJ\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Title\"\n }]\n })\n }, {\n name: 'description',\n type: 'text-element',\n label: defineMessage({\n \"id\": \"ZCe0r4\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Description\"\n }]\n })\n }, {\n name: 'image',\n type: 'image',\n label: defineMessage({\n \"id\": \"xT/onn\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Image\"\n }]\n })\n }, {\n name: 'geoPosition',\n type: 'geo-position',\n label: defineMessage({\n \"id\": \"u3ok54\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Position\"\n }]\n })\n }]\n};\n\nvar markers = {\n id: 'markers',\n component: 'items',\n noItemLabel: defineMessage({\n \"id\": \"rdFCsN\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"No marker...\"\n }]\n }),\n addItemLabel: defineMessage({\n \"id\": \"8oczXQ\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Add a marker\"\n }]\n }),\n itemsField: {\n type: 'marker',\n breadcrumbLabel: defineMessage({\n \"id\": \"t7FVa4\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Marker\"\n }]\n })\n }\n};\n\nvar markersWithImage = {\n id: 'markers-with-image',\n component: 'items',\n noItemLabel: defineMessage({\n \"id\": \"rdFCsN\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"No marker...\"\n }]\n }),\n addItemLabel: defineMessage({\n \"id\": \"8oczXQ\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Add a marker\"\n }]\n }),\n itemsField: {\n type: 'marker-with-image',\n breadcrumbLabel: defineMessage({\n \"id\": \"4cCMV4\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Marker\"\n }]\n })\n }\n};\n\nvar mapZoom = {\n id: 'map-zoom',\n component: 'number',\n min: 0,\n max: 20\n};\n\nvar message = {\n id: 'message',\n component: 'message',\n labelPath: 'message',\n thumbnailPath: 'avatar.thumbnail_url',\n fields: [{\n name: 'speaker',\n type: 'select',\n label: defineMessage({\n \"id\": \"muPX/j\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Speaker\"\n }]\n })\n }, {\n name: 'message',\n type: 'text',\n label: defineMessage({\n \"id\": \"4R/bdr\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Message\"\n }]\n })\n }, {\n name: 'image',\n type: 'image',\n label: defineMessage({\n \"id\": \"xT/onn\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Image\"\n }]\n })\n }]\n};\n\nvar messages = {\n id: 'messages',\n component: 'items',\n noItemLabel: defineMessage({\n \"id\": \"HTd98/\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"No message...\"\n }]\n }),\n addItemLabel: defineMessage({\n \"id\": \"xCj1gI\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Add a message\"\n }]\n }),\n itemsField: {\n type: 'message',\n breadcrumbLabel: defineMessage({\n \"id\": \"7cGi3J\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Message\"\n }]\n })\n }\n};\n\nvar metadata = {\n id: 'metadata',\n component: 'field-with-form',\n noValueLabel: defineMessage({\n \"id\": \"K1BxIr\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Edit metadata...\"\n }]\n }),\n fields: [{\n name: 'title',\n type: 'text',\n label: defineMessage({\n \"id\": \"+AEVbJ\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Title\"\n }]\n })\n }, {\n name: 'description',\n type: 'text',\n label: defineMessage({\n \"id\": \"ZCe0r4\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Description\"\n }]\n })\n }]\n};\n\nvar number = {\n id: 'number',\n component: 'number'\n};\n\nvar password = {\n id: 'password',\n component: 'text',\n type: 'password'\n};\n\nvar parameters = {\n id: 'parameters',\n isList: true,\n fields: [{\n name: 'metadata',\n type: 'metadata',\n label: defineMessage({\n \"id\": \"nc8LF0\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Metadata\"\n }]\n })\n }]\n};\n\nvar quizAnswer = {\n id: 'quiz-answer',\n component: 'field-with-form',\n labelPath: 'label.body',\n fields: [{\n name: 'label',\n type: 'text-element',\n textOnly: true,\n label: defineMessage({\n \"id\": \"OJi+eg\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Label\"\n }]\n })\n }, {\n name: 'good',\n type: 'toggle',\n label: defineMessage({\n \"id\": \"3NghmM\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Good answer\"\n }]\n })\n }, {\n name: 'buttonStyle',\n type: 'button-style',\n className: 'mt-4'\n }]\n};\n\nvar quizAnswers = {\n id: 'quiz-answers',\n component: 'items',\n noItemLabel: defineMessage({\n \"id\": \"A+a0kL\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"No answer...\"\n }]\n }),\n addItemLabel: defineMessage({\n \"id\": \"lGh/NP\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Add an answer\"\n }]\n }),\n itemsField: {\n type: 'quiz-answer',\n breadcrumbLabel: defineMessage({\n \"id\": \"Bv/pu7\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Answer\"\n }]\n })\n }\n};\n\nvar radios = {\n id: 'radios',\n component: 'radios'\n};\n\nvar screenLayout = {\n id: 'screen-layout',\n component: 'screen-layout'\n};\n\nvar select = {\n id: 'select',\n component: 'select-advanced'\n};\n\nvar speaker = {\n id: 'speaker',\n component: 'field-with-form',\n labelPath: 'name',\n thumbnailPath: 'avatar.thumbnail_url',\n fields: [{\n name: 'name',\n type: 'text',\n label: defineMessage({\n \"id\": \"UUv8FR\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Name\"\n }]\n })\n }, {\n name: 'avatar',\n type: 'image',\n label: defineMessage({\n \"id\": \"hqOIl4\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Avatar\"\n }]\n })\n }, {\n name: 'side',\n type: 'radios',\n options: [{\n value: 'left',\n label: defineMessage({\n \"id\": \"O2JVA+\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Left\"\n }]\n })\n }, {\n value: 'right',\n label: defineMessage({\n \"id\": \"ptJkUl\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Right\"\n }]\n })\n }],\n label: defineMessage({\n \"id\": \"6ak5YN\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Side\"\n }]\n })\n }, {\n name: 'color',\n type: 'color',\n label: defineMessage({\n \"id\": \"aarOkd\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Color\"\n }]\n })\n }]\n};\n\nvar speakers = {\n id: 'speakers',\n component: 'items',\n getDefaultValue: function getDefaultValue() {\n return {\n id: v1(),\n side: 'left'\n };\n },\n noItemLabel: defineMessage({\n \"id\": \"+nhSvj\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"No speaker...\"\n }]\n }),\n addItemLabel: defineMessage({\n \"id\": \"opcGwP\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Add a speaker\"\n }]\n }),\n itemsField: {\n type: 'speaker',\n breadcrumbLabel: defineMessage({\n \"id\": \"9Nk11Y\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Speaker\"\n }]\n })\n }\n};\n\nvar textStyle = {\n id: 'text-style',\n fields: [{\n type: 'fields',\n label: defineMessage({\n \"id\": \"Wr9olU\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Typography\"\n }]\n }),\n isList: true,\n fields: [{\n name: 'fontFamily',\n type: 'font-family',\n label: defineMessage({\n \"id\": \"ET527E\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Font family\"\n }]\n })\n }, {\n name: 'color',\n type: 'color',\n label: defineMessage({\n \"id\": \"aarOkd\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Color\"\n }]\n })\n }, {\n name: 'fontSize',\n type: 'font-size',\n label: defineMessage({\n \"id\": \"tYGev7\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Font size\"\n }]\n })\n }, {\n component: 'font-style-with-align',\n fontStyleName: 'fontStyle',\n alignName: 'align'\n }]\n }, {\n type: 'fields',\n name: 'highlight',\n label: defineMessage({\n \"id\": \"HWpflq\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Highlight\"\n }]\n }),\n isList: true,\n fields: [{\n name: 'color',\n type: 'color',\n label: defineMessage({\n \"id\": \"aarOkd\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Color\"\n }]\n })\n }, {\n name: 'textColor',\n type: 'color',\n label: defineMessage({\n \"id\": \"DU1qdc\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Text color\"\n }]\n })\n }]\n }, {\n type: 'fields',\n name: 'link',\n label: defineMessage({\n \"id\": \"ICXTfR\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Links\"\n }]\n }),\n isList: true,\n fields: [{\n name: 'color',\n type: 'color',\n label: defineMessage({\n \"id\": \"aarOkd\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Color\"\n }]\n })\n }, {\n name: 'fontStyle',\n component: 'font-style',\n isHorizontal: true,\n label: defineMessage({\n \"id\": \"6MxaVf\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Style\"\n }]\n })\n }]\n }, {\n type: 'fields',\n label: defineMessage({\n \"id\": \"y7xsPe\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Advanced settings\"\n }]\n }),\n isList: true,\n fields: [{\n name: 'lineHeight',\n type: 'line-height',\n label: defineMessage({\n \"id\": \"31zuCS\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Line height\"\n }]\n })\n }, {\n name: 'letterSpacing',\n type: 'letter-spacing',\n label: defineMessage({\n \"id\": \"Z5jrDS\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Letter spacing\"\n }]\n })\n }, {\n component: 'font-style-transform',\n name: 'fontStyle',\n transformName: 'transform',\n label: defineMessage({\n \"id\": \"GMCLhn\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Case\"\n }]\n })\n }]\n }]\n};\n\nvar text = {\n id: 'text',\n component: 'text'\n};\n\nvar toggle = {\n id: 'toggle',\n component: 'toggle'\n};\n\nvar tokens = {\n id: 'tokens',\n component: 'tokens'\n};\n\nvar url = {\n id: 'url',\n component: 'url'\n};\n\nvar video = {\n id: 'video',\n component: 'video',\n media: true\n};\n\nvar videoElement = {\n id: 'video-element',\n fields: [{\n name: 'media',\n type: 'video'\n }],\n settings: [{\n name: 'autoPlay',\n type: 'toggle',\n label: defineMessage({\n \"id\": \"pJgYyE\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"AutoPlay\"\n }]\n })\n }, {\n name: 'loop',\n type: 'toggle',\n label: defineMessage({\n \"id\": \"F2SD/0\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Loop\"\n }]\n })\n }, {\n name: 'withPlayPause',\n type: 'toggle',\n label: defineMessage({\n \"id\": \"8EI08h\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"With play/pause button\"\n }]\n })\n }, {\n name: 'withSeekBar',\n type: 'toggle',\n label: defineMessage({\n \"id\": \"T0pi1u\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"With seek bar\"\n }]\n })\n }, {\n name: 'closedCaptions',\n type: 'closed-captions',\n label: defineMessage({\n \"id\": \"4H2n5r\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Closed captions\"\n }]\n })\n }]\n};\n\nvar visual = {\n id: 'visual',\n component: 'visual',\n media: true\n};\n\nvar visualWithCaption = {\n id: 'visual-with-caption',\n component: 'field-with-form',\n labelPath: 'caption.body',\n thumbnailPath: 'media.thumbnail_url',\n fields: [{\n name: 'media',\n type: 'visual',\n label: defineMessage({\n \"id\": \"xT/onn\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Image\"\n }]\n })\n }, {\n name: 'caption',\n type: 'text-element',\n label: defineMessage({\n \"id\": \"p85qJD\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Caption\"\n }]\n })\n }]\n};\n\nvar visualsWithCaption = {\n id: 'visuals-with-caption',\n component: 'items',\n noItemLabel: defineMessage({\n \"id\": \"dFMzBu\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"No image...\"\n }]\n }),\n addItemLabel: defineMessage({\n \"id\": \"QSmRdP\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Add an image\"\n }]\n }),\n itemsField: {\n type: 'visual-with-caption',\n breadcrumbLabel: defineMessage({\n \"id\": \"S3gGiD\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Image\"\n }]\n })\n }\n};\n\nvar visuals = {\n id: 'visuals',\n component: 'visuals',\n itemsField: {\n type: 'visual',\n breadcrumbLabel: defineMessage({\n \"id\": \"/UoxuB\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Image\"\n }]\n })\n }\n};\n\nvar fields = /*#__PURE__*/Object.freeze({\n __proto__: null,\n audio: audio,\n audioElement: audioElement,\n answer: answer,\n answers: answers,\n background: background,\n borderRadius: borderRadius,\n borderStyle: borderStyle,\n borderWidth: borderWidth,\n buttonStyle: buttonStyle,\n buttonElement: buttonElement,\n callToAction: callToAction,\n checkboxes: checkboxes,\n closedCaptions: closedCaptions,\n color: color,\n conversation: conversation,\n email: email,\n entriesWithImage: entriesWithImage,\n entriesWithVisual: entriesWithVisual,\n entries: entries,\n entryWithImage: entryWithImage,\n entryWithVisual: entryWithVisual,\n entry: entry,\n fieldWithForm: fieldWithForm,\n fields: fields$1,\n fit: fit,\n font: font,\n fonts: fonts,\n fontFamily: fontFamily,\n fontSize: fontSize,\n geoPosition: geoPosition,\n graphBarStyle: graphBarStyle,\n headingElement: headingElement,\n imageWithCaption: imageWithCaption,\n image: image,\n imagesWithCaption: imagesWithCaption,\n images: images,\n inputElement: inputElement,\n items: items,\n itemTextStyle: itemTextStyle,\n letterSpacing: letterSpacing,\n lineHeight: lineHeight,\n marker: marker,\n markerWithImage: markerWithImage,\n markers: markers,\n markersWithImage: markersWithImage,\n mapZoom: mapZoom,\n message: message,\n messages: messages,\n metadata: metadata,\n number: number,\n password: password,\n parameters: parameters,\n quizAnswer: quizAnswer,\n quizAnswers: quizAnswers,\n radios: radios,\n screenLayout: screenLayout,\n select: select,\n speaker: speaker,\n speakers: speakers,\n textElement: textElement,\n textStyle: textStyle,\n text: text,\n toggle: toggle,\n tokens: tokens,\n url: url,\n video: video,\n videoElement: videoElement,\n visual: visual,\n visualWithCaption: visualWithCaption,\n visualsWithCaption: visualsWithCaption,\n visuals: visuals\n});\n\nvar allFields = Object.keys(fields).map(function (name) {\n return fields[name];\n});\nvar manager$1 = new FieldsManager(allFields);\n\nvar manager = new FieldsManager();\nmanager.merge(manager$1);\n\nexport { manager as default };\n","import _objectSpread from '@babel/runtime/helpers/objectSpread2';\nimport _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';\nimport React, { useRef, useCallback, useMemo, useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { Switch, Route, MemoryRouter } from 'react-router';\nimport { BrowserRouter } from 'react-router-dom';\nimport { ScreensProvider } from '@micromag/screens';\nimport { IntlProvider } from '@micromag/intl';\nimport fieldsManager from '@micromag/fields/manager';\nimport { PropTypes as PropTypes$1 } from '@micromag/core';\nimport { ScreenSizeProvider, ViewerProvider, useRoutes, useRoutePush, GoogleKeysProvider, GoogleMapsClientProvider, FieldsProvider, UserInteractionProvider, TrackingProvider, RoutesProvider } from '@micromag/core/contexts';\nimport _defineProperty from '@babel/runtime/helpers/defineProperty';\nimport _slicedToArray from '@babel/runtime/helpers/slicedToArray';\nimport _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';\nimport { Button, ScreenPreview, Screen, Meta, FontFaces } from '@micromag/core/components';\nimport { useDocumentEvent, useParsedStory, useLoadedFonts, useTrackScreenView, useTrackEvent, useScreenSizeFromElement, useResizeObserver, useFullscreen } from '@micromag/core/hooks';\nimport { getStyleFromColor, getStyleFromText, getDeviceScreens } from '@micromag/core/utils';\nimport { useSpring, config } from '@react-spring/core';\nimport { animated } from '@react-spring/web';\nimport classNames from 'classnames';\nimport { Helmet } from 'react-helmet';\nimport { useIntl, FormattedMessage } from 'react-intl';\nimport { useDrag } from 'react-use-gesture';\nimport { faTimes, faShare, faCompress, faExpand } from '@fortawesome/free-solid-svg-icons';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport Scroll from '@micromag/element-scroll';\nimport { FacebookShareButton, FacebookIcon, TwitterShareButton, TwitterIcon, EmailShareButton, EmailIcon } from 'react-share';\n\nvar routes = PropTypes.shape({\n home: PropTypes.string.isRequired,\n screen: PropTypes.string.isRequired\n});\n\nvar styles$6 = {\"container\":\"micromag-viewer-container\",\"menuPreview\":\"micromag-viewer-menuPreview\",\"menuPreviewContainer\":\"micromag-viewer-menuPreviewContainer\",\"screen\":\"micromag-viewer-screen\",\"screenInner\":\"micromag-viewer-screenInner\",\"content\":\"micromag-viewer-content\",\"menuDotsContainer\":\"micromag-viewer-menuDotsContainer\",\"menuDots\":\"micromag-viewer-menuDots\",\"current\":\"micromag-viewer-current\",\"landscape\":\"micromag-viewer-landscape\",\"hideMenu\":\"micromag-viewer-hideMenu\",\"ready\":\"micromag-viewer-ready\"};\n\nvar styles$5 = {\"container\":\"micromag-viewer-menus-menu-dots-container\",\"closeButton\":\"micromag-viewer-menus-menu-dots-closeButton\",\"item\":\"micromag-viewer-menus-menu-dots-item\",\"button\":\"micromag-viewer-menus-menu-dots-button\",\"menuButton\":\"micromag-viewer-menus-menu-dots-menuButton\",\"items\":\"micromag-viewer-menus-menu-dots-items\",\"dot\":\"micromag-viewer-menus-menu-dots-dot\",\"menu\":\"micromag-viewer-menus-menu-dots-menu\",\"menuIcon\":\"micromag-viewer-menus-menu-dots-menuIcon\",\"vertical\":\"micromag-viewer-menus-menu-dots-vertical\",\"withShadow\":\"micromag-viewer-menus-menu-dots-withShadow\"};\n\nvar styles$4 = {};\n\nvar propTypes$8 = {\n size: PropTypes.number,\n spacing: PropTypes.number,\n color: PropTypes.string,\n className: PropTypes.string\n};\nvar defaultProps$8 = {\n size: 100,\n spacing: 8,\n color: 'white',\n className: null\n};\n\nvar MenuIcon = function MenuIcon(_ref) {\n var size = _ref.size,\n spacing = _ref.spacing,\n color = _ref.color,\n className = _ref.className;\n var squareSize = (size - 2 * spacing) / 3;\n return /*#__PURE__*/React.createElement(\"svg\", {\n className: classNames([styles$4.container, _defineProperty({}, className, className !== null)]),\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 \".concat(size, \" \").concat(size),\n \"aria-hidden\": \"true\"\n }, _toConsumableArray(new Array(9)).map(function (square, squareI) {\n var x = squareI % 3 * (squareSize + spacing);\n var y = Math.floor(squareI / 3) * (squareSize + spacing);\n return /*#__PURE__*/React.createElement(\"rect\", {\n key: \"square-\".concat(squareI),\n fill: color,\n x: x,\n y: y,\n width: squareSize,\n height: squareSize\n });\n }));\n};\n\nMenuIcon.propTypes = propTypes$8;\nMenuIcon.defaultProps = defaultProps$8;\n\nvar propTypes$7 = {\n direction: PropTypes.oneOf(['horizontal', 'vertical']),\n withShadow: PropTypes.bool,\n items: PropTypes$1.menuItems,\n current: PropTypes.number,\n onClickItem: PropTypes.func,\n colors: PropTypes.shape({\n primary: PropTypes.string,\n secondary: PropTypes.string\n }),\n closeable: PropTypes.bool,\n onClose: PropTypes.func,\n className: PropTypes.string\n};\nvar defaultProps$7 = {\n direction: 'horizontal',\n withShadow: false,\n items: [],\n current: 0,\n onClickItem: null,\n colors: null,\n closeable: false,\n onClose: null,\n className: null\n};\n\nvar ViewerMenuDots = function ViewerMenuDots(_ref) {\n var _ref3;\n\n var direction = _ref.direction,\n withShadow = _ref.withShadow,\n items = _ref.items,\n current = _ref.current,\n onClickItem = _ref.onClickItem,\n colors = _ref.colors,\n closeable = _ref.closeable,\n onClose = _ref.onClose,\n className = _ref.className;\n\n var _ref2 = colors || {},\n _ref2$primary = _ref2.primary,\n primary = _ref2$primary === void 0 ? 'rgba(255, 255, 255, 1)' : _ref2$primary,\n _ref2$secondary = _ref2.secondary,\n secondary = _ref2$secondary === void 0 ? 'rgba(200, 200, 200, 0.5)' : _ref2$secondary;\n\n var intl = useIntl();\n return /*#__PURE__*/React.createElement(\"nav\", {\n className: classNames([styles$5.container, (_ref3 = {}, _defineProperty(_ref3, className, className !== null), _defineProperty(_ref3, styles$5.vertical, direction === 'vertical'), _defineProperty(_ref3, styles$5.withShadow, withShadow), _ref3)]),\n \"aria-label\": intl.formatMessage({\n \"id\": \"bLYuuN\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"You are on screen \"\n }, {\n \"type\": 1,\n \"value\": \"current\"\n }, {\n \"type\": 0,\n \"value\": \" of \"\n }, {\n \"type\": 1,\n \"value\": \"total\"\n }, {\n \"type\": 0,\n \"value\": \".\"\n }]\n }, {\n current: current + 1,\n total: items.length\n })\n }, /*#__PURE__*/React.createElement(\"ul\", {\n className: styles$5.items\n }, items.map(function (item, index) {\n return /*#__PURE__*/React.createElement(\"li\", {\n className: classNames([styles$5.item, _defineProperty({}, styles$5.active, current === index)]),\n key: \"item-\".concat(index),\n \"aria-hidden\": \"true\"\n }, /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n className: styles$5.button,\n onClick: function onClick() {\n if (onClickItem !== null) {\n onClickItem(index);\n }\n },\n tabIndex: \"-1\"\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: styles$5.dot,\n style: {\n backgroundColor: index <= current ? primary : secondary\n }\n })));\n }), /*#__PURE__*/React.createElement(\"li\", {\n className: styles$5.menu\n }, /*#__PURE__*/React.createElement(MenuIcon, {\n className: styles$5.menuIcon,\n color: primary\n }), /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n title: intl.formatMessage({\n \"id\": \"F/gl4b\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Menu\"\n }]\n }),\n \"aria-label\": intl.formatMessage({\n \"id\": \"F/gl4b\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Menu\"\n }]\n }),\n className: styles$5.menuButton,\n onClick: function onClick() {\n if (onClickItem !== null) {\n onClickItem(null);\n }\n }\n })), closeable ? /*#__PURE__*/React.createElement(\"li\", {\n className: styles$5.closeButton,\n style: {\n color: primary\n }\n }, /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n className: styles$5.closeButton,\n onClick: onClose,\n title: intl.formatMessage({\n \"id\": \"dj/p/q\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Close\"\n }]\n }),\n \"aria-label\": intl.formatMessage({\n \"id\": \"dj/p/q\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Close\"\n }]\n })\n }, /*#__PURE__*/React.createElement(FontAwesomeIcon, {\n icon: faTimes\n }))) : null));\n};\n\nViewerMenuDots.propTypes = propTypes$7;\nViewerMenuDots.defaultProps = defaultProps$7;\n\nvar styles$3 = {\"container\":\"micromag-viewer-partials-share-modal-container\",\"content\":\"micromag-viewer-partials-share-modal-content\",\"opened\":\"micromag-viewer-partials-share-modal-opened\"};\n\nvar propTypes$6 = {\n url: PropTypes.string,\n title: PropTypes.string,\n opened: PropTypes.bool,\n className: PropTypes.string,\n onShare: PropTypes.func,\n onCancel: PropTypes.func\n};\nvar defaultProps$6 = {\n url: null,\n title: null,\n opened: false,\n className: null,\n onShare: null,\n onCancel: null\n};\n\nvar ShareModal = function ShareModal(_ref) {\n var _ref2;\n\n var url = _ref.url,\n title = _ref.title,\n opened = _ref.opened,\n className = _ref.className,\n onShare = _ref.onShare,\n onCancel = _ref.onCancel;\n var containerRef = useRef(null);\n var onShareButtonClick = useCallback(function (type) {\n if (onShare !== null) {\n onShare(type);\n }\n }, [onShare]);\n var shareButtonProps = useMemo(function () {\n return {\n url: url,\n onShareWindowClose: function onShareWindowClose() {\n if (onCancel !== null) {\n onCancel();\n }\n }\n };\n }, [url, onCancel]);\n var shareIconProps = useMemo(function () {\n return {\n size: 32,\n round: true\n };\n }, []);\n var onDocumentClick = useCallback(function (e) {\n var target = e.currentTarget;\n\n if (!containerRef.current || containerRef.current.contains(target)) {\n return;\n }\n\n if (onCancel !== null) {\n onCancel();\n }\n }, [opened, onCancel]);\n useDocumentEvent('click', onDocumentClick, opened);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames([styles$3.container, (_ref2 = {}, _defineProperty(_ref2, className, className), _defineProperty(_ref2, styles$3.opened, opened), _ref2)]),\n ref: containerRef,\n \"aria-hidden\": opened ? null : '-1'\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: styles$3.content\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: styles$3.buttons\n }, /*#__PURE__*/React.createElement(FacebookShareButton, Object.assign({}, shareButtonProps, {\n quote: title,\n beforeOnClick: function beforeOnClick() {\n onShareButtonClick('Facebook');\n return Promise.resolve();\n },\n tabIndex: opened ? null : '-1'\n }), /*#__PURE__*/React.createElement(FacebookIcon, shareIconProps)), /*#__PURE__*/React.createElement(TwitterShareButton, Object.assign({}, shareButtonProps, {\n title: title,\n beforeOnClick: function beforeOnClick() {\n onShareButtonClick('Twitter');\n return Promise.resolve();\n },\n tabIndex: opened ? null : '-1'\n }), /*#__PURE__*/React.createElement(TwitterIcon, shareIconProps)), /*#__PURE__*/React.createElement(EmailShareButton, Object.assign({}, shareButtonProps, {\n subject: title,\n beforeOnClick: function beforeOnClick() {\n onShareButtonClick('Email');\n return Promise.resolve();\n },\n tabIndex: opened ? null : '-1'\n }), /*#__PURE__*/React.createElement(EmailIcon, shareIconProps)))));\n};\n\nShareModal.propTypes = propTypes$6;\nShareModal.defaultProps = defaultProps$6;\n\nvar styles$2 = {\"container\":\"micromag-viewer-partials-share-button-container\",\"shareModal\":\"micromag-viewer-partials-share-button-shareModal\"};\n\nvar propTypes$5 = {\n title: PropTypes.string,\n url: PropTypes.string,\n className: PropTypes.string,\n buttonClassName: PropTypes.string,\n onShare: PropTypes.func,\n children: PropTypes.node,\n focusable: PropTypes.bool\n};\nvar defaultProps$5 = {\n title: null,\n url: null,\n className: null,\n buttonClassName: null,\n onShare: null,\n children: null,\n focusable: false\n};\n\nvar ShareButton = function ShareButton(_ref) {\n var title = _ref.title,\n url = _ref.url,\n className = _ref.className,\n buttonClassName = _ref.buttonClassName,\n onShare = _ref.onShare,\n children = _ref.children,\n focusable = _ref.focusable;\n var intl = useIntl();\n\n var _useState = useState(false),\n _useState2 = _slicedToArray(_useState, 2),\n storyShareModalOpened = _useState2[0],\n setStoryShareModalOpened = _useState2[1];\n\n var onShareIconClick = useCallback(function () {\n setStoryShareModalOpened(function (opened) {\n return !opened;\n });\n }, [setStoryShareModalOpened]);\n var onStoryShared = useCallback(function (type) {\n setStoryShareModalOpened(false);\n\n if (onShare !== null) {\n onShare(type);\n }\n }, [setStoryShareModalOpened, onShare]);\n var onStoryShareCanceled = useCallback(function () {\n setStoryShareModalOpened(false);\n }, [setStoryShareModalOpened]);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames([styles$2.container, _defineProperty({}, className, className !== null)])\n }, /*#__PURE__*/React.createElement(Button, {\n className: classNames([_defineProperty({}, buttonClassName, buttonClassName !== null)]),\n onClick: onShareIconClick,\n title: intl.formatMessage({\n \"id\": \"7tw6U2\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Share\"\n }]\n }),\n \"aria-label\": intl.formatMessage({\n \"id\": \"7tw6U2\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Share\"\n }]\n }),\n focusable: focusable\n }, children), /*#__PURE__*/React.createElement(ShareModal, {\n className: styles$2.shareModal,\n opened: storyShareModalOpened,\n title: title,\n url: url,\n onShare: onStoryShared,\n onCancel: onStoryShareCanceled\n }));\n};\n\nShareButton.propTypes = propTypes$5;\nShareButton.defaultProps = defaultProps$5;\n\nvar styles$1 = {\"container\":\"micromag-viewer-menus-menu-preview-container\",\"screenButton\":\"micromag-viewer-menus-menu-preview-screenButton\",\"activeScreenBorder\":\"micromag-viewer-menus-menu-preview-activeScreenBorder\",\"itemContent\":\"micromag-viewer-menus-menu-preview-itemContent\",\"scroll\":\"micromag-viewer-menus-menu-preview-scroll\",\"header\":\"micromag-viewer-menus-menu-preview-header\",\"button\":\"micromag-viewer-menus-menu-preview-button\",\"shareButton\":\"micromag-viewer-menus-menu-preview-shareButton\",\"disabled\":\"micromag-viewer-menus-menu-preview-disabled\",\"icon\":\"micromag-viewer-menus-menu-preview-icon\",\"buttons\":\"micromag-viewer-menus-menu-preview-buttons\",\"organisation\":\"micromag-viewer-menus-menu-preview-organisation\",\"title\":\"micromag-viewer-menus-menu-preview-title\",\"content\":\"micromag-viewer-menus-menu-preview-content\",\"nav\":\"micromag-viewer-menus-menu-preview-nav\",\"item\":\"micromag-viewer-menus-menu-preview-item\",\"items\":\"micromag-viewer-menus-menu-preview-items\",\"active\":\"micromag-viewer-menus-menu-preview-active\",\"screenContainer\":\"micromag-viewer-menus-menu-preview-screenContainer\",\"screenContent\":\"micromag-viewer-menus-menu-preview-screenContent\"};\n\nvar propTypes$4 = {\n viewerTheme: PropTypes$1.viewerTheme,\n screenWidth: PropTypes.number,\n title: PropTypes.string,\n shareUrl: PropTypes.string,\n items: PropTypes$1.menuItems,\n current: PropTypes.number,\n focusable: PropTypes.bool,\n onClickItem: PropTypes.func,\n onClose: PropTypes.func,\n onShare: PropTypes.func,\n thumbsPerLine: PropTypes.number,\n toggleFullscreen: PropTypes.func,\n fullscreenActive: PropTypes.bool,\n fullscreenEnabled: PropTypes.bool,\n className: PropTypes.string\n};\nvar defaultProps$4 = {\n viewerTheme: null,\n screenWidth: null,\n title: null,\n shareUrl: null,\n items: [],\n current: 0,\n focusable: true,\n onClickItem: null,\n onClose: null,\n onShare: null,\n thumbsPerLine: 4,\n toggleFullscreen: null,\n fullscreenActive: false,\n fullscreenEnabled: false,\n className: null\n};\n\nvar ViewerMenuPreview = function ViewerMenuPreview(_ref) {\n var viewerTheme = _ref.viewerTheme,\n screenWidth = _ref.screenWidth,\n title = _ref.title,\n shareUrl = _ref.shareUrl,\n items = _ref.items,\n current = _ref.current,\n focusable = _ref.focusable,\n onClickItem = _ref.onClickItem,\n onClose = _ref.onClose,\n onShare = _ref.onShare,\n thumbsPerLine = _ref.thumbsPerLine,\n toggleFullscreen = _ref.toggleFullscreen,\n fullscreenActive = _ref.fullscreenActive,\n fullscreenEnabled = _ref.fullscreenEnabled,\n className = _ref.className;\n var intl = useIntl();\n var screenSizeRatio = \"\".concat(3 / 2 / thumbsPerLine * 100, \"%\");\n var screenRatioHeight = screenWidth * 3 / 2;\n var hasSize = screenWidth > 0;\n var hasItems = items !== null && items.length > 0;\n\n var _useState = useState(null),\n _useState2 = _slicedToArray(_useState, 2),\n thumbSize = _useState2[0],\n setThumbSize = _useState2[1];\n\n var firstScreenContainerRef = useRef(null);\n useEffect(function () {\n if (hasItems && hasSize && firstScreenContainerRef.current !== null) {\n var _firstScreenContainer = firstScreenContainerRef.current,\n offsetWidth = _firstScreenContainer.offsetWidth,\n offsetHeight = _firstScreenContainer.offsetHeight;\n setThumbSize({\n width: offsetWidth,\n height: offsetHeight\n });\n }\n }, [screenWidth, hasItems, hasSize]); // Viewer theme\n\n var _ref2 = viewerTheme || {},\n _ref2$colors = _ref2.colors,\n colors = _ref2$colors === void 0 ? null : _ref2$colors,\n _ref2$background = _ref2.background,\n background = _ref2$background === void 0 ? null : _ref2$background,\n _ref2$textStyles = _ref2.textStyles,\n textStyles = _ref2$textStyles === void 0 ? null : _ref2$textStyles,\n _ref2$logo = _ref2.logo,\n brandLogo = _ref2$logo === void 0 ? null : _ref2$logo;\n\n var _ref3 = textStyles || {},\n _ref3$title = _ref3.title,\n brandTextStyle = _ref3$title === void 0 ? null : _ref3$title;\n\n var _ref4 = colors || {},\n _ref4$primary = _ref4.primary,\n brandPrimaryColor = _ref4$primary === void 0 ? null : _ref4$primary,\n _ref4$secondary = _ref4.secondary,\n brandSecondaryColor = _ref4$secondary === void 0 ? null : _ref4$secondary;\n\n var _ref5 = background || {},\n _ref5$color = _ref5.color,\n brandBackgroundColor = _ref5$color === void 0 ? null : _ref5$color,\n _ref5$image = _ref5.image,\n image = _ref5$image === void 0 ? null : _ref5$image;\n\n var _ref6 = image || {},\n _ref6$url = _ref6.url,\n brandImageUrl = _ref6$url === void 0 ? null : _ref6$url;\n\n var borderPrimaryColorStyle = getStyleFromColor(brandPrimaryColor, 'borderColor');\n var colorSecondaryColorStyle = getStyleFromColor(brandSecondaryColor, 'color');\n var backgroundColorStyle = getStyleFromColor(brandBackgroundColor, 'backgroundColor');\n\n var _ref7 = brandLogo || {},\n _ref7$url = _ref7.url,\n brandLogoUrl = _ref7$url === void 0 ? null : _ref7$url;\n\n var brandImageStyle = brandImageUrl !== null ? {\n backgroundImage: \"url(\".concat(brandImageUrl, \")\")\n } : null;\n var titleStyle = brandTextStyle !== null ? getStyleFromText(brandTextStyle) : null;\n\n var _useState3 = useState(false),\n _useState4 = _slicedToArray(_useState3, 2),\n scrolledBottom = _useState4[0],\n setScrolledBottom = _useState4[1];\n\n var dragBind = useDrag(function (_ref8) {\n var _ref8$direction = _slicedToArray(_ref8.direction, 2),\n dy = _ref8$direction[1],\n last = _ref8.last,\n tap = _ref8.tap;\n\n if (!tap && last && scrolledBottom && dy < 0 && onClose !== null) {\n onClose();\n }\n }, {\n filterTaps: true,\n eventOptions: {\n capture: true\n }\n });\n var onScrolledBottom = useCallback(function () {\n setScrolledBottom(true);\n }, [setScrolledBottom]);\n var onScrolledNotBottom = useCallback(function () {\n setScrolledBottom(false);\n }, [setScrolledBottom]);\n return hasSize ? /*#__PURE__*/React.createElement(\"div\", Object.assign({\n className: classNames([styles$1.container, _defineProperty({}, className, className !== null)]),\n style: _objectSpread(_objectSpread(_objectSpread({}, backgroundColorStyle), brandImageStyle), {}, {\n width: screenWidth\n }),\n \"aria-hidden\": focusable ? null : 'true'\n }, dragBind()), /*#__PURE__*/React.createElement(\"div\", {\n className: styles$1.header\n }, brandLogoUrl !== null ? /*#__PURE__*/React.createElement(\"div\", {\n className: styles$1.organisation,\n style: {\n backgroundImage: \"url(\".concat(brandLogoUrl, \")\")\n }\n }) : null, /*#__PURE__*/React.createElement(\"div\", {\n className: styles$1.title,\n style: titleStyle\n }, title), /*#__PURE__*/React.createElement(\"div\", {\n className: styles$1.buttons,\n style: colorSecondaryColorStyle\n }, /*#__PURE__*/React.createElement(ShareButton, {\n className: styles$1.shareButton,\n buttonClassName: styles$1.button,\n onShare: onShare,\n url: shareUrl,\n title: title,\n focusable: focusable\n }, /*#__PURE__*/React.createElement(FontAwesomeIcon, {\n className: styles$1.icon,\n icon: faShare\n })), fullscreenEnabled ? /*#__PURE__*/React.createElement(Button, {\n className: styles$1.button,\n onClick: toggleFullscreen,\n title: intl.formatMessage({\n \"id\": \"AuxqcG\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Fullscreen\"\n }]\n }),\n \"aria-label\": intl.formatMessage({\n \"id\": \"AuxqcG\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Fullscreen\"\n }]\n }),\n focusable: focusable\n }, /*#__PURE__*/React.createElement(FontAwesomeIcon, {\n className: styles$1.icon,\n icon: fullscreenActive ? faCompress : faExpand\n })) : null, /*#__PURE__*/React.createElement(Button, {\n className: styles$1.button,\n onClick: onClose,\n title: intl.formatMessage({\n \"id\": \"dj/p/q\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Close\"\n }]\n }),\n \"aria-label\": intl.formatMessage({\n \"id\": \"dj/p/q\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Close\"\n }]\n }),\n focusable: focusable\n }, /*#__PURE__*/React.createElement(FontAwesomeIcon, {\n className: styles$1.icon,\n icon: faTimes\n })))), /*#__PURE__*/React.createElement(\"div\", {\n className: styles$1.content\n }, /*#__PURE__*/React.createElement(Scroll, {\n className: styles$1.scroll,\n onScrolledBottom: onScrolledBottom,\n onScrolledNotBottom: onScrolledNotBottom\n }, /*#__PURE__*/React.createElement(\"nav\", {\n className: styles$1.nav\n }, /*#__PURE__*/React.createElement(\"ul\", {\n className: styles$1.items\n }, items.map(function (item, index) {\n var screenIndexLabel = intl.formatMessage({\n \"id\": \"LkVfwW\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Screen \"\n }, {\n \"type\": 1,\n \"value\": \"index\"\n }]\n }, {\n index: index + 1\n });\n var isCurrentScreenLabel = current === index ? \" \".concat(intl.formatMessage({\n \"id\": \"vmrJ8U\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"(current screen)\"\n }]\n })) : '';\n var screenAriaLabel = screenIndexLabel + isCurrentScreenLabel;\n return /*#__PURE__*/React.createElement(\"li\", {\n className: classNames([styles$1.item, _defineProperty({}, styles$1.active, current === index)]),\n key: \"item-\".concat(index),\n style: {\n paddingBottom: screenSizeRatio,\n width: \"\".concat(100 / thumbsPerLine, \"%\")\n }\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: styles$1.itemContent\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: styles$1.screenContainer,\n ref: index === 0 ? firstScreenContainerRef : null\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: styles$1.screenContent,\n style: thumbSize !== null ? {\n width: screenWidth,\n height: screenRatioHeight,\n transform: \"scale(\".concat(thumbSize.width / screenWidth)\n } : null,\n \"aria-hidden\": \"true\"\n }, /*#__PURE__*/React.createElement(ScreenPreview, {\n width: screenWidth,\n height: screenRatioHeight,\n screen: item,\n focusable: false\n })), current === index ? /*#__PURE__*/React.createElement(\"div\", {\n className: styles$1.activeScreenBorder,\n style: borderPrimaryColorStyle\n }) : null)), /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n className: styles$1.screenButton,\n onClick: function onClick() {\n onClickItem(index);\n },\n \"aria-label\": screenAriaLabel,\n onKeyUp: function onKeyUp(e) {\n if (e.key === 'Enter') {\n onClickItem(index);\n }\n },\n tabIndex: focusable ? '0' : '-1'\n }));\n })))))) : null;\n};\n\nViewerMenuPreview.propTypes = propTypes$4;\nViewerMenuPreview.defaultProps = defaultProps$4;\n\nvar styles = {\"container\":\"micromag-viewer-screen-container\",\"current\":\"micromag-viewer-screen-current\"};\n\nvar propTypes$3 = {\n screen: PropTypes$1.screenComponent,\n renderContext: PropTypes$1.renderContext,\n current: PropTypes.bool,\n active: PropTypes.bool,\n onPrevious: PropTypes.func,\n onNext: PropTypes.func,\n onEnableInteraction: PropTypes.func,\n onDisableInteraction: PropTypes.func,\n getMediaRef: PropTypes.func\n};\nvar defaultProps$3 = {\n screen: null,\n renderContext: null,\n current: false,\n active: true,\n onPrevious: null,\n onNext: null,\n onEnableInteraction: null,\n onDisableInteraction: null,\n getMediaRef: null\n};\n\nvar ViewerScreen = function ViewerScreen(_ref) {\n var _ref2;\n\n var screen = _ref.screen,\n renderContext = _ref.renderContext,\n active = _ref.active,\n current = _ref.current,\n onPrevious = _ref.onPrevious,\n onNext = _ref.onNext,\n onEnableInteraction = _ref.onEnableInteraction,\n onDisableInteraction = _ref.onDisableInteraction,\n getMediaRef = _ref.getMediaRef;\n return screen !== null ? /*#__PURE__*/React.createElement(\"div\", {\n className: classNames([styles.container, (_ref2 = {}, _defineProperty(_ref2, styles.active, active), _defineProperty(_ref2, styles.current, current), _ref2)]),\n \"aria-hidden\": current ? null : 'true'\n }, /*#__PURE__*/React.createElement(Screen, {\n screen: screen,\n renderContext: renderContext,\n active: active,\n current: current,\n onPrevious: onPrevious,\n onNext: onNext,\n onEnableInteraction: onEnableInteraction,\n onDisableInteraction: onDisableInteraction,\n getMediaRef: getMediaRef\n })) : null;\n};\n\nViewerScreen.propTypes = propTypes$3;\nViewerScreen.defaultProps = defaultProps$3;\n\nvar propTypes$2 = {\n story: PropTypes$1.story,\n // .isRequired,\n basePath: PropTypes.string,\n theme: PropTypes$1.viewerTheme,\n width: PropTypes.number,\n height: PropTypes.number,\n screen: PropTypes.string,\n deviceScreens: PropTypes$1.deviceScreens,\n renderContext: PropTypes$1.renderContext,\n onScreenChange: PropTypes.func,\n tapNextScreenWidthPercent: PropTypes.number,\n neighborScreensActive: PropTypes.number,\n storyIsParsed: PropTypes.bool,\n landscapeScreenMargin: PropTypes.number,\n withMetadata: PropTypes.bool,\n withoutMenu: PropTypes.bool,\n withoutFullscreen: PropTypes.bool,\n closeable: PropTypes.bool,\n onClose: PropTypes.func,\n onInteraction: PropTypes.func,\n onEnd: PropTypes.func,\n onViewModeChange: PropTypes.func,\n currentScreenMedia: PropTypes$1.ref,\n screensMedias: PropTypes$1.ref,\n screenSizeOptions: PropTypes.shape({\n withoutMaxSize: PropTypes.bool,\n desktopHeightRatio: PropTypes.number,\n screenRatio: PropTypes.number\n }),\n className: PropTypes.string\n};\nvar defaultProps$2 = {\n story: null,\n theme: null,\n basePath: null,\n width: null,\n height: null,\n screen: null,\n deviceScreens: getDeviceScreens(),\n renderContext: 'view',\n onScreenChange: null,\n tapNextScreenWidthPercent: 0.5,\n neighborScreensActive: 2,\n storyIsParsed: false,\n landscapeScreenMargin: 50,\n withMetadata: false,\n withoutMenu: false,\n withoutFullscreen: false,\n closeable: false,\n onClose: null,\n onInteraction: null,\n onEnd: null,\n onViewModeChange: null,\n currentScreenMedia: null,\n screensMedias: null,\n screenSizeOptions: null,\n className: null\n};\n\nvar Viewer = function Viewer(_ref) {\n var _ref15;\n\n var story = _ref.story,\n basePath = _ref.basePath,\n viewerTheme = _ref.theme,\n width = _ref.width,\n height = _ref.height,\n screenId = _ref.screen,\n deviceScreens = _ref.deviceScreens,\n renderContext = _ref.renderContext,\n onScreenChange = _ref.onScreenChange,\n tapNextScreenWidthPercent = _ref.tapNextScreenWidthPercent,\n neighborScreensActive = _ref.neighborScreensActive,\n storyIsParsed = _ref.storyIsParsed,\n landscapeScreenMargin = _ref.landscapeScreenMargin,\n withMetadata = _ref.withMetadata,\n withoutMenu = _ref.withoutMenu;\n _ref.withoutFullscreen;\n var closeable = _ref.closeable,\n onClose = _ref.onClose,\n onInteraction = _ref.onInteraction,\n onEnd = _ref.onEnd,\n onViewModeChange = _ref.onViewModeChange,\n currentScreenMedia = _ref.currentScreenMedia,\n screensMedias = _ref.screensMedias,\n screenSizeOptions = _ref.screenSizeOptions,\n className = _ref.className;\n var intl = useIntl();\n var parsedStory = useParsedStory(story, {\n disabled: storyIsParsed\n }) || {};\n var _parsedStory$componen = parsedStory.components,\n screens = _parsedStory$componen === void 0 ? [] : _parsedStory$componen,\n _parsedStory$title = parsedStory.title,\n title = _parsedStory$title === void 0 ? null : _parsedStory$title,\n _parsedStory$metadata = parsedStory.metadata,\n metadata = _parsedStory$metadata === void 0 ? null : _parsedStory$metadata,\n _parsedStory$fonts = parsedStory.fonts,\n fonts = _parsedStory$fonts === void 0 ? null : _parsedStory$fonts; // Viewer Theme\n\n var _ref2 = viewerTheme || {},\n textStyles = _ref2.textStyles;\n\n var _ref3 = textStyles || {},\n _ref3$title = _ref3.title,\n themeTextStyle = _ref3$title === void 0 ? null : _ref3$title;\n\n var _ref4 = themeTextStyle || {},\n _ref4$fontFamily = _ref4.fontFamily,\n themeFont = _ref4$fontFamily === void 0 ? null : _ref4$fontFamily; // Fonts\n\n\n var finalFonts = useMemo(function () {\n return [].concat(_toConsumableArray(fonts || []), [themeFont]).filter(function (font) {\n return font !== null;\n });\n }, [fonts]);\n\n var _useLoadedFonts = useLoadedFonts(finalFonts);\n _useLoadedFonts.loaded; // eslint-disable-line\n\n\n var shareUrl = useMemo(function () {\n var origin = typeof window !== 'undefined' ? window.location.origin.replace(/\\/+$/, '') : '';\n var path = basePath !== null ? \"\".concat(origin).concat(basePath) : origin;\n return path;\n }, [basePath]);\n var isView = renderContext === 'view';\n var isStatic = renderContext === 'static';\n var isCapture = renderContext === 'capture';\n var withoutScreensTransforms = isStatic || isCapture;\n var trackScreenView = useTrackScreenView();\n var trackEvent = useTrackEvent();\n var contentRef = useRef(null); // Get screen size\n\n var _useScreenSizeFromEle = useScreenSizeFromElement(_objectSpread({\n width: width,\n height: height,\n screens: deviceScreens\n }, screenSizeOptions)),\n containerRef = _useScreenSizeFromEle.ref,\n screenSize = _useScreenSizeFromEle.screenSize;\n\n var _ref5 = screenSize || {},\n _ref5$width = _ref5.width,\n screenWidth = _ref5$width === void 0 ? null : _ref5$width,\n _ref5$height = _ref5.height,\n screenHeight = _ref5$height === void 0 ? null : _ref5$height,\n _ref5$landscape = _ref5.landscape,\n landscape = _ref5$landscape === void 0 ? false : _ref5$landscape,\n _ref5$menuOverScreen = _ref5.menuOverScreen,\n menuOverScreen = _ref5$menuOverScreen === void 0 ? false : _ref5$menuOverScreen;\n\n var hasSize = screenWidth > 0 && screenHeight > 0;\n var ready = hasSize; // && fontsLoaded;\n\n useEffect(function () {\n if (ready && onViewModeChange !== null) {\n onViewModeChange({\n landscape: landscape\n });\n }\n }, [ready, landscape, onViewModeChange]); // Get dots menu height\n\n var _useResizeObserver = useResizeObserver(),\n menuDotsContainerRef = _useResizeObserver.ref,\n menuDotsContainerRect = _useResizeObserver.entry.contentRect;\n\n var _ref6 = menuDotsContainerRect || {},\n _ref6$height = _ref6.height,\n menuDotsContainerHeight = _ref6$height === void 0 ? 0 : _ref6$height; // Get preview menu height\n\n\n var _useResizeObserver2 = useResizeObserver(),\n menuPreviewContainerRef = _useResizeObserver2.ref,\n menuPreviewContainerRect = _useResizeObserver2.entry.contentRect;\n\n var _ref7 = menuPreviewContainerRect || {},\n _ref7$height = _ref7.height,\n menuPreviewContainerHeight = _ref7$height === void 0 ? 0 : _ref7$height;\n\n var screensMediasRef = useRef([]); // Screen index\n\n var screenIndex = useMemo(function () {\n return Math.max(0, screens.findIndex(function (it) {\n return String(it.id) === String(screenId);\n }));\n }, [screenId, screens]);\n\n if (currentScreenMedia !== null) {\n currentScreenMedia.current = screensMediasRef.current[screenIndex];\n }\n\n if (screensMedias !== null) {\n screensMedias.current = screensMediasRef.current;\n }\n\n var changeIndex = useCallback(function (index) {\n if (index === screenIndex) {\n return;\n }\n\n if (currentScreenMedia !== null) {\n currentScreenMedia.current = screensMediasRef.current[index];\n }\n\n if (onScreenChange !== null) {\n onScreenChange(screens[index], index);\n }\n }, [screenIndex, screens, onScreenChange]); // Track screen view\n\n var trackingEnabled = isView;\n var validIndex = screens.length > 0 && screenIndex < screens.length;\n var currentScreen = validIndex ? screens[screenIndex] : null;\n\n var _ref8 = currentScreen || {},\n _ref8$type = _ref8.type,\n screenType = _ref8$type === void 0 ? null : _ref8$type;\n\n useEffect(function () {\n if (trackingEnabled && currentScreen !== null) {\n trackScreenView(currentScreen, screenIndex);\n }\n }, [currentScreen, trackScreenView, trackingEnabled]); // Handle interaction enable\n\n var currentScreenRef = useRef(null);\n var onScreenPrevious = useCallback(function () {\n changeIndex(Math.max(0, screenIndex - 1));\n currentScreenRef.current.focus();\n }, [changeIndex]);\n var onScreenNext = useCallback(function () {\n changeIndex(Math.min(screens.length - 1, screenIndex + 1));\n currentScreenRef.current.focus();\n }, [changeIndex]);\n var screensCount = screens.length;\n\n var _useState = useState(screens.map(function () {\n return true;\n })),\n _useState2 = _slicedToArray(_useState, 2),\n screensInteractionEnabled = _useState2[0],\n setScreensInteractionEnabled = _useState2[1];\n\n var currentScreenInteractionEnabled = screensInteractionEnabled[screenIndex];\n var menuVisible = screensCount === 0 || currentScreenInteractionEnabled;\n useEffect(function () {\n setScreensInteractionEnabled(_toConsumableArray(Array(screensCount).keys()).map(function () {\n return true;\n }));\n }, [screensCount]);\n var onEnableInteraction = useCallback(function () {\n if (!screensInteractionEnabled[screenIndex]) {\n var newArray = _toConsumableArray(screensInteractionEnabled);\n\n newArray[screenIndex] = true;\n setScreensInteractionEnabled(newArray);\n }\n }, [screenIndex, screensInteractionEnabled, setScreensInteractionEnabled]);\n var onDisableInteraction = useCallback(function () {\n if (screensInteractionEnabled[screenIndex]) {\n var newArray = _toConsumableArray(screensInteractionEnabled);\n\n newArray[screenIndex] = false;\n setScreensInteractionEnabled(newArray);\n }\n }, [screenIndex, screensInteractionEnabled, setScreensInteractionEnabled]); // handle screenClick\n\n var onInteractionPrivate = useCallback(function () {\n if (onInteraction !== null) {\n onInteraction();\n }\n }, [onInteraction]);\n var onScreenClick = useCallback(function (e, index) {\n onInteractionPrivate();\n\n var checkClickable = function checkClickable(el) {\n var maxDistance = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 5;\n var distance = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n\n var _ref9 = el || {},\n _ref9$tagName = _ref9.tagName,\n tagName = _ref9$tagName === void 0 ? null : _ref9$tagName,\n _ref9$parentNode = _ref9.parentNode,\n parentNode = _ref9$parentNode === void 0 ? null : _ref9$parentNode;\n\n if (tagName === 'BODY') {\n return false;\n }\n\n var tags = ['BUTTON', 'A', 'INPUT', 'TEXTAREA'];\n\n if (tags.indexOf(tagName) > -1) {\n return true;\n }\n\n if (distance < maxDistance) {\n return checkClickable(parentNode, maxDistance, distance + 1);\n }\n\n return false;\n };\n\n var tappedCurrent = screenIndex === index;\n\n if (!isView && tappedCurrent || checkClickable(e.target)) {\n return;\n }\n\n var it = screens[screenIndex] || null;\n var interactionEnabled = screensInteractionEnabled[screenIndex];\n\n if (it === null || tappedCurrent && !interactionEnabled) {\n return;\n }\n\n var nextIndex = screenIndex;\n\n var _e$currentTarget$getB = e.currentTarget.getBoundingClientRect(),\n _e$currentTarget$getB2 = _e$currentTarget$getB.left,\n contentX = _e$currentTarget$getB2 === void 0 ? 0 : _e$currentTarget$getB2;\n\n var tapX = e.clientX;\n var hasTappedLeft = tappedCurrent ? tapX - contentX < screenWidth * (1 - tapNextScreenWidthPercent) : screenIndex > index;\n\n if (hasTappedLeft) {\n nextIndex = landscape ? index : Math.max(0, screenIndex - 1);\n } else {\n nextIndex = landscape ? index : Math.min(screens.length - 1, screenIndex + 1);\n var isLastScreen = screenIndex === screens.length - 1;\n\n if (isLastScreen && onEnd !== null) {\n onEnd();\n }\n }\n\n changeIndex(nextIndex);\n }, [onScreenChange, screenWidth, screens, changeIndex, screenIndex, screensInteractionEnabled, isView, onInteractionPrivate, onEnd]); // swipe menu open\n\n var menuOpened = useRef(false);\n\n var _useState3 = useState(false),\n _useState4 = _slicedToArray(_useState3, 2),\n previewMenuOpen = _useState4[0],\n setPreviewMenuOpen = _useState4[1];\n\n var _useSpring = useSpring(function () {\n return {\n y: 0,\n config: _objectSpread(_objectSpread({}, config.stiff), {}, {\n clamp: true\n })\n };\n }),\n _useSpring2 = _slicedToArray(_useSpring, 2),\n menuY = _useSpring2[0].y,\n setMenuSpring = _useSpring2[1];\n\n var menuPreviewStyle = {\n transform: menuY.to(function (y) {\n return \"translateY(\".concat(y * menuPreviewContainerHeight, \"px)\");\n })\n };\n var menuDragBind = useDrag(function (_ref10) {\n var _ref10$movement = _slicedToArray(_ref10.movement, 2),\n my = _ref10$movement[1],\n first = _ref10.first,\n last = _ref10.last,\n _ref10$direction = _slicedToArray(_ref10.direction, 2),\n dy = _ref10$direction[1],\n cancel = _ref10.cancel,\n canceled = _ref10.canceled,\n tap = _ref10.tap;\n\n if (canceled || tap) {\n return;\n }\n\n var isMenuOpened = menuOpened.current;\n\n if (first) {\n if (isMenuOpened) {\n cancel();\n return;\n }\n }\n\n var yProgress = Math.max(0, Math.min(1, my / menuPreviewContainerHeight + (isMenuOpened ? 1 : 0)));\n\n if (last) {\n var menuNowOpened = dy > 0 && yProgress > 0.1;\n menuOpened.current = menuNowOpened;\n setMenuSpring.start({\n y: menuNowOpened ? 1 : 0\n });\n setPreviewMenuOpen(menuNowOpened);\n } else {\n setMenuSpring.start({\n y: yProgress\n });\n }\n }, {\n axis: 'y',\n filterTaps: true\n });\n\n var setPreviewMenu = function setPreviewMenu(opened) {\n setMenuSpring.start({\n y: opened ? 1 : 0\n });\n menuOpened.current = opened;\n setPreviewMenuOpen(opened);\n };\n\n var openPreviewMenu = useCallback(function () {\n setPreviewMenu(true);\n }, [setMenuSpring, setPreviewMenuOpen]);\n var closePreviewMenu = useCallback(function () {\n setPreviewMenu(false);\n }, [setMenuSpring, setPreviewMenuOpen]); // Handle dot menu item click\n\n var onClickDotsMenuItem = useCallback(function (index) {\n onInteractionPrivate();\n var clickedOnDot = index !== null;\n var goToScreen = landscape && clickedOnDot;\n\n if (goToScreen) {\n changeIndex(index);\n } else {\n openPreviewMenu();\n }\n\n if (trackingEnabled) {\n var trackAction = goToScreen ? 'click_screen_change' : 'click_open';\n var trackLabel = clickedOnDot ? \"Screen \".concat(index + 1) : 'Menu icon';\n trackEvent('viewer_menu', trackAction, trackLabel, {\n screenId: screenId,\n screenType: screenType,\n screenIndex: index\n });\n }\n }, [changeIndex, landscape, trackingEnabled, trackEvent, screenType, onInteractionPrivate]); // handle preview menu item click\n\n var onClickPreviewMenuItem = useCallback(function (index) {\n changeIndex(index);\n closePreviewMenu();\n\n if (trackingEnabled) {\n trackEvent('viewer_menu', 'click_screen_change', \"Screen \".concat(index + 1), {\n screenId: screenId,\n screenType: screenType,\n screenIndex: index\n });\n }\n }, [changeIndex, trackingEnabled, trackEvent, screenId, screenType]); // Handle preview menu close click\n\n var onClickPreviewMenuClose = useCallback(function () {\n closePreviewMenu();\n\n if (trackingEnabled) {\n trackEvent('viewer_menu', 'click_close', 'Close icon', {\n screenId: screenId,\n screenIndex: screenIndex,\n screenType: screenType\n });\n }\n }, [closePreviewMenu, trackingEnabled, trackEvent, screenId, screenIndex, screenType]); // Handle preview menu share click\n\n var onClickShare = useCallback(function (type) {\n if (trackingEnabled) {\n trackEvent('viewer_menu', 'click_share', type, {\n screenId: screenId,\n screenIndex: screenIndex,\n screenType: screenType\n });\n }\n }, [trackingEnabled, trackEvent, screenId, screenIndex, screenType]);\n var onContextMenu = useCallback(function (e) {\n if (!landscape) {\n e.preventDefault();\n return false;\n }\n\n return true;\n }, [landscape]);\n var overscrollStyle = /*#__PURE__*/React.createElement(\"style\", {\n type: \"text/css\"\n }, \"body { overscroll-behavior: contain; }\"); // Fullscreen\n\n var _useFullscreen = useFullscreen(containerRef.current || null),\n toggleFullscreen = _useFullscreen.toggle,\n fullscreenActive = _useFullscreen.active,\n fullscreenEnabled = _useFullscreen.enabled; // Keyboard Events\n\n\n useEffect(function () {\n var onKey = function onKey(e) {\n if (['input', 'textarea'].reduce(function (foundMatch, match) {\n return foundMatch || e.target.matches(match);\n }, false)) {\n return;\n }\n\n var key = e.key;\n var lowercaseKey = key.toLowerCase();\n\n switch (lowercaseKey) {\n case 'f':\n toggleFullscreen();\n break;\n\n case 'm':\n setPreviewMenu(!menuOpened.current);\n break;\n\n case 'escape':\n closePreviewMenu();\n break;\n\n case 'arrowleft':\n onScreenPrevious();\n break;\n\n case 'arrowright':\n case ' ':\n // spacebar\n onScreenNext();\n break;\n }\n };\n\n if (renderContext === 'view') {\n window.addEventListener('keydown', onKey);\n }\n\n return function () {\n window.removeEventListener('keydown', onKey);\n };\n }, [renderContext, closePreviewMenu, onScreenPrevious, onScreenNext]);\n\n var _ref11 = currentScreen || {},\n screenParameters = _ref11.parameters;\n\n var _ref12 = screenParameters || {},\n screenMetadata = _ref12.metadata;\n\n var _ref13 = screenMetadata || {},\n _ref13$title = _ref13.title,\n screenTitle = _ref13$title === void 0 ? null : _ref13$title,\n _ref13$description = _ref13.description,\n screenDescription = _ref13$description === void 0 ? null : _ref13$description;\n\n var finalTitle = screenTitle !== null ? screenTitle : title;\n var finalMetadata = useMemo(function () {\n return screenDescription !== null ? _objectSpread(_objectSpread({}, metadata), {}, {\n description: screenDescription\n }) : metadata;\n }, [metadata]);\n\n var _ref14 = viewerTheme || {},\n _ref14$menuTheme = _ref14.menuTheme,\n menuTheme = _ref14$menuTheme === void 0 ? null : _ref14$menuTheme;\n\n return /*#__PURE__*/React.createElement(ScreenSizeProvider, {\n size: screenSize\n }, /*#__PURE__*/React.createElement(ViewerProvider, {\n menuVisible: menuVisible,\n menuSize: menuDotsContainerHeight\n }, withMetadata ? /*#__PURE__*/React.createElement(Meta, {\n title: finalTitle,\n metadata: finalMetadata\n }, overscrollStyle) : /*#__PURE__*/React.createElement(Helmet, null, overscrollStyle), /*#__PURE__*/React.createElement(FontFaces, {\n fonts: finalFonts\n }), /*#__PURE__*/React.createElement(\"div\", {\n className: classNames([styles$6.container, screenSize.screens.map(function (screenName) {\n return \"story-screen-\".concat(screenName);\n }), (_ref15 = {}, _defineProperty(_ref15, styles$6.landscape, landscape), _defineProperty(_ref15, styles$6.hideMenu, !menuVisible), _defineProperty(_ref15, styles$6.ready, ready || withoutScreensTransforms), _defineProperty(_ref15, className, className), _ref15)]),\n ref: containerRef,\n onContextMenu: onContextMenu\n }, !withoutMenu ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"div\", Object.assign({\n className: styles$6.menuDotsContainer,\n ref: menuDotsContainerRef,\n style: {\n width: screenWidth\n }\n }, menuDragBind()), /*#__PURE__*/React.createElement(ViewerMenuDots, Object.assign({}, menuTheme, {\n direction: \"horizontal\",\n withShadow: menuOverScreen,\n items: screens,\n current: screenIndex,\n onClickItem: onClickDotsMenuItem,\n closeable: closeable,\n onClose: onClose,\n className: styles$6.menuDots\n }))), /*#__PURE__*/React.createElement(animated.div, {\n className: styles$6.menuPreviewContainer,\n style: menuPreviewStyle,\n ref: menuPreviewContainerRef\n }, /*#__PURE__*/React.createElement(ViewerMenuPreview, {\n viewerTheme: viewerTheme,\n title: title,\n shareUrl: shareUrl,\n className: styles$6.menuPreview,\n screenWidth: screenWidth,\n focusable: previewMenuOpen,\n items: screens,\n current: screenIndex,\n onClickItem: onClickPreviewMenuItem,\n onClose: onClickPreviewMenuClose,\n onShare: onClickShare,\n toggleFullscreen: toggleFullscreen,\n fullscreenActive: fullscreenActive,\n fullscreenEnabled: fullscreenEnabled\n }))) : null, ready || withoutScreensTransforms ? /*#__PURE__*/React.createElement(\"div\", {\n ref: contentRef,\n className: styles$6.content\n }, screens.map(function (scr, i) {\n var current = i === screenIndex;\n var active = i > screenIndex - neighborScreensActive && i < screenIndex + neighborScreensActive;\n var viewerScreen = /*#__PURE__*/React.createElement(ViewerScreen, {\n screen: scr,\n renderContext: renderContext,\n index: i,\n current: current,\n active: active,\n onPrevious: onScreenPrevious,\n onNext: onScreenNext,\n onEnableInteraction: onEnableInteraction,\n onDisableInteraction: onDisableInteraction,\n getMediaRef: function getMediaRef(mediaRef) {\n screensMediasRef.current[i] = mediaRef;\n }\n });\n var key = \"screen-viewer-\".concat(scr.id || '', \"-\").concat(i + 1);\n var screenTransform = landscape ? \"translateX(calc(\".concat((screenWidth + landscapeScreenMargin) * (i - screenIndex), \"px - 50%)) scale(\").concat(current ? 1 : 0.9, \")\") : \"translateX(\".concat(current ? 0 : '100%', \")\");\n return /*#__PURE__*/React.createElement(React.Fragment, {\n key: key\n }, current && screenIndex > 0 ? /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n className: \"sr-only\",\n onClick: onScreenPrevious,\n tabIndex: \"-1\"\n }, /*#__PURE__*/React.createElement(FormattedMessage, {\n id: \"zYH/31\",\n defaultMessage: [{\n \"type\": 0,\n \"value\": \"Go to previous screen\"\n }]\n })) : null, /*#__PURE__*/React.createElement(\"div\", {\n ref: current ? currentScreenRef : null,\n style: {\n width: landscape ? screenWidth : null,\n height: landscape ? screenHeight : null,\n transform: !withoutScreensTransforms ? screenTransform : null\n },\n className: classNames([styles$6.screen, _defineProperty({}, styles$6.current, current)]),\n tabIndex: active ? '0' : '-1'\n /* eslint-disable-line */\n ,\n \"aria-hidden\": current ? null : 'true',\n \"aria-label\": intl.formatMessage({\n \"id\": \"LkVfwW\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Screen \"\n }, {\n \"type\": 1,\n \"value\": \"index\"\n }]\n }, {\n index: i + 1\n }),\n onKeyUp: function onKeyUp(e) {\n if (e.key === 'Enter') {\n onScreenClick(e, i);\n }\n },\n onClick: function onClick(e) {\n onScreenClick(e, i);\n }\n }, viewerScreen), current && screenIndex < screens.length ? /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n className: \"sr-only\",\n onClick: onScreenNext,\n tabIndex: \"-1\"\n }, /*#__PURE__*/React.createElement(FormattedMessage, {\n id: \"v9bqYj\",\n defaultMessage: [{\n \"type\": 0,\n \"value\": \"Go to next screen\"\n }]\n })) : null);\n })) : null)));\n};\n\nViewer.propTypes = propTypes$2;\nViewer.defaultProps = defaultProps$2;\n\nvar _excluded$1 = [\"children\", \"onScreenChange\"];\nvar propTypes$1 = {\n children: PropTypes.func,\n onScreenChange: PropTypes.func\n};\nvar defaultProps$1 = {\n children: null,\n onScreenChange: null\n};\n\nvar ViewerRoutes = function ViewerRoutes(_ref) {\n _ref.children;\n var onScreenChange = _ref.onScreenChange,\n otherProps = _objectWithoutProperties(_ref, _excluded$1);\n\n var routes = useRoutes();\n var push = useRoutePush();\n var finalOnScreenChange = useCallback(function (it) {\n push('screen', {\n screen: it.id\n });\n\n if (onScreenChange !== null) {\n onScreenChange(it);\n }\n }, [push, onScreenChange]);\n return /*#__PURE__*/React.createElement(Switch, null, /*#__PURE__*/React.createElement(Route, {\n path: routes.home,\n exact: true,\n render: function render() {\n return /*#__PURE__*/React.createElement(Viewer, Object.assign({}, otherProps, {\n onScreenChange: finalOnScreenChange\n }));\n }\n }), /*#__PURE__*/React.createElement(Route, {\n path: routes.screen,\n render: function render(_ref2) {\n var screen = _ref2.match.params.screen;\n return /*#__PURE__*/React.createElement(Viewer, Object.assign({}, otherProps, {\n screen: screen,\n onScreenChange: finalOnScreenChange\n }));\n }\n }));\n};\n\nViewerRoutes.propTypes = propTypes$1;\nViewerRoutes.defaultProps = defaultProps$1;\n\nvar home = \"/\";\nvar screen = \"/:screen\";\nvar defaultRoutes = {\n home: home,\n screen: screen\n};\n\nvar _excluded = [\"story\", \"memoryRouter\", \"basePath\", \"routes\", \"withoutRouter\", \"googleApiKey\", \"trackingVariables\", \"locale\", \"locales\", \"translations\"];\nvar propTypes = {\n story: PropTypes$1.story,\n screen: PropTypes.string,\n memoryRouter: PropTypes.bool,\n basePath: PropTypes.string,\n routes: routes,\n withoutRouter: PropTypes.bool,\n googleApiKey: PropTypes.string,\n trackingVariables: PropTypes$1.trackingVariables,\n locale: PropTypes.string,\n locales: PropTypes.arrayOf(PropTypes.string),\n translations: PropTypes.objectOf(PropTypes.string),\n children: PropTypes.func\n};\nvar defaultProps = {\n story: null,\n screen: null,\n memoryRouter: false,\n basePath: null,\n routes: defaultRoutes,\n withoutRouter: false,\n googleApiKey: null,\n trackingVariables: null,\n locale: 'en',\n locales: ['fr', 'en'],\n translations: null,\n children: null\n};\n\nvar ViewerContainer = function ViewerContainer(_ref) {\n var story = _ref.story,\n memoryRouter = _ref.memoryRouter,\n basePath = _ref.basePath,\n routes = _ref.routes,\n withoutRouter = _ref.withoutRouter,\n googleApiKey = _ref.googleApiKey,\n trackingVariables = _ref.trackingVariables,\n locale = _ref.locale,\n locales = _ref.locales,\n translations = _ref.translations,\n otherProps = _objectWithoutProperties(_ref, _excluded);\n\n var Router = memoryRouter ? MemoryRouter : BrowserRouter;\n var finalTrackingVariables = useMemo(function () {\n if (story === null && trackingVariables === null) {\n return null;\n }\n\n var _story$id = story.id,\n id = _story$id === void 0 ? null : _story$id,\n _story$slug = story.slug,\n slug = _story$slug === void 0 ? null : _story$slug,\n _story$title = story.title,\n title = _story$title === void 0 ? null : _story$title,\n _story$components = story.components,\n components = _story$components === void 0 ? [] : _story$components;\n return _objectSpread({\n storyId: id,\n storySlug: slug,\n storyTitle: title,\n screensCount: (components || []).length\n }, trackingVariables);\n }, [story, trackingVariables]);\n\n var _ref2 = story || {},\n metadata = _ref2.metadata;\n\n var _ref3 = metadata || {},\n _ref3$language = _ref3.language,\n finalLocale = _ref3$language === void 0 ? locale : _ref3$language;\n\n var content = /*#__PURE__*/React.createElement(IntlProvider, {\n locale: finalLocale,\n locales: locales,\n extraMessages: translations\n }, /*#__PURE__*/React.createElement(GoogleKeysProvider, {\n apiKey: googleApiKey\n }, /*#__PURE__*/React.createElement(GoogleMapsClientProvider, {\n locale: finalLocale\n }, /*#__PURE__*/React.createElement(FieldsProvider, {\n manager: fieldsManager\n }, /*#__PURE__*/React.createElement(ScreensProvider, null, /*#__PURE__*/React.createElement(UserInteractionProvider, null, /*#__PURE__*/React.createElement(TrackingProvider, {\n variables: finalTrackingVariables\n }, withoutRouter ? /*#__PURE__*/React.createElement(Viewer, Object.assign({\n story: story,\n basePath: basePath\n }, otherProps)) : /*#__PURE__*/React.createElement(ViewerRoutes, Object.assign({\n story: story,\n basePath: basePath\n }, otherProps)))))))));\n return withoutRouter ? content : /*#__PURE__*/React.createElement(Router, {\n basename: !memoryRouter ? basePath : null\n }, /*#__PURE__*/React.createElement(RoutesProvider, {\n routes: routes\n }, content));\n};\n\nViewerContainer.propTypes = propTypes;\nViewerContainer.defaultProps = defaultProps;\n\nexport { Viewer, ViewerContainer as default };\n","/* eslint-disable import/no-extraneous-dependencies */\n// organize-imports-ignore\nimport './public-path';\nimport Viewer from '@micromag/viewer';\nimport React from 'react';\nimport { render } from 'react-dom';\nimport '@micromag/viewer/scss/styles.scss';\nimport './index.css';\n\nconst initialStory = typeof window.MICROMAG_STORY !== 'undefined' ? window.MICROMAG_STORY : null;\nconst initialProps =\n typeof window.MICROMAG_VIEWER_PROPS !== 'undefined' ? window.MICROMAG_VIEWER_PROPS : null;\nconst rootElementId =\n typeof window.MICROMAG_ROOT_ELEMENT_ID !== 'undefined'\n ? window.MICROMAG_ROOT_ELEMENT_ID\n : 'root';\nconst defaultRootElement =\n typeof window.MICROMAG_ROOT_ELEMENT !== 'undefined'\n ? window.MICROMAG_ROOT_ELEMENT\n : document.getElementById(rootElementId);\nconst renderStoryFnc =\n typeof window.MICROMAG_RENDER_STORY_FNC !== 'undefined'\n ? window.MICROMAG_RENDER_STORY_FNC\n : 'renderStory';\n\nconst renderStory = (story, props = {}, root = defaultRootElement) => {\n render(\n React.createElement(Viewer, {\n ...props,\n story,\n }),\n root,\n );\n};\n\nif (initialStory !== null) {\n renderStory(initialStory, initialProps);\n}\n\nif (renderStoryFnc !== null) {\n window[renderStoryFnc] = renderStory;\n}\n"],"sourceRoot":""}
|