@micromag/viewer-build 0.2.337 → 0.2.338

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.
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../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","../../media-gallery/es/index.js","../../fields/es/index.js","../../viewer/es/index.js","index.js"],"names":["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","mediaShape","thumbnail_url","metadata","_objectSpread","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","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","replacePathsWithMedias","fromPath","fieldIsMedia","fieldIsFontFamily","_ref6$media","_ref7","_ref7$id","newData","_ref8","_ref8$id","_ref9","subMedias","mediaPath","getMediaPath","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","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","Tracking","_BaseTracking","opts","_this$options$variabl","options","variables","setVariables","screenIndex","_ref$id","screenId","_ref$type","screenType","category","action","_ref2$value","eventCategory","eventAction","eventLabel","eventValue","_ref3$value","mediaId","_ref4$name","_ref4$duration","_ref4$currentTime","currentTime","mediaCurrentTime","Math","round","mediaProgress","Tracking$1","createUseEvent","eventsManager","useEffect","subscribe","unsubscribe","getDisplayName","_ref$displayName","displayName","_ref$name","getFieldByName","foundField","_it$name","fieldName","_it$fields","getFileName","match","getFontFamily","_ref$fallback","fallback","getGridLayoutName","getRemainder","floor","toFixed","getOptimalImageUrl","containerWidth","containerHeight","maxDiff","_ref$sizes","sizes","_ref$url","defaultUrl","_ref$metadata","imgWidth","imgHeight","finalSizes","original","_Object$keys$reduce","acc","currentDiff","diff","currentIsLarger","isLarger","currentSize","_finalSizes$key","_finalSizes$key$width","_finalSizes$key$heigh","diffWidth","diffHeight","total","abs","Infinity","sizeIsLarger","finalUrl","getScreenExtraField","getStyleFromColor","property","overideAlpha","isString","_ref$color","_ref$alpha","tinycolor","setAlpha","toRgbString","getStyleFromButton","_value$backgroundColo","_value$borderRadius","_value$borderWidth","_value$borderStyle","_value$borderColor","border","_value$width","_value$style","_value$color","colorProcessed","getStyleFromBorder","getStyleFromText","_value$fontFamily","_value$fontSize","_value$fontStyle","_value$lineHeight","_value$letterSpacing","_value$align","_ref$italic","_ref$bold","_ref$underline","textTransform","transform","_ref$outline","outline","fontWeight","textDecoration","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","ScreensContext","useScreensManager","propTypes$h","ScreensProvider","newManager","merge","initialComponents","_useState","useState","_useState2","setComponents","onChange","FieldsContext","useFieldsManager","propTypes$g","FieldsProvider","newFields","StoryContext","useStory","propTypes$f","StoryProvider","EditorContext","useGetColors","getColors","propTypes$e","EditorProvider","parser","useCallback","currentStory","FieldContext","useFieldContext","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","useFonts","_ref3$withoutGoogleFo","withoutGoogleFonts","_useContext","_useContext$setGoogle","_useContext$systemFon","_useContext$googleFon","_useContext$customFon","propTypes$b","FontsProvider","_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","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","handle","meta","mime","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","indexOf","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","window","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","useLongPress","_ref$onLongPress","onLongPress","_ref$onClick","_ref$shouldPreventDef","shouldPreventDefault","_ref$delay","delay","longPressTriggered","setLongPressTriggered","start","setTimeout","passive","clear","shouldTriggerClick","clearTimeout","onMouseDown","e","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","readyState","_ref$width","_ref$height","_ref$landscape","_ref$menuOverScreen","menuOverScreen","_ref$screens","_ref$mediaType","mediaType","providedMedia","matchingScreens","_ref2$mediaQuery","getScreenOptions","screenContext","_ref$data","_ref2$id","ctxScreenId","ctxScreenType","_ref3$screenId","optsScreenId","_ref3$screenType","hasTracking","useTrackScreenEvent","trackEvent","useTrackScreenMedia","trackMedia","propTypes$I","isHtml","values","Label","Message","FormattedMessage","assign","styles$s","propTypes$H","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","propTypes$G","renderButton","onClickButton","buttonClassName","defaultProps$G","Buttons","role","_button$className","customClassName","_button$onClick","_onClick","_button$theme","buttonProps","fixedProps","propTypes$F","BackButton","FontAwesomeIcon","faAngleLeft","propTypes$E","form","formComponents","gotoFieldForm","closeFieldForm","fieldContext","FieldForm","fieldManager","_foundField$type","_foundField$fields","fieldFields","_foundField$field","finalType","_ref$settings","_ref$itemsField","listItems","getFieldFromPath","_ref2$type","fieldProps","_ref3$component","fieldComponent","definitionProps","FieldComponent","onFieldChange","setFieldValue","closeForm","formProps","FormComponent","isForm","styles$q","propTypes$D","method","initialValue","postForm","submitButtonLabel","submitButtonLoadingLabel","actionsAlign","withoutActions","withoutComplete","withoutBackButton","onComplete","onResponse","onMessage","onCancel","onCancelHref","onOpenFieldForm","onCloseFieldForm","fieldsClassName","actionsClassName","cancelClassName","defaultProps$D","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","propTypes$C","rel","Link","propTypes$B","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$A","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$z","FormPanel","styles$n","propTypes$y","separator","withoutBar","noWrap","Breadcrumb","_ref2$active","_ref2$onClick","propTypes$x","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$w","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$v","brand","brandLink","compact","withoutCollapse","brandClassName","breadCrumbsClassName","Navbar","setMenuVisible","onClickMenu","show","styles$m","defineMessages","previous","next","propTypes$u","page","withPreviousNext","paginationClassName","onClickPage","PaginationMenu","getUrl","currentPage","pages","pageNumber","styles$l","propTypes$t","renderItemButton","TabsMenu","styles$k","propTypes$s","setModalsContainer","ModalsContainer","containerRef","WrappedComponent","WithModalsComponent","Consumer","modalsContainer","registerModal","unregisterModal","withModals","propTypes$r","ElementPortal","finalId","Date","getTime","ReactDOM","createPortal","propTypes$q","ModalPortal","_useModals","_useModals$register","_useModals$unregister","styles$j","propTypes$p","position","Modal","inner","styles$i","propTypes$o","onClickClose","ModalDialog","propTypes$n","opened","onUploaded","onRequestClose","UploadModal","onUpppyComplete","fileTypes","t","uppy","_ref$onComplete","_ref$onFail","onFail","_ref$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$m","setPanelsContainer","PanelsContainer","hasPanels","WithPanelsComponent","panelsContainer","registerPanel","unregisterPanel","withPanels","propTypes$l","PanelPortal","_usePanels","_usePanels$panels","_usePanels$register","_usePanels$unregister","styles$g","propTypes$k","Panel","styles$f","propTypes$j","topClassName","contentClassName","openedClassName","CollapsablePanel","setOpened","isOpened","faAngleUp","faAngleDown","withTime","timeSeparator","Date$1","dateObject","dayjs","toDate","FormattedDate","year","month","day","FormattedTime","throttleDelay","onEnter","onLeave","defaultProps$h","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","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","isNumber","oddWidth","styles$8","withImages","faImage","faMapMarkerAlt","Video","faVideo","styles$7","Video360","onPrevious","onNext","onEnableInteraction","onDisableInteraction","Screen","CustomScreenComponent","ContextScreenComponent","useScreenComponent","ScreenComponent","Screen$1","memo","styles$6","defaultProps$7","ScreenPlaceholder","Placeholder","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$3","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","LinkStyle","convertStyleToString","sampleWidth","sampleMargin","minSampleHeight","progressColor","audioLevels","onSeek","onResume","onReady","AudioWave","canvasBackgroundRef","canvasProgressRef","_useResizeObserver","elRef","_ref2$width","elWidth","elHeight","x","sampleOuterWidth","samplesCount","amplitudes","sampleSize","sampleI","sampleStart","sum","sampleSizeI","normalizedAmplitudes","n","pow","max","canvasBg","canvasProgress","scale","devicePixelRatio","ctxBG","getContext","ctxProgress","clearRect","fillStyle","offsetLeft","amplitude","amplitudeI","sampleHeight","sampleX","sampleY","fillRect","seekFromX","elX","getBoundingClientRect","min","bind","useGesture","onDrag","xy","elapsedTime","drag","axis","filterTaps","canvas","clipPath","apiRef","waveFake","waveProps","reduceBufferFactor","_ref2$url","_useMediaApi","api","mediaRef","audioReady","setAudioLevels","blobUrl","setBlobUrl","random","fetch","mode","Error","arrayBuffer","URL","createObjectURL","Blob","AudioContext","webkitAudioContext","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","end","nextLineIndex","dangerouslySetInnerHTML","__html","SeekBar","onSeekClick","currentTargetRect","seekProgress","pageX","onTogglePlay","onToggleMute","MediaControls","faPause","faVolumeUp","playsInline","withoutCors","_ref2$files","hasFiles","h264","webm","mediaUrl","withSize","Video$1","horizontalAlign","verticalAlign","repeat","Background","hasVideo","_ref2$metadata","videoMetadata","_ref2$thumbnail_url","videoThumbnail","hasSize","sizeStyle","finalStyle","imageMetadata","imageThumbnailUrl","isImageGIF","finalImage","backgroundImage","backgroundRepeat","backgroundPosition","backgroundSize","videoContainerStyle","_ref5$width","videoWidth","_ref5$height","videoHeight","_getSizeWithinBounds","getSizeWithinBounds","cover","_getSizeWithinBounds$","resizedVideoWidth","_getSizeWithinBounds$2","resizedVideoHeight","resizedVideoLeft","resizedVideoTop","videoContainer","Container","StackContext","StackProvider","minSize","maxSize","Spacer","minWidth","maxWidth","minHeight","maxHeight","Stack","flexDirection","alignItems","justifyContent","space","lastIndex","toArray","allChildren","HStack","VStack","distribution","Layout","linksStyle","lineClamp","showEmpty","inline","finalLinkStyle","WebkitLineClamp","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","textColor","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","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","MediasApi","_Base","tags","store","update","requestGet","route","count","finalQuery","requestPut","requestDelete","ContributionsApi","QuizApi","Api","contributions","quiz","ApiContext","useApi","defaultProps$1","ApiProvider","initialApi","previousApi","useData","loadData","_ref$initialData","initialData","_ref$autoload","autoload","setLoading","setError","setData","newError","loader","useItems","_ref$getPage","getPage","_ref$getItems","getItems","_ref$page","_ref$count","_ref$items","providedItems","_ref$pages","initialPages","_ref$getPageFromRespo","getPageFromResponse","_ref2$meta","current_page","lastPage","last_page","_ref$getItemsFromResp","getItemsFromResponse","_ref$onItemsLoaded","onItemsLoaded","_ref$onPageLoaded","onPageLoaded","_ref$onLoaded","onLoaded","_ref$onError","onError","isPaginated","lastState","initialState","finalInitialPages","currentLastPage","initialLastPage","state","setState","stateItems","pagesItems","pageItems","updateState","updateFromResponse","newPage","newPages","sort","a","b","newItems","loadItems","requestPage","reject","hadState","loadPromise","pageToLoad","allLoaded","loadNextPage","nextPage","remainingPages","firstItem","getNextPage","resolve","loadPage","useMediaTags","getTags","_useItems","request","useQuizCreate","_ref$onSuccess","onSuccess","creating","setCreating","create","screen_id","apiBaseUrl","DataProvider","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","submitContribution","useContributionCreate","_ref$opts","defaultContributions","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","loadingMode","finalContainerStyle","finalImageStyle","_ref3$width","mediaWidth","_ref3$height","mediaHeight","_ref3$description","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","videoAutoplay","videoLoop","videoInitialMuted","Visual","thumbnailUrl","isVideo","isGIF","elProps","imageElProps","tmpProps","_ref4$fit","_ref5$metadata","_ref6$width","_ref6$height","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","dot","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","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","_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","img$1","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","_typeof","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","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","_ref10$textStyle","_ref11$color","labelColor","hasAnswer","itemContent","emptyAnswer","resultIcon","faIcon","optionLabel","resultContent","emptyResult","resultText","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$ascending","allItems","_Text2","descriptionStory","descriptionComponent","reducedStory","_Container2","bigContainerStory","bigContainerComponent","withPercentLabels","resultTransitionDuration","SurveyScreen","_ref11","_useQuiz$quiz","useQuiz","quizAnswersComputed","points","_ref2$count","computed","answersTotal","ans","_ref3$label","_ref4$body","_ref5$count","qa","countWithUser","percent","evenlySplit","numbers","desiredTotal","remainder","delta","res","getLargestRemainderRound","emptyQuestion","buttonsRefs","labelsRefs","buttonMaxWidth","setButtonMaxWidth","finalTransitionDuration","totalWidth","clientWidth","_ref6$label","_ref7$body","_ref8$percent","_ref9$textStyle","_ref10$color","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","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","_ref5$autoPlay","_ref5$media","_ref5$closedCaptions","_ref5$withSeekBar","_ref5$withPlayPause","finalVideo","_ref6$metadata","videoUrl","_ref6$thumbnail_url","hasVideoUrl","_ref7$width","onVideoReady","PlaceholderVideo","emptyContainer","VideoScreen$1","_Video","Video360Screen","videoContainerRef","hasThumbnail","posterReady","setPosterReady","withVideoSphere","onPosterLoaded","canvasRef","camera","scene","renderer","lon","phi","theta","distance","pointerDown","pointerDownX","pointerDownY","pointerLon","pointerLat","render3D","MathUtils","degToRad","sin","cos","y","z","lookAt","render","_canvasRef$current","canvasWidth","canvasHeight","PerspectiveCamera","Scene","geometry","SphereBufferGeometry","_ref8$mediaRef","_ref9$current","videoTexture","VideoTexture","videoMaterial","MeshBasicMaterial","mesh","Mesh","add","WebGLRenderer","setPixelRatio","onFrame","requestRef","startTimeRef","requestAnimationFrame","cancelAnimationFrame","useAnimationFrame","aspect","updateProjectionMatrix","togglePlayTimeout","onPointerDown","clientX","clientY","pixelsMoved","lastPointerClient","pixelsMovedTracked","onPointerMove","_ref10$clientX","_ref10$clientY","downDeltaX","downDeltaY","_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","DropdownSection","setOpen","currentItem","onOpen","onItemClick","dataset","dropdownToggle","itemValue","itemClassNames","parent","TagSection","onItemChange","filters","sections","SearchFilters","getActive","sectionFilters","f","activeSections","section","onSectionChange","onClickIcon","Search","onSearchChange","onClickSearchIcon","faSearch","CloseButton","types","users","usage","onReset","ActiveFilters","handleReset","removeFilter","activeValue","newFilterValue","hasValue","oneHasValue","filtersValue","withoutTitle","withoutSource","withoutType","onClickAdd","onClickCancel","onFocusSearch","onFiltersChange","onClickBack","_useMediasRecentSearc","createSearch","recent","localStorage","getItem","encoded","setItem","getSearches","useMediasRecentSearches","_useMediaTags$tags","_useSearchFilters","_ref$recent","_ref$tags","_ref$team","team","_ref$sources","upstreamSources","_ref$withType","withType","useSearchSections","searchValue","hasFilter","onFilterChange","isOpen","newFiltersValue","onFiltersReset","onSourceChange","onSearchFocus","onClear","onToggleMenu","faChevronLeft","faPlus","middleEllipsis","maxLength","substring","midpoint","ceil","toremove","lstrip","rstrip","selected","withInfoButton","onClickInfo","GalleryItem","_item$thumbnail_url","faInfoCircle","faTimesCircle","faPlayCircle","faHeadphonesAlt","selectedItem","selectedFirst","onClickItemInfo","Gallery","MediaMetadata","mediaName","_ref3$filename","_ref3$size","_ref3$duration","_ref3$user","mediaDescription","_ref3$tags","mediaTags","usedTags","updating","setUpdating","useMediaUpdate","loadTags","input","getOptionLabel","getOptionValue","getNewOptionData","inputValue","allTags","setName","setDescription","setTags","changed","setChanged","onTagChange","onDescriptionChange","onSave","TextField","TokensField","loadOptions","prettyBytes","isPicker","selectedMedia","navbarClassName","onClickMedia","MediaGallery","initialMedias","defaultFilters","queryValue","setQueryValue","setFiltersValue","_useMedias","requestedPage","allMedias","useMedias","loadedMedias","_useMedias$loading","addedMedias","setAddedMedias","metadataMedia","setMetadataMedia","onMetadataClickClose","uploading","setUploading","uploadModalOpened","setUploadModalOpened","createMedia","useMediaCreate","onUploadCompleted","newAddedMedias","onUploadRequestClose","propTypes$19","FieldErrors$1","propTypes$18","FieldErrors","propTypes$17","help","isListItem","withoutLabel","withSettings","withForm","withValue","buttonOutline","gotoSettings","gotoForm","FieldRow","withLabel","isClickable","onClickRow","containerClassName","labelElement","col","helpElement","errorsElement","arrowElement","faAngleRight","rowInner","faSlidersH","propTypes$16","defaultProps$16","Field","providedComponent","providedWithForm","_ref2$settings","_ref2$withoutLabel","_ref2$withoutFieldRow","withoutFieldRow","_ref2$withForm","_ref2$isList","isList","isFields","finalWithForm","finalIsHorizontal","finalWithoutLabel","finalWithSettings","settingsComponent","fieldElement","propTypes$15","withBorders","nullEmptyObject","isFlushList","fieldClassName","Fields","globalIsHorizontal","nullableOnChange","nullableValue","createNullableOnChange","visibleFields","_ref2$hidden","fieldsAdvanced","_ref3$advanced","advanced","normalFieldsIndex","advancedFieldsIndex","fieldsElements","customValue","customErrors","_field$onChange","customOnChange","_field$isHorizontal","_field$isSection","singleFieldValue","singleFieldErrors","fieldErrors","fieldRowClassName","propTypes$14","labelPath","thumbnailPath","noValueLabel","FieldWithForm","labelValue","labelString","thumbnailElement","thumbnailSrc","propTypes$13","withoutThumbnail","defaultProps$13","MediaField","propTypes$12","AudioField","textOnly","propTypes$11","getDefaultValue","noItemLabel","addItemLabel","itemFieldLabel","itemComponent","withoutSort","isFieldForm","defaultProps$11","ItemsField","editing","setEditing","idMap","v4","newDefaultValue","onClickEdit","old","onClickDelete","newValues","idIndex","onOrderChange","prevIndex","newIndex","newIdMap","gotoForms","closeForms","_items$length","hasItems","sortableItems","finalWithoutSort","ReactSortable","list","setList","faBars","isFunction","faTrash","faEdit","breadcrumbLabel","propTypes$10","inputRef","prefix","autofocus","_onChange","_ref3$currentTarget$v","autoFocus","TextField$1","rangeFromMinMax","lastValue","generateSteps","steps","propTypes$$","marks","marksStep","marksCount","marksStyle","unit","withInput","defaultProps$$","SliderField","finalMarks","rangeFromStep","finalCount","rangeFromCount","slider","Slider","propTypes$_","BorderRadius","getSelectOptions","propTypes$Z","withBackground","uncheckable","Radios","finalOptions","optionValue","autoComplete","checked","propTypes$Y","BorderStyle","propTypes$X","BorderWidth","dataList","propTypes$W","onUpdateValue","_ref3$active","wasActive","_ref4$active","nowActive","_ref4$type","_ref4$label","finalValue","firstOptionAsDefault","propTypes$V","Checkboxes","checkboxes","propTypes$U","ClosedCaptionField","propTypes$T","ColorPickerField","setColors","c","newColor","SketchPicker","presetColors","picker","boxShadow","rgb","propTypes$S","ColorField","_ref2$color","hexColor","toHexString","previewElement","propTypes$R","speakerOptions","speakerIndex","entriesWithImage","entriesWithVisual","entryWithImage","entryWithVisual","fieldWithForm","fields$1","propTypes$Q","ObjectFitSize","frame","propTypes$P","FontField","propTypes$O","FontsField","normalize","toLowerCase","fontEquals","fontA","fontB","propTypes$N","maxFontsVisible","FontFamily","valueName","setSearch","fontsGroups","fontGroup","hasSearch","currentSearch","searchNormalized","addedValueFont","filteredFonts","fontsToLoad","allFonts","getFontFamilyFromFont","propTypes$M","floatStep","fullWidth","NumberField","_float","parseValue","onInputChange","hasDataList","dataListActive","setDataListActive","onInputFocus","onInputBlur","onDataListClick","dataListValue","faChevronDown","propTypes$L","FontSize","propTypes$K","defaultZoom","getFixedCoords","precision","GeoPosition","address","setAddress","mapReady","setMapReady","addressInputRef","autoCompleteRef","setFinalValue","dragValue","setDragValue","onValuePropChanged","mergedValue","onLatitudeChange","onLongitudeChange","onMapCenterChanged","mapCenter","onPlaceChanged","getPlace","_ref4$geometry","onSearchButtonClick","focus","places","Autocomplete","origin","setFields","clearListeners","pin","Pin","infos","coord","coordLabel","imageWithCaption","propTypes$J","ImageField","imagesWithCaption","ImagesField","TextareaField","TextElement$1","onLabelChange","newLabel","itemTextStyle","fontAwesomeIconType","iconName","iconRotation","NumberWithIcon","mapZoom","password","parameters","radios","ScreenLayoutField","_useScreenDefinition","finalFields","useScreenDefinition","_useScreenDefinition$","screenLayout","selectTheme","primary","primary75","primary50","primary25","danger","dangerLight","neutral0","neutral5","neutral10","neutral20","neutral30","neutral40","neutral50","neutral60","neutral70","neutral80","neutral90","withoutReset","SelectAdvancedField","translatedOptions","option","onChangeOption","opt","isEqual","Select","isClearable","select","fontStyleName","alignName","stylesOptions","alignOptions","defaultProps$C","faBold","faItalic","faUnderline","faAlignLeft","faAlignCenter","faAlignRight","FontStyles$1","styleKeys","fontStyleValue","alignValue","onFontStyleChange","newFontStyleValue","valueMap","styleKey","onAlignChange","newAlignValue","transformOptions","defaultProps$B","FontStyleTransform","transformValue","onTransformChange","newTransformValue","ToggleField","Switch","toggle","defaultProps$z","Tokens","filterOptions","onTokenChange","AsyncCreatableSelect","isMulti","defaultOptions","DropdownIndicator","IndicatorSeparator","tokens","prepend","append","InputGroup","schemes","UrlField","schemesPattern","scheme","getScheme","valueWithoutScheme","removeScheme","valueWithScheme","withScheme","VideoField","VisualField","visual","visualWithCaption","visualsWithCaption","VisualsField","visuals","buttonElement","allFields","AdFormatField","AnswerField","_ref2$text","AnswersField","searchOptions","isCaseSensitive","includeScore","includeMatches","minMatchCharLength","shouldSort","maxResults","AutocompleteField","fuse","Fuse","maxedList","ContainerStyleField","ElementField","settingsNames","_ref2$setting","setting","componentFields","_ref3$setting","componentValue","scopedValue","componentOnChange","newComponentValue","ElementList","grids","GridLayout","columnClassName","ImageStyleField","MapField","MarginField","faArrowUp","MarkerField","MarkersField","defaultProps$g","MessageField","axisOptions","crossOptions","Icon","rotateLeft","rotateRight","faArrowLeft","faDotCircle","faArrowRight","Position","horizontal","_ref3$axisAlign","axisAlign","_ref3$crossAlign","crossAlign","axisOption","axisLabel","crossOption","crossLabel","QuestionField","SelectField","SlideField","SliderPixelField$1","SliderPixelField","SliderPointField","SlidesField","Spacing","StaticField","TargetField","packageCache$1","editorConfig","TextEditorField","CKEditor","useCKEditor$1","InlineEditor","useCKEditor","finalEditorConfig","onEditorReady","editor","onEditorChange","getData","removePlugins","toolbar","link","addTargetToExternalLinks","bodyValue","onBodyChange","newBody","defaultProps$2","FontStyles","VisualsWithCaptionField","AdFormat","Answer","Answers","Color","ColorPicker","ContainerStyle","Element","Font","Fonts","FontStyleWithAlign","Images","ImageStyle","InputElement","Items","Margin","Markers","Number","Fit","Question","ScreenLayout","SelectAdvanced","Slide","SliderPixel","SliderPercentage","SliderPoint","Slides","Target","TextEditor","TextTransform","Toggle","Url","Visuals","VisualsWithCaption","FieldsProvider$1","home","ViewerScreen","MenuIcon","squareSize","square","squareI","colorAccent","colorBackground","closeable","onClose","ViewerMenuDots","menu","menuIcon","menuButton","onShare","ShareModal","onShareButtonClick","shareButtonProps","onShareWindowClose","shareIconProps","FacebookShareButton","beforeOnClick","FacebookIcon","TwitterShareButton","TwitterIcon","EmailShareButton","subject","EmailIcon","ShareButton","storyShareModalOpened","setStoryShareModalOpened","onShareIconClick","onStoryShared","onStoryShareCanceled","screenWidth","thumbsPerLine","toggleFullscreen","fullscreenActive","fullscreenEnabled","ViewerMenuPreview","screenSizeRatio","screenRatioHeight","thumbSize","setThumbSize","firstScreenContainerRef","_firstScreenContainer","_ref2$colors","_ref2$background","_ref2$textStyles","_ref2$logo","brandLogo","brandTextStyle","_ref4$primary","brandPrimaryColor","_ref4$secondary","secondary","brandSecondaryColor","_ref5$color","brandBackgroundColor","brandImageUrl","borderPrimaryColorStyle","colorSecondaryColorStyle","backgroundColorStyle","_ref7$url","brandLogoUrl","brandImageStyle","titleStyle","dragBind","useDrag","dy","tap","eventOptions","capture","faShare","faCompress","faExpand","screenAriaLabel","onScreenChange","tapNextScreenWidthPercent","neighborScreensActive","storyIsParsed","landscapeScreenMargin","withMetadata","withoutMenu","withoutFullscreen","onInteraction","onEnd","onViewModeChange","Viewer","_ref14","_ref$withTheme","_ref$withMedias","_ref$withFonts","useParsedStory","_parsedStory$componen","_parsedStory$title","_parsedStory$metadata","_parsedStory$fonts","_ref4$fontFamily","themeFont","finalFonts","trackScreenView","useTrackScreenView","useTrackEvent","_useScreenSizeFromEle","calculatedWidth","calculatedHeight","fullHeight","_opts$withoutMaxSize","withoutMaxSize","finalHeight","useScreenSizeFromElement","screenHeight","_ref5$landscape","_ref5$menuOverScreen","menuDotsContainerRef","menuDotsContainerHeight","menuPreviewContainerRef","menuPreviewContainerHeight","String","changeIndex","trackingEnabled","currentScreen","_ref8$type","onScreenPrevious","onScreenNext","screensCount","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","onClickDotsMenuItem","clickedOnDot","goToScreen","trackAction","trackLabel","onClickPreviewMenuItem","closePreviewMenu","onClickPreviewMenuClose","onClickShare","onContextMenu","withoutScreensTransforms","overscrollStyle","_useFullscreen","screenfull","isEnabled","setActive","unFullscreen","exit","useFullscreen","onKey","foundMatch","keyCode","_ref13$title","screenTitle","_ref13$description","screenDescription","finalTitle","finalMetadata","screenName","scr","viewerScreen","screenTransform","ViewerRoutes","otherProps","useHistory","_ref$pathname","_ref$search","useRoutePush","finalOnScreenChange","Route","exact","defaultRoutes","memoryRouter","withoutRouter","googleApiKey","translations","ViewerContainer","Router","MemoryRouter","BrowserRouter","finalTrackingVariables","_story$id","_story$slug","slug","_story$title","storyId","storySlug","storyTitle","_ref3$language","finalLocale","basename","renderStory","MICROMAG_VIEWER_PROPS","getElementById","MICROMAG_STORY"],"mappings":"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","file":"static/js/main.550c725c.chunk.js","sourcesContent":["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 'react';\nimport { pascalCase } from 'change-case';\nimport 'tinycolor2';\nimport 'lodash/isString';\nimport _slicedToArray from '@babel/runtime/helpers/slicedToArray';\nimport 'slugify';\nimport uniqBy from 'lodash/uniqBy';\nimport _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';\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};\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};\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 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 FieldsManager;\n}(DefinitionsManager);\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, [\"medias\"]);\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 _this2 = this;\n\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\n\n var newComponents = medias !== null ? components.map(function (screen) {\n var type = screen.type;\n\n var fieldsPattern = _this2.getFieldsPatternByScreen(type);\n\n return MediasParser.replacePathsWithMedias(screen, medias, fieldsPattern);\n }) : 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 _this3 = 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 ? _this3.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(_this3.getMediaFieldsPattern(subFields, path)), _toConsumableArray(_this3.getMediaFieldsPattern(settings, path)), _toConsumableArray(itemsField !== null ? _this3.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 var keys = dataIsArray ? _toConsumableArray(data.keys()) : Object.keys(data);\n return keys.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 var keys = dataIsArray ? _toConsumableArray(data.keys()) : Object.keys(data);\n return keys.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\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 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, [\"fonts\"]);\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 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\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 = screen || {},\n _ref$id = _ref.id,\n screenId = _ref$id === void 0 ? null : _ref$id,\n _ref$type = _ref.type,\n screenType = _ref$type === void 0 ? null : _ref$type;\n\n var data = {\n event: 'screenView',\n screenId: screenId,\n screenType: screenType,\n screenIndex: screenIndex\n };\n this.push(data);\n }\n }, {\n key: \"trackEvent\",\n value: function trackEvent(category, action, label) {\n var _ref2 = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {},\n _ref2$value = _ref2.value,\n value = _ref2$value === void 0 ? null : _ref2$value,\n opts = _objectWithoutProperties(_ref2, [\"value\"]);\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 _ref3 = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {},\n _ref3$value = _ref3.value,\n value = _ref3$value === void 0 ? null : _ref3$value,\n opts = _objectWithoutProperties(_ref3, [\"value\"]);\n\n var _ref4 = media || {},\n _ref4$id = _ref4.id,\n mediaId = _ref4$id === void 0 ? null : _ref4$id,\n _ref4$name = _ref4.name,\n name = _ref4$name === void 0 ? null : _ref4$name,\n _ref4$duration = _ref4.duration,\n duration = _ref4$duration === void 0 ? null : _ref4$duration,\n _ref4$currentTime = _ref4.currentTime,\n currentTime = _ref4$currentTime === void 0 ? null : _ref4$currentTime;\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 { snakeCase } from 'snake-case';\nimport isObject from 'lodash/isObject';\nimport { useEffect } from 'react';\nimport { pascalCase, paramCase, snakeCase as snakeCase$1 } 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 _defineProperty from '@babel/runtime/helpers/defineProperty';\nimport tinycolor from 'tinycolor2';\nimport isString from 'lodash/isString';\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(snakeCase(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 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\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 || diff < currentDiff && (!currentIsLarger && sizeIsLarger || currentDiff > maxDiff) || diff <= maxDiff && !currentIsLarger && isLarger || 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(value) {\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\n if (value === null || typeof value === 'undefined') {\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 _defineProperty({}, property, alpha !== null || overideAlpha !== null ? tinycolor(color).setAlpha(overideAlpha !== null ? overideAlpha : alpha).toRgbString() : color);\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 style = _value$style === void 0 ? null : _value$style,\n _value$color = value.color,\n color = _value$color === void 0 ? null : _value$color;\n var colorProcessed = getStyleFromColor(color, 'color');\n var validBorder = width !== null && style !== null && color !== null && colorProcessed;\n return {\n border: validBorder ? \"\".concat(width !== null ? \"\".concat(width, \"px\") : '', \" \").concat(style !== null ? style : '', \" \").concat(colorProcessed ? colorProcessed.color : '') : null\n };\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({}, getStyleFromColor(backgroundColor, 'backgroundColor')), {}, {\n borderRadius: borderRadius || null\n }, 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 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({\n objectFit: size,\n objectPosition: axisAlign !== null && crossAlign !== null ? \"\".concat(axisAlign, \" \").concat(crossAlign) : null\n }, getStyleFromColor(backgroundColor, 'backgroundColor'));\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 align = _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({\n fontFamily: getFontFamily(fontFamily),\n fontSize: fontSize,\n fontStyle: italic ? 'italic' : null,\n fontWeight: bold ? 'bold' : null,\n textDecoration: underline ? 'underline' : null,\n textTransform: textTransform,\n textAlign: align,\n lineHeight: lineHeight,\n letterSpacing: letterSpacing,\n WebkitTextStroke: outline ? \"2px \".concat(getStyleFromColor(color, 'color').color) : null\n }, outline ? {\n color: 'transparent'\n } : getStyleFromColor(color, 'color'));\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 {\n marginTop: marginTop,\n marginBottom: marginBottom\n };\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) || 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(str);\n } else {\n toSlug = snakeCase$1(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, getComponentFromName, getDeviceScreens, getDisplayName, getFieldByName, getFieldFromPath, getFileName, getFontFamily as getFontFamilyFromFont, getGridLayoutName, largestRemainderRound as getLargestRemainderRound, getLayoutParts, getOptimalImageUrl, getScreenExtraField, getSecondsFromTime, getStyleFromBorder, getStyleFromButton, getStyleFromColor, getStyleFromContainer, getStyleFromImage, 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, ScreensManager, PropTypes as PropTypes$1, FieldsManager, ColorsParser, Tracking } from '@micromag/core';\nimport _slicedToArray from '@babel/runtime/helpers/slicedToArray';\nimport _defineProperty from '@babel/runtime/helpers/defineProperty';\nimport _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';\nimport uniqBy from 'lodash/uniqBy';\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 ScreensContext = /*#__PURE__*/React.createContext(new ScreensManager());\nvar useScreensManager = function useScreensManager() {\n return useContext(ScreensContext);\n};\nvar propTypes$h = {\n screens: PropTypes$1.screenDefinitions,\n manager: PropTypes.instanceOf(ScreensManager),\n children: PropTypes.node.isRequired\n};\nvar defaultProps$h = {\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$h;\nScreensProvider.defaultProps = defaultProps$h;\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$g = {\n fields: PropTypes$1.fieldDefinitions,\n manager: PropTypes.instanceOf(FieldsManager),\n children: PropTypes.node.isRequired\n};\nvar defaultProps$g = {\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$g;\nFieldsProvider.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 _useEditor = useEditor(),\n getColors = _useEditor.getColors;\n\n return getColors;\n};\nvar propTypes$e = {\n children: PropTypes.node.isRequired\n};\nvar defaultProps$e = {};\nvar EditorProvider = function EditorProvider(_ref) {\n var children = _ref.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\n/* eslint-disable react/jsx-props-no-spreading */\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 if (contextTracking !== null) {\n contextTracking.setVariables(variables);\n return contextTracking;\n }\n\n return new Tracking({\n variables: 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\n/**\n * Locale loader\n */\n\nvar packagesCache$1 = {};\nvar defaultPackagesMap$1 = {\n transloadit: function transloadit() {\n return import('@uppy/transloadit');\n },\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, [\"default\"]);\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\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, [\"default\"]);\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 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, [\"sources\"]);\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, [\"key\", \"templateId\", \"waitForEncoding\"]);\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 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, [\"fields\", \"injectInFields\"]);\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, [\"fields\"]);\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 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 ? 300 : _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 }\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 }\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 media = 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.readyState > 1) {\n setDataReady(true);\n } else {\n setDataReady(false);\n }\n\n if (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 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, [\"width\", \"height\"]);\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 var _opts$withoutMaxSize = opts.withoutMaxSize,\n withoutMaxSize = _opts$withoutMaxSize === void 0 ? false : _opts$withoutMaxSize;\n var landscapeWithMaxSize = landscape && !withoutMaxSize;\n var finalWidth = fullWidth;\n var finalHeight = fullHeight;\n var menuOverScreen = !landscape;\n\n if (landscapeWithMaxSize) {\n if (fullHeight < 600) {\n menuOverScreen = true;\n } else {\n finalHeight = Math.round(fullHeight * 3 / 4);\n }\n\n finalWidth = Math.round(finalHeight * 2 / 3);\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$I = {\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$I = {\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$I;\nLabel.defaultProps = defaultProps$I;\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 propTypes$H = {\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$H = {\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, [\"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\"]);\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$H;\nButton$1.defaultProps = defaultProps$H;\n\nvar styles$r = {};\n\nvar propTypes$G = {\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$G = {\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, [\"className\", \"onClick\", \"theme\"]);\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$G;\nButtons.defaultProps = defaultProps$G;\n\nvar propTypes$F = {\n className: PropTypes$1.string\n};\nvar defaultProps$F = {\n className: null\n};\n\nvar BackButton = function BackButton(_ref) {\n var className = _ref.className,\n props = _objectWithoutProperties(_ref, [\"className\"]);\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$F;\nBackButton.defaultProps = defaultProps$F;\n\nvar propTypes$E = {\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$E = {\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, [\"type\"]);\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, [\"component\", \"id\", \"settings\"]);\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$E;\nFieldForm.defaultProps = defaultProps$E;\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$D = {\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$D = {\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$D;\nForm.defaultProps = defaultProps$D;\n\nvar styles$p = {\"withoutStyle\":\"micromag-core-partials-link-withoutStyle\"};\n\nvar propTypes$C = {\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$C = {\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, [\"href\", \"external\", \"children\", \"target\", \"rel\", \"className\", \"withoutStyle\"]);\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$C;\nLink.defaultProps = defaultProps$C;\n\nvar propTypes$B = {\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$B = {\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, [\"label\", \"className\"]);\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$B;\nCard.defaultProps = defaultProps$B;\n\nvar propTypes$A = {\n animated: PropTypes$1.bool,\n color: PropTypes$1.string,\n className: PropTypes$1.string\n};\nvar defaultProps$A = {\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$A;\nSpinner.defaultProps = defaultProps$A;\n\nvar styles$o = {};\n\nvar propTypes$z = {\n description: PropTypes$1.node,\n loading: PropTypes$1.bool,\n children: PropTypes$1.node,\n className: PropTypes$1.string\n};\nvar defaultProps$z = {\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, [\"description\", \"loading\", \"children\", \"className\"]);\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$z;\nFormPanel.defaultProps = defaultProps$z;\n\nvar styles$n = {\"container\":\"micromag-core-menus-breadcrumb-container\",\"arrow\":\"micromag-core-menus-breadcrumb-arrow\"};\n\nvar propTypes$y = {\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$y = {\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$y;\nBreadcrumb.defaultProps = defaultProps$y;\n\nvar propTypes$x = {\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$x = {\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, [\"id\", \"type\", \"className\", \"label\", \"children\", \"onClick\", \"active\"]);\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$x;\nDropdown.defaultProps = defaultProps$x;\n\nvar propTypes$w = {\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$w = {\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, [\"id\", \"className\", \"linkClassName\", \"href\", \"label\", \"external\", \"items\", \"dropdown\", \"active\", \"onClick\"]);\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$w;\nMenu.defaultProps = defaultProps$w;\n\nvar propTypes$v = {\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$v = {\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$v;\nNavbar.defaultProps = defaultProps$v;\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$u = {\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$u = {\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$u;\nPaginationMenu.defaultProps = defaultProps$u;\n\nvar styles$l = {\"container\":\"micromag-core-menus-tabs-container\"};\n\nvar propTypes$t = {\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$t = {\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$t;\nTabsMenu.defaultProps = defaultProps$t;\n\nvar styles$k = {\"container\":\"micromag-core-modals-container\",\"modals\":\"micromag-core-modals-modals\",\"hasModals\":\"micromag-core-modals-hasModals\"};\n\nvar propTypes$s = {\n modals: PropTypes.modals.isRequired,\n setModalsContainer: PropTypes$1.func.isRequired,\n className: PropTypes$1.string\n};\nvar defaultProps$s = {\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$s;\nModalsContainer.defaultProps = defaultProps$s;\nvar Modals = withModals(ModalsContainer);\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 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$r = {\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$r;\nElementPortal.defaultProps = defaultProps$r;\n\n/* eslint-disable react/no-array-index-key, react/jsx-props-no-spreading */\nvar propTypes$q = {\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$q = {\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$q;\nModalPortal.defaultProps = defaultProps$q;\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$p = {\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$p = {\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$p;\nModal.defaultProps = defaultProps$p;\n\nvar styles$i = {\"container\":\"micromag-core-modals-dialog-container\"};\n\nvar propTypes$o = {\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$o = {\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$o;\nModalDialog.defaultProps = defaultProps$o;\n\nvar propTypes$n = {\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$n = {\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$n;\nUploadModal.defaultProps = defaultProps$n;\n\nvar styles$h = {\"container\":\"micromag-core-panels-container\"};\n\nvar propTypes$m = {\n panels: PropTypes.panels,\n setPanelsContainer: PropTypes$1.func,\n className: PropTypes$1.string\n};\nvar defaultProps$m = {\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$m;\nPanelsContainer.defaultProps = defaultProps$m;\nvar Panels = withPanels(PanelsContainer);\n\n/* eslint-disable react/no-array-index-key, react/jsx-props-no-spreading */\nvar propTypes$l = {\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$l = {\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$l;\nPanelPortal.defaultProps = defaultProps$l;\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$k = {\n id: PropTypes$1.string,\n title: PropTypes$1.string,\n children: PropTypes$1.node\n};\nvar defaultProps$k = {\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$k;\nPanel.defaultProps = defaultProps$k;\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$j = {\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$j = {\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$j;\nCollapsablePanel.defaultProps = defaultProps$j;\n\n/* eslint-disable react/jsx-props-no-spreading */\nvar propTypes$i = {\n date: PropTypes$1.string,\n withTime: PropTypes$1.bool,\n timeSeparator: PropTypes$1.node\n};\nvar defaultProps$i = {\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$i;\nDate$1.defaultProps = defaultProps$i;\n\n/* eslint-disable react/no-danger */\nvar propTypes$h = {\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$h = {\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$h;\nDetector.defaultProps = defaultProps$h;\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$g = {\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$g = {\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$g;\nPlaceholderBlock.defaultProps = defaultProps$g;\n\n/* eslint-disable react/jsx-props-no-spreading */\n\nvar propTypes$f = {\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$f = {\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$f;\nElementComponent.defaultProps = defaultProps$f;\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$e = {\n children: PropTypes$1.node,\n withoutBorder: PropTypes$1.bool,\n light: PropTypes$1.bool,\n className: PropTypes$1.string\n};\nvar defaultProps$e = {\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$e;\nEmpty.defaultProps = defaultProps$e;\n\nvar propTypes$d = {\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$d = {\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$d;\nFontFaces.defaultProps = defaultProps$d;\n\nvar styles$c = {};\n\nvar propTypes$c = {\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$c = {\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$c;\nMedia.defaultProps = defaultProps$c;\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};\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};\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$b = {\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$b = {\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$b;\nMeta.defaultProps = defaultProps$b;\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$a = {\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$a = {\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$a;\nSlideshow.defaultProps = defaultProps$a;\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$9 = {\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$9 = {\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$9;\nPlaceholderText.defaultProps = defaultProps$9;\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$8 = {\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};\nvar defaultProps$8 = {\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};\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 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 }))) : /*#__PURE__*/React.createElement(\"div\", {\n className: className\n }, component));\n};\n\nScreen.propTypes = propTypes$8;\nScreen.defaultProps = defaultProps$8;\nvar Screen$1 = /*#__PURE__*/React.memo(Screen);\n\nvar styles$6 = {\"container\":\"micromag-core-screens-screen-placeholder-container\"};\n\nvar propTypes$7 = {\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$7 = {\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$7;\nScreenPlaceholder.defaultProps = defaultProps$7;\nvar Placeholder = /*#__PURE__*/React.memo(ScreenPlaceholder);\n\nvar styles$5 = {\"container\":\"micromag-core-screens-preview-container\"};\n\nvar propTypes$6 = {\n screen: PropTypes.component.isRequired,\n width: PropTypes$1.number,\n height: PropTypes$1.number,\n className: PropTypes$1.string\n};\nvar defaultProps$6 = {\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$6;\nScreenPreview.defaultProps = defaultProps$6;\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$5 = {\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$5 = {\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$5;\nScreenElement.defaultProps = defaultProps$5;\n\nvar styles$1 = {\"container\":\"micromag-core-screens-container\",\"screen\":\"micromag-core-screens-screen\",\"visible\":\"micromag-core-screens-visible\"};\n\nvar propTypes$4 = {\n screens: PropTypes.storyComponents.isRequired,\n screen: PropTypes$1.string,\n className: PropTypes$1.string\n};\nvar defaultProps$4 = {\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$4;\nScreens.defaultProps = defaultProps$4;\n\nvar styles = {\"container\":\"micromag-core-transitions-transition-container\",\"fullscreen\":\"micromag-core-transitions-transition-fullscreen\"};\n\nvar propTypes$3 = {\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$3 = {\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$3;\nTransition.defaultProps = defaultProps$3;\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$2 = {\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$2 = {\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$2;\nTransitions.defaultProps = defaultProps$2;\n\nvar propTypes$1 = {\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$1 = {\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$1;\nTransitionsStagger.defaultProps = defaultProps$1;\n\nvar propTypes = {\n selector: PropTypes$1.string,\n style: PropTypes$1.objectOf(PropTypes$1.oneOfType([PropTypes$1.string, PropTypes$1.number]))\n};\nvar defaultProps = {\n selector: null,\n style: null\n};\n\nvar LinkStyle = function LinkStyle(_ref) {\n var selector = _ref.selector,\n style = _ref.style;\n return /*#__PURE__*/React.createElement(\"style\", {\n type: \"text/css\"\n }, \"\".concat(selector !== null ? \"\".concat(selector, \" \") : '', \"a{\").concat(convertStyleToString(style), \"}\"));\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, 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 React, { useRef, useEffect, useCallback, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { PropTypes as PropTypes$1 } from '@micromag/core';\nimport { useUserInteracted } from '@micromag/core/contexts';\nimport { useResizeObserver, useMediaApi } from '@micromag/core/hooks';\nimport 'whatwg-fetch';\nimport { useGesture } from 'react-use-gesture';\nimport { useSpring } from '@react-spring/core';\nimport { animated } from '@react-spring/web';\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);\n var amplitudes = []; // get samples\n\n var sampleSize = Math.floor(audioLevels.length / samplesCount);\n\n for (var sampleI = 0; sampleI < samplesCount; sampleI += 1) {\n var sampleStart = sampleSize * sampleI;\n var sum = 0;\n\n for (var sampleSizeI = 0; sampleSizeI < sampleSize; sampleSizeI += 1) {\n sum += Math.abs(audioLevels[sampleStart + sampleSizeI]);\n }\n\n amplitudes.push(sum / sampleSize);\n }\n\n var normalizedAmplitudes = amplitudes.map(function (n) {\n return n * Math.pow(Math.max.apply(Math, amplitudes), -1);\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 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\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, [\"ref\"]);\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\n 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 && typeof window !== 'undefined') {\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 (window.AudioContext || window.webkitAudioContext)();\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 newArray[newArray.length] = level;\n }\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, 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 default Audio$1;\nexport { AudioWave };\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 default ClosedCaptions;\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 default MediaControls;\nexport { SeekBar };\n","import _defineProperty from '@babel/runtime/helpers/defineProperty';\nimport _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';\nimport React, { 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';\n\nvar styles = {\"container\":\"micromag-element-video-container\",\"withSize\":\"micromag-element-video-withSize\"};\n\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 // 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 // onPosterLoaded: null,\n\n};\n\nvar Video = function Video(_ref) {\n var _ref3;\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\n var _ref2 = media || {},\n _ref2$url = _ref2.url,\n url = _ref2$url === void 0 ? null : _ref2$url,\n _ref2$files = _ref2.files,\n files = _ref2$files === void 0 ? null : _ref2$files;\n\n var hasFiles = files !== null && typeof files.h264 !== 'undefined' && typeof files.webm !== 'undefined';\n var mediaUrl = hasFiles ? files.h264.url : url;\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, [\"ref\"]);\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, (_ref3 = {}, _defineProperty(_ref3, className, className !== null), _defineProperty(_ref3, styles.paused, !playing), _defineProperty(_ref3, styles.withSize, withSize), _ref3)]),\n style: withSize ? {\n width: width,\n height: height\n } : null\n }, /*#__PURE__*/React.createElement(\"video\", {\n key: mediaUrl,\n ref: ref,\n src: !hasFiles ? 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 }, hasFiles ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"source\", {\n src: files.webm.url,\n type: \"video/webm\"\n }), /*#__PURE__*/React.createElement(\"source\", {\n src: files.h264.url,\n type: \"video/mp4\"\n })) : null));\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 default Video$1;\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 classNames from 'classnames';\nimport { PropTypes as PropTypes$1 } from '@micromag/core';\nimport { getStyleFromColor, getOptimalImageUrl } from '@micromag/core/utils';\nimport Video from '@micromag/element-video';\nimport { getSizeWithinBounds } from '@folklore/size';\n\nvar styles = {\"container\":\"micromag-element-background-container\",\"video\":\"micromag-element-background-video\",\"videoContainer\":\"micromag-element-background-videoContainer\"};\n\nvar propTypes = {\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 image: PropTypes$1.imageMedia,\n video: PropTypes$1.videoMedia,\n className: PropTypes.string,\n playing: PropTypes.bool,\n children: PropTypes.node\n};\nvar defaultProps = {\n width: null,\n height: null,\n fit: null,\n horizontalAlign: 'center',\n verticalAlign: 'center',\n repeat: false,\n color: null,\n image: null,\n video: 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 image = _ref.image,\n video = _ref.video,\n className = _ref.className,\n playing = _ref.playing,\n children = _ref.children;\n var hasVideo = video !== null;\n\n var _ref2 = video || {},\n _ref2$metadata = _ref2.metadata,\n videoMetadata = _ref2$metadata === void 0 ? null : _ref2$metadata,\n _ref2$thumbnail_url = _ref2.thumbnail_url,\n videoThumbnail = _ref2$thumbnail_url === void 0 ? null : _ref2$thumbnail_url;\n\n var hasSize = width > 0 && height > 0;\n var sizeStyle = hasSize ? {\n width: width,\n height: height\n } : null; // color\n\n var finalStyle = _objectSpread(_objectSpread({}, sizeStyle), getStyleFromColor(color));\n\n var _ref3 = image || {},\n imageMetadata = _ref3.metadata,\n imageThumbnailUrl = _ref3.thumbnail_url,\n imageUrl = _ref3.url;\n\n var _ref4 = imageMetadata || {},\n imageMIME = _ref4.mime;\n\n var isImageGIF = imageMIME === 'image/gif';\n var finalImage = useMemo(function () {\n var tmpImage = isImageGIF ? {\n url: playing ? imageUrl : imageThumbnailUrl\n } : image;\n return hasVideo && !playing && videoThumbnail !== null ? {\n url: videoThumbnail\n } : tmpImage;\n }, [isImageGIF, playing, imageUrl, imageThumbnailUrl, image, hasVideo, videoThumbnail]); // image\n\n if (finalImage !== null && (!hasVideo || !playing)) {\n var finalUrl = getOptimalImageUrl(finalImage, width, height);\n finalStyle.backgroundImage = \"url(\\\"\".concat(finalUrl, \"\\\")\");\n finalStyle.backgroundRepeat = repeat ? 'repeat' : 'no-repeat';\n finalStyle.backgroundPosition = [horizontalAlign, verticalAlign].join(' ');\n\n if (fit !== null) {\n finalStyle.backgroundSize = fit;\n } else if (!repeat) {\n finalStyle.backgroundSize = 'cover';\n }\n } // video\n\n\n var videoContainerStyle = {};\n\n if (hasVideo && playing) {\n if (hasSize) {\n var _ref5 = videoMetadata || {},\n _ref5$width = _ref5.width,\n videoWidth = _ref5$width === void 0 ? 0 : _ref5$width,\n _ref5$height = _ref5.height,\n videoHeight = _ref5$height === void 0 ? 0 : _ref5$height;\n\n var _getSizeWithinBounds = getSizeWithinBounds(videoWidth, videoHeight, width, height, {\n cover: fit === 'cover' || fit === null\n }),\n _getSizeWithinBounds$ = _getSizeWithinBounds.width,\n resizedVideoWidth = _getSizeWithinBounds$ === void 0 ? 0 : _getSizeWithinBounds$,\n _getSizeWithinBounds$2 = _getSizeWithinBounds.height,\n resizedVideoHeight = _getSizeWithinBounds$2 === void 0 ? 0 : _getSizeWithinBounds$2;\n\n var resizedVideoLeft = -(resizedVideoWidth - width) / 2;\n var resizedVideoTop = -(resizedVideoHeight - height) / 2;\n videoContainerStyle.width = resizedVideoWidth;\n videoContainerStyle.height = resizedVideoHeight;\n videoContainerStyle.left = resizedVideoLeft;\n videoContainerStyle.top = resizedVideoTop;\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: finalStyle\n }, hasVideo && playing ? /*#__PURE__*/React.createElement(\"div\", {\n className: styles.videoContainer,\n style: videoContainerStyle\n }, /*#__PURE__*/React.createElement(Video, {\n className: styles.video,\n media: video,\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;\nBackground.defaultProps = defaultProps;\n\nexport default Background;\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 default Container;\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 default Stack;\nexport { HStack, Spacer, StackProvider, VStack, 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 default Layout;\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-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 _ref2;\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 var finalStyle = {};\n var finalLinkStyle = 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 id = useMemo(function () {\n return finalLinkStyle !== null ? \"text-component-\".concat(v1()) : null;\n }, [finalLinkStyle !== null]);\n var tagProps = {\n id: id,\n className: classNames([styles.container, (_ref2 = {}, _defineProperty(_ref2, styles.withLineClamp, lineClamp !== null), _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 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, /*#__PURE__*/React.createElement(Tag, tagProps));\n};\n\nText.propTypes = propTypes;\nText.defaultProps = defaultProps;\n\nexport default Text;\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 default CallToAction$1;\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, useMemo, useEffect } 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 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 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 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\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, Object.assign({}, 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 default definition;\nexport { AudioScreen$1 as AudioScreen };\n","import _objectSpread from '@babel/runtime/helpers/objectSpread2';\nimport _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';\nimport _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';\nimport _slicedToArray from '@babel/runtime/helpers/slicedToArray';\nimport React, { useContext, useMemo, useState, useCallback, useEffect, useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport _classCallCheck from '@babel/runtime/helpers/classCallCheck';\nimport _inherits from '@babel/runtime/helpers/inherits';\nimport _createSuper from '@babel/runtime/helpers/createSuper';\nimport _createClass from '@babel/runtime/helpers/createClass';\nimport { getJSON, getCSRFHeaders, postJSON } from '@folklore/fetch';\nimport { generatePath } from 'react-router';\nimport { stringify } from 'query-string';\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 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 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: \"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 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 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 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.homestead.flklr.ca/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\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 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, [\"data\"]);\n\n return _objectSpread({\n contributions: data || defaultContributions\n }, request);\n};\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 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 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, [\"items\", \"pageItems\"]); // 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 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, [\"data\"]);\n\n return _objectSpread({\n story: data\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 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 request = _objectWithoutProperties(_useItems, [\"items\", \"pageItems\"]);\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 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, [\"data\"]);\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\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\nexport { Api, ApiProvider, Base as BaseApi, DataProvider, useApi, useContributionCreate, useContributions, useData, useItems, useMedia, 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 default Button;\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 { LinkStyle } from '@micromag/core/components';\nimport { getStyleFromText, getStyleFromMargin } from '@micromag/core/utils';\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 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 ? \"text-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(HeadingComponent, {\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 default Heading;\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 default Scroll$1;\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 default TextInput;\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\",\"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\",\"buttonSubmit\":\"micromag-screen-contribution-buttonSubmit\",\"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, Object.assign({}, 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 default definition;\nexport { ContributionScreen };\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 default Image;\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 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 videoAutoplay: PropTypes$1.bool,\n videoLoop: PropTypes$1.bool,\n videoInitialMuted: PropTypes$1.bool,\n onLoaded: PropTypes$1.func,\n className: PropTypes$1.string\n};\nvar defaultProps = {\n media: null,\n width: null,\n height: null,\n objectFit: null,\n videoAutoplay: true,\n videoLoop: true,\n videoInitialMuted: true,\n onLoaded: null,\n className: 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 videoAutoplay = _ref.videoAutoplay,\n videoLoop = _ref.videoLoop,\n videoInitialMuted = _ref.videoInitialMuted,\n onLoaded = _ref.onLoaded,\n className = _ref.className,\n props = _objectWithoutProperties(_ref, [\"media\", \"width\", \"height\", \"objectFit\", \"videoAutoplay\", \"videoLoop\", \"videoInitialMuted\", \"onLoaded\", \"className\"]);\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 = !videoAutoplay && (isVideo || isGIF) ? _objectSpread(_objectSpread({}, elProps), {}, {\n media: {\n url: thumbnailUrl\n }\n }) : elProps;\n return isGIF && videoAutoplay ? _objectSpread(_objectSpread({}, elProps), {}, {\n media: {\n url: url\n }\n }) : tmpProps;\n }, [isVideo, isGIF, elProps, thumbnailUrl, url, videoAutoplay]);\n var videoContainerStyle = null;\n\n if (isVideo && objectFit !== null && videoAutoplay) {\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' || !videoAutoplay ? /*#__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 && videoAutoplay ? /*#__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 style: videoContainerStyle,\n className: styles.videoContainer\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 default Visual;\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.message,\n previousMessage: PropTypes.message,\n nextMessage: PropTypes.message,\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 })) : 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, Object.assign({}, 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 default definition;\nexport { ConversationScreen$1 as ConversationScreen };\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 default Grid;\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 videoAutoplay: 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, Object.assign({}, 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 default definition;\nexport { GalleryCaptionsScreen, GalleryScreen$1 as GalleryScreen };\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 videoAutoplay: 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, Object.assign({}, 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 default definition;\nexport { GalleryFeedCaptionsScreen, GalleryFeedScreen$1 as GalleryFeedScreen };\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 videoAutoplay: 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, Object.assign({}, 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 default definition;\nexport { ImageLegendScreen, ImageScreen$1 as ImageScreen, ImageTextScreen, ImageTitleScreen, ImageTitleTextScreen };\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 default Map;\nexport { img$1 as Pin };\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 += \"&center=\".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 default definition;\nexport { MapImagesScreen, MapScreen };\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, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faCheck, faTimes } from '@fortawesome/free-solid-svg-icons';\nimport { PropTypes as PropTypes$1 } from '@micromag/core';\nimport { useScreenSize, useViewer, useScreenRenderContext } from '@micromag/core/contexts';\nimport { ScreenElement, Transitions } from '@micromag/core/components';\nimport { useTrackScreenEvent, useResizeObserver } from '@micromag/core/hooks';\nimport { isTextFilled } from '@micromag/core/utils';\nimport { useQuizCreate } from '@micromag/data';\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 Button from '@micromag/element-button';\nimport Text from '@micromag/element-text';\nimport CallToAction from '@micromag/element-call-to-action';\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\",\"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\",\"button\":\"micromag-screen-quiz-button\",\"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 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 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 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\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 = _ref11.color,\n labelColor = _ref11$color === void 0 ? null : _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: userAnswer || !answered ? {\n borderWidth: 2,\n borderStyle: 'solid',\n borderColor: labelColor\n } : null\n }, rightAnswer ? /*#__PURE__*/React.createElement(\"span\", {\n className: styles.resultIcon\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 }, /*#__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, Object.assign({}, 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 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 default definition;\nexport { QuizScreen };\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 default Quote;\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, Object.assign({}, 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 default definition;\nexport { QuoteScreen$1 as QuoteScreen };\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, Object.assign({}, 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 default definition;\nexport { RankingScreen };\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 React, { useState, useMemo, useCallback, useEffect, useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { PropTypes as PropTypes$1 } from '@micromag/core';\nimport { useQuizCreate, useQuiz } from '@micromag/data';\nimport { useScreenSize, useViewer, useScreenRenderContext } from '@micromag/core/contexts';\nimport { ScreenElement, Transitions } from '@micromag/core/components';\nimport { useTrackScreenEvent } from '@micromag/core/hooks';\nimport { isTextFilled, getLargestRemainderRound } 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 Button from '@micromag/element-button';\nimport Text from '@micromag/element-text';\nimport CallToAction from '@micromag/element-call-to-action';\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\",\"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 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 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 _ref11;\n\n var id = _ref.id,\n layout = _ref.layout,\n question = _ref.question,\n answers = _ref.answers,\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 var maxWidth = 0;\n\n if (answers === null || isPlaceholder) {\n return;\n }\n\n answers.forEach(function (answer, answerI) {\n var button = buttonsRefs.current[answerI];\n var label = labelsRefs.current[answerI];\n\n if (typeof button !== 'undefined' && button !== null) {\n var borderWidth = button.offsetWidth - button.clientWidth;\n var totalWidth = borderWidth + label.offsetWidth + 2;\n maxWidth = Math.max(maxWidth, totalWidth);\n setButtonMaxWidth(maxWidth);\n }\n });\n setReady(true);\n }, [answers, width, height, setButtonMaxWidth, finalTransitionDuration, isPlaceholder]);\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 _ref6 = answer || {},\n _ref6$label = _ref6.label,\n label = _ref6$label === void 0 ? null : _ref6$label;\n\n var _ref7 = label || {},\n _ref7$body = _ref7.body,\n body = _ref7$body === void 0 ? null : _ref7$body;\n\n var _ref8 = body !== null ? quizAnswersComputed[body] || {} : {},\n _ref8$percent = _ref8.percent,\n percent = _ref8$percent === void 0 ? 0 : _ref8$percent;\n\n var _ref9 = label || {},\n _ref9$textStyle = _ref9.textStyle,\n textStyle = _ref9$textStyle === void 0 ? null : _ref9$textStyle;\n\n var _ref10 = textStyle || {},\n _ref10$color = _ref10.color,\n labelColor = _ref10$color === void 0 ? null : _ref10$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, {// [styles.userAnswer]: userAnswer,\n }])\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: userAnswer || !answered ? {\n borderWidth: 2,\n borderStyle: 'solid',\n borderColor: labelColor\n } : 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: _objectSpread(_objectSpread({}, textStyle), {}, {\n color: userAnswer || !answered ? labelColor : null\n }),\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: {\n width: \"\".concat(percent, \"%\"),\n backgroundColor: userAnswer ? labelColor : null\n }\n }, withPercentLabels ? /*#__PURE__*/React.createElement(\"div\", {\n className: styles.resultLabel,\n style: {\n color: userAnswer ? labelColor : null\n }\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, (_ref11 = {}, _defineProperty(_ref11, className, className !== null), _defineProperty(_ref11, styles.answered, answered), _defineProperty(_ref11, styles.isPlaceholder, isPlaceholder), _ref11)]),\n \"data-screen-ready\": ready\n }, !isPlaceholder ? /*#__PURE__*/React.createElement(Background, Object.assign({}, 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 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 default definition;\nexport { SurveyScreen };\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, Object.assign({}, 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 default definition;\nexport { TextScreen$1 as TextScreen };\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\",\"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 media: image,\n width: imageWidth,\n videoAutoplay: 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, Object.assign({}, 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 default definition;\nexport { TimelineIllustratedScreen, Timeline as TimelineScreen };\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, Object.assign({}, 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 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, [\"credits\"]);\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 default definition;\nexport { TitleScreen$1 as TitleScreen, TitleSubtitleCreditsScreen, TitleSubtitleScreen };\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, useState, useCallback, useEffect, 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 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 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 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; // Get api state updates from callback\n\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];\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 }, /*#__PURE__*/React.createElement(Transitions, {\n playing: transitionPlaying,\n transitions: transitions,\n disabled: transitionDisabled\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 || ready\n }, longPressBind), !isPlaceholder ? /*#__PURE__*/React.createElement(Background, Object.assign({}, 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 default definition;\nexport { VideoScreen$1 as VideoScreen };\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, { useRef, useState, useCallback, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { MathUtils, PerspectiveCamera, Scene, SphereBufferGeometry, VideoTexture, MeshBasicMaterial, Mesh, WebGLRenderer } from 'three';\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\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 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 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 (hasVideoUrl && withVideoSphere) {\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, Object.assign({}, 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 default definition;\nexport { Video360Screen$1 as Video360Screen };\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 default manager;\nexport { ScreensProvider };\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 default intlManager;\nexport { IntlManager, IntlProvider, LocalesContext, useLocales, useOtherLocales };\n","import _defineProperty from '@babel/runtime/helpers/defineProperty';\nimport _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';\nimport _objectSpread from '@babel/runtime/helpers/objectSpread2';\nimport _slicedToArray from '@babel/runtime/helpers/slicedToArray';\nimport React, { useState, useCallback, useMemo, useRef, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { useMediasRecentSearches, useMediaTags, useApi, useMediaUpdate, useMedias, useMediaCreate } from '@micromag/data';\nimport { PropTypes as PropTypes$1 } from '@micromag/core';\nimport { Button, Card, Spinner, UploadModal } from '@micromag/core/components';\nimport { FormattedMessage, useIntl } from 'react-intl';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faSearch, faTimes, faChevronLeft, faPlus, faInfoCircle, faTimesCircle, faPlayCircle, faHeadphonesAlt } from '@fortawesome/free-solid-svg-icons';\nimport _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';\nimport { useResizeObserver } from '@micromag/core/hooks';\nimport prettyBytes from 'pretty-bytes';\nimport uniqBy from 'lodash/uniqBy';\nimport { useFieldsManager } from '@micromag/core/contexts';\n\nvar styles$8 = {\"container\":\"micromag-media-gallery-forms-dropdown-section-container\",\"dropdownToggle\":\"micromag-media-gallery-forms-dropdown-section-dropdownToggle\",\"label\":\"micromag-media-gallery-forms-dropdown-section-label\"};\n\nvar propTypes$a = {\n value: PropTypes.string,\n items: PropTypes.arrayOf(PropTypes.shape({\n label: PropTypes$1.label,\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),\n active: PropTypes.bool\n })),\n onChange: PropTypes.func,\n className: PropTypes.string\n};\nvar defaultProps$a = {\n value: null,\n items: null,\n onChange: null,\n className: null\n};\n\nvar DropdownSection = function DropdownSection(_ref) {\n var value = _ref.value,\n items = _ref.items,\n onChange = _ref.onChange,\n className = _ref.className;\n\n var _useState = useState(false),\n _useState2 = _slicedToArray(_useState, 2),\n open = _useState2[0],\n setOpen = _useState2[1];\n\n var currentItem = items.find(function (i) {\n return i.value === value;\n });\n var onOpen = useCallback(function () {\n setOpen(!open);\n }, [open, setOpen]);\n var onBlur = useCallback(function () {\n // Work around the event call order\n setTimeout(function () {\n setOpen(false);\n }, 300);\n }, [setOpen]);\n var onItemClick = useCallback(function (e) {\n var val = e.target.dataset.value || null;\n setOpen(false);\n onChange(val);\n }, [setOpen]);\n return items !== null && items.length > 1 ? /*#__PURE__*/React.createElement(\"div\", {\n className: classNames([styles$8.container, 'dropdown', _defineProperty({}, className, className !== null)])\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: styles$8.label\n }, /*#__PURE__*/React.createElement(FormattedMessage, {\n id: \"9ZdD+Q\",\n defaultMessage: [{\n \"type\": 0,\n \"value\": \"Library for\"\n }]\n })), /*#__PURE__*/React.createElement(\"button\", {\n className: classNames([styles$8.dropdownToggle, 'dropdown-toggle', {\n open: open === true\n }]),\n type: \"button\",\n onClick: onOpen,\n onBlur: onBlur\n }, (currentItem ? currentItem.label : null) || /*#__PURE__*/React.createElement(FormattedMessage, {\n id: \"15GBmG\",\n defaultMessage: [{\n \"type\": 0,\n \"value\": \"All\"\n }]\n })), /*#__PURE__*/React.createElement(\"div\", {\n className: classNames([styles$8.dropdown, 'dropdown-menu', {\n show: open === true\n }])\n }, items.map(function (_ref3) {\n var label = _ref3.label,\n itemValue = _ref3.value;\n var itemClassNames = classNames(['dropdown-item', {\n active: itemValue === value\n }]);\n return /*#__PURE__*/React.createElement(\"button\", {\n className: itemClassNames,\n type: \"button\",\n key: \"drop-\".concat(itemValue),\n onClick: onItemClick,\n \"data-value\": itemValue\n }, label);\n }))) : null;\n};\n\nDropdownSection.propTypes = propTypes$a;\nDropdownSection.defaultProps = defaultProps$a;\n\nvar propTypes$9 = {\n tags: PropTypes.arrayOf(PropTypes.shape({\n label: PropTypes.string,\n value: PropTypes.oneOf([PropTypes.string, PropTypes.node]),\n active: PropTypes.bool\n })),\n parent: PropTypes.string,\n onChange: PropTypes.func,\n className: PropTypes.string\n};\nvar defaultProps$9 = {\n tags: null,\n parent: null,\n onChange: null,\n className: null\n};\n\nvar TagSection = function TagSection(_ref) {\n var tags = _ref.tags,\n parent = _ref.parent,\n onChange = _ref.onChange,\n className = _ref.className;\n var onItemChange = useCallback(function (e) {\n var val = e.target.dataset.value || null;\n onChange(val, parent);\n }, [onChange, parent]);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(['d-flex', 'mt-1', _defineProperty({}, className, className !== null)])\n }, tags !== null ? tags.map(function (_ref3) {\n var label = _ref3.label,\n value = _ref3.value,\n active = _ref3.active;\n var itemClassNames = classNames(['btn', 'btn-sm', 'mb-1', 'mr-1', 'btn-dark', {\n 'btn-primary': active === true // 'btn-outline-light': active === false,\n\n }]);\n return /*#__PURE__*/React.createElement(\"button\", {\n className: itemClassNames,\n type: \"button\",\n key: \"tag-\".concat(value),\n onClick: onItemChange,\n \"data-value\": value\n }, label);\n }) : null);\n};\n\nTagSection.propTypes = propTypes$9;\nTagSection.defaultProps = defaultProps$9;\n\nvar styles$7 = {\"container\":\"micromag-media-gallery-forms-search-filters-container\",\"section\":\"micromag-media-gallery-forms-search-filters-section\",\"title\":\"micromag-media-gallery-forms-search-filters-title\"};\n\nvar propTypes$8 = {\n filters: PropTypes.object,\n // eslint-disable-line\n sections: PropTypes.arrayOf(PropTypes.object),\n onChange: PropTypes.func,\n className: PropTypes.string\n};\nvar defaultProps$8 = {\n filters: null,\n sections: [],\n onChange: null,\n className: null\n};\n\nvar SearchFilters = function SearchFilters(_ref) {\n var filters = _ref.filters,\n sections = _ref.sections,\n onChange = _ref.onChange,\n className = _ref.className;\n var getActive = useCallback(function (items, sectionFilters) {\n return items !== null ? items.map(function (it) {\n return _objectSpread(_objectSpread({}, it), {}, {\n active: sectionFilters ? !!sectionFilters.find(function (f) {\n return f === it.value;\n }) : false\n });\n }) : [];\n }, []);\n var activeSections = useMemo(function () {\n return sections.map(function (section) {\n return _objectSpread(_objectSpread({}, section), {}, {\n items: getActive(section.items, filters[section.value])\n });\n });\n }, [getActive, sections, filters]);\n var onSectionChange = useCallback(function (data, section) {\n var val = filters[section] ? filters[section] : [];\n var found = !!val.find(function (f) {\n return f === data;\n });\n\n if (found) {\n onChange(section, val.filter(function (f) {\n return f !== data;\n }));\n } else if (data) {\n if (section === 'recent') {\n onChange('search', data);\n } else if (section === 'usage') {\n onChange(section, [data]);\n } else {\n onChange(section, [].concat(_toConsumableArray(val), [data]));\n }\n }\n }, [filters, onChange]);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames([styles$7.container, 'flex-nowrap', 'mt-1', _defineProperty({}, className, className !== null)])\n }, activeSections.length > 0 ? /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(['bg-light', 'flex-nowrap', 'text-dark', 'py-1', 'px-3', 'rounded'])\n }, activeSections.map(function (_ref3) {\n var value = _ref3.value,\n label = _ref3.label,\n items = _ref3.items;\n return items.length > 0 ? /*#__PURE__*/React.createElement(\"div\", {\n key: \"filter-\".concat(value),\n className: classNames([styles$7.section, 'py-2'])\n }, /*#__PURE__*/React.createElement(\"p\", {\n className: classNames([styles$7.title, 'm-0'])\n }, label), /*#__PURE__*/React.createElement(TagSection, {\n tags: items,\n parent: value,\n onChange: onSectionChange\n })) : null;\n })) : null);\n};\n\nSearchFilters.propTypes = propTypes$8;\nSearchFilters.defaultProps = defaultProps$8;\n\nvar propTypes$7 = {\n value: PropTypes.string,\n onChange: PropTypes.func,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n onClickIcon: PropTypes.func,\n className: PropTypes.string\n};\nvar defaultProps$7 = {\n value: null,\n onChange: null,\n onFocus: null,\n onBlur: null,\n onClickIcon: null,\n className: null\n};\n\nvar Search = function Search(_ref) {\n var value = _ref.value,\n onChange = _ref.onChange,\n onFocus = _ref.onFocus,\n onBlur = _ref.onBlur,\n onClickIcon = _ref.onClickIcon,\n className = _ref.className;\n var intl = useIntl();\n var onSearchChange = useCallback(function (e) {\n var newValue = e.currentTarget.value.length > 0 ? e.currentTarget.value : null;\n\n if (onChange !== null) {\n onChange(newValue);\n }\n }, [onChange]);\n useCallback(function () {\n if (onChange !== null) {\n onChange('');\n }\n }, [onChange]);\n var onClickSearchIcon = useCallback(function () {\n if (onClickIcon !== null) {\n onClickIcon();\n }\n }, [onClickIcon]);\n return /*#__PURE__*/React.createElement(\"form\", {\n method: \"post\",\n className: classNames([_defineProperty({}, className, className !== null)])\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"input-group\"\n }, /*#__PURE__*/React.createElement(\"span\", {\n type: \"span\",\n className: \"input-group-prepend\"\n }, /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n className: \"input-group-text reset-button\",\n onClick: onClickSearchIcon\n }, /*#__PURE__*/React.createElement(FontAwesomeIcon, {\n icon: faSearch\n }))), /*#__PURE__*/React.createElement(\"input\", {\n className: classNames(['form-control', {\n 'bg-light': !!value,\n 'text-dark': value\n }]),\n type: \"text\",\n value: value || '',\n placeholder: intl.formatMessage({\n \"id\": \"gprXiG\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Search...\"\n }]\n }),\n onChange: onSearchChange,\n onFocus: onFocus,\n onBlur: onBlur\n }), null));\n};\n\nSearch.propTypes = propTypes$7;\nSearch.defaultProps = defaultProps$7;\n\nvar styles$6 = {\"container\":\"micromag-media-gallery-buttons-close-container\"};\n\nvar propTypes$6 = {\n className: PropTypes.string\n};\nvar defaultProps$6 = {\n className: null\n};\n\nvar CloseButton = function CloseButton(_ref) {\n var className = _ref.className,\n props = _objectWithoutProperties(_ref, [\"className\"]);\n\n return /*#__PURE__*/React.createElement(Button, Object.assign({\n className: classNames([styles$6.container, _defineProperty({}, className, className !== null)]),\n withoutStyle: true,\n icon: /*#__PURE__*/React.createElement(FontAwesomeIcon, {\n icon: faTimes,\n className: styles$6.icon\n }),\n iconPosition: \"right\"\n }, props));\n};\n\nCloseButton.propTypes = propTypes$6;\nCloseButton.defaultProps = defaultProps$6;\n\nvar styles$5 = {\"container\":\"micromag-media-gallery-partials-active-filters-container\",\"heading\":\"micromag-media-gallery-partials-active-filters-heading\",\"title\":\"micromag-media-gallery-partials-active-filters-title\",\"resetButton\":\"micromag-media-gallery-partials-active-filters-resetButton\",\"activeTag\":\"micromag-media-gallery-partials-active-filters-activeTag\"};\n\nvar propTypes$5 = {\n filters: PropTypes.shape({\n types: PropTypes.arrayOf(PropTypes.string),\n tags: PropTypes.arrayOf(PropTypes.string),\n users: PropTypes.arrayOf(PropTypes.string),\n usage: PropTypes.arrayOf(PropTypes.oneOf(['used', 'unused']))\n }),\n onChange: PropTypes.func,\n onReset: PropTypes.func,\n sections: PropTypes.arrayOf(PropTypes.object),\n className: PropTypes.string\n};\nvar defaultProps$5 = {\n filters: null,\n onChange: null,\n onReset: null,\n sections: [],\n className: null\n};\n\nvar ActiveFilters = function ActiveFilters(_ref) {\n var filters = _ref.filters,\n onChange = _ref.onChange,\n onReset = _ref.onReset,\n sections = _ref.sections,\n className = _ref.className;\n var handleReset = useCallback(function () {\n if (onReset !== null) {\n onReset();\n }\n }, [onReset]);\n var removeFilter = useCallback(function (key, activeValue) {\n var newFilterValue = filters[key].filter(function (it) {\n return it !== activeValue;\n });\n var newValue = newFilterValue.length > 0 ? newFilterValue : null;\n\n if (onChange !== null) {\n onChange(key, newValue);\n }\n }, [onChange, filters]);\n var hasValue = Object.keys(filters).reduce(function (oneHasValue, key) {\n return oneHasValue || filters[key] !== null;\n }, false);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames([styles$5.container, _defineProperty({}, className, className)])\n }, hasValue ? /*#__PURE__*/React.createElement(\"div\", {\n className: styles$5.heading\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: styles$5.title\n }, /*#__PURE__*/React.createElement(FormattedMessage, {\n id: \"t2cFdl\",\n defaultMessage: [{\n \"type\": 0,\n \"value\": \"Active filters\"\n }]\n })), /*#__PURE__*/React.createElement(CloseButton, {\n className: styles$5.resetButton,\n onClick: handleReset\n }, /*#__PURE__*/React.createElement(\"u\", null, /*#__PURE__*/React.createElement(FormattedMessage, {\n id: \"/T/UDH\",\n defaultMessage: [{\n \"type\": 0,\n \"value\": \"Remove all\"\n }]\n })))) : null, filters !== null ? Object.keys(filters).map(function (key) {\n var section = sections.find(function (s) {\n return s.value === key;\n });\n return section && filters[key] !== null ? filters[key].map(function (activeValue) {\n var current = section.items.find(function (s) {\n return s.value === activeValue;\n });\n\n var _ref3 = current || {},\n _ref3$label = _ref3.label,\n label = _ref3$label === void 0 ? '' : _ref3$label;\n\n return /*#__PURE__*/React.createElement(Button, {\n className: styles$5.activeTag,\n key: \"filter-button-\".concat(activeValue),\n type: \"submit\",\n size: \"sm\",\n label: /*#__PURE__*/React.createElement(\"span\", null, section.label, \" : \", label),\n theme: \"secondary\",\n icon: /*#__PURE__*/React.createElement(FontAwesomeIcon, {\n icon: faTimes\n }),\n iconPosition: \"right\",\n onClick: function onClick() {\n return removeFilter(key, activeValue);\n }\n });\n }) : null;\n }) : null);\n};\n\nActiveFilters.propTypes = propTypes$5;\nActiveFilters.defaultProps = defaultProps$5;\n\nvar useSearchSections = function useSearchSections(_ref) {\n var _ref$recent = _ref.recent,\n recent = _ref$recent === void 0 ? [] : _ref$recent,\n _ref$tags = _ref.tags,\n tags = _ref$tags === void 0 ? [] : _ref$tags,\n _ref$team = _ref.team,\n team = _ref$team === void 0 ? [] : _ref$team,\n _ref$sources = _ref.sources,\n upstreamSources = _ref$sources === void 0 ? [] : _ref$sources,\n _ref$withType = _ref.withType,\n withType = _ref$withType === void 0 ? false : _ref$withType;\n var sources = [{\n label: /*#__PURE__*/React.createElement(FormattedMessage, {\n id: \"xAzv6g\",\n defaultMessage: [{\n \"type\": 0,\n \"value\": \"All sources\"\n }]\n }),\n value: 'all'\n }].concat(_toConsumableArray(team.length > 0 ? [{\n label: /*#__PURE__*/React.createElement(FormattedMessage, {\n id: \"/62oe4\",\n defaultMessage: [{\n \"type\": 0,\n \"value\": \"My files\"\n }]\n }),\n value: 'user'\n }] : []), _toConsumableArray(upstreamSources)).filter(function (it) {\n return it !== null;\n });\n var types = [{\n label: /*#__PURE__*/React.createElement(FormattedMessage, {\n id: \"2J05S0\",\n defaultMessage: [{\n \"type\": 0,\n \"value\": \"Images\"\n }]\n }),\n value: 'image'\n }, {\n label: /*#__PURE__*/React.createElement(FormattedMessage, {\n id: \"QBlqW9\",\n defaultMessage: [{\n \"type\": 0,\n \"value\": \"Videos\"\n }]\n }),\n value: 'video'\n }, {\n label: /*#__PURE__*/React.createElement(FormattedMessage, {\n id: \"PNMMo/\",\n defaultMessage: [{\n \"type\": 0,\n \"value\": \"Audios\"\n }]\n }),\n value: 'audio'\n }];\n var usage = [{\n label: /*#__PURE__*/React.createElement(FormattedMessage, {\n id: \"tmfbUn\",\n defaultMessage: [{\n \"type\": 0,\n \"value\": \"Unused\"\n }]\n }),\n value: 'unused'\n }, {\n label: /*#__PURE__*/React.createElement(FormattedMessage, {\n id: \"AQ8Aig\",\n defaultMessage: [{\n \"type\": 0,\n \"value\": \"Used\"\n }]\n }),\n value: 'used'\n }];\n var sections = [withType ? {\n value: 'types',\n label: /*#__PURE__*/React.createElement(FormattedMessage, {\n id: \"/ca7BX\",\n defaultMessage: [{\n \"type\": 0,\n \"value\": \"Types\"\n }]\n }),\n items: types\n } : null, {\n value: 'recent',\n label: /*#__PURE__*/React.createElement(FormattedMessage, {\n id: \"vYunz+\",\n defaultMessage: [{\n \"type\": 0,\n \"value\": \"Recent searches\"\n }]\n }),\n items: recent\n }, {\n value: 'tags',\n label: /*#__PURE__*/React.createElement(FormattedMessage, {\n id: \"/OM5UY\",\n defaultMessage: [{\n \"type\": 0,\n \"value\": \"Tags\"\n }]\n }),\n items: tags\n }, {\n value: 'users',\n label: /*#__PURE__*/React.createElement(FormattedMessage, {\n id: \"pfvDzR\",\n defaultMessage: [{\n \"type\": 0,\n \"value\": \"Added by\"\n }]\n }),\n items: team\n }, {\n value: 'usage',\n label: /*#__PURE__*/React.createElement(FormattedMessage, {\n id: \"mOSkbf\",\n defaultMessage: [{\n \"type\": 0,\n \"value\": \"Usage\"\n }]\n }),\n items: usage\n }].filter(function (it) {\n return it !== null;\n });\n return {\n sources: sources,\n sections: sections,\n types: types\n };\n};\n\nvar filtersValue = PropTypes.shape({\n search: PropTypes.string\n});\nPropTypes.shape({\n types: PropTypes.arrayOf(PropTypes.string),\n tags: PropTypes.arrayOf(PropTypes.string),\n users: PropTypes.arrayOf(PropTypes.string),\n usage: PropTypes.arrayOf(PropTypes.oneOf(['used', 'unused']))\n});\n\nvar styles$4 = {\"container\":\"micromag-media-gallery-partials-navbar-container\",\"inner\":\"micromag-media-gallery-partials-navbar-inner\"};\n\nvar propTypes$4 = {\n filters: filtersValue,\n media: PropTypes$1.media,\n withoutTitle: PropTypes.bool,\n withoutSource: PropTypes.bool,\n withoutType: PropTypes.bool,\n onClickAdd: PropTypes.func,\n onClickCancel: PropTypes.func,\n onFocusSearch: PropTypes.func,\n onFiltersChange: PropTypes.func,\n onClickBack: PropTypes.func,\n className: PropTypes.string\n};\nvar defaultProps$4 = {\n filters: null,\n media: null,\n withoutTitle: false,\n withoutSource: false,\n withoutType: true,\n onClickAdd: null,\n onClickCancel: null,\n onFocusSearch: null,\n onFiltersChange: null,\n onClickBack: null,\n className: null\n};\n\nvar Navbar = function Navbar(_ref) {\n var filters = _ref.filters,\n media = _ref.media,\n withoutTitle = _ref.withoutTitle,\n withoutSource = _ref.withoutSource,\n withoutType = _ref.withoutType,\n className = _ref.className,\n onClickAdd = _ref.onClickAdd,\n onClickCancel = _ref.onClickCancel,\n onFocusSearch = _ref.onFocusSearch,\n onFiltersChange = _ref.onFiltersChange,\n onClickBack = _ref.onClickBack;\n var throttle = useRef(null);\n\n var _useState = useState(false),\n _useState2 = _slicedToArray(_useState, 2),\n open = _useState2[0],\n setOpen = _useState2[1]; // TODO: get data from api for real testing\n\n\n var _useMediasRecentSearc = useMediasRecentSearches(),\n getSearches = _useMediasRecentSearc.getSearches,\n createSearch = _useMediasRecentSearc.createSearch;\n\n var recent = useMemo(function () {\n return getSearches();\n }, [getSearches]);\n\n var _useMediaTags = useMediaTags(),\n _useMediaTags$tags = _useMediaTags.tags,\n tags = _useMediaTags$tags === void 0 ? [] : _useMediaTags$tags; // const { team } = useOrganisationTeam();\n\n\n var team = [];\n\n var _useSearchFilters = useSearchSections({\n recent: recent.map(function (val) {\n return {\n value: val,\n label: val\n };\n }),\n tags: tags !== null ? tags.map(function (t) {\n return {\n value: t.name,\n label: t.name\n };\n }) : [],\n team: team,\n withType: !withoutType\n }),\n sources = _useSearchFilters.sources,\n sections = _useSearchFilters.sections;\n\n var searchValue = filters !== null ? filters.search || null : null;\n var hasFilter = filters !== null ? Object.keys(filters).reduce(function (acc, val) {\n if (val !== 'type' && val !== 'search' && val !== 'source' && filters[val] !== null && filters[val].length > 0) {\n return true;\n }\n\n return acc;\n }, false) : false;\n var onFilterChange = useCallback(function (type, value) {\n var isOpen = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var newFiltersValue = _objectSpread(_objectSpread({}, filters), {}, _defineProperty({}, type, value));\n\n if (onFiltersChange !== null) {\n onFiltersChange(newFiltersValue);\n }\n\n setOpen(isOpen);\n }, [filters, onFiltersChange, setOpen]);\n var onFiltersReset = useCallback(function () {\n onFiltersChange({\n type: filters.type || null,\n search: filters.search || null,\n source: filters.source || null\n });\n setOpen(false);\n }, [filters, onFiltersChange]);\n var onSearchChange = useCallback(function (value) {\n if (throttle.current !== null) {\n clearTimeout(throttle.current);\n }\n\n throttle.current = setTimeout(function () {\n createSearch(value);\n throttle.current = null;\n }, 5000);\n onFilterChange('search', value, !!value);\n setOpen(false);\n }, [onFilterChange, createSearch, setOpen, throttle]);\n var onSourceChange = useCallback(function (value) {\n onFilterChange('source', value);\n }, [onFilterChange]);\n var onSearchFocus = useCallback(function () {\n if (onFocusSearch !== null) {\n onFocusSearch();\n }\n\n setOpen(true);\n });\n var onClear = useCallback(function () {\n if (onClickCancel !== null) {\n onClickCancel();\n }\n\n setOpen(false);\n }, [onClickCancel]);\n var onToggleMenu = useCallback(function () {\n setOpen(!open);\n }, [open, setOpen]);\n var title = !withoutTitle ? /*#__PURE__*/React.createElement(FormattedMessage, {\n id: \"JV5hRr\",\n defaultMessage: [{\n \"type\": 0,\n \"value\": \"Media gallery\"\n }]\n }) : null;\n return /*#__PURE__*/React.createElement(\"nav\", {\n className: classNames([styles$4.container, 'navbar', 'small', _defineProperty({}, className, className !== null)])\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: styles$4.inner\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"d-flex flex-nowrap justify-content-between\"\n }, media !== null ? /*#__PURE__*/React.createElement(\"form\", {\n className: classNames(['form-inline'])\n }, /*#__PURE__*/React.createElement(Button, {\n theme: \"secondary\",\n outline: true,\n size: \"sm\",\n icon: /*#__PURE__*/React.createElement(FontAwesomeIcon, {\n icon: faChevronLeft\n }),\n onClick: onClickBack\n })) : null, /*#__PURE__*/React.createElement(\"strong\", {\n className: \"navbar-text ml-2 mr-auto\"\n }, media !== null ? media.name : title)), media === null ? /*#__PURE__*/React.createElement(React.Fragment, null, !withoutSource ? /*#__PURE__*/React.createElement(\"div\", {\n className: \"d-flex w-100 flex-nowrap justify-content-center\"\n }, /*#__PURE__*/React.createElement(DropdownSection, {\n items: sources,\n value: filters.source || null,\n onChange: onSourceChange\n })) : null, /*#__PURE__*/React.createElement(\"div\", {\n className: \"d-flex w-100 flex-nowrap justify-content-between\"\n }, /*#__PURE__*/React.createElement(Search, {\n value: searchValue,\n onChange: onSearchChange,\n onFocus: onSearchFocus,\n onClickIcon: onToggleMenu,\n className: classNames(['form-inline', 'mr-2'])\n }), /*#__PURE__*/React.createElement(\"form\", {\n className: classNames(['form-inline', 'ml-auto'])\n }, open || searchValue || hasFilter ? /*#__PURE__*/React.createElement(Button, {\n theme: \"primary\",\n outline: true,\n onClick: onClear\n }, searchValue || hasFilter ? /*#__PURE__*/React.createElement(FormattedMessage, {\n id: \"+TT1y6\",\n defaultMessage: [{\n \"type\": 0,\n \"value\": \"Clear\"\n }]\n }) : /*#__PURE__*/React.createElement(FormattedMessage, {\n id: \"G31Yd0\",\n defaultMessage: [{\n \"type\": 0,\n \"value\": \"Cancel\"\n }]\n })) : /*#__PURE__*/React.createElement(Button, {\n theme: \"primary\",\n icon: /*#__PURE__*/React.createElement(FontAwesomeIcon, {\n icon: faPlus\n }),\n onClick: onClickAdd\n }, /*#__PURE__*/React.createElement(FormattedMessage, {\n id: \"Tt4jN1\",\n defaultMessage: [{\n \"type\": 0,\n \"value\": \"Add\"\n }]\n })))), open ? /*#__PURE__*/React.createElement(\"div\", {\n className: \"d-flex w-100 my-1 flex-nowrap justify-content-between\"\n }, /*#__PURE__*/React.createElement(SearchFilters, {\n filters: filters,\n sections: sections,\n onChange: onFilterChange\n })) : null) : null, hasFilter && !open && media === null ? /*#__PURE__*/React.createElement(\"div\", {\n className: \"d-flex w-100 my-1 flex-nowrap justify-content-between\"\n }, /*#__PURE__*/React.createElement(ActiveFilters, {\n filters: filters,\n sections: sections,\n onChange: onFilterChange,\n onReset: onFiltersReset\n })) : null));\n};\n\nNavbar.propTypes = propTypes$4;\nNavbar.defaultProps = defaultProps$4;\n\nvar middleEllipsis = function middleEllipsis(string, maxLength) {\n if (!string) return string;\n if (maxLength < 1) return string;\n if (string.length <= maxLength) return string;\n if (maxLength === 1) return \"\".concat(string.substring(0, 1), \"...\");\n var midpoint = Math.ceil(string.length / 2);\n var toremove = string.length - maxLength;\n var lstrip = Math.ceil(toremove / 2);\n var rstrip = toremove - lstrip;\n return \"\".concat(string.substring(0, midpoint - lstrip), \"...\").concat(string.substring(midpoint + rstrip));\n};\n\nvar styles$3 = {\"container\":\"micromag-media-gallery-items-gallery-item-container\",\"imageButton\":\"micromag-media-gallery-items-gallery-item-imageButton\",\"image\":\"micromag-media-gallery-items-gallery-item-image\",\"icon\":\"micromag-media-gallery-items-gallery-item-icon\",\"footer\":\"micromag-media-gallery-items-gallery-item-footer\",\"label\":\"micromag-media-gallery-items-gallery-item-label\",\"closeIcon\":\"micromag-media-gallery-items-gallery-item-closeIcon\",\"infoButton\":\"micromag-media-gallery-items-gallery-item-infoButton\"};\n\nvar propTypes$3 = {\n item: PropTypes$1.media,\n width: PropTypes.number,\n selected: PropTypes.bool,\n withInfoButton: PropTypes.bool,\n className: PropTypes.string,\n onClick: PropTypes.func,\n onClickInfo: PropTypes.func\n};\nvar defaultProps$3 = {\n item: null,\n width: 0,\n selected: false,\n withInfoButton: false,\n className: null,\n onClick: null,\n onClickInfo: null\n};\n\nvar GalleryItem = function GalleryItem(_ref) {\n var item = _ref.item,\n width = _ref.width,\n selected = _ref.selected,\n withInfoButton = _ref.withInfoButton,\n className = _ref.className,\n onClick = _ref.onClick,\n onClickInfo = _ref.onClickInfo;\n var type = item.type,\n _item$thumbnail_url = item.thumbnail_url,\n thumbnail = _item$thumbnail_url === void 0 ? null : _item$thumbnail_url,\n name = item.name,\n size = item.size;\n var title = name;\n\n if (width < 768) {\n title = middleEllipsis(name, Math.floor(Math.max(18, width / 2 / 9)));\n } else {\n title = middleEllipsis(name, Math.floor(Math.max(25, width / 3 / 8)));\n }\n\n return /*#__PURE__*/React.createElement(Card, {\n image: /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n className: classNames(['d-block', 'position-relative', 'p-0', 'border-0', 'w-100', 'text-left', 'bg-light', 'text-black', styles$3.imageButton]),\n onClick: onClick\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(['card-img-top', styles$3.image]),\n style: {\n backgroundImage: thumbnail !== null ? \"url('\".concat(thumbnail, \"')\") : null\n }\n })),\n beforeBody: /*#__PURE__*/React.createElement(React.Fragment, null, withInfoButton ? /*#__PURE__*/React.createElement(Button, {\n className: styles$3.infoButton,\n onClick: onClickInfo,\n withoutStyle: true\n }, /*#__PURE__*/React.createElement(FontAwesomeIcon, {\n icon: faInfoCircle,\n className: styles$3.icon\n })) : null, selected ? /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(['text-primary', styles$3.closeIcon])\n }, /*#__PURE__*/React.createElement(FontAwesomeIcon, {\n icon: faTimesCircle,\n className: styles$3.icon\n })) : null),\n footer: /*#__PURE__*/React.createElement(React.Fragment, null, type === 'video' ? /*#__PURE__*/React.createElement(FontAwesomeIcon, {\n className: styles$3.icon,\n icon: faPlayCircle\n }) : null, type === 'audio' ? /*#__PURE__*/React.createElement(FontAwesomeIcon, {\n className: styles$3.icon,\n icon: faHeadphonesAlt\n }) : null, /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(['text-truncate', styles$3.label])\n }, /*#__PURE__*/React.createElement(\"small\", null, title), size !== null ? /*#__PURE__*/React.createElement(\"small\", {\n className: \"text-muted ml-1\"\n }, size) : null)),\n theme: selected ? 'primary' : null,\n className: classNames([styles$3.container, _defineProperty({\n 'border-primary': selected\n }, className, className !== null)]),\n footerClassName: classNames(['p-2', styles$3.footer]),\n onClickFooter: onClick\n });\n};\n\nGalleryItem.propTypes = propTypes$3;\nGalleryItem.defaultProps = defaultProps$3;\n\nvar styles$2 = {};\n\nvar propTypes$2 = {\n items: PropTypes$1.medias,\n selectedItem: PropTypes$1.media,\n withInfoButton: PropTypes.bool,\n isSmall: PropTypes.bool,\n selectedFirst: PropTypes.bool,\n className: PropTypes.string,\n onClickItem: PropTypes.func,\n onClickItemInfo: PropTypes.func\n};\nvar defaultProps$2 = {\n items: null,\n selectedItem: null,\n withInfoButton: false,\n isSmall: false,\n selectedFirst: false,\n className: null,\n onClickItem: null,\n onClickItemInfo: null\n};\n\nvar Gallery = function Gallery(_ref) {\n var items = _ref.items,\n selectedItem = _ref.selectedItem,\n withInfoButton = _ref.withInfoButton,\n isSmall = _ref.isSmall,\n selectedFirst = _ref.selectedFirst,\n className = _ref.className,\n onClickItem = _ref.onClickItem,\n onClickItemInfo = _ref.onClickItemInfo;\n\n var _useResizeObserver = useResizeObserver(),\n ref = _useResizeObserver.ref,\n contentRect = _useResizeObserver.entry.contentRect;\n\n var _ref2 = contentRect || {},\n width = _ref2.width;\n\n var finalItems = useMemo(function () {\n if (selectedFirst && selectedItem !== null && typeof selectedItem.id !== 'undefined') {\n return [selectedItem].concat(_toConsumableArray(items.filter(function (_ref3) {\n var id = _ref3.id;\n return id !== selectedItem.id;\n })));\n }\n\n return items;\n }, [selectedFirst, selectedItem, items]);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames([styles$2.container, 'p-2', _defineProperty({}, className, className !== null)]),\n ref: ref\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(['row', 'mx-n1', 'row-cols-2', {\n 'row-cols-md-3': !isSmall\n }])\n }, finalItems.map(function (item) {\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"col px-1 py-1\",\n key: \"gallery-item-\".concat(item.id)\n }, /*#__PURE__*/React.createElement(GalleryItem, {\n item: item,\n width: width,\n selected: selectedItem !== null && selectedItem.id === item.id,\n onClick: onClickItem !== null ? function () {\n return onClickItem(item);\n } : null,\n onClickInfo: onClickItemInfo !== null ? function () {\n return onClickItemInfo(item);\n } : null,\n withInfoButton: withInfoButton\n }));\n })));\n};\n\nGallery.propTypes = propTypes$2;\nGallery.defaultProps = defaultProps$2;\n\nvar styles$1 = {\"container\":\"micromag-media-gallery-partials-media-metadata-container\",\"image\":\"micromag-media-gallery-partials-media-metadata-image\",\"video\":\"micromag-media-gallery-partials-media-metadata-video\",\"player\":\"micromag-media-gallery-partials-media-metadata-player\",\"audio\":\"micromag-media-gallery-partials-media-metadata-audio\"};\n\nvar propTypes$1 = {\n media: PropTypes$1.media,\n className: PropTypes.string\n};\nvar defaultProps$1 = {\n media: null,\n className: null\n};\n\nvar MediaMetadata = function MediaMetadata(_ref) {\n var media = _ref.media,\n className = _ref.className;\n\n var _ref2 = media || {},\n mediaId = _ref2.id,\n type = _ref2.type,\n _ref2$url = _ref2.url,\n url = _ref2$url === void 0 ? null : _ref2$url,\n _ref2$thumbnail_url = _ref2.thumbnail_url,\n thumbnail = _ref2$thumbnail_url === void 0 ? null : _ref2$thumbnail_url,\n _ref2$name = _ref2.name,\n mediaName = _ref2$name === void 0 ? null : _ref2$name,\n _ref2$metadata = _ref2.metadata,\n metadata = _ref2$metadata === void 0 ? {} : _ref2$metadata;\n\n var _ref3 = metadata || {},\n _ref3$filename = _ref3.filename,\n filename = _ref3$filename === void 0 ? null : _ref3$filename,\n _ref3$size = _ref3.size,\n size = _ref3$size === void 0 ? null : _ref3$size,\n _ref3$width = _ref3.width,\n width = _ref3$width === void 0 ? null : _ref3$width,\n _ref3$height = _ref3.height,\n height = _ref3$height === void 0 ? null : _ref3$height,\n _ref3$duration = _ref3.duration,\n duration = _ref3$duration === void 0 ? null : _ref3$duration,\n _ref3$user = _ref3.user,\n user = _ref3$user === void 0 ? null : _ref3$user,\n _ref3$description = _ref3.description,\n mediaDescription = _ref3$description === void 0 ? null : _ref3$description,\n _ref3$tags = _ref3.tags,\n mediaTags = _ref3$tags === void 0 ? [] : _ref3$tags;\n\n var fieldsManager = useFieldsManager();\n var api = useApi();\n\n var _useMediaTags = useMediaTags(),\n usedTags = _useMediaTags.tags;\n\n var _useMediaUpdate = useMediaUpdate(),\n update = _useMediaUpdate.update;\n\n var loadTags = useCallback(function (input) {\n return api.medias.getTags({\n search: input\n }, 5);\n }, [api]);\n var getOptionLabel = useCallback(function (_ref4) {\n var name = _ref4.name;\n return name;\n }, []);\n var getOptionValue = useCallback(function (_ref5) {\n var name = _ref5.name;\n return name;\n }, []);\n var getNewOptionData = useCallback(function (inputValue) {\n return {\n name: inputValue\n };\n }, []);\n var allTags = useMemo(function () {\n return usedTags !== null ? uniqBy(mediaTags.concat(usedTags), function (_ref6) {\n var id = _ref6.id;\n return id;\n }) : mediaTags;\n }, [mediaTags, usedTags]);\n\n var _useState = useState(mediaName),\n _useState2 = _slicedToArray(_useState, 2),\n name = _useState2[0],\n setName = _useState2[1];\n\n var _useState3 = useState(mediaDescription),\n _useState4 = _slicedToArray(_useState3, 2),\n description = _useState4[0],\n setDescription = _useState4[1];\n\n var _useState5 = useState(mediaTags.map(getOptionValue)),\n _useState6 = _slicedToArray(_useState5, 2),\n tags = _useState6[0],\n setTags = _useState6[1];\n\n var _useState7 = useState(false),\n _useState8 = _slicedToArray(_useState7, 2),\n changed = _useState8[0],\n setChanged = _useState8[1];\n\n var onTagChange = useCallback(function (val) {\n setTags(val);\n setChanged(true);\n }, [tags, setTags, setChanged]);\n var onNameChange = useCallback(function (val) {\n setName(val);\n setChanged(true);\n }, [tags, setName, setChanged]);\n var onDescriptionChange = useCallback(function (val) {\n setDescription(val);\n setChanged(true);\n }, [tags, setDescription, setChanged]);\n var onSave = useCallback(function () {\n return update(mediaId, {\n name: name,\n tags: tags,\n description: description\n }).then(function () {\n setChanged(false);\n });\n }, [mediaId, name, tags, description, metadata, update]);\n useEffect(function () {\n if (media !== null) {\n setTags(mediaTags);\n setName(mediaName);\n setDescription(mediaDescription);\n } else {\n setTags([]);\n setName(null);\n setDescription(null);\n }\n\n setChanged(false);\n }, [media, setTags, setName, setDescription, setChanged]);\n var TextField = fieldsManager.getComponent('text');\n var TokensField = fieldsManager.getComponent('tokens');\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames([styles$1.container, _defineProperty({}, className, className)])\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(['position-relative', _defineProperty({\n 'bg-light': type === 'audio',\n 'bg-black': type === 'image'\n }, styles$1.video, type === 'video')])\n }, type === 'video' ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"video\", {\n className: styles$1.player,\n controls: true,\n src: url\n })) : null, type === 'audio' ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"div\", {\n className: styles$1.audio\n }, /*#__PURE__*/React.createElement(\"audio\", {\n className: styles$1.player,\n controls: true,\n src: url\n }))) : null, type !== 'video' ? /*#__PURE__*/React.createElement(\"img\", {\n src: thumbnail,\n className: styles$1.image,\n alt: filename\n }) : null), /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-2\"\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"tags mb-4\"\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"form-group\"\n }, /*#__PURE__*/React.createElement(\"h6\", null, /*#__PURE__*/React.createElement(FormattedMessage, {\n id: \"kBz8vF\",\n defaultMessage: [{\n \"type\": 0,\n \"value\": \"Name\"\n }]\n })), /*#__PURE__*/React.createElement(TextField, {\n value: name,\n onChange: onNameChange\n })), /*#__PURE__*/React.createElement(\"div\", {\n className: \"form-group\"\n }, /*#__PURE__*/React.createElement(\"h6\", {\n className: \"mb-0\"\n }, /*#__PURE__*/React.createElement(FormattedMessage, {\n id: \"YJZtWR\",\n defaultMessage: [{\n \"type\": 0,\n \"value\": \"Description\"\n }]\n })), /*#__PURE__*/React.createElement(\"p\", {\n className: \"mb-1\"\n }, /*#__PURE__*/React.createElement(\"small\", null, /*#__PURE__*/React.createElement(FormattedMessage, {\n id: \"EDFyUp\",\n defaultMessage: [{\n \"type\": 0,\n \"value\": \"Alternative text (accessibility)\"\n }]\n }))), /*#__PURE__*/React.createElement(TextField, {\n value: description,\n onChange: onDescriptionChange\n })), /*#__PURE__*/React.createElement(\"div\", {\n className: \"form-group\"\n }, /*#__PURE__*/React.createElement(\"h6\", null, /*#__PURE__*/React.createElement(FormattedMessage, {\n id: \"4fHMVj\",\n defaultMessage: [{\n \"type\": 0,\n \"value\": \"Tags\"\n }]\n })), /*#__PURE__*/React.createElement(TokensField, {\n value: tags,\n options: allTags,\n loadOptions: loadTags,\n getOptionLabel: getOptionLabel,\n getOptionValue: getOptionValue,\n getNewOptionData: getNewOptionData,\n onChange: onTagChange\n })), changed ? /*#__PURE__*/React.createElement(Button, {\n theme: \"primary\",\n onClick: onSave\n }, /*#__PURE__*/React.createElement(FormattedMessage, {\n id: \"qIw1nW\",\n defaultMessage: [{\n \"type\": 0,\n \"value\": \"Save\"\n }]\n })) : null), /*#__PURE__*/React.createElement(\"h6\", null, /*#__PURE__*/React.createElement(FormattedMessage, {\n id: \"c9VwT/\",\n defaultMessage: [{\n \"type\": 0,\n \"value\": \"Technical details\"\n }]\n })), /*#__PURE__*/React.createElement(\"ul\", {\n className: \"list-group\"\n }, type !== null ? /*#__PURE__*/React.createElement(\"li\", {\n className: \"list-group-item py-2 px-2\"\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"row\"\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"col-4 text-muted\"\n }, /*#__PURE__*/React.createElement(FormattedMessage, {\n id: \"OkNUmk\",\n defaultMessage: [{\n \"type\": 0,\n \"value\": \"Type\"\n }]\n })), /*#__PURE__*/React.createElement(\"div\", {\n className: \"col text-capitalize\"\n }, /*#__PURE__*/React.createElement(\"small\", null, type)))) : null, filename !== null ? /*#__PURE__*/React.createElement(\"li\", {\n className: \"list-group-item py-2 px-2\"\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"row\"\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"col-4 text-muted\"\n }, /*#__PURE__*/React.createElement(FormattedMessage, {\n id: \"aovRFH\",\n defaultMessage: [{\n \"type\": 0,\n \"value\": \"Filename\"\n }]\n })), /*#__PURE__*/React.createElement(\"div\", {\n className: \"col\"\n }, /*#__PURE__*/React.createElement(\"small\", null, filename)))) : null, duration ? /*#__PURE__*/React.createElement(\"li\", {\n className: \"list-group-item py-2 px-2\"\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"row\"\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"col-4 text-muted\"\n }, /*#__PURE__*/React.createElement(FormattedMessage, {\n id: \"eoW0tZ\",\n defaultMessage: [{\n \"type\": 0,\n \"value\": \"Duration\"\n }]\n })), /*#__PURE__*/React.createElement(\"div\", {\n className: \"col\"\n }, /*#__PURE__*/React.createElement(\"small\", null, duration)))) : null, width !== null || height !== null ? /*#__PURE__*/React.createElement(\"li\", {\n className: \"list-group-item py-2 px-2\"\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"row\"\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"col-4 text-muted\"\n }, /*#__PURE__*/React.createElement(FormattedMessage, {\n id: \"mv37oK\",\n defaultMessage: [{\n \"type\": 0,\n \"value\": \"Dimension\"\n }]\n })), /*#__PURE__*/React.createElement(\"div\", {\n className: \"col\"\n }, /*#__PURE__*/React.createElement(\"small\", null, width, \"x\", height)))) : null, size !== null ? /*#__PURE__*/React.createElement(\"li\", {\n className: \"list-group-item py-2 px-2\"\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"row\"\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"col-4 text-muted\"\n }, /*#__PURE__*/React.createElement(FormattedMessage, {\n id: \"liyV7Y\",\n defaultMessage: [{\n \"type\": 0,\n \"value\": \"Size\"\n }]\n })), /*#__PURE__*/React.createElement(\"div\", {\n className: \"col\"\n }, /*#__PURE__*/React.createElement(\"small\", null, prettyBytes(size))))) : null, description !== null ? /*#__PURE__*/React.createElement(\"li\", {\n className: \"list-group-item py-2 px-2\"\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"row\"\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"col-4 text-muted\"\n }, /*#__PURE__*/React.createElement(FormattedMessage, {\n id: \"7uyslu\",\n defaultMessage: [{\n \"type\": 0,\n \"value\": \"Description\"\n }]\n })), /*#__PURE__*/React.createElement(\"div\", {\n className: \"col\"\n }, /*#__PURE__*/React.createElement(\"small\", null, description)))) : null, user !== null && user.name ? /*#__PURE__*/React.createElement(\"li\", {\n className: \"list-group-item py-2 px-2\"\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"row\"\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"col-4 text-muted\"\n }, /*#__PURE__*/React.createElement(FormattedMessage, {\n id: \"sUR1xV\",\n defaultMessage: [{\n \"type\": 0,\n \"value\": \"Author\"\n }]\n })), /*#__PURE__*/React.createElement(\"div\", {\n className: \"col\"\n }, /*#__PURE__*/React.createElement(\"small\", null, user.name)))) : null)));\n};\n\nMediaMetadata.propTypes = propTypes$1;\nMediaMetadata.defaultProps = defaultProps$1;\n\nvar styles = {\"container\":\"micromag-media-gallery-container\",\"mediaMetadata\":\"micromag-media-gallery-mediaMetadata\",\"metadataOpened\":\"micromag-media-gallery-metadataOpened\",\"gallery\":\"micromag-media-gallery-gallery\",\"content\":\"micromag-media-gallery-content\",\"loading\":\"micromag-media-gallery-loading\"};\n\nvar propTypes = {\n type: PropTypes.oneOfType([PropTypes.string, PropTypes.array]),\n source: PropTypes.string,\n isPicker: PropTypes.bool,\n isSmall: PropTypes.bool,\n withoutTitle: PropTypes.bool,\n withoutSource: PropTypes.bool,\n withoutType: PropTypes.bool,\n medias: PropTypes$1.medias,\n selectedMedia: PropTypes$1.media,\n className: PropTypes.string,\n navbarClassName: PropTypes.string,\n onClickMedia: PropTypes.func\n};\nvar defaultProps = {\n type: null,\n source: 'all',\n isPicker: false,\n isSmall: false,\n withoutTitle: false,\n withoutSource: false,\n withoutType: true,\n medias: null,\n selectedMedia: null,\n className: null,\n navbarClassName: null,\n onClickMedia: null\n};\n\nvar MediaGallery = function MediaGallery(_ref) {\n var _ref2;\n\n var type = _ref.type,\n source = _ref.source,\n isPicker = _ref.isPicker,\n isSmall = _ref.isSmall,\n withoutTitle = _ref.withoutTitle,\n withoutSource = _ref.withoutSource,\n withoutType = _ref.withoutType,\n initialMedias = _ref.medias,\n selectedMedia = _ref.selectedMedia,\n className = _ref.className,\n navbarClassName = _ref.navbarClassName,\n onClickMedia = _ref.onClickMedia;\n // Base state for filters\n var defaultFilters = {\n type: type,\n source: source\n }; // Filters\n\n var throttle = useRef(null);\n\n var _useState = useState(defaultFilters),\n _useState2 = _slicedToArray(_useState, 2),\n queryValue = _useState2[0],\n setQueryValue = _useState2[1];\n\n var _useState3 = useState(defaultFilters),\n _useState4 = _slicedToArray(_useState3, 2),\n filtersValue = _useState4[0],\n setFiltersValue = _useState4[1];\n\n var onFiltersChange = useCallback(function (value) {\n if (throttle.current !== null) {\n clearTimeout(throttle.current);\n }\n\n throttle.current = setTimeout(function () {\n setQueryValue(value);\n throttle.current = null;\n }, 500);\n setFiltersValue(value);\n }, [setFiltersValue, setQueryValue, throttle]); // Items\n\n var _useMedias = useMedias(queryValue, 1, 100, _objectSpread({}, initialMedias !== null ? {\n items: initialMedias\n } : null)),\n loadedMedias = _useMedias.allMedias,\n _useMedias$loading = _useMedias.loading,\n loading = _useMedias$loading === void 0 ? false : _useMedias$loading; // Temporary type filter\n\n\n var _useState5 = useState([]),\n _useState6 = _slicedToArray(_useState5, 2),\n addedMedias = _useState6[0],\n setAddedMedias = _useState6[1];\n\n var medias = useMemo(function () {\n var allMedias = [].concat(_toConsumableArray(addedMedias), _toConsumableArray(loadedMedias || []));\n return allMedias.length > 0 ? allMedias : null;\n }, [loadedMedias, addedMedias]); // Medias\n\n var _useState7 = useState(null),\n _useState8 = _slicedToArray(_useState7, 2),\n metadataMedia = _useState8[0],\n setMetadataMedia = _useState8[1];\n\n var onClickItem = useCallback(function (media) {\n if (!isPicker) {\n setMetadataMedia(media);\n } else if (onClickMedia !== null) {\n onClickMedia(media);\n }\n }, [isPicker, setMetadataMedia, onClickMedia]);\n var onClickItemInfo = useCallback(function (media) {\n return setMetadataMedia(media);\n }, [setMetadataMedia]);\n var onMetadataClickClose = useCallback(function () {\n return setMetadataMedia(null);\n }, [setMetadataMedia]); // Navigation\n\n var onClickBack = useCallback(function () {\n return setMetadataMedia(null);\n }, [setMetadataMedia]); // Reset all filters except source\n\n var onClickCancel = useCallback(function () {\n return setFiltersValue(_objectSpread(_objectSpread({}, defaultFilters), {}, {\n source: filtersValue.source || null\n }));\n }, [defaultFilters, filtersValue, setFiltersValue]); // Upload modal\n\n var _useState9 = useState(false),\n _useState10 = _slicedToArray(_useState9, 2),\n uploading = _useState10[0],\n setUploading = _useState10[1];\n\n var _useState11 = useState(false),\n _useState12 = _slicedToArray(_useState11, 2),\n uploadModalOpened = _useState12[0],\n setUploadModalOpened = _useState12[1];\n\n var _useMediaCreate = useMediaCreate(),\n createMedia = _useMediaCreate.create;\n\n var onClickAdd = useCallback(function () {\n return setUploadModalOpened(true);\n }, [setUploadModalOpened]);\n var onUploadCompleted = useCallback(function (newMedias) {\n setUploading(true);\n Promise.all(newMedias.map(createMedia)).then(function (newAddedMedias) {\n setUploading(false);\n return setAddedMedias([].concat(_toConsumableArray(addedMedias), _toConsumableArray(newAddedMedias)));\n });\n }, [createMedia, addedMedias, setAddedMedias]);\n var onUploadRequestClose = useCallback(function () {\n return setUploadModalOpened(false);\n }, [setUploadModalOpened]);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames([styles.container, (_ref2 = {}, _defineProperty(_ref2, styles.metadataOpened, metadataMedia !== null), _defineProperty(_ref2, className, className), _ref2)])\n }, /*#__PURE__*/React.createElement(Navbar, {\n filters: filtersValue,\n media: metadataMedia !== null ? metadataMedia : null,\n onFiltersChange: onFiltersChange,\n onClickAdd: onClickAdd,\n onClickBack: onClickBack,\n onClickCancel: onClickCancel,\n withoutTitle: withoutTitle,\n withoutSource: withoutSource,\n withoutType: withoutType,\n className: navbarClassName\n }), /*#__PURE__*/React.createElement(\"div\", {\n className: styles.content\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: styles.gallery\n }, medias !== null && !uploading ? /*#__PURE__*/React.createElement(Gallery, {\n items: medias,\n selectedItem: selectedMedia,\n selectedFirst: true,\n withInfoButton: isPicker,\n isSmall: isSmall,\n onClickItem: onClickItem,\n onClickItemInfo: onClickItemInfo\n }) : null, loading || uploading ? /*#__PURE__*/React.createElement(Spinner, {\n className: styles.loading\n }) : null), /*#__PURE__*/React.createElement(\"div\", {\n className: styles.mediaMetadata\n }, /*#__PURE__*/React.createElement(MediaMetadata, {\n media: metadataMedia,\n onClickClose: onMetadataClickClose\n }))), /*#__PURE__*/React.createElement(UploadModal, {\n type: type,\n opened: uploadModalOpened,\n onUploaded: onUploadCompleted,\n onRequestClose: onUploadRequestClose\n }));\n};\n\nMediaGallery.propTypes = propTypes;\nMediaGallery.defaultProps = defaultProps;\n\nexport default MediaGallery;\n","import { PropTypes, FieldsManager } from '@micromag/core';\nimport React, { useCallback, useMemo, useState, useRef, useEffect } from 'react';\nimport { FormattedMessage, defineMessage, useIntl } from 'react-intl';\nimport _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';\nimport PropTypes$1 from 'prop-types';\nimport { createNullableOnChange, getFileName, getStyleFromColor, getFontFamilyFromFont, getGridLayoutName } from '@micromag/core/utils';\nimport MediaGallery from '@micromag/media-gallery';\nimport _defineProperty from '@babel/runtime/helpers/defineProperty';\nimport classNames from 'classnames';\nimport get from 'lodash/get';\nimport isString from 'lodash/isString';\nimport isObject from 'lodash/isObject';\nimport { Label, Button, Empty, ScreenPlaceholder } from '@micromag/core/components';\nimport _objectSpread from '@babel/runtime/helpers/objectSpread2';\nimport { useFieldsManager, useFieldComponent, useFieldContext, useGetColors, FieldContextProvider, useFonts, useGoogleMapsClient, useScreenDefinition, ComponentsProvider, FIELDS_NAMESPACE, FieldsProvider as FieldsProvider$1 } from '@micromag/core/contexts';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faSlidersH, faAngleRight, faBars, faTrash, faPlus, faCheck, faEdit, faChevronDown, faSearch, faBold, faItalic, faUnderline, faAlignLeft, faAlignCenter, faAlignRight, faArrowUp, faArrowDown, faArrowRight, faDotCircle, faArrowLeft } from '@fortawesome/free-solid-svg-icons';\nimport _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';\nimport _slicedToArray from '@babel/runtime/helpers/slicedToArray';\nimport isFunction from 'lodash/isFunction';\nimport { ReactSortable } from 'react-sortablejs';\nimport { v4, v1 } from 'uuid';\nimport isArray from 'lodash/isArray';\nimport Slider from 'rc-slider';\nimport isEmpty from 'lodash/isEmpty';\nimport tinycolor from 'tinycolor2';\nimport { SketchPicker } from 'react-color';\nimport { useLoadedFonts } from '@micromag/core/hooks';\nimport Map, { Pin } from '@micromag/element-map';\nimport _typeof from '@babel/runtime/helpers/typeof';\nimport Select from 'react-select';\nimport isEqual from 'lodash/isEqual';\nimport Switch from 'rc-switch';\nimport AsyncCreatableSelect from 'react-select/async-creatable';\nimport Fuse from 'fuse.js';\nimport Grid from '@micromag/element-grid';\n\nvar styles$r = {\"container\":\"micromag-fields-field-errors-container\",\"error\":\"micromag-fields-field-errors-error\"};\n\nvar propTypes$19 = {\n errors: PropTypes.errors,\n className: PropTypes$1.string\n};\nvar defaultProps$19 = {\n errors: null,\n className: null\n};\n\nvar FieldErrors$1 = function FieldErrors(_ref) {\n var errors = _ref.errors,\n className = _ref.className;\n return errors !== null && errors.length > 0 ? /*#__PURE__*/React.createElement(\"div\", {\n className: classNames([styles$r.container, _defineProperty({}, className, className !== null)])\n }, errors.map(function (error) {\n return /*#__PURE__*/React.createElement(\"div\", {\n key: \"error-\".concat(error),\n className: classNames(['invalid-feedback', styles$r.error])\n }, error);\n })) : null;\n};\n\nFieldErrors$1.propTypes = propTypes$19;\nFieldErrors$1.defaultProps = defaultProps$19;\n\nvar propTypes$18 = {\n children: PropTypes.label,\n muted: PropTypes$1.bool,\n className: PropTypes$1.string\n};\nvar defaultProps$18 = {\n children: null,\n muted: true,\n className: null\n};\n\nvar FieldErrors = function FieldErrors(_ref) {\n var children = _ref.children,\n muted = _ref.muted,\n className = _ref.className;\n return /*#__PURE__*/React.createElement(\"small\", {\n id: \"passwordHelpBlock\",\n className: classNames(['form-text', _defineProperty({\n 'text-muted': muted\n }, className, className !== null)])\n }, /*#__PURE__*/React.createElement(Label, null, children));\n};\n\nFieldErrors.propTypes = propTypes$18;\nFieldErrors.defaultProps = defaultProps$18;\n\nvar styles$q = {\"resetButton\":\"micromag-fields-field-row-resetButton\",\"colValue\":\"micromag-fields-field-row-colValue\",\"settingsButton\":\"micromag-fields-field-row-settingsButton\"};\n\nvar propTypes$17 = {\n label: PropTypes.label,\n errors: PropTypes.errors,\n help: PropTypes.label,\n children: PropTypes$1.node,\n isSection: PropTypes$1.bool,\n isHorizontal: PropTypes$1.bool,\n isListItem: PropTypes$1.bool,\n withoutLabel: PropTypes$1.bool,\n withSettings: PropTypes$1.bool,\n withForm: PropTypes$1.oneOfType([PropTypes$1.bool, PropTypes$1.string]),\n withValue: PropTypes$1.bool,\n buttonTheme: PropTypes.buttonTheme,\n buttonOutline: PropTypes$1.bool,\n gotoSettings: PropTypes$1.func,\n gotoForm: PropTypes$1.func,\n className: PropTypes$1.string,\n labelClassName: PropTypes$1.string,\n buttonClassName: PropTypes$1.string\n};\nvar defaultProps$17 = {\n label: null,\n errors: null,\n help: null,\n children: null,\n isSection: false,\n isHorizontal: false,\n isListItem: false,\n withoutLabel: false,\n withSettings: false,\n withForm: false,\n withValue: false,\n buttonTheme: null,\n buttonOutline: false,\n gotoSettings: null,\n gotoForm: null,\n className: null,\n labelClassName: null,\n buttonClassName: null\n};\n\nvar FieldRow = function FieldRow(_ref) {\n var label = _ref.label,\n errors = _ref.errors,\n help = _ref.help,\n children = _ref.children,\n isSection = _ref.isSection,\n isHorizontal = _ref.isHorizontal,\n isListItem = _ref.isListItem,\n withoutLabel = _ref.withoutLabel,\n withSettings = _ref.withSettings,\n withForm = _ref.withForm,\n withValue = _ref.withValue,\n buttonTheme = _ref.buttonTheme,\n buttonOutline = _ref.buttonOutline,\n gotoForm = _ref.gotoForm,\n gotoSettings = _ref.gotoSettings,\n className = _ref.className,\n labelClassName = _ref.labelClassName,\n buttonClassName = _ref.buttonClassName;\n var withLabel = !withoutLabel && label !== null;\n var isClickable = withForm;\n var onClickRow = useCallback(function () {\n if (typeof withForm === 'string') {\n gotoForm(withForm);\n } else if (withForm) {\n gotoForm();\n }\n }, [withForm, gotoForm]);\n var containerClassName = classNames(['form-group', _defineProperty({\n 'list-group-item': isListItem,\n 'mb-0': isListItem,\n 'py-2': isListItem,\n 'px-2': isListItem,\n 'text-light': isListItem\n }, className, className !== null)]);\n var labelElement = label !== null ? /*#__PURE__*/React.createElement(\"label\", {\n className: classNames(_defineProperty({\n 'col-form-label': isHorizontal || withSettings,\n 'col-auto': isHorizontal,\n col: !isHorizontal && withSettings,\n 'py-0': isHorizontal,\n 'text-truncate': isHorizontal,\n 'font-weight-normal': !isSection,\n 'font-weight-bold': isSection\n }, labelClassName, labelClassName !== null))\n }, /*#__PURE__*/React.createElement(Label, null, label)) : null;\n var helpElement = help !== null ? /*#__PURE__*/React.createElement(FieldErrors, null, help) : null;\n var errorsElement = errors !== null && errors.length > 0 ? /*#__PURE__*/React.createElement(FieldErrors$1, {\n errors: errors\n }) : null;\n var arrowElement = isClickable ? /*#__PURE__*/React.createElement(\"span\", {\n className: \"col-auto\"\n }, /*#__PURE__*/React.createElement(FontAwesomeIcon, {\n icon: faAngleRight\n })) : null;\n\n if (isHorizontal) {\n var _ref3;\n\n var rowInner = /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(['form-row', 'align-items-center', 'flex-nowrap'])\n }, labelElement, /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(['col', styles$q.colValue])\n }, children), arrowElement, helpElement, errorsElement);\n return isClickable ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n className: classNames([containerClassName, (_ref3 = {}, _defineProperty(_ref3, styles$q.resetButton, !isListItem), _defineProperty(_ref3, 'd-block', !isListItem), _defineProperty(_ref3, 'p-2', !isListItem), _ref3)]),\n onClick: onClickRow\n }, rowInner)) : /*#__PURE__*/React.createElement(\"div\", {\n className: containerClassName\n }, rowInner);\n }\n\n return /*#__PURE__*/React.createElement(\"div\", {\n className: containerClassName\n }, withLabel ? /*#__PURE__*/React.createElement(React.Fragment, null, withSettings ? /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(['form-row', 'align-items-center'])\n }, labelElement, /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(['col-auto'])\n }, /*#__PURE__*/React.createElement(Button, {\n className: styles$q.settingsButton,\n withoutStyle: true,\n onClick: gotoSettings,\n disabled: !withValue\n }, /*#__PURE__*/React.createElement(FontAwesomeIcon, {\n icon: faSlidersH\n })))) : labelElement) : null, isClickable ? /*#__PURE__*/React.createElement(Button, {\n className: classNames(['d-block', 'w-100', 'px-2', _defineProperty({\n 'bg-dark': buttonTheme === null\n }, buttonClassName, buttonClassName !== null)]),\n theme: buttonTheme,\n outline: buttonOutline,\n onClick: onClickRow\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: \"form-row align-items-center\"\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(['col', styles$q.colValue])\n }, children), arrowElement)) : children, helpElement, errorsElement);\n};\n\nFieldRow.propTypes = propTypes$17;\nFieldRow.defaultProps = defaultProps$17;\n\nvar propTypes$16 = {\n name: PropTypes$1.string,\n // .isRequired,\n type: PropTypes$1.string,\n component: PropTypes$1.oneOfType([PropTypes$1.node, PropTypes$1.func]),\n label: PropTypes.label,\n help: PropTypes.label,\n errors: PropTypes.errors,\n value: PropTypes$1.any,\n // eslint-disable-line react/forbid-prop-types\n fields: PropTypes.formFields,\n isHorizontal: PropTypes$1.bool,\n isSection: PropTypes$1.bool,\n isListItem: PropTypes$1.bool,\n withForm: PropTypes$1.oneOfType([PropTypes$1.bool, PropTypes$1.string]),\n onChange: PropTypes$1.func,\n gotoFieldForm: PropTypes$1.func,\n closeFieldForm: PropTypes$1.func,\n className: PropTypes$1.string,\n labelClassName: PropTypes$1.string\n};\nvar defaultProps$16 = {\n name: null,\n type: null,\n component: null,\n label: null,\n help: null,\n value: null,\n errors: null,\n fields: undefined,\n isHorizontal: null,\n isSection: false,\n isListItem: false,\n withForm: null,\n onChange: null,\n gotoFieldForm: null,\n closeFieldForm: null,\n className: null,\n labelClassName: null\n};\n\nvar Field = function Field(_ref) {\n var name = _ref.name,\n type = _ref.type,\n providedComponent = _ref.component,\n label = _ref.label,\n help = _ref.help,\n errors = _ref.errors,\n providedFields = _ref.fields,\n isHorizontal = _ref.isHorizontal,\n isSection = _ref.isSection,\n isListItem = _ref.isListItem,\n providedWithForm = _ref.withForm,\n value = _ref.value,\n onChange = _ref.onChange,\n gotoFieldForm = _ref.gotoFieldForm,\n closeFieldForm = _ref.closeFieldForm,\n className = _ref.className,\n labelClassName = _ref.labelClassName,\n props = _objectWithoutProperties(_ref, [\"name\", \"type\", \"component\", \"label\", \"help\", \"errors\", \"fields\", \"isHorizontal\", \"isSection\", \"isListItem\", \"withForm\", \"value\", \"onChange\", \"gotoFieldForm\", \"closeFieldForm\", \"className\", \"labelClassName\"]);\n\n var fieldsManager = useFieldsManager();\n var FieldsComponent = fieldsManager.getComponent('fields');\n\n var _ref2 = (type !== null ? fieldsManager.getDefinition(type) || null : null) || {\n component: providedComponent\n },\n _ref2$component = _ref2.component,\n fieldComponent = _ref2$component === void 0 ? FieldsComponent : _ref2$component,\n _ref2$fields = _ref2.fields,\n fields = _ref2$fields === void 0 ? providedFields : _ref2$fields,\n _ref2$settings = _ref2.settings,\n settings = _ref2$settings === void 0 ? null : _ref2$settings,\n _ref2$withoutLabel = _ref2.withoutLabel,\n withoutLabel = _ref2$withoutLabel === void 0 ? false : _ref2$withoutLabel,\n _ref2$withoutFieldRow = _ref2.withoutFieldRow,\n withoutFieldRow = _ref2$withoutFieldRow === void 0 ? false : _ref2$withoutFieldRow,\n _ref2$withForm = _ref2.withForm,\n withForm = _ref2$withForm === void 0 ? providedWithForm : _ref2$withForm,\n _ref2$isList = _ref2.isList,\n isList = _ref2$isList === void 0 ? false : _ref2$isList,\n fieldProps = _objectWithoutProperties(_ref2, [\"component\", \"fields\", \"settings\", \"withoutLabel\", \"withoutFieldRow\", \"withForm\", \"isList\"]);\n\n var FieldComponent = useFieldComponent(fieldComponent); // console.log(fieldsManager, fieldComponent, FieldComponent);\n\n var isFields = FieldComponent === FieldsComponent;\n var context = useFieldContext();\n var gotoForm = useCallback(function (form) {\n return gotoFieldForm(name, form, context);\n }, [name, context, gotoFieldForm]);\n var closeForm = useCallback(function (form) {\n return closeFieldForm(name, form);\n }, [name, closeFieldForm]);\n var gotoSettings = useCallback(function () {\n return gotoForm('settings');\n }, [gotoForm]);\n\n if (FieldComponent === null) {\n return null;\n }\n\n var finalWithForm = withForm || FieldComponent.withForm || false;\n var finalIsHorizontal = isHorizontal !== null ? isHorizontal : FieldComponent.isHorizontal || finalWithForm !== false && isListItem || null;\n var finalWithoutLabel = withoutLabel || FieldComponent.withoutLabel || false;\n var finalWithSettings = settings !== null || typeof FieldComponent.withSettings !== 'undefined' && FieldComponent.withSettings || typeof FieldComponent.settingsComponent !== 'undefined' || false;\n var fieldElement = /*#__PURE__*/React.createElement(FieldComponent, Object.assign({\n isHorizontal: finalIsHorizontal && !isFields,\n isList: isList,\n labelClassName: classNames(_defineProperty({\n 'col-sm-3': isHorizontal && isFields\n }, labelClassName, labelClassName !== null))\n }, props, fieldProps, {\n errors: errors,\n fields: fields,\n name: name,\n value: value,\n onChange: onChange,\n gotoFieldForm: gotoFieldForm,\n gotoForm: gotoForm\n }));\n return !withoutFieldRow ? /*#__PURE__*/React.createElement(FieldRow, Object.assign({}, props, fieldProps, {\n label: label,\n errors: errors,\n help: help,\n isHorizontal: finalIsHorizontal || false,\n isSection: isSection,\n isListItem: isListItem,\n withoutLabel: finalWithoutLabel,\n withSettings: finalWithSettings,\n withForm: finalWithForm,\n withValue: value !== null,\n gotoSettings: gotoSettings,\n gotoForm: gotoForm,\n closeForm: closeForm,\n className: className,\n labelClassName: labelClassName\n }), fieldElement) : fieldElement;\n};\n\nField.propTypes = propTypes$16;\nField.defaultProps = defaultProps$16;\n\nvar styles$p = {\"container\":\"micromag-fields-container\",\"field\":\"micromag-fields-field\",\"isSection\":\"micromag-fields-isSection\",\"isList\":\"micromag-fields-isList\",\"advanced\":\"micromag-fields-advanced\",\"withBorders\":\"micromag-fields-withBorders\",\"fields\":\"micromag-fields-fields\",\"fieldRow\":\"micromag-fields-fieldRow\"};\n\nvar propTypes$15 = {\n name: PropTypes$1.string,\n fields: PropTypes.formFields,\n value: PropTypes$1.object,\n // eslint-disable-line react/forbid-prop-types\n errors: PropTypes.formErrors,\n withBorders: PropTypes$1.bool,\n gotoFieldForm: PropTypes$1.func,\n closeFieldForm: PropTypes$1.func,\n nullEmptyObject: PropTypes$1.bool,\n isHorizontal: PropTypes$1.bool,\n isList: PropTypes$1.bool,\n isFlushList: PropTypes$1.bool,\n onChange: PropTypes$1.func,\n className: PropTypes$1.string,\n fieldClassName: PropTypes$1.string,\n labelClassName: PropTypes$1.string,\n components: PropTypes.components,\n fieldProps: PropTypes$1.object // eslint-disable-line react/forbid-prop-types\n\n};\nvar defaultProps$15 = {\n name: null,\n fields: [],\n value: null,\n errors: null,\n withBorders: false,\n gotoFieldForm: null,\n closeFieldForm: null,\n nullEmptyObject: false,\n isHorizontal: null,\n isList: false,\n isFlushList: false,\n onChange: null,\n className: null,\n fieldClassName: null,\n labelClassName: null,\n components: null,\n fieldProps: null\n};\n\nvar Fields = function Fields(_ref) {\n var _ref5;\n\n var namespace = _ref.name,\n fields = _ref.fields,\n value = _ref.value,\n errors = _ref.errors,\n withBorders = _ref.withBorders,\n gotoFieldForm = _ref.gotoFieldForm,\n closeFieldForm = _ref.closeFieldForm,\n nullEmptyObject = _ref.nullEmptyObject,\n globalIsHorizontal = _ref.isHorizontal,\n isList = _ref.isList,\n isFlushList = _ref.isFlushList,\n onChange = _ref.onChange,\n className = _ref.className,\n fieldClassName = _ref.fieldClassName,\n labelClassName = _ref.labelClassName,\n components = _ref.components,\n fieldProps = _ref.fieldProps;\n var nullableOnChange = useCallback(nullEmptyObject ? createNullableOnChange(onChange) : onChange, [nullEmptyObject, onChange]);\n var onFieldChange = useCallback(function (key, newFieldValue) {\n var newValue = key !== null ? _objectSpread(_objectSpread({}, value), {}, _defineProperty({}, key, newFieldValue)) : _objectSpread(_objectSpread({}, value), newFieldValue);\n\n if (nullableOnChange !== null) {\n nullableOnChange(newValue);\n }\n }, [value, nullableOnChange]);\n var visibleFields = fields.filter(function (_ref2) {\n var _ref2$hidden = _ref2.hidden,\n hidden = _ref2$hidden === void 0 ? false : _ref2$hidden;\n return !hidden;\n });\n var fieldsAdvanced = visibleFields.map(function (_ref3) {\n var _ref3$advanced = _ref3.advanced,\n advanced = _ref3$advanced === void 0 ? false : _ref3$advanced;\n return advanced;\n });\n var normalFieldsIndex = useMemo(function () {\n return fieldsAdvanced.map(function (advanced, index) {\n return !advanced ? index : null;\n }).filter(function (it) {\n return it !== null;\n });\n }, [fieldsAdvanced.join(',')]);\n var advancedFieldsIndex = useMemo(function () {\n return fieldsAdvanced.map(function (advanced, index) {\n return advanced ? index : null;\n }).filter(function (it) {\n return it !== null;\n });\n }, [fieldsAdvanced.join(',')]);\n var fieldsElements = useMemo(function () {\n return visibleFields.map(function (field, i) {\n var _ref4;\n\n var _field$name = field.name,\n name = _field$name === void 0 ? null : _field$name,\n customValue = field.value,\n customErrors = field.errors,\n _field$onChange = field.onChange,\n customOnChange = _field$onChange === void 0 ? null : _field$onChange,\n _field$isHorizontal = field.isHorizontal,\n isHorizontal = _field$isHorizontal === void 0 ? globalIsHorizontal : _field$isHorizontal,\n _field$isSection = field.isSection,\n isSection = _field$isSection === void 0 ? false : _field$isSection;\n var singleFieldValue = name !== null && typeof (value || {})[name] !== 'undefined' ? (value || {})[name] : null;\n var singleFieldErrors = name !== null && typeof (errors || {})[name] !== 'undefined' ? (errors || {})[name] : null;\n var fieldValue = name !== null ? singleFieldValue : value;\n var fieldErrors = name !== null ? singleFieldErrors : errors;\n\n var fieldOnChange = function fieldOnChange(newFieldValue) {\n return onFieldChange(name, newFieldValue);\n };\n\n return /*#__PURE__*/React.createElement(Field, Object.assign({}, field, fieldProps, {\n key: \"field-\".concat(name, \"-\").concat(i + 1),\n name: namespace !== null ? \"\".concat(namespace).concat(name !== null ? \".\".concat(name) : '') : name,\n value: typeof customValue !== 'undefined' ? customValue : fieldValue,\n errors: typeof customErrors !== 'undefined' ? customErrors : fieldErrors,\n onChange: customOnChange || fieldOnChange,\n gotoFieldForm: gotoFieldForm,\n closeFieldForm: closeFieldForm,\n components: components,\n isHorizontal: isHorizontal,\n isSection: isSection,\n isListItem: isList || isFlushList,\n className: classNames([styles$p.field, (_ref4 = {}, _defineProperty(_ref4, styles$p.isSection, isSection), _defineProperty(_ref4, fieldClassName, fieldClassName !== null), _ref4)]),\n labelClassName: labelClassName,\n fieldRowClassName: styles$p.fieldRow\n }));\n });\n }, [visibleFields, globalIsHorizontal, isList, isFlushList, value, errors, onFieldChange, gotoFieldForm, closeFieldForm]);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames([styles$p.container, (_ref5 = {}, _defineProperty(_ref5, styles$p.withBorders, withBorders), _defineProperty(_ref5, className, className !== null), _ref5)])\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: classNames([styles$p.fields, {\n 'list-group': isList,\n 'list-group-flush': isFlushList\n }])\n }, normalFieldsIndex.map(function (index) {\n return fieldsElements[index];\n })), advancedFieldsIndex.length > 0 ? /*#__PURE__*/React.createElement(FieldRow, {\n label: /*#__PURE__*/React.createElement(FormattedMessage, {\n id: \"enFs4g\",\n defaultMessage: [{\n \"type\": 0,\n \"value\": \"Advanced\"\n }]\n }),\n isSection: true,\n className: styles$p.advanced\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: classNames([styles$p.fields, {\n 'list-group': isList,\n 'list-group-flush': isFlushList\n }])\n }, advancedFieldsIndex.map(function (index) {\n return fieldsElements[index];\n }))) : null);\n};\n\nFields.propTypes = propTypes$15;\nFields.defaultProps = defaultProps$15;\n\nvar styles$o = {\"thumbnail\":\"micromag-fields-field-with-form-thumbnail\",\"label\":\"micromag-fields-field-with-form-label\"};\n\nvar propTypes$14 = {\n // value: MicromagPropTypes.media,\n value: PropTypes$1.any,\n // eslint-disable-line\n isForm: PropTypes$1.bool,\n label: PropTypes$1.oneOfType([PropTypes$1.node, PropTypes.message]),\n thumbnail: PropTypes$1.node,\n labelPath: PropTypes$1.string,\n thumbnailPath: PropTypes$1.string,\n noValueLabel: PropTypes.label,\n isHorizontal: PropTypes$1.bool,\n children: PropTypes$1.node,\n field: PropTypes.formField,\n className: PropTypes$1.string,\n onChange: PropTypes$1.func,\n closeForm: PropTypes$1.func\n};\nvar defaultProps$14 = {\n value: null,\n isForm: false,\n label: null,\n thumbnail: null,\n labelPath: 'label',\n thumbnailPath: 'thumbnail',\n noValueLabel: null,\n isHorizontal: false,\n children: null,\n field: null,\n className: null,\n onChange: null,\n closeForm: null\n};\n\nvar FieldWithForm = function FieldWithForm(_ref) {\n var value = _ref.value,\n isForm = _ref.isForm,\n noValueLabel = _ref.noValueLabel,\n label = _ref.label,\n labelPath = _ref.labelPath,\n thumbnail = _ref.thumbnail,\n thumbnailPath = _ref.thumbnailPath,\n isHorizontal = _ref.isHorizontal,\n className = _ref.className,\n onChange = _ref.onChange;\n _ref.closeForm;\n var children = _ref.children,\n field = _ref.field,\n props = _objectWithoutProperties(_ref, [\"value\", \"isForm\", \"noValueLabel\", \"label\", \"labelPath\", \"thumbnail\", \"thumbnailPath\", \"isHorizontal\", \"className\", \"onChange\", \"closeForm\", \"children\", \"field\"]);\n\n if (isForm) {\n if (children !== null) {\n return children;\n }\n\n return field !== null ? /*#__PURE__*/React.createElement(Field, Object.assign({\n className: \"p-2\"\n }, field, props, {\n value: value,\n onChange: onChange,\n buttonTheme: \"primary\"\n })) : /*#__PURE__*/React.createElement(Fields, Object.assign({\n className: \"p-2\"\n }, props, {\n value: value,\n onChange: onChange\n }));\n }\n\n var labelValue = label !== null ? label : get(value, labelPath, null);\n var labelString = labelValue !== null && isObject(labelValue) ? labelValue.name || labelValue.id || '' : labelValue; // Strip html\n\n var labelElement = labelString !== null && isString(labelString) ? labelString.replace(/(<([^>]+)>)/gi, '') : null;\n var thumbnailElement = null;\n var thumbnailSrc = get(value, thumbnailPath, null);\n\n if (thumbnail !== null) {\n thumbnailElement = thumbnail;\n } else if (thumbnailSrc !== null) {\n thumbnailElement = /*#__PURE__*/React.createElement(\"img\", {\n src: thumbnailSrc,\n className: styles$o.thumbnail,\n alt: label\n });\n }\n\n return /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(['form-row', 'align-items-center', 'flex-nowrap', _defineProperty({}, className, className !== null)])\n }, thumbnailElement !== null || labelElement !== null ? /*#__PURE__*/React.createElement(React.Fragment, null, !isHorizontal && thumbnailElement !== null ? /*#__PURE__*/React.createElement(\"span\", {\n className: \"col-auto\"\n }, thumbnailElement) : null, /*#__PURE__*/React.createElement(\"span\", {\n className: classNames([styles$o.label, 'col', 'text-monospace', 'text-left', 'text-truncate', {\n 'text-left': !isHorizontal,\n 'text-right': isHorizontal\n }])\n }, labelElement), isHorizontal && thumbnailElement !== null ? /*#__PURE__*/React.createElement(\"span\", {\n className: \"col-auto\"\n }, thumbnailElement) : null) : /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(['col', 'text-muted', {\n 'text-left': !isHorizontal,\n 'text-right': isHorizontal\n }])\n }, /*#__PURE__*/React.createElement(Label, null, noValueLabel || /*#__PURE__*/React.createElement(FormattedMessage, {\n id: \"EoVdMy\",\n defaultMessage: [{\n \"type\": 0,\n \"value\": \"Edit content...\"\n }]\n }))));\n};\n\nFieldWithForm.propTypes = propTypes$14;\nFieldWithForm.defaultProps = defaultProps$14;\nFieldWithForm.withForm = true;\n\nvar propTypes$13 = {\n type: PropTypes$1.oneOfType([PropTypes.mediaTypes, PropTypes$1.arrayOf(PropTypes.mediaTypes)]),\n value: PropTypes.media,\n noValueLabel: PropTypes.label,\n withoutThumbnail: PropTypes$1.bool,\n onChange: PropTypes$1.func,\n closeForm: PropTypes$1.func\n};\nvar defaultProps$13 = {\n type: null,\n value: null,\n noValueLabel: /*#__PURE__*/React.createElement(FormattedMessage, {\n id: \"e6+aGf\",\n defaultMessage: [{\n \"type\": 0,\n \"value\": \"Select a media...\"\n }]\n }),\n withoutThumbnail: false,\n onChange: null,\n closeForm: null\n};\n\nvar MediaField = function MediaField(_ref) {\n var type = _ref.type,\n value = _ref.value,\n noValueLabel = _ref.noValueLabel;\n _ref.withoutThumbnail;\n var onChange = _ref.onChange,\n closeForm = _ref.closeForm,\n props = _objectWithoutProperties(_ref, [\"type\", \"value\", \"noValueLabel\", \"withoutThumbnail\", \"onChange\", \"closeForm\"]);\n\n var onClickMedia = useCallback(function (media) {\n if (onChange !== null) {\n onChange(media !== null && value !== null && media.id === value.id ? null : media);\n }\n\n if (closeForm !== null) {\n closeForm();\n }\n }, [value, onChange, closeForm]);\n var label = value !== null ? value.name || getFileName(value.url) || null : null;\n return /*#__PURE__*/React.createElement(FieldWithForm, Object.assign({\n value: value,\n onChange: onChange,\n noValueLabel: noValueLabel,\n label: label,\n thumbnailPath: \"thumbnail_url\"\n }, props), /*#__PURE__*/React.createElement(MediaGallery, {\n type: type,\n isPicker: true,\n isSmall: true,\n selectedMedia: value,\n onClickMedia: onClickMedia\n }));\n};\n\nMediaField.propTypes = propTypes$13;\nMediaField.defaultProps = defaultProps$13;\nMediaField.withForm = true;\n\n/* eslint-disable react/jsx-props-no-spreading */\nvar propTypes$12 = {\n value: PropTypes.audioMedia\n};\nvar defaultProps$12 = {\n value: null\n};\n\nvar AudioField = function AudioField(props) {\n return /*#__PURE__*/React.createElement(MediaField, Object.assign({\n noValueLabel: /*#__PURE__*/React.createElement(FormattedMessage, {\n id: \"wt1+dM\",\n defaultMessage: [{\n \"type\": 0,\n \"value\": \"Select an audio file...\"\n }]\n })\n }, props, {\n type: \"audio\"\n }));\n};\n\nAudioField.propTypes = propTypes$12;\nAudioField.defaultProps = defaultProps$12;\nAudioField.withForm = true;\n\nvar audio = {\n id: 'audio',\n component: AudioField,\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: FieldWithForm,\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};\n\nvar propTypes$11 = {\n name: PropTypes$1.string,\n value: PropTypes$1.arrayOf(PropTypes$1.object),\n // eslint-disable-line\n getDefaultValue: PropTypes$1.func,\n noItemLabel: PropTypes.label,\n addItemLabel: PropTypes.label,\n itemFieldLabel: PropTypes$1.oneOfType([PropTypes$1.func, PropTypes.label]),\n itemComponent: PropTypes$1.elementType,\n itemsField: PropTypes.formField,\n className: PropTypes$1.string,\n withoutSort: PropTypes$1.bool,\n isFieldForm: PropTypes$1.bool,\n gotoFieldForm: PropTypes$1.func,\n closeFieldForm: PropTypes$1.func,\n onChange: PropTypes$1.func\n};\nvar defaultProps$11 = {\n name: null,\n value: null,\n getDefaultValue: null,\n noItemLabel: /*#__PURE__*/React.createElement(FormattedMessage, {\n id: \"PKCv5M\",\n defaultMessage: [{\n \"type\": 0,\n \"value\": \"No item...\"\n }]\n }),\n addItemLabel: /*#__PURE__*/React.createElement(FormattedMessage, {\n id: \"ZxgNge\",\n defaultMessage: [{\n \"type\": 0,\n \"value\": \"Add an item\"\n }]\n }),\n // eslint-disable-next-line react/prop-types\n itemFieldLabel: function itemFieldLabel(_ref) {\n var index = _ref.index;\n return /*#__PURE__*/React.createElement(FormattedMessage, {\n id: \"2/F1Q7\",\n defaultMessage: [{\n \"type\": 0,\n \"value\": \"#\"\n }, {\n \"type\": 1,\n \"value\": \"index\"\n }],\n values: {\n index: index\n }\n });\n },\n itemComponent: null,\n itemsField: null,\n className: null,\n withoutSort: false,\n isFieldForm: false,\n gotoFieldForm: null,\n closeFieldForm: null,\n onChange: null\n};\n\nvar ItemsField = function ItemsField(_ref2) {\n var name = _ref2.name,\n value = _ref2.value,\n getDefaultValue = _ref2.getDefaultValue,\n noItemLabel = _ref2.noItemLabel,\n addItemLabel = _ref2.addItemLabel,\n itemFieldLabel = _ref2.itemFieldLabel,\n itemComponent = _ref2.itemComponent,\n itemsField = _ref2.itemsField,\n className = _ref2.className,\n withoutSort = _ref2.withoutSort,\n onChange = _ref2.onChange;\n _ref2.isFieldForm;\n var gotoFieldForm = _ref2.gotoFieldForm,\n closeFieldForm = _ref2.closeFieldForm,\n props = _objectWithoutProperties(_ref2, [\"name\", \"value\", \"getDefaultValue\", \"noItemLabel\", \"addItemLabel\", \"itemFieldLabel\", \"itemComponent\", \"itemsField\", \"className\", \"withoutSort\", \"onChange\", \"isFieldForm\", \"gotoFieldForm\", \"closeFieldForm\"]);\n\n // const finalIsFieldForm =\n // isFieldForm || (itemComponent !== null ? itemComponent.withForm || false : false);\n var _useState = useState(false),\n _useState2 = _slicedToArray(_useState, 2),\n editing = _useState2[0],\n setEditing = _useState2[1];\n\n var idMap = useRef((value || []).map(function () {\n return v4();\n }));\n var onClickAdd = useCallback(function () {\n var newDefaultValue = getDefaultValue !== null ? getDefaultValue() : null;\n var newValue = [].concat(_toConsumableArray(value || []), [newDefaultValue]);\n idMap.current = [].concat(_toConsumableArray(idMap.current), [v4()]);\n\n if (onChange !== null) {\n onChange(newValue);\n }\n\n if (gotoFieldForm !== null) {\n gotoFieldForm(\"\".concat(name, \".\").concat(newValue.length - 1));\n }\n }, [value, onChange, getDefaultValue, gotoFieldForm, name\n /* gotoFieldForm */\n ]);\n var onClickEdit = useCallback(function () {\n setEditing(function (old) {\n return !old;\n });\n }, [setEditing]);\n var onClickDelete = useCallback(function (index) {\n if (onChange !== null) {\n var newValues = _toConsumableArray(value);\n\n newValues.splice(index, 1);\n idMap.current = idMap.current.filter(function (_, idIndex) {\n return idIndex !== index;\n });\n onChange(newValues);\n\n if (newValues.length === 0) {\n setEditing(false);\n }\n }\n }, [value, onChange, setEditing]);\n var onItemChange = useCallback(function (index, newValue) {\n if (onChange !== null) {\n var newValues = _toConsumableArray(value);\n\n newValues[index] = newValue;\n onChange(newValues);\n }\n }, [value, onChange]);\n var onOrderChange = useCallback(function (newItems) {\n var orderChanged = newItems.reduce(function (changed, _ref3, prevIndex) {\n var newIndex = _ref3.index;\n return changed || prevIndex !== newIndex;\n }, false);\n\n if (orderChanged && onChange !== null) {\n var newIdMap = newItems.map(function (_ref4) {\n var index = _ref4.index;\n return idMap.current[index];\n });\n idMap.current = newIdMap;\n onChange(newItems.map(function (_ref5) {\n var it = _ref5.it;\n return it;\n }));\n }\n }, [onChange]);\n var gotoForms = useMemo(function () {\n return value !== null ? value.map(function (val, index) {\n return function () {\n return gotoFieldForm(\"\".concat(name, \".\").concat(index));\n };\n }) : null;\n }, [value, gotoFieldForm]);\n var closeForms = useMemo(function () {\n return value !== null ? value.map(function (val, index) {\n return function () {\n return closeFieldForm(\"\".concat(name, \".\").concat(index));\n };\n }) : null;\n }, [value, closeFieldForm]);\n var items = value || [];\n var _items$length = items.length,\n itemsLength = _items$length === void 0 ? 0 : _items$length;\n var hasItems = itemsLength > 0;\n var sortableItems = items.map(function (it, index) {\n return {\n id: idMap.current[index],\n it: it,\n index: index\n };\n });\n var finalWithoutSort = withoutSort || !editing;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: className\n }, hasItems ? /*#__PURE__*/React.createElement(\"div\", null, /*#__PURE__*/React.createElement(ReactSortable, {\n list: sortableItems,\n setList: onOrderChange,\n disabled: finalWithoutSort,\n key: finalWithoutSort\n }, items.map(function (itemValue, index) {\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-0 d-flex\"\n }, !finalWithoutSort ? /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(['btn', 'pl-2', 'pr-1', 'border', 'border-dark', 'border-right-0', 'rounded-0', 'text-dark', {\n 'border-top-0': index > 0\n }])\n }, /*#__PURE__*/React.createElement(FontAwesomeIcon, {\n icon: faBars\n })) : null, /*#__PURE__*/React.createElement(Field, Object.assign({\n className: classNames(['flex-grow-1', {\n 'border-top-0': index > 0,\n 'border-left-0': editing && !finalWithoutSort\n }]),\n component: itemComponent\n }, itemsField, props, {\n key: \"item-\".concat(index),\n label: isFunction(itemFieldLabel) ? itemFieldLabel({\n item: itemValue,\n index: index + 1\n }) : /*#__PURE__*/React.createElement(Label, {\n values: {\n index: index + 1\n }\n }, itemFieldLabel),\n isListItem: true,\n name: \"\".concat(name, \".\").concat(index),\n value: itemValue,\n onChange: function onChange(newValue) {\n return onItemChange(index, newValue);\n },\n closeForm: closeForms[index],\n gotoForm: gotoForms[index],\n gotoFieldForm: gotoFieldForm,\n closeFieldForm: closeFieldForm\n })), editing ? /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n className: \"btn pl-2 pr-0 py-0 text-danger\",\n onClick: function onClick() {\n onClickDelete(index);\n }\n }, /*#__PURE__*/React.createElement(FontAwesomeIcon, {\n icon: faTrash\n })) : null);\n }))) : /*#__PURE__*/React.createElement(Empty, {\n className: \"p-4\"\n }, /*#__PURE__*/React.createElement(Label, null, noItemLabel)), /*#__PURE__*/React.createElement(\"div\", {\n className: \"mt-2\"\n }, /*#__PURE__*/React.createElement(Button, {\n theme: \"primary\",\n size: \"sm\",\n icon: /*#__PURE__*/React.createElement(FontAwesomeIcon, {\n icon: faPlus\n }),\n onClick: onClickAdd\n }, /*#__PURE__*/React.createElement(Label, null, addItemLabel)), hasItems ? /*#__PURE__*/React.createElement(Button, {\n className: \"ml-2\",\n theme: \"secondary\",\n size: \"sm\",\n icon: /*#__PURE__*/React.createElement(FontAwesomeIcon, {\n icon: editing ? faCheck : faEdit\n }),\n onClick: onClickEdit\n }, /*#__PURE__*/React.createElement(Label, null, !editing ? /*#__PURE__*/React.createElement(FormattedMessage, {\n id: \"xuEZXD\",\n defaultMessage: [{\n \"type\": 0,\n \"value\": \"Edit\"\n }]\n }) : /*#__PURE__*/React.createElement(FormattedMessage, {\n id: \"UlZIP8\",\n defaultMessage: [{\n \"type\": 0,\n \"value\": \"OK\"\n }]\n }))) : null));\n};\n\nItemsField.propTypes = propTypes$11;\nItemsField.defaultProps = defaultProps$11;\n\nvar answers = {\n id: 'answers',\n component: ItemsField,\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 propTypes$10 = {\n // eslint-disable-next-line react/forbid-prop-types\n inputRef: PropTypes$1.oneOfType([PropTypes$1.func, PropTypes$1.shape({\n current: PropTypes$1.object\n })]),\n type: PropTypes$1.oneOf(['text', 'email', 'number', 'password']),\n value: PropTypes$1.oneOfType([PropTypes$1.string, PropTypes$1.number]),\n errors: PropTypes.errors,\n required: PropTypes$1.bool,\n disabled: PropTypes$1.bool,\n placeholder: PropTypes$1.string,\n prefix: PropTypes$1.string,\n autofocus: PropTypes$1.bool,\n className: PropTypes$1.string,\n onChange: PropTypes$1.func\n};\nvar defaultProps$10 = {\n inputRef: null,\n type: 'text',\n value: null,\n errors: null,\n required: false,\n disabled: false,\n placeholder: null,\n prefix: null,\n autofocus: false,\n className: null,\n onChange: null\n};\n\nvar TextField = function TextField(_ref) {\n var inputRef = _ref.inputRef,\n type = _ref.type,\n value = _ref.value,\n errors = _ref.errors,\n required = _ref.required,\n disabled = _ref.disabled,\n placeholder = _ref.placeholder,\n prefix = _ref.prefix,\n autofocus = _ref.autofocus,\n className = _ref.className,\n _onChange = _ref.onChange;\n var input = /*#__PURE__*/React.createElement(\"input\", {\n ref: inputRef,\n type: type,\n className: classNames(['form-control', _defineProperty({\n 'is-invalid': errors !== null && errors.length > 0\n }, className, className !== null)]),\n value: value || '',\n onChange: function onChange(_ref3) {\n var _ref3$currentTarget$v = _ref3.currentTarget.value,\n newValue = _ref3$currentTarget$v === void 0 ? '' : _ref3$currentTarget$v;\n return _onChange !== null ? _onChange(!isEmpty(newValue) ? newValue : null) : null;\n },\n placeholder: placeholder,\n required: required,\n disabled: disabled,\n autoFocus: autofocus\n });\n return prefix !== null ? /*#__PURE__*/React.createElement(\"span\", {\n className: \"input-group\"\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"input-group-prepend\"\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: \"input-group-text\"\n }, prefix)), input) : input;\n};\n\nTextField.propTypes = propTypes$10;\nTextField.defaultProps = defaultProps$10;\nvar TextField$1 = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(TextField, Object.assign({}, props, {\n inputRef: ref\n }));\n});\n\nvar styles$n = {\"container\":\"micromag-fields-slider-container\",\"slider\":\"micromag-fields-slider-slider\",\"input\":\"micromag-fields-slider-input\",\"unit\":\"micromag-fields-slider-unit\",\"rcSliderTooltipZoomDownIn\":\"micromag-fields-slider-rcSliderTooltipZoomDownIn\",\"rcSliderTooltipZoomDownOut\":\"micromag-fields-slider-rcSliderTooltipZoomDownOut\"};\n\nvar rangeFromMinMax = function rangeFromMinMax(min, max, count, step) {\n return _toConsumableArray(Array(count).keys()).reduce(function (values, key) {\n var lastValue = values[values.length - 1];\n return [].concat(_toConsumableArray(values), [key === count - 1 ? max : lastValue + step]);\n }, [min]);\n};\n\nvar rangeFromStep = function rangeFromStep(min, max, step) {\n var count = Math.round(Math.abs(max - min) / step) + 1;\n return rangeFromMinMax(min, max, count, step);\n};\n\nvar rangeFromCount = function rangeFromCount(min, max, count) {\n var finalCount = count;\n var step = Math.abs(max - min) / finalCount;\n return rangeFromMinMax(min, max, finalCount, step);\n};\n\nvar generateSteps = function generateSteps(steps, style) {\n return steps.reduce(function (map, step) {\n return _objectSpread(_objectSpread({}, map), {}, _defineProperty({}, step, {\n style: style,\n label: \"\".concat(step)\n }));\n }, {});\n};\n\nvar propTypes$$ = {\n value: PropTypes$1.string,\n min: PropTypes$1.number,\n max: PropTypes$1.number,\n marks: PropTypes$1.objectOf(PropTypes$1.object),\n marksStep: PropTypes$1.number,\n marksCount: PropTypes$1.number,\n marksStyle: PropTypes$1.object,\n // eslint-disable-line\n unit: PropTypes$1.string,\n withInput: PropTypes$1.bool,\n className: PropTypes$1.string,\n onChange: PropTypes$1.func\n};\nvar defaultProps$$ = {\n value: null,\n min: 0,\n max: 100,\n marks: undefined,\n marksStep: null,\n marksCount: null,\n marksStyle: {\n fontSize: 8\n },\n unit: null,\n withInput: false,\n className: null,\n onChange: null\n};\n\nvar SliderField = function SliderField(_ref) {\n var _ref2;\n\n var value = _ref.value,\n min = _ref.min,\n max = _ref.max,\n marks = _ref.marks,\n marksStep = _ref.marksStep,\n marksCount = _ref.marksCount,\n marksStyle = _ref.marksStyle,\n unit = _ref.unit,\n withInput = _ref.withInput,\n className = _ref.className,\n onChange = _ref.onChange;\n var customOnChange = useCallback(function (val) {\n if (onChange !== null) {\n onChange(val); // onChange(parseInt(val, 10));\n }\n }, [onChange]);\n var finalMarks = useMemo(function () {\n return (isArray(marks) ? generateSteps(marks, marksStyle) : marks) || (marksStep !== null ? generateSteps(rangeFromStep(min, max, marksStep), marksStyle) : null) || (marksCount !== null ? generateSteps(rangeFromCount(min, max, marksCount), marksStyle) : null) || undefined;\n }, [min, max, marks, marksStep, marksCount, marksStyle]);\n var slider = /*#__PURE__*/React.createElement(\"div\", {\n className: styles$n.slider\n }, /*#__PURE__*/React.createElement(Slider, {\n value: value !== null ? value : 0,\n min: min,\n max: max,\n marks: finalMarks,\n onChange: customOnChange\n }));\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames([styles$n.container, (_ref2 = {}, _defineProperty(_ref2, styles$n.withInput, withInput), _defineProperty(_ref2, className, className !== null), _ref2)])\n }, withInput ? /*#__PURE__*/React.createElement(\"div\", {\n className: \"row align-items-center no-gutters\"\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"col\"\n }, slider), /*#__PURE__*/React.createElement(\"div\", {\n className: \"col-auto\"\n }, /*#__PURE__*/React.createElement(TextField$1, {\n type: \"number\",\n value: value,\n onChange: customOnChange,\n className: styles$n.input\n })), unit !== null ? /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(['col-auto', styles$n.unit])\n }, unit) : null) : slider);\n};\n\nSliderField.propTypes = propTypes$$;\nSliderField.defaultProps = defaultProps$$;\n\nvar styles$m = {\"container\":\"micromag-fields-border-width-container\"};\n\nvar propTypes$_ = {\n value: PropTypes$1.string,\n sizes: PropTypes$1.arrayOf(PropTypes$1.number),\n className: PropTypes$1.string,\n onChange: PropTypes$1.func\n};\nvar defaultProps$_ = {\n value: null,\n sizes: [0, 2, 6, 10, 20, 30],\n className: null,\n onChange: null\n};\n\nvar BorderRadius = function BorderRadius(_ref) {\n var value = _ref.value,\n sizes = _ref.sizes,\n className = _ref.className,\n onChange = _ref.onChange;\n return /*#__PURE__*/React.createElement(SliderField, {\n value: value,\n min: sizes[0],\n max: sizes[sizes.length - 1],\n marks: sizes,\n withInput: true,\n className: classNames([styles$m.container, _defineProperty({}, className, className !== null)]),\n onChange: onChange\n });\n};\n\nBorderRadius.propTypes = propTypes$_;\nBorderRadius.defaultProps = defaultProps$_;\n\nvar borderRadius = {\n id: 'border-radius',\n component: BorderRadius\n};\n\nvar getSelectOptions = function getSelectOptions(options) {\n return options.map(function (it) {\n return isObject(it) ? it : {\n value: it,\n label: it\n };\n });\n};\n\nvar styles$l = {\"container\":\"micromag-fields-radios-container\"};\n\nvar propTypes$Z = {\n name: PropTypes$1.string,\n value: PropTypes$1.string,\n options: PropTypes.selectOptions,\n withBackground: PropTypes$1.bool,\n className: PropTypes$1.string,\n buttonClassName: PropTypes$1.string,\n onChange: PropTypes$1.func,\n uncheckable: PropTypes$1.bool\n};\nvar defaultProps$Z = {\n name: null,\n value: null,\n options: [],\n withBackground: false,\n className: null,\n buttonClassName: null,\n onChange: null,\n uncheckable: false\n};\n\nvar Radios = function Radios(_ref) {\n var name = _ref.name,\n value = _ref.value,\n options = _ref.options,\n withBackground = _ref.withBackground,\n className = _ref.className,\n buttonClassName = _ref.buttonClassName,\n onChange = _ref.onChange,\n uncheckable = _ref.uncheckable;\n var finalOptions = useMemo(function () {\n return getSelectOptions(options);\n }, [options]);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(['btn-group', 'btn-group-toggle', styles$l.container, _defineProperty({}, className, className !== null)]),\n \"data-toggle\": \"buttons\"\n }, finalOptions.map(function (_ref3, index) {\n var optionValue = _ref3.value,\n label = _ref3.label;\n return /*#__PURE__*/React.createElement(\"label\", {\n key: \"radio-\".concat(optionValue, \"-\").concat(index + 1),\n className: classNames(['btn', withBackground ? 'btn-secondary' : 'btn-outline-secondary', _defineProperty({\n active: optionValue === value\n }, buttonClassName, buttonClassName !== null)])\n }, /*#__PURE__*/React.createElement(\"input\", {\n type: \"radio\",\n name: name,\n autoComplete: \"off\",\n value: optionValue || '',\n onClick: function onClick(e) {\n if (onChange !== null) {\n if (uncheckable && optionValue === value) {\n onChange(null);\n } else {\n onChange(e.currentTarget.checked ? optionValue : null);\n }\n }\n },\n onChange: function onChange() {},\n checked: optionValue === value\n }), ' ', /*#__PURE__*/React.createElement(Label, null, label));\n }));\n};\n\nRadios.propTypes = propTypes$Z;\nRadios.defaultProps = defaultProps$Z;\n\nvar styles$k = {\"container\":\"micromag-fields-border-style-container\",\"button\":\"micromag-fields-border-style-button\",\"layout\":\"micromag-fields-border-style-layout\"};\n\nvar propTypes$Y = {\n types: PropTypes$1.arrayOf(PropTypes$1.string),\n value: PropTypes$1.string,\n className: PropTypes$1.string,\n onChange: PropTypes$1.func\n};\nvar defaultProps$Y = {\n types: ['solid', 'dotted', 'dashed', 'groove'],\n value: null,\n className: null,\n onChange: null\n};\n\nvar BorderStyle = function BorderStyle(_ref) {\n var types = _ref.types,\n value = _ref.value,\n className = _ref.className,\n onChange = _ref.onChange;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(['d-flex', _defineProperty({}, className, className !== null)])\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(['d-inline-flex', 'ml-auto', 'mr-auto'])\n }, /*#__PURE__*/React.createElement(Radios, {\n options: types.map(function (type) {\n return {\n value: type,\n label: /*#__PURE__*/React.createElement(\"div\", {\n className: styles$k.type\n }, /*#__PURE__*/React.createElement(\"div\", {\n style: {\n width: 40,\n height: 40,\n border: \"2px \".concat(type, \" #ccc\")\n }\n }))\n };\n }),\n value: value || null,\n className: classNames([styles$k.container, _defineProperty({}, className, className !== null)]),\n buttonClassName: styles$k.button,\n onChange: onChange\n })));\n};\n\nBorderStyle.propTypes = propTypes$Y;\nBorderStyle.defaultProps = defaultProps$Y;\n\nvar borderStyle = {\n id: 'border-style',\n component: BorderStyle\n};\n\nvar propTypes$X = {\n value: PropTypes$1.string,\n sizes: PropTypes$1.arrayOf(PropTypes$1.number),\n className: PropTypes$1.string,\n onChange: PropTypes$1.func\n};\nvar defaultProps$X = {\n value: null,\n sizes: [1, 2, 4, 8, 10, 14, 20],\n className: null,\n onChange: null\n};\n\nvar BorderWidth = function BorderWidth(_ref) {\n var value = _ref.value,\n sizes = _ref.sizes,\n className = _ref.className,\n onChange = _ref.onChange;\n return /*#__PURE__*/React.createElement(SliderField, {\n value: value,\n min: sizes[0],\n max: sizes[sizes.length - 1],\n marks: sizes,\n withInput: true,\n className: classNames([styles$m.container, _defineProperty({}, className, className !== null)]),\n onChange: onChange\n });\n};\n\nBorderWidth.propTypes = propTypes$X;\nBorderWidth.defaultProps = defaultProps$X;\n\nvar borderWidth = {\n id: 'border-width',\n component: BorderWidth\n};\n\nvar buttonStyle = {\n id: 'button-style',\n className: 'mt-4',\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 settings: [{\n name: 'textStyle',\n type: 'text-style'\n }, {\n name: 'buttonStyle',\n type: 'button-style'\n }]\n};\n\nvar styles$j = {\"container\":\"micromag-fields-call-to-action-container\",\"field\":\"micromag-fields-call-to-action-field\",\"active\":\"micromag-fields-call-to-action-active\"};\n\nvar propTypes$W = {\n value: PropTypes.callToAction,\n className: PropTypes$1.string,\n onChange: PropTypes$1.func\n};\nvar defaultProps$W = {\n value: null,\n className: null,\n onChange: null\n};\n\nvar CallToAction = function CallToAction(_ref) {\n var _ref5;\n\n var value = _ref.value,\n className = _ref.className,\n onChange = _ref.onChange,\n props = _objectWithoutProperties(_ref, [\"value\", \"className\", \"onChange\"]);\n\n var _ref2 = value || {},\n _ref2$active = _ref2.active,\n active = _ref2$active === void 0 ? false : _ref2$active;\n\n var intl = useIntl(); // set default type and label\n\n var onUpdateValue = useCallback(function (newValue) {\n var _ref3 = value || {},\n _ref3$active = _ref3.active,\n wasActive = _ref3$active === void 0 ? false : _ref3$active;\n\n var _ref4 = newValue || {},\n _ref4$active = _ref4.active,\n nowActive = _ref4$active === void 0 ? false : _ref4$active,\n _ref4$type = _ref4.type,\n type = _ref4$type === void 0 ? null : _ref4$type,\n _ref4$label = _ref4.label,\n label = _ref4$label === void 0 ? null : _ref4$label;\n\n var finalValue = _objectSpread({}, newValue);\n\n if (!wasActive && nowActive) {\n if (type === null) {\n finalValue.type = 'swipe-up';\n }\n\n if (label === null) {\n finalValue.label = {\n body: intl.formatMessage(defineMessage({\n \"id\": \"z/VBX0\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Learn more\"\n }]\n }))\n };\n }\n }\n\n if (onChange !== null) {\n onChange(finalValue);\n }\n }, [onChange, value]);\n return /*#__PURE__*/React.createElement(Fields, Object.assign({\n className: classNames([styles$j.container, (_ref5 = {}, _defineProperty(_ref5, className, className !== null), _defineProperty(_ref5, styles$j.active, active), _ref5)]),\n fieldClassName: styles$j.field\n }, props, {\n value: value,\n onChange: onUpdateValue\n }));\n};\n\nCallToAction.propTypes = propTypes$W;\nCallToAction.defaultProps = defaultProps$W;\n\nvar callToAction = {\n id: 'call-to-action',\n isList: true,\n component: CallToAction,\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 styles$i = {\"container\":\"micromag-fields-checkboxes-container\"};\n\nvar propTypes$V = {\n name: PropTypes$1.string,\n value: PropTypes$1.arrayOf(PropTypes$1.string),\n options: PropTypes.selectOptions,\n className: PropTypes$1.string,\n onChange: PropTypes$1.func\n};\nvar defaultProps$V = {\n name: null,\n value: null,\n options: [],\n className: null,\n onChange: null\n};\n\nvar Checkboxes = function Checkboxes(_ref) {\n var name = _ref.name,\n value = _ref.value,\n options = _ref.options,\n className = _ref.className,\n _onChange = _ref.onChange;\n var finalOptions = useMemo(function () {\n return getSelectOptions(options);\n }, [options]);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(['btn-group', 'btn-group-toggle', styles$i.container, _defineProperty({}, className, className !== null)]),\n \"data-toggle\": \"buttons\"\n }, finalOptions.map(function (_ref3) {\n var optionValue = _ref3.value,\n label = _ref3.label;\n return /*#__PURE__*/React.createElement(\"label\", {\n key: \"radio-\".concat(optionValue),\n className: classNames(['btn', 'btn-outline-secondary', {\n active: value !== null && value.indexOf(optionValue) !== -1\n }])\n }, /*#__PURE__*/React.createElement(\"input\", {\n type: \"checkbox\",\n name: \"\".concat(name, \"[]\"),\n autoComplete: \"off\",\n value: optionValue,\n onChange: function onChange(e) {\n var newValue = value || [];\n\n if (e.currentTarget.checked) {\n newValue.push(optionValue);\n } else {\n newValue = value !== null ? value.filter(function (it) {\n return it !== optionValue;\n }) : null;\n }\n\n if (newValue.length === 0) {\n newValue = null;\n }\n\n if (_onChange !== null) {\n _onChange(newValue);\n }\n },\n checked: value !== null && value.indexOf(optionValue) !== -1\n }), ' ', label);\n }));\n};\n\nCheckboxes.propTypes = propTypes$V;\nCheckboxes.defaultProps = defaultProps$V;\n\nvar checkboxes = {\n id: 'checkboxes',\n component: Checkboxes\n};\n\n/* eslint-disable react/jsx-props-no-spreading */\nvar propTypes$U = {\n value: PropTypes.closedCaptionsMedia\n};\nvar defaultProps$U = {\n value: null\n};\n\nvar ClosedCaptionField = function ClosedCaptionField(props) {\n return /*#__PURE__*/React.createElement(MediaField, Object.assign({\n noValueLabel: /*#__PURE__*/React.createElement(FormattedMessage, {\n id: \"B6cvYv\",\n defaultMessage: [{\n \"type\": 0,\n \"value\": \"Select a closed-captions file...\"\n }]\n })\n }, props, {\n type: \"closed-captions\"\n }));\n};\n\nClosedCaptionField.propTypes = propTypes$U;\nClosedCaptionField.defaultProps = defaultProps$U;\nClosedCaptionField.withForm = true;\n\nvar closedCaptions = {\n id: 'closed-captions',\n component: ClosedCaptionField\n};\n\nvar propTypes$T = {\n value: PropTypes$1.shape({\n color: PropTypes$1.string,\n alpha: PropTypes$1.number\n }),\n className: PropTypes$1.string,\n onChange: PropTypes$1.func\n};\nvar defaultProps$T = {\n value: null,\n className: null,\n onChange: null\n};\n\nvar ColorPickerField = function ColorPickerField(_ref) {\n var className = _ref.className,\n value = _ref.value,\n _onChange = _ref.onChange;\n\n var _useState = useState([]),\n _useState2 = _slicedToArray(_useState, 2),\n colors = _useState2[0],\n setColors = _useState2[1];\n\n var getColors = useGetColors();\n useMemo(function () {\n var newColors = (getColors() || []).map(function (c) {\n return {\n color: c.color,\n title: v4()\n };\n });\n setColors(newColors);\n }, [setColors]);\n var color = useMemo(function () {\n if (value !== null) {\n var newColor = tinycolor(value.color);\n newColor.setAlpha(value.alpha);\n return newColor;\n }\n\n return '';\n }, [value]);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: className\n }, /*#__PURE__*/React.createElement(SketchPicker, {\n color: color,\n presetColors: colors,\n styles: {\n picker: {\n boxShadow: 'none'\n },\n label: {\n color: '#FFF'\n }\n },\n onChange: function onChange(newValue) {\n if (_onChange !== null) {\n _onChange({\n color: newValue.hex,\n alpha: newValue.rgb.a\n });\n }\n }\n }));\n};\n\nColorPickerField.propTypes = propTypes$T;\nColorPickerField.defaultProps = defaultProps$T;\n\nvar styles$h = {\"preview\":\"micromag-fields-color-preview\",\"color\":\"micromag-fields-color-color\",\"picker\":\"micromag-fields-color-picker\",\"confirmContainer\":\"micromag-fields-color-confirmContainer\"};\n\nvar propTypes$S = {\n value: PropTypes$1.shape({\n color: PropTypes$1.string,\n alpha: PropTypes$1.number\n }),\n isForm: PropTypes$1.bool,\n isHorizontal: PropTypes$1.bool,\n className: PropTypes$1.string,\n onChange: PropTypes$1.func,\n closeForm: PropTypes$1.func\n};\nvar defaultProps$S = {\n value: null,\n isForm: false,\n isHorizontal: false,\n className: null,\n onChange: null,\n closeForm: null\n};\n\nvar ColorField = function ColorField(_ref) {\n var value = _ref.value,\n onChange = _ref.onChange,\n closeForm = _ref.closeForm,\n props = _objectWithoutProperties(_ref, [\"value\", \"onChange\", \"closeForm\"]);\n\n var _ref2 = value || {},\n _ref2$color = _ref2.color,\n color = _ref2$color === void 0 ? null : _ref2$color;\n\n var hexColor = useMemo(function () {\n return color !== null ? tinycolor(color).toHexString() : null;\n }, [color]);\n var previewElement = value !== null ? /*#__PURE__*/React.createElement(\"span\", {\n className: styles$h.preview\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: styles$h.color,\n style: _objectSpread({}, getStyleFromColor(value))\n })) : null;\n return /*#__PURE__*/React.createElement(FieldWithForm, Object.assign({\n value: value,\n onChange: onChange,\n label: hexColor,\n thumbnail: previewElement,\n noValueLabel: /*#__PURE__*/React.createElement(FormattedMessage, {\n id: \"4YiKNK\",\n defaultMessage: [{\n \"type\": 0,\n \"value\": \"Select a color...\"\n }]\n })\n }, props), /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-2\"\n }, /*#__PURE__*/React.createElement(ColorPickerField, {\n className: styles$h.picker,\n value: value,\n onChange: onChange\n }), /*#__PURE__*/React.createElement(\"div\", {\n className: styles$h.confirmContainer\n }, /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n className: \"btn btn-light\",\n onClick: closeForm\n }, /*#__PURE__*/React.createElement(FormattedMessage, {\n id: \"PyDwDF\",\n defaultMessage: [{\n \"type\": 0,\n \"value\": \"Close\"\n }]\n })))));\n};\n\nColorField.propTypes = propTypes$S;\nColorField.defaultProps = defaultProps$S;\nColorField.withForm = true;\n\nvar color = {\n id: 'color',\n component: ColorField\n};\n\nvar styles$g = {};\n\nvar propTypes$R = {\n value: PropTypes.conversation,\n fields: PropTypes.formFields,\n name: PropTypes$1.string.isRequired,\n className: PropTypes$1.string,\n onChange: PropTypes$1.func\n};\nvar defaultProps$R = {\n value: null,\n fields: null,\n className: null,\n onChange: null\n};\n\nvar Conversation = function Conversation(_ref) {\n var value = _ref.value,\n fields = _ref.fields,\n name = _ref.name,\n className = _ref.className,\n onChange = _ref.onChange,\n props = _objectWithoutProperties(_ref, [\"value\", \"fields\", \"name\", \"className\", \"onChange\"]);\n\n var _ref2 = value || {},\n _ref2$speakers = _ref2.speakers,\n speakers = _ref2$speakers === void 0 ? null : _ref2$speakers;\n\n var speakerOptions = (speakers || []).map(function (_ref3, speakerIndex) {\n var id = _ref3.id,\n _ref3$name = _ref3.name,\n speakerName = _ref3$name === void 0 ? null : _ref3$name;\n return {\n value: id,\n label: speakerName !== null ? speakerName : \"#\".concat(speakerIndex + 1)\n };\n });\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames([styles$g.container, _defineProperty({}, className, className !== null)])\n }, /*#__PURE__*/React.createElement(FieldContextProvider, {\n context: {\n options: speakerOptions\n }\n }, /*#__PURE__*/React.createElement(Fields, Object.assign({\n name: name,\n value: value,\n fields: fields,\n onChange: onChange\n }, props))));\n};\n\nConversation.propTypes = propTypes$R;\nConversation.defaultProps = defaultProps$R;\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: TextField$1,\n type: 'email'\n};\n\nvar entries = {\n id: 'entries',\n component: ItemsField,\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: FieldWithForm,\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: FieldWithForm\n};\n\nvar fields$1 = {\n id: 'fields',\n component: Fields\n};\n\nvar styles$f = {\"container\":\"micromag-fields-fit-container\",\"frame\":\"micromag-fields-fit-frame\",\"inner\":\"micromag-fields-fit-inner\",\"button\":\"micromag-fields-fit-button\",\"shape\":\"micromag-fields-fit-shape\",\"media\":\"micromag-fields-fit-media\",\"cover\":\"micromag-fields-fit-cover\",\"contain\":\"micromag-fields-fit-contain\",\"fill\":\"micromag-fields-fit-fill\",\"none\":\"micromag-fields-fit-none\"};\n\nvar propTypes$Q = {\n values: PropTypes$1.arrayOf(PropTypes.objectFitSize),\n value: PropTypes.objectFitSize,\n className: PropTypes$1.string,\n onChange: PropTypes$1.func\n};\nvar defaultProps$Q = {\n values: ['cover', 'contain', null],\n // TODO, maybe add 'fill', 'scale-down', ?\n value: null,\n className: null,\n onChange: null\n};\n\nvar ObjectFitSize = function ObjectFitSize(_ref) {\n var values = _ref.values,\n value = _ref.value,\n className = _ref.className,\n onChange = _ref.onChange;\n return /*#__PURE__*/React.createElement(Radios, {\n options: values.map(function (val) {\n return {\n value: val,\n label: /*#__PURE__*/React.createElement(\"div\", {\n className: classNames([styles$f.frame, styles$f[val || 'none']])\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: styles$f.shape\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: styles$f.inner\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: styles$f.media\n }))))\n };\n }),\n value: value,\n className: classNames([styles$f.container, _defineProperty({}, className, className !== null)]),\n buttonClassName: styles$f.button,\n onChange: onChange\n });\n};\n\nObjectFitSize.propTypes = propTypes$Q;\nObjectFitSize.defaultProps = defaultProps$Q;\n\nvar fit = {\n id: 'fit',\n component: ObjectFitSize\n};\n\n/* eslint-disable react/jsx-props-no-spreading */\nvar propTypes$P = {\n value: PropTypes.fontMedia\n};\nvar defaultProps$P = {\n value: null\n};\n\nvar FontField = function FontField(props) {\n return /*#__PURE__*/React.createElement(MediaField, Object.assign({\n noValueLabel: /*#__PURE__*/React.createElement(FormattedMessage, {\n id: \"Wb5zY4\",\n defaultMessage: [{\n \"type\": 0,\n \"value\": \"Select a font file...\"\n }]\n })\n }, props, {\n type: \"font\"\n }));\n};\n\nFontField.propTypes = propTypes$P;\nFontField.defaultProps = defaultProps$P;\nFontField.withForm = true;\n\nvar font = {\n id: 'font',\n component: FontField,\n media: true\n};\n\n/* eslint-disable react/jsx-props-no-spreading */\nvar propTypes$O = {\n value: PropTypes.imageMedias\n};\nvar defaultProps$O = {\n value: null\n};\n\nvar FontsField = function FontsField(props) {\n return /*#__PURE__*/React.createElement(ItemsField, Object.assign({\n noItemLabel: /*#__PURE__*/React.createElement(FormattedMessage, {\n id: \"KCDOHI\",\n defaultMessage: [{\n \"type\": 0,\n \"value\": \"No font...\"\n }]\n }),\n addItemLabel: /*#__PURE__*/React.createElement(FormattedMessage, {\n id: \"8sWUOV\",\n defaultMessage: [{\n \"type\": 0,\n \"value\": \"Add an font file\"\n }]\n }),\n itemComponent: FontField\n }, props));\n};\n\nFontsField.propTypes = propTypes$O;\nFontsField.defaultProps = defaultProps$O;\n\nvar fonts = {\n id: 'fonts',\n component: FontsField,\n itemsField: {\n type: 'font'\n }\n};\n\nvar normalize = function normalize(str) {\n return str.toLowerCase().normalize('NFD').replace(/[\\u0300-\\u036f]/g, '');\n};\n\nvar fontEquals = function fontEquals(fontA, fontB) {\n return fontA === fontB || isObject(fontA) && isObject(fontB) && fontA.type === fontB.type && fontA.name === fontB.name;\n};\n\nvar propTypes$N = {\n value: PropTypes.font,\n isForm: PropTypes$1.bool,\n isHorizontal: PropTypes$1.bool,\n maxFontsVisible: PropTypes$1.number,\n className: PropTypes$1.string,\n onChange: PropTypes$1.func,\n closeForm: PropTypes$1.func\n};\nvar defaultProps$N = {\n value: null,\n isForm: false,\n isHorizontal: false,\n maxFontsVisible: 10,\n className: null,\n onChange: null,\n closeForm: null\n};\n\nvar FontFamily = function FontFamily(_ref) {\n var value = _ref.value,\n onChange = _ref.onChange,\n closeForm = _ref.closeForm,\n maxFontsVisible = _ref.maxFontsVisible,\n isForm = _ref.isForm,\n props = _objectWithoutProperties(_ref, [\"value\", \"onChange\", \"closeForm\", \"maxFontsVisible\", \"isForm\"]);\n\n var intl = useIntl();\n\n var _useFonts = useFonts(),\n systemFonts = _useFonts.systemFonts,\n googleFonts = _useFonts.googleFonts,\n customFonts = _useFonts.customFonts;\n\n var valueName = value !== null && isObject(value) ? value.name || null : value;\n\n var _useState = useState({}),\n _useState2 = _slicedToArray(_useState, 2),\n search = _useState2[0],\n setSearch = _useState2[1];\n\n var onSearchChange = useCallback(function (id, newValue) {\n return setSearch(_objectSpread(_objectSpread({}, search), {}, _defineProperty({}, id, newValue)));\n }, [search, setSearch]);\n var fontsGroups = useMemo(function () {\n return [customFonts !== null && customFonts.length > 0 ? {\n id: 'custom',\n title: /*#__PURE__*/React.createElement(FormattedMessage, {\n id: \"UtcYEP\",\n defaultMessage: [{\n \"type\": 0,\n \"value\": \"Custom fonts\"\n }]\n }),\n fonts: customFonts\n } : null, systemFonts !== null && systemFonts.length > 0 ? {\n id: 'system',\n title: /*#__PURE__*/React.createElement(FormattedMessage, {\n id: \"al5xjv\",\n defaultMessage: [{\n \"type\": 0,\n \"value\": \"Default fonts\"\n }]\n }),\n fonts: systemFonts\n } : null, googleFonts !== null && googleFonts.length > 0 ? {\n id: 'google',\n title: /*#__PURE__*/React.createElement(FormattedMessage, {\n id: \"VDu2FA\",\n defaultMessage: [{\n \"type\": 0,\n \"value\": \"Google Fonts\"\n }]\n }),\n fonts: googleFonts\n } : null].filter(function (it) {\n return it !== null;\n }).map(function (_ref2) {\n var id = _ref2.id,\n fonts = _ref2.fonts,\n fontGroup = _objectWithoutProperties(_ref2, [\"id\", \"fonts\"]);\n\n var hasSearch = fonts.length > maxFontsVisible;\n var currentSearch = search[id] || null;\n var searchNormalized = currentSearch !== null ? normalize(currentSearch) : null;\n var addedValueFont = hasSearch && value !== null ? fonts.find(function (font) {\n return fontEquals(font, value);\n }) || null : null;\n var filteredFonts = hasSearch ? fonts.filter(function (font) {\n return (searchNormalized === null || normalize(isObject(font) ? font.name : font).indexOf(searchNormalized) !== -1) && (addedValueFont === null || !fontEquals(addedValueFont, font));\n }).slice(0, maxFontsVisible) : fonts;\n return _objectSpread({\n id: id,\n fonts: addedValueFont !== null ? [addedValueFont].concat(_toConsumableArray(filteredFonts)) : filteredFonts,\n currentSearch: currentSearch,\n hasSearch: hasSearch\n }, fontGroup);\n });\n }, [systemFonts, googleFonts, customFonts, value, search]);\n var fontsToLoad = useMemo(function () {\n return isForm ? fontsGroups.reduce(function (allFonts, _ref3) {\n var fonts = _ref3.fonts;\n return [].concat(_toConsumableArray(allFonts), _toConsumableArray(fonts));\n }, []) : [value].filter(function (it) {\n return it !== null;\n });\n }, [fontsGroups]);\n useLoadedFonts(fontsToLoad);\n return /*#__PURE__*/React.createElement(FieldWithForm, Object.assign({\n value: value,\n onChange: onChange,\n label: valueName,\n thumbnail: value !== null ? /*#__PURE__*/React.createElement(\"strong\", {\n className: classNames(['d-inline-block']),\n style: {\n fontFamily: getFontFamilyFromFont(value)\n }\n }, \"Aa\") : null,\n noValueLabel: /*#__PURE__*/React.createElement(FormattedMessage, {\n id: \"i+3ZrF\",\n defaultMessage: [{\n \"type\": 0,\n \"value\": \"Select a font family...\"\n }]\n }),\n isForm: isForm\n }, props), /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-2\"\n }, fontsGroups.map(function (_ref4, index) {\n var id = _ref4.id,\n title = _ref4.title,\n fonts = _ref4.fonts,\n hasSearch = _ref4.hasSearch,\n currentSearch = _ref4.currentSearch;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: index > 0 ? 'mt-4' : null,\n key: \"font-\".concat(id)\n }, /*#__PURE__*/React.createElement(\"h6\", null, title), /*#__PURE__*/React.createElement(\"div\", {\n className: \"list-group\"\n }, hasSearch ? /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(['list-group-item', 'px-2', 'py-2'])\n }, /*#__PURE__*/React.createElement(\"input\", {\n type: \"search\",\n className: \"form-control\",\n value: currentSearch || '',\n placeholder: intl.formatMessage({\n \"id\": \"zh2m/S\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Search fonts...\"\n }]\n }),\n onChange: function onChange(e) {\n return onSearchChange(id, e.currentTarget.value);\n }\n })) : null, fonts.map(function (font) {\n var _ref5 = isObject(font) ? font : {\n name: font\n },\n name = _ref5.name;\n\n return /*#__PURE__*/React.createElement(\"button\", {\n key: \"font-\".concat(id, \"-\").concat(name),\n type: \"button\",\n className: classNames(['list-group-item', 'list-group-item-action', 'px-2', 'py-2', {\n active: valueName === name\n }]),\n onClick: function onClick() {\n onChange(font);\n closeForm();\n }\n }, /*#__PURE__*/React.createElement(\"strong\", {\n className: \"mr-4\",\n style: {\n fontFamily: getFontFamilyFromFont(font)\n }\n }, \"Aa\"), /*#__PURE__*/React.createElement(\"span\", null, name));\n })));\n })));\n};\n\nFontFamily.propTypes = propTypes$N;\nFontFamily.defaultProps = defaultProps$N;\nFontFamily.withForm = true;\n\nvar fontFamily = {\n id: 'font-family',\n component: FontFamily\n};\n\nvar styles$e = {\"container\":\"micromag-fields-number-container\",\"input\":\"micromag-fields-number-input\",\"arrow\":\"micromag-fields-number-arrow\",\"arrowIcon\":\"micromag-fields-number-arrowIcon\",\"dataListItems\":\"micromag-fields-number-dataListItems\",\"dataListItem\":\"micromag-fields-number-dataListItem\",\"dataListItemButton\":\"micromag-fields-number-dataListItemButton\",\"fullWidth\":\"micromag-fields-number-fullWidth\"};\n\nvar propTypes$M = {\n name: PropTypes$1.string,\n value: PropTypes$1.number,\n min: PropTypes$1.number,\n max: PropTypes$1.number,\n step: PropTypes$1.number,\n floatStep: PropTypes$1.number,\n \"float\": PropTypes$1.bool,\n dataList: PropTypes$1.arrayOf(PropTypes$1.number),\n autoComplete: PropTypes$1.bool,\n fullWidth: PropTypes$1.bool,\n className: PropTypes$1.string,\n onChange: PropTypes$1.func\n};\nvar defaultProps$M = {\n name: null,\n value: null,\n min: null,\n max: null,\n step: 1,\n floatStep: 0.1,\n \"float\": false,\n dataList: null,\n autoComplete: false,\n fullWidth: false,\n className: null,\n onChange: null\n};\n\nvar NumberField = function NumberField(_ref) {\n var name = _ref.name,\n value = _ref.value,\n min = _ref.min,\n max = _ref.max,\n step = _ref.step,\n floatStep = _ref.floatStep,\n _float = _ref[\"float\"],\n dataList = _ref.dataList,\n autoComplete = _ref.autoComplete,\n fullWidth = _ref.fullWidth,\n className = _ref.className,\n onChange = _ref.onChange;\n var parseValue = useCallback(function (newValue) {\n return _float ? parseFloat(newValue) : parseInt(newValue, 10);\n });\n var onInputChange = useCallback(function (e) {\n if (onChange !== null) {\n var val = e.currentTarget.value;\n onChange(val.length ? parseValue(val) : null);\n }\n }, [onChange]); // Datalist\n\n var hasDataList = dataList !== null;\n\n var _useState = useState(false),\n _useState2 = _slicedToArray(_useState, 2),\n dataListActive = _useState2[0],\n setDataListActive = _useState2[1];\n\n var onInputFocus = useCallback(function () {\n if (hasDataList) {\n setDataListActive(true);\n }\n }, [setDataListActive, hasDataList]);\n var onInputBlur = useCallback(function () {\n if (hasDataList && dataListActive) {\n setDataListActive(false);\n }\n }, [setDataListActive, hasDataList, dataListActive]);\n var onDataListClick = useCallback(function (dataListValue) {\n if (onChange !== null) {\n onChange(parseValue(dataListValue));\n setDataListActive(false);\n }\n }, [onChange, setDataListActive]);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames([styles$e.container, _defineProperty({}, className, className !== null), _defineProperty({}, styles$e.fullWidth, fullWidth)])\n }, /*#__PURE__*/React.createElement(\"input\", {\n type: \"number\",\n className: classNames([styles$e.input, 'form-control', 'ml-auto']),\n name: name,\n value: value !== null ? value : '',\n min: min,\n max: max,\n step: _float ? floatStep : step,\n autoComplete: autoComplete ? 'on' : 'off',\n onChange: onInputChange,\n onFocus: onInputFocus,\n onBlur: onInputBlur\n }), hasDataList ? /*#__PURE__*/React.createElement(\"div\", {\n className: styles$e.arrow\n }, /*#__PURE__*/React.createElement(FontAwesomeIcon, {\n className: styles$e.arrowIcon,\n icon: faChevronDown\n })) : null, hasDataList && dataListActive ? /*#__PURE__*/React.createElement(\"ul\", {\n className: styles$e.dataListItems\n }, dataList.map(function (dataListValue) {\n return /*#__PURE__*/React.createElement(\"li\", {\n key: \"data-list-\".concat(dataListValue),\n className: styles$e.dataListItem\n }, /*#__PURE__*/React.createElement(\"button\", {\n className: styles$e.dataListItemButton,\n type: \"button\",\n onTouchStart: function onTouchStart() {\n onDataListClick(dataListValue);\n },\n onMouseDown: function onMouseDown() {\n onDataListClick(dataListValue);\n }\n }, dataListValue));\n })) : null);\n};\n\nNumberField.propTypes = propTypes$M;\nNumberField.defaultProps = defaultProps$M;\n\nvar propTypes$L = {\n sizes: PropTypes$1.arrayOf(PropTypes$1.number)\n};\nvar defaultProps$L = {\n sizes: [12, 14, 16, 18, 20, 24, 28, 32, 48]\n};\n\nvar FontSize = function FontSize(_ref) {\n var sizes = _ref.sizes,\n props = _objectWithoutProperties(_ref, [\"sizes\"]);\n\n return /*#__PURE__*/React.createElement(NumberField, Object.assign({}, props, {\n dataList: sizes\n }));\n};\n\nFontSize.propTypes = propTypes$L;\nFontSize.defaultProps = defaultProps$L;\nFontSize.isHorizontal = true;\n\nvar fontSize = {\n id: 'font-size',\n component: FontSize\n};\n\nvar styles$d = {\"container\":\"micromag-fields-geo-position-container\",\"autoComplete\":\"micromag-fields-geo-position-autoComplete\",\"address\":\"micromag-fields-geo-position-address\",\"map\":\"micromag-fields-geo-position-map\",\"pin\":\"micromag-fields-geo-position-pin\",\"infos\":\"micromag-fields-geo-position-infos\",\"coords\":\"micromag-fields-geo-position-coords\",\"coord\":\"micromag-fields-geo-position-coord\"};\n\nvar propTypes$K = {\n value: PropTypes.geoPosition,\n defaultCenter: PropTypes.geoPosition,\n defaultZoom: PropTypes$1.number,\n className: PropTypes$1.string,\n onChange: PropTypes$1.func\n};\nvar defaultProps$K = {\n value: null,\n defaultCenter: {\n lat: 45.5,\n lng: -73.56\n },\n defaultZoom: 10,\n className: null,\n onChange: null\n};\n\nvar getFixedCoords = function getFixedCoords(_ref) {\n var lat = _ref.lat,\n lng = _ref.lng;\n var precision = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 4;\n return {\n lat: parseFloat(lat.toFixed(precision)),\n lng: parseFloat(lng.toFixed(precision))\n };\n};\n\nvar GeoPosition = function GeoPosition(_ref2) {\n var value = _ref2.value,\n defaultCenter = _ref2.defaultCenter,\n defaultZoom = _ref2.defaultZoom,\n className = _ref2.className,\n onChange = _ref2.onChange;\n\n var _useState = useState(''),\n _useState2 = _slicedToArray(_useState, 2),\n address = _useState2[0],\n setAddress = _useState2[1];\n\n var _useState3 = useState(false),\n _useState4 = _slicedToArray(_useState3, 2),\n mapReady = _useState4[0],\n setMapReady = _useState4[1];\n\n var _useState5 = useState(defaultZoom),\n _useState6 = _slicedToArray(_useState5, 2),\n zoom = _useState6[0],\n setZoom = _useState6[1];\n\n var client = useGoogleMapsClient();\n var intl = useIntl();\n var addressInputRef = useRef(null);\n var autoCompleteRef = useRef(null);\n\n var _useState7 = useState(value),\n _useState8 = _slicedToArray(_useState7, 2),\n finalValue = _useState8[0],\n setFinalValue = _useState8[1];\n\n var _useState9 = useState(null),\n _useState10 = _slicedToArray(_useState9, 2),\n dragValue = _useState10[0],\n setDragValue = _useState10[1];\n\n var onValuePropChanged = useCallback(function (newValue) {\n var mergedValue = _objectSpread(_objectSpread({}, value), newValue);\n\n setFinalValue(mergedValue);\n\n if (onChange !== null) {\n onChange(mergedValue);\n }\n }, [value, setFinalValue, onChange]);\n var onLatitudeChange = useCallback(function (lat) {\n onValuePropChanged({\n lat: lat\n });\n }, [onValuePropChanged]);\n var onLongitudeChange = useCallback(function (lng) {\n onValuePropChanged({\n lng: lng\n });\n }, [onValuePropChanged]);\n var onMapCenterChanged = useCallback(function (mapCenter) {\n return setFinalValue(getFixedCoords(mapCenter.toJSON()));\n }, [onValuePropChanged, setFinalValue]);\n var onMapDragEnd = useCallback(function (mapCenter) {\n setDragValue(getFixedCoords(mapCenter.toJSON()));\n }, [setDragValue]);\n useEffect(function () {\n if (dragValue !== null) {\n onValuePropChanged(dragValue);\n }\n }, [dragValue]);\n var onMapReady = useCallback(function () {\n setMapReady(true);\n }, [setMapReady]);\n\n var _ref3 = finalValue || {},\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 var onPlaceChanged = useCallback(function () {\n var place = autoCompleteRef.current.getPlace();\n\n var _ref4 = place || {},\n _ref4$geometry = _ref4.geometry,\n geometry = _ref4$geometry === void 0 ? null : _ref4$geometry,\n _ref4$name = _ref4.name,\n name = _ref4$name === void 0 ? null : _ref4$name;\n\n if (geometry !== null) {\n var location = geometry.location;\n onValuePropChanged(getFixedCoords(location.toJSON()));\n setZoom(17);\n } else {\n setZoom(defaultZoom);\n }\n\n if (name !== null) {\n setAddress(name);\n }\n }, [onValuePropChanged, defaultZoom, setZoom]);\n var onSearchButtonClick = useCallback(function () {\n addressInputRef.current.focus();\n }, []);\n useEffect(function () {\n if (client !== null) {\n if (typeof client.maps.places !== 'undefined') {\n autoCompleteRef.current = new client.maps.places.Autocomplete(addressInputRef.current, {\n origin: defaultCenter\n });\n autoCompleteRef.current.setFields(['geometry', 'name']);\n autoCompleteRef.current.addListener('place_changed', onPlaceChanged);\n } else {\n console.log('Gmaps: Autocomplete requires \"places\" library'); // eslint-disable-line\n }\n }\n }, [client]);\n useEffect(function () {\n return function () {\n if (client !== null && autoCompleteRef.current !== null) {\n client.maps.event.clearListeners(autoCompleteRef.current, 'place_changed');\n }\n };\n }, [client]);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames([styles$d.container, _defineProperty({}, className, className !== null)])\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: classNames([styles$d.autoComplete, 'input-group'])\n }, /*#__PURE__*/React.createElement(\"span\", {\n type: \"span\",\n className: \"input-group-prepend\"\n }, /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n className: \"input-group-text\",\n onClick: onSearchButtonClick\n }, /*#__PURE__*/React.createElement(FontAwesomeIcon, {\n icon: faSearch\n }))), /*#__PURE__*/React.createElement(\"input\", {\n type: \"text\",\n ref: addressInputRef,\n className: classNames([styles$d.address, 'form-control']),\n value: address,\n placeholder: intl.formatMessage({\n \"id\": \"KB7N5E\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Search a place on Google Maps\"\n }]\n }),\n autoComplete: \"off\",\n onChange: function onChange(e) {\n setAddress(e.target.value);\n }\n })), /*#__PURE__*/React.createElement(\"div\", {\n className: styles$d.map\n }, /*#__PURE__*/React.createElement(Map, {\n center: value || defaultCenter,\n zoom: zoom,\n onCenterChanged: onMapCenterChanged,\n onDragEnd: onMapDragEnd,\n onReady: onMapReady,\n withoutStyle: true,\n zoomControl: true\n }), mapReady ? /*#__PURE__*/React.createElement(\"img\", {\n className: styles$d.pin,\n src: Pin,\n alt: \"Pin\"\n }) : null), /*#__PURE__*/React.createElement(\"div\", {\n className: styles$d.infos\n }, /*#__PURE__*/React.createElement(FormattedMessage, {\n id: \"XhgKcw\",\n defaultMessage: [{\n \"type\": 0,\n \"value\": \"Move the map to position the place\"\n }]\n })), /*#__PURE__*/React.createElement(\"div\", {\n className: styles$d.coords\n }, /*#__PURE__*/React.createElement(\"label\", {\n className: styles$d.coord\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: styles$d.coordLabel\n }, /*#__PURE__*/React.createElement(FormattedMessage, {\n id: \"zDH24s\",\n defaultMessage: [{\n \"type\": 0,\n \"value\": \"Latitude\"\n }]\n }), \":\"), /*#__PURE__*/React.createElement(NumberField, {\n \"float\": true,\n floatStep: 0.001,\n value: lat,\n min: -90,\n max: 90,\n onChange: onLatitudeChange,\n fullWidth: true\n })), /*#__PURE__*/React.createElement(\"label\", {\n className: styles$d.coord\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: styles$d.coordLabel\n }, /*#__PURE__*/React.createElement(FormattedMessage, {\n id: \"THKV4v\",\n defaultMessage: [{\n \"type\": 0,\n \"value\": \"Longitude\"\n }]\n }), \":\"), /*#__PURE__*/React.createElement(NumberField, {\n \"float\": true,\n floatStep: 0.001,\n value: lng,\n min: -180,\n max: 180,\n onChange: onLongitudeChange,\n fullWidth: true\n }))));\n};\n\nGeoPosition.propTypes = propTypes$K;\nGeoPosition.defaultProps = defaultProps$K;\n\nvar geoPosition = {\n id: 'geo-position',\n component: GeoPosition\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});\n\nvar imageWithCaption = {\n id: 'image-with-caption',\n component: FieldWithForm,\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\n/* eslint-disable react/jsx-props-no-spreading */\nvar propTypes$J = {\n value: PropTypes.imageMedia\n};\nvar defaultProps$J = {\n value: null\n};\n\nvar ImageField = function ImageField(props) {\n return /*#__PURE__*/React.createElement(MediaField, Object.assign({\n noValueLabel: /*#__PURE__*/React.createElement(FormattedMessage, {\n id: \"B1MeY+\",\n defaultMessage: [{\n \"type\": 0,\n \"value\": \"Select an image...\"\n }]\n })\n }, props, {\n type: \"image\"\n }));\n};\n\nImageField.propTypes = propTypes$J;\nImageField.defaultProps = defaultProps$J;\nImageField.withForm = true;\n\nvar image = {\n id: 'image',\n component: ImageField,\n media: true\n};\n\nvar imagesWithCaption = {\n id: 'images-with-caption',\n component: ItemsField,\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\n/* eslint-disable react/jsx-props-no-spreading */\nvar propTypes$I = {\n value: PropTypes.imageMedias\n};\nvar defaultProps$I = {\n value: null\n};\n\nvar ImagesField = function ImagesField(props) {\n return /*#__PURE__*/React.createElement(ItemsField, Object.assign({\n noItemLabel: /*#__PURE__*/React.createElement(FormattedMessage, {\n id: \"t+L1J/\",\n defaultMessage: [{\n \"type\": 0,\n \"value\": \"No image...\"\n }]\n }),\n addItemLabel: /*#__PURE__*/React.createElement(FormattedMessage, {\n id: \"V+G2s+\",\n defaultMessage: [{\n \"type\": 0,\n \"value\": \"Add an image\"\n }]\n }),\n itemComponent: ImageField\n }, props));\n};\n\nImagesField.propTypes = propTypes$I;\nImagesField.defaultProps = defaultProps$I;\n\nvar images = {\n id: 'images',\n component: ImagesField,\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 propTypes$H = {\n id: PropTypes$1.string,\n value: PropTypes$1.oneOfType([PropTypes$1.string, PropTypes$1.number]),\n errors: PropTypes.errors,\n required: PropTypes$1.bool,\n className: PropTypes$1.string,\n onChange: PropTypes$1.func\n};\nvar defaultProps$H = {\n id: null,\n value: null,\n errors: null,\n required: false,\n className: null,\n onChange: null\n};\n\nvar TextareaField = function TextareaField(_ref) {\n var id = _ref.id,\n value = _ref.value,\n errors = _ref.errors,\n required = _ref.required,\n className = _ref.className,\n _onChange = _ref.onChange;\n return /*#__PURE__*/React.createElement(\"textarea\", {\n id: id,\n className: classNames(['form-control', _defineProperty({\n 'is-invalid': errors !== null && errors.length > 0\n }, className, className !== null)]),\n value: value || '',\n onChange: function onChange(_ref3) {\n var _ref3$currentTarget$v = _ref3.currentTarget.value,\n newValue = _ref3$currentTarget$v === void 0 ? '' : _ref3$currentTarget$v;\n return _onChange !== null ? _onChange(!isEmpty(newValue) ? newValue : null) : null;\n },\n required: required\n });\n};\n\nTextareaField.propTypes = propTypes$H;\nTextareaField.defaultProps = defaultProps$H;\n\nvar propTypes$G = {\n value: PropTypes.inputElement,\n multiline: PropTypes$1.bool,\n onChange: PropTypes$1.func\n};\nvar defaultProps$G = {\n multiline: false,\n value: null,\n onChange: null\n};\n\nvar TextElement$1 = function TextElement(_ref) {\n var value = _ref.value,\n onChange = _ref.onChange,\n multiline = _ref.multiline,\n props = _objectWithoutProperties(_ref, [\"value\", \"onChange\", \"multiline\"]);\n\n var labelValue = value !== null ? value.label || null : null;\n var onLabelChange = useCallback(function (newLabel) {\n var newValue = _objectSpread(_objectSpread({}, value), {}, {\n label: newLabel\n });\n\n if (onChange !== null) {\n onChange(newValue);\n }\n }, [value, onChange]);\n return multiline ? /*#__PURE__*/React.createElement(TextareaField, Object.assign({}, props, {\n value: labelValue,\n onChange: onLabelChange\n })) : /*#__PURE__*/React.createElement(TextField$1, Object.assign({}, props, {\n value: labelValue,\n onChange: onLabelChange\n }));\n};\n\nTextElement$1.propTypes = propTypes$G;\nTextElement$1.defaultProps = defaultProps$G;\n\nvar inputElement = {\n id: 'input-element',\n component: TextElement$1,\n settings: [{\n name: 'textStyle',\n type: 'text-style'\n }, {\n name: 'buttonStyle',\n type: 'button-style'\n }]\n};\n\nvar items = {\n id: 'items',\n component: ItemsField\n};\n\nvar itemTextStyle = {\n id: 'item-text-style',\n component: FieldWithForm,\n fields: [{\n name: 'style',\n type: 'text-style'\n }]\n};\n\nvar fontAwesomeIconType = PropTypes$1.shape({\n icon: PropTypes$1.arrayOf(PropTypes$1.oneOfType([PropTypes$1.number, PropTypes$1.string, PropTypes$1.array])),\n iconName: PropTypes$1.string,\n prefix: PropTypes$1.string\n});\nvar propTypes$F = {\n icon: PropTypes$1.oneOfType([PropTypes$1.node, fontAwesomeIconType]),\n iconRotation: PropTypes$1.number,\n isHorizontal: PropTypes$1.bool,\n className: PropTypes$1.string\n};\nvar defaultProps$F = {\n icon: null,\n iconRotation: 0,\n isHorizontal: false,\n className: null\n};\n\nvar NumberWithIcon = function NumberWithIcon(_ref) {\n var icon = _ref.icon,\n iconRotation = _ref.iconRotation,\n isHorizontal = _ref.isHorizontal,\n className = _ref.className,\n props = _objectWithoutProperties(_ref, [\"icon\", \"iconRotation\", \"isHorizontal\", \"className\"]);\n\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(['d-flex', 'align-items-center', _defineProperty({\n 'justify-content-end': isHorizontal\n }, className, className !== null)])\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: \"mr-2\",\n style: iconRotation !== 0 ? {\n transform: \"rotate(\".concat(iconRotation, \"deg)\")\n } : null\n }, /*#__PURE__*/React.createElement(FontAwesomeIcon, {\n icon: icon\n })), /*#__PURE__*/React.createElement(NumberField, props));\n};\n\nNumberWithIcon.propTypes = propTypes$F;\nNumberWithIcon.defaultProps = defaultProps$F;\nNumberWithIcon.isHorizontal = true;\n\nvar letterSpacing = {\n id: 'letter-spacing',\n component: NumberWithIcon,\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: NumberWithIcon,\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: FieldWithForm,\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: FieldWithForm,\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: ItemsField,\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: ItemsField,\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: NumberField,\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: ItemsField,\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: FieldWithForm,\n noValueLabel: defineMessage({\n \"id\": \"zU0DaR\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Edit metadata...\"\n }]\n }),\n fields: [{\n name: 'title',\n type: 'text',\n label: defineMessage({\n \"id\": \"09cd3w\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Title\"\n }]\n })\n }, {\n name: 'description',\n type: 'text',\n label: defineMessage({\n \"id\": \"2Iseff\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Description\"\n }]\n })\n }]\n};\n\nvar number = {\n id: 'number',\n component: NumberField\n};\n\nvar password = {\n id: 'password',\n component: TextField$1,\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: FieldWithForm,\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};\n\nvar quizAnswers = {\n id: 'quiz-answers',\n component: ItemsField,\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 styles$c = {\"container\":\"micromag-fields-layout-container\",\"button\":\"micromag-fields-layout-button\",\"layout\":\"micromag-fields-layout-layout\"};\n\nvar propTypes$E = {\n value: PropTypes$1.string,\n className: PropTypes$1.string,\n onChange: PropTypes$1.func\n};\nvar defaultProps$E = {\n value: null,\n className: null,\n onChange: null\n};\n\nvar ScreenLayoutField = function ScreenLayoutField(_ref) {\n var value = _ref.value,\n className = _ref.className,\n onChange = _ref.onChange;\n\n var _useScreenDefinition = useScreenDefinition(),\n id = _useScreenDefinition.id,\n _useScreenDefinition$ = _useScreenDefinition.layouts,\n layouts = _useScreenDefinition$ === void 0 ? [] : _useScreenDefinition$;\n\n return /*#__PURE__*/React.createElement(Radios, {\n options: layouts.map(function (layout) {\n return {\n value: layout,\n label: /*#__PURE__*/React.createElement(\"div\", {\n className: styles$c.layout\n }, /*#__PURE__*/React.createElement(ScreenPlaceholder, {\n screen: {\n type: id,\n layout: layout\n },\n width: 80,\n height: 120\n }))\n };\n }),\n value: value || (layouts ? layouts[0] : null),\n className: classNames([styles$c.container, _defineProperty({}, className, className !== null)]),\n buttonClassName: styles$c.button,\n onChange: onChange,\n withBackground: true\n });\n};\n\nScreenLayoutField.propTypes = propTypes$E;\nScreenLayoutField.defaultProps = defaultProps$E;\n\nvar screenLayout = {\n id: 'screen-layout',\n component: ScreenLayoutField\n};\n\nvar selectTheme = function selectTheme(theme) {\n return _objectSpread(_objectSpread({}, theme), {}, {\n colors: _objectSpread(_objectSpread({}, theme.colors), {}, {\n // Color overrides\n primary: 'hsl(0, 0%, 90%)',\n primary75: 'hsl(0, 0%, 75%)',\n primary50: 'hsl(0, 0%, 50%)',\n primary25: 'hsl(0, 0%, 25%)',\n danger: '#DE350B',\n dangerLight: '#FFBDAD',\n neutral0: 'hsl(0, 0%, 10%)',\n neutral5: 'hsl(0, 0%, 20%)',\n neutral10: 'hsl(0, 0%, 30%)',\n neutral20: 'hsl(0, 0%, 40%)',\n neutral30: 'hsl(0, 0%, 50%)',\n neutral40: 'hsl(0, 0%, 60%)',\n neutral50: 'hsl(0, 0%, 70%)',\n neutral60: 'hsl(0, 0%, 80%)',\n neutral70: 'hsl(0, 0%, 90%)',\n neutral80: 'hsl(0, 0%, 95%)',\n neutral90: 'hsl(0, 0%, 100%)'\n }) // Other options\n // borderRadius: 4\n // baseUnit: 4,\n // controlHeight: 38\n // menuGutter: baseUnit * 2\n\n });\n};\n\nvar propTypes$D = {\n value: PropTypes$1.string,\n options: PropTypes.selectOptions,\n withoutReset: PropTypes$1.bool,\n disabled: PropTypes$1.bool,\n className: PropTypes$1.string,\n onChange: PropTypes$1.func\n};\nvar defaultProps$D = {\n value: null,\n options: [],\n withoutReset: false,\n disabled: false,\n className: null,\n onChange: null\n};\n\nvar SelectAdvancedField = function SelectAdvancedField(_ref) {\n var value = _ref.value,\n options = _ref.options,\n withoutReset = _ref.withoutReset,\n disabled = _ref.disabled,\n className = _ref.className,\n onChange = _ref.onChange,\n props = _objectWithoutProperties(_ref, [\"value\", \"options\", \"withoutReset\", \"disabled\", \"className\", \"onChange\"]);\n\n var finalOptions = useMemo(function () {\n return getSelectOptions(options);\n }, [options]);\n var intl = useIntl();\n var translatedOptions = useMemo(function () {\n return finalOptions.map(function (_ref2) {\n var label = _ref2.label,\n option = _objectWithoutProperties(_ref2, [\"label\"]);\n\n return _objectSpread(_objectSpread({}, option), {}, {\n label: _typeof(label) === 'object' ? intl.formatMessage(label) : label\n });\n });\n });\n var onChangeOption = useCallback(function (newValue) {\n if (onChange !== null) {\n onChange(newValue !== null && newValue.value ? newValue.value : null);\n }\n }, [onChange]);\n var optionValue = useMemo(function () {\n return translatedOptions.find(function (opt) {\n return opt.value !== null ? isEqual(value, opt.value) : false;\n });\n }, [value, options]);\n return /*#__PURE__*/React.createElement(Select, Object.assign({\n className: classNames([_defineProperty({}, className, className !== null)]),\n isClearable: !withoutReset\n }, props, {\n value: optionValue || value || null,\n options: translatedOptions,\n disabled: disabled,\n onChange: onChangeOption,\n theme: selectTheme\n }));\n};\n\nSelectAdvancedField.propTypes = propTypes$D;\nSelectAdvancedField.defaultProps = defaultProps$D;\n\nvar select = {\n id: 'select',\n component: SelectAdvancedField\n};\n\nvar speaker = {\n id: 'speaker',\n component: FieldWithForm,\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: ItemsField,\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 propTypes$C = {\n value: PropTypes$1.shape({}),\n fontStyleName: PropTypes$1.string,\n alignName: PropTypes$1.string,\n stylesOptions: PropTypes$1.arrayOf(PropTypes$1.object),\n alignOptions: PropTypes$1.arrayOf(PropTypes$1.object),\n className: PropTypes$1.string,\n onChange: PropTypes$1.func\n};\nvar defaultProps$C = {\n fontStyleName: 'fontStyle',\n alignName: 'align',\n stylesOptions: [{\n value: 'bold',\n label: /*#__PURE__*/React.createElement(FontAwesomeIcon, {\n icon: faBold\n })\n }, {\n value: 'italic',\n label: /*#__PURE__*/React.createElement(FontAwesomeIcon, {\n icon: faItalic\n })\n }, {\n value: 'underline',\n label: /*#__PURE__*/React.createElement(FontAwesomeIcon, {\n icon: faUnderline\n })\n }],\n alignOptions: [{\n value: 'left',\n label: /*#__PURE__*/React.createElement(FontAwesomeIcon, {\n icon: faAlignLeft\n })\n }, {\n value: 'center',\n label: /*#__PURE__*/React.createElement(FontAwesomeIcon, {\n icon: faAlignCenter\n })\n }, {\n value: 'right',\n label: /*#__PURE__*/React.createElement(FontAwesomeIcon, {\n icon: faAlignRight\n })\n }],\n value: null,\n className: null,\n onChange: null\n};\n\nvar FontStyles$1 = function FontStyles(_ref) {\n var value = _ref.value,\n fontStyleName = _ref.fontStyleName,\n alignName = _ref.alignName,\n stylesOptions = _ref.stylesOptions,\n alignOptions = _ref.alignOptions,\n className = _ref.className,\n onChange = _ref.onChange;\n var styleKeys = useMemo(function () {\n return stylesOptions.map(function (it) {\n return it.value;\n });\n }, [stylesOptions]);\n var fontStyleValue = value !== null ? value[fontStyleName] || null : null;\n var alignValue = value !== null ? value[alignName] || null : null;\n var onFontStyleChange = useCallback(function (newFontStyleValue) {\n var newValue = _objectSpread(_objectSpread({}, value), {}, _defineProperty({}, fontStyleName, _objectSpread(_objectSpread({}, fontStyleValue), styleKeys.reduce(function (valueMap, styleKey) {\n return _objectSpread(_objectSpread({}, valueMap), {}, _defineProperty({}, styleKey, newFontStyleValue !== null && newFontStyleValue.indexOf(styleKey) !== -1));\n }, {}))));\n\n if (onChange !== null) {\n onChange(newValue);\n }\n }, [value, styleKeys, fontStyleValue, fontStyleName, onChange]);\n var onAlignChange = useCallback(function (newAlignValue) {\n var newValue = _objectSpread(_objectSpread({}, value), {}, _defineProperty({}, alignName, newAlignValue));\n\n if (onChange !== null) {\n onChange(newValue);\n }\n }, [value, alignName, onChange]);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(['d-flex', _defineProperty({}, className, className !== null)])\n }, /*#__PURE__*/React.createElement(Checkboxes, {\n value: fontStyleValue !== null ? Object.keys(fontStyleValue).reduce(function (values, styleKey) {\n return styleKeys.indexOf(styleKey) !== -1 && fontStyleValue[styleKey] === true ? [].concat(_toConsumableArray(values), [styleKey]) : values;\n }, []) : null,\n options: stylesOptions,\n onChange: onFontStyleChange\n }), /*#__PURE__*/React.createElement(Radios, {\n value: alignValue,\n options: alignOptions,\n className: \"ml-auto\",\n onChange: onAlignChange,\n uncheckable: true\n }));\n};\n\nFontStyles$1.propTypes = propTypes$C;\nFontStyles$1.defaultProps = defaultProps$C;\n\nvar propTypes$B = {\n value: PropTypes$1.shape({}),\n fontStyleName: PropTypes$1.string,\n transformOptions: PropTypes$1.arrayOf(PropTypes$1.object),\n className: PropTypes$1.string,\n onChange: PropTypes$1.func\n};\nvar defaultProps$B = {\n fontStyleName: 'fontStyle',\n transformOptions: [{\n value: 'capitalize',\n label: /*#__PURE__*/React.createElement(\"strong\", null, \"Aa\")\n }, {\n value: 'uppercase',\n label: /*#__PURE__*/React.createElement(\"strong\", null, \"AA\")\n }, {\n value: 'lowercase',\n label: /*#__PURE__*/React.createElement(\"strong\", null, \"aa\")\n }],\n value: null,\n className: null,\n onChange: null\n};\n\nvar FontStyleTransform = function FontStyleTransform(_ref) {\n var value = _ref.value,\n fontStyleName = _ref.fontStyleName,\n transformOptions = _ref.transformOptions,\n className = _ref.className,\n onChange = _ref.onChange;\n var fontStyleValue = value !== null ? value[fontStyleName] || null : null;\n var transformValue = fontStyleValue !== null ? fontStyleValue.transform || null : null;\n var onTransformChange = useCallback(function (newTransformValue) {\n var newValue = _objectSpread(_objectSpread({}, value), {}, _defineProperty({}, fontStyleName, _objectSpread(_objectSpread({}, fontStyleValue), {}, {\n transform: newTransformValue\n })));\n\n if (onChange !== null) {\n onChange(newValue);\n }\n }, [value, fontStyleValue, fontStyleName, onChange]);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(['d-flex', _defineProperty({}, className, className !== null)])\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(['d-inline-flex', 'ml-auto'])\n }, /*#__PURE__*/React.createElement(Radios, {\n value: transformValue,\n options: transformOptions,\n onChange: onTransformChange,\n uncheckable: true\n })));\n};\n\nFontStyleTransform.propTypes = propTypes$B;\nFontStyleTransform.defaultProps = defaultProps$B;\nFontStyleTransform.isHorizontal = true;\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: FontStyles$1,\n fontStyleName: 'fontStyle',\n alignName: 'align'\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: FontStyleTransform,\n fontStyleName: 'fontStyle',\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: TextField$1\n};\n\nvar styles$b = {\"container\":\"micromag-fields-toggle-container\",\"rcSwitchOn\":\"micromag-fields-toggle-rcSwitchOn\",\"rcSwitchOff\":\"micromag-fields-toggle-rcSwitchOff\"};\n\nvar propTypes$A = {\n value: PropTypes$1.bool,\n className: PropTypes$1.string,\n onChange: PropTypes$1.func\n};\nvar defaultProps$A = {\n value: null,\n className: null,\n onChange: null\n};\n\nvar ToggleField = function ToggleField(_ref) {\n var value = _ref.value,\n className = _ref.className,\n onChange = _ref.onChange;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames([styles$b.container, _defineProperty({}, className, className !== null)])\n }, /*#__PURE__*/React.createElement(Switch, {\n checked: value !== null ? value : false,\n onChange: onChange\n }));\n};\n\nToggleField.propTypes = propTypes$A;\nToggleField.defaultProps = defaultProps$A;\nToggleField.isHorizontal = true;\n\nvar toggle = {\n id: 'toggle',\n component: ToggleField\n};\n\nvar styles$a = {\"container\":\"micromag-fields-tokens-container\"};\n\nvar propTypes$z = {\n value: PropTypes$1.array,\n // eslint-disable-line\n onChange: PropTypes$1.func,\n options: PropTypes$1.arrayOf(PropTypes$1.oneOfType([PropTypes$1.object, PropTypes$1.string])),\n loadOptions: PropTypes$1.func,\n getOptionLabel: PropTypes$1.func,\n getOptionValue: PropTypes$1.func,\n getNewOptionData: PropTypes$1.func,\n className: PropTypes$1.string\n};\nvar defaultProps$z = {\n value: null,\n options: [],\n loadOptions: null,\n getOptionLabel: undefined,\n getOptionValue: undefined,\n getNewOptionData: undefined,\n onChange: null,\n className: null\n};\n\nvar Tokens = function Tokens(_ref) {\n var value = _ref.value,\n options = _ref.options,\n loadOptions = _ref.loadOptions,\n getOptionLabel = _ref.getOptionLabel,\n getOptionValue = _ref.getOptionValue,\n getNewOptionData = _ref.getNewOptionData,\n onChange = _ref.onChange,\n className = _ref.className;\n var filterOptions = useCallback(function (inputValue) {\n return new Promise(function (resolve) {\n var filtered = options.filter(function (it) {\n return it.label.toLowerCase().includes(inputValue.toLowerCase());\n });\n resolve(filtered);\n });\n }, [options]);\n var onTokenChange = useCallback(function (newValue) {\n return onChange !== null ? onChange(newValue) : null;\n });\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames([styles$a.container, _defineProperty({}, className, className !== null)])\n }, /*#__PURE__*/React.createElement(AsyncCreatableSelect, {\n isMulti: true,\n loadOptions: loadOptions || filterOptions,\n defaultOptions: options,\n getOptionLabel: getOptionLabel,\n getOptionValue: getOptionValue,\n getNewOptionData: getNewOptionData,\n components: {\n DropdownIndicator: function DropdownIndicator() {\n return null;\n },\n IndicatorSeparator: function IndicatorSeparator() {\n return null;\n }\n },\n onChange: onTokenChange,\n value: value,\n placeholder: \"Ajouter des \\xE9tiquettes...\",\n theme: selectTheme\n }));\n};\n\nTokens.propTypes = propTypes$z;\nTokens.defaultProps = defaultProps$z;\n\nvar tokens = {\n id: 'tokens',\n component: Tokens\n};\n\nvar styles$9 = {\"container\":\"micromag-fields-input-group-container\"};\n\nvar propTypes$y = {\n prepend: PropTypes$1.node,\n children: PropTypes$1.node,\n append: PropTypes$1.node,\n size: PropTypes$1.oneOf([null, 'sm', 'lg']),\n className: PropTypes$1.string\n};\nvar defaultProps$y = {\n prepend: null,\n children: null,\n append: null,\n size: null,\n className: null\n};\n\nvar InputGroup = function InputGroup(_ref) {\n var prepend = _ref.prepend,\n children = _ref.children,\n append = _ref.append,\n size = _ref.size,\n className = _ref.className;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(['input-group', _defineProperty({}, \"input-group-\".concat(size), size !== null), styles$9.container, _defineProperty({}, className, className !== null)])\n }, prepend !== null ? /*#__PURE__*/React.createElement(\"div\", {\n className: \"input-group-prepend\"\n }, isString(prepend) ? /*#__PURE__*/React.createElement(\"div\", {\n className: \"input-group-text\"\n }, prepend) : prepend) : null, children, append !== null ? /*#__PURE__*/React.createElement(\"div\", {\n className: \"input-group-append\"\n }, isString(append) ? /*#__PURE__*/React.createElement(\"div\", {\n className: \"input-group-text\"\n }, append) : append) : null);\n};\n\nInputGroup.propTypes = propTypes$y;\nInputGroup.defaultProps = defaultProps$y;\n\n/* eslint-disable react/no-array-index-key, react/button-has-type, react/jsx-props-no-spreading */\n\nvar getScheme = function getScheme(url, schemesPattern) {\n var match = url !== null ? url.match(schemesPattern) : null;\n return match !== null && match[1].length !== url.length ? match[1].toLowerCase() : null;\n};\n\nvar removeScheme = function removeScheme(url, schemesPattern) {\n return url !== null ? url.replace(schemesPattern, '') : null;\n};\n\nvar withScheme = function withScheme(url, prefix, schemesPattern) {\n return url !== null && !url.match(schemesPattern) ? \"\".concat(prefix).concat(url) : url;\n};\n\nvar propTypes$x = {\n value: PropTypes$1.string,\n schemes: PropTypes$1.arrayOf(PropTypes$1.string),\n className: PropTypes$1.string,\n onChange: PropTypes$1.func\n};\nvar defaultProps$x = {\n value: null,\n schemes: ['http://', 'https://', 'ftp://'],\n className: null,\n onChange: null\n};\n\nvar UrlField = function UrlField(_ref) {\n var schemes = _ref.schemes,\n value = _ref.value,\n className = _ref.className,\n onChange = _ref.onChange;\n var schemesPattern = useMemo(function () {\n return new RegExp(\"^(\".concat(schemes.join('|'), \")\"), 'i');\n }, [schemes]);\n var scheme = useMemo(function () {\n return getScheme(value, schemesPattern) || schemes[0];\n }, [value, schemes, schemesPattern]);\n var valueWithoutScheme = useMemo(function () {\n return removeScheme(value, schemesPattern);\n }, [value, schemesPattern]);\n var onFieldChange = useCallback(function (newValue) {\n var valueWithScheme = !isEmpty(newValue) ? withScheme(newValue, scheme, schemesPattern) : null;\n\n if (onChange !== null) {\n onChange(valueWithScheme);\n }\n }, [onChange, scheme, schemesPattern]);\n return /*#__PURE__*/React.createElement(InputGroup, {\n prepend: scheme,\n className: className,\n size: \"sm\"\n }, /*#__PURE__*/React.createElement(TextField$1, {\n value: valueWithoutScheme,\n onChange: onFieldChange\n }));\n};\n\nUrlField.propTypes = propTypes$x;\nUrlField.defaultProps = defaultProps$x;\n\nvar url = {\n id: 'url',\n component: UrlField\n};\n\n/* eslint-disable react/jsx-props-no-spreading */\nvar propTypes$w = {\n value: PropTypes.videoMedia\n};\nvar defaultProps$w = {\n value: null\n};\n\nvar VideoField = function VideoField(props) {\n return /*#__PURE__*/React.createElement(MediaField, Object.assign({\n noValueLabel: /*#__PURE__*/React.createElement(FormattedMessage, {\n id: \"DWEzCv\",\n defaultMessage: [{\n \"type\": 0,\n \"value\": \"Select a video...\"\n }]\n })\n }, props, {\n type: \"video\"\n }));\n};\n\nVideoField.propTypes = propTypes$w;\nVideoField.defaultProps = defaultProps$w;\nVideoField.withForm = true;\n\nvar video = {\n id: 'video',\n component: VideoField,\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\n/* eslint-disable react/jsx-props-no-spreading */\nvar propTypes$v = {\n value: PropTypes.videoMedia\n};\nvar defaultProps$v = {\n value: null\n};\n\nvar VisualField = function VisualField(props) {\n return /*#__PURE__*/React.createElement(MediaField, Object.assign({\n noValueLabel: /*#__PURE__*/React.createElement(FormattedMessage, {\n id: \"jnww6n\",\n defaultMessage: [{\n \"type\": 0,\n \"value\": \"Select an image...\"\n }]\n })\n }, props, {\n type: ['video', 'image']\n }));\n};\n\nVisualField.propTypes = propTypes$v;\nVisualField.defaultProps = defaultProps$v;\nVisualField.withForm = true;\n\nvar visual = {\n id: 'visual',\n component: VisualField,\n media: true\n};\n\nvar visualWithCaption = {\n id: 'visual-with-caption',\n component: FieldWithForm,\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: ItemsField,\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\n/* eslint-disable react/jsx-props-no-spreading */\nvar propTypes$u = {\n value: PropTypes.imageMedias\n};\nvar defaultProps$u = {\n value: null\n};\n\nvar VisualsField = function VisualsField(props) {\n return /*#__PURE__*/React.createElement(ItemsField, Object.assign({\n noItemLabel: /*#__PURE__*/React.createElement(FormattedMessage, {\n id: \"t+L1J/\",\n defaultMessage: [{\n \"type\": 0,\n \"value\": \"No image...\"\n }]\n }),\n addItemLabel: /*#__PURE__*/React.createElement(FormattedMessage, {\n id: \"V+G2s+\",\n defaultMessage: [{\n \"type\": 0,\n \"value\": \"Add an image\"\n }]\n }),\n itemComponent: VisualField\n }, props));\n};\n\nVisualsField.propTypes = propTypes$u;\nVisualsField.defaultProps = defaultProps$u;\n\nvar visuals = {\n id: 'visuals',\n component: VisualsField,\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 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\nvar propTypes$t = {\n types: PropTypes$1.arrayOf(PropTypes$1.string),\n value: PropTypes$1.string,\n className: PropTypes$1.string,\n onChange: PropTypes$1.func\n};\nvar defaultProps$t = {\n types: [{\n name: '300x200',\n width: 300,\n height: 200\n }, {\n name: '300x100',\n width: 300,\n height: 100\n }, {\n name: '250x250',\n width: 250,\n height: 250\n }],\n value: null,\n className: null,\n onChange: null\n};\n\nvar AdFormatField = function AdFormatField(_ref) {\n var types = _ref.types,\n value = _ref.value,\n className = _ref.className,\n onChange = _ref.onChange;\n return /*#__PURE__*/React.createElement(Radios, {\n options: types.map(function (type) {\n return {\n value: type,\n label: /*#__PURE__*/React.createElement(\"div\", {\n className: styles$k.type\n }, /*#__PURE__*/React.createElement(\"div\", {\n style: {\n width: type.width / 10,\n height: type.height / 10,\n border: \"2px solid #ccc\"\n }\n }))\n };\n }),\n value: value || (types ? types[0] : null),\n className: classNames([styles$k.container, _defineProperty({}, className, className !== null)]),\n buttonClassName: styles$k.button,\n onChange: onChange\n });\n};\n\nAdFormatField.propTypes = propTypes$t;\nAdFormatField.defaultProps = defaultProps$t;\n\nvar styles$8 = {\"container\":\"micromag-fields-slide-container\",\"noValue\":\"micromag-fields-slide-noValue\",\"value\":\"micromag-fields-slide-value\",\"panel\":\"micromag-fields-slide-panel\"};\n\nvar propTypes$s = {\n value: PropTypes$1.shape({\n text: PropTypes$1.string,\n image: PropTypes.imageMedia\n }),\n isForm: PropTypes$1.bool,\n className: PropTypes$1.string\n};\nvar defaultProps$s = {\n value: null,\n isForm: false,\n className: null\n};\n\nvar AnswerField = function AnswerField(_ref) {\n var value = _ref.value,\n isForm = _ref.isForm,\n className = _ref.className,\n props = _objectWithoutProperties(_ref, [\"value\", \"isForm\", \"className\"]);\n\n var _ref2 = value || {},\n _ref2$text = _ref2.text,\n text = _ref2$text === void 0 ? null : _ref2$text;\n\n return isForm ? /*#__PURE__*/React.createElement(\"div\", {\n className: classNames([styles$8.panel, _defineProperty({}, className, className !== null)])\n }, /*#__PURE__*/React.createElement(Fields, Object.assign({\n className: classNames([{\n 'p-2': isForm,\n className: className !== null\n }])\n }, props, {\n value: value\n }))) : /*#__PURE__*/React.createElement(\"div\", {\n className: classNames([styles$8.container, _defineProperty({}, className, className !== null)])\n }, text !== null ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"span\", {\n className: styles$8.value\n }, text)) : /*#__PURE__*/React.createElement(\"span\", {\n className: styles$8.noValue\n }, \"Entrez une question...\"));\n};\n\nAnswerField.propTypes = propTypes$s;\nAnswerField.defaultProps = defaultProps$s;\n\n/* eslint-disable react/jsx-props-no-spreading */\nvar propTypes$r = {\n value: PropTypes.answers\n};\nvar defaultProps$r = {\n value: null\n};\n\nvar AnswersField = function AnswersField(props) {\n return /*#__PURE__*/React.createElement(ItemsField, Object.assign({\n noItemLabel: /*#__PURE__*/React.createElement(FormattedMessage, {\n id: \"p6n6vY\",\n defaultMessage: [{\n \"type\": 0,\n \"value\": \"No answer...\"\n }]\n }),\n addItemLabel: /*#__PURE__*/React.createElement(FormattedMessage, {\n id: \"n2teag\",\n defaultMessage: [{\n \"type\": 0,\n \"value\": \"Add an answer\"\n }]\n }),\n itemComponent: AnswerField\n }, props));\n};\n\nAnswersField.propTypes = propTypes$r;\nAnswersField.defaultProps = defaultProps$r;\n\nvar styles$7 = {\"container\":\"micromag-fields-autocomplete-container\",\"list\":\"micromag-fields-autocomplete-list\",\"item\":\"micromag-fields-autocomplete-item\"};\n\nvar propTypes$q = {\n items: PropTypes$1.arrayOf(PropTypes$1.shape({\n label: PropTypes$1.string,\n value: PropTypes$1.oneOfType([PropTypes$1.number, PropTypes$1.string])\n })),\n value: PropTypes$1.string,\n searchOptions: PropTypes$1.shape({\n isCaseSensitive: PropTypes$1.bool,\n includeScore: PropTypes$1.bool,\n includeMatches: PropTypes$1.bool,\n minMatchCharLength: PropTypes$1.number,\n shouldSort: PropTypes$1.bool,\n threshold: PropTypes$1.number,\n distance: PropTypes$1.number\n }),\n maxResults: PropTypes$1.number,\n showEmpty: PropTypes$1.bool,\n placeholder: PropTypes$1.string,\n className: PropTypes$1.string,\n onChange: PropTypes$1.func,\n children: PropTypes$1.node\n};\nvar defaultProps$q = {\n items: [],\n value: null,\n searchOptions: {\n // Search in `label` and in `value` items in an object array\n keys: ['label', 'value']\n },\n maxResults: 10,\n showEmpty: false,\n placeholder: null,\n className: null,\n onChange: null,\n children: null\n};\n\nvar AutocompleteField = function AutocompleteField(_ref) {\n var items = _ref.items,\n value = _ref.value,\n searchOptions = _ref.searchOptions,\n maxResults = _ref.maxResults,\n showEmpty = _ref.showEmpty,\n placeholder = _ref.placeholder,\n className = _ref.className,\n onChange = _ref.onChange,\n children = _ref.children;\n var fuse = useRef(null);\n\n var _useState = useState(false),\n _useState2 = _slicedToArray(_useState, 2),\n open = _useState2[0],\n setOpen = _useState2[1];\n\n useEffect(function () {\n var options = _objectSpread({\n isCaseSensitive: false,\n includeScore: true,\n includeMatches: true,\n minMatchCharLength: 2,\n shouldSort: true\n }, searchOptions);\n\n fuse.current = new Fuse(items, options);\n }, [items, searchOptions]);\n var list = value && fuse.current !== null ? fuse.current.search(value) : items.map(function (item) {\n return {\n item: item\n };\n });\n var maxedList = maxResults > 0 ? list.slice(0, maxResults) : list;\n var onClick = useCallback(function (e) {\n if (e.target.dataset.value) {\n onChange(e.target.dataset.value);\n setOpen(false);\n }\n }, [onChange]);\n var onInputChange = useCallback(function (val) {\n onChange(val);\n\n if (val) {\n setOpen(true);\n } else {\n setOpen(showEmpty);\n }\n }, [onChange, showEmpty]);\n var listItems = children !== null ? /*#__PURE__*/React.createElement(\"div\", {\n className: styles$7.list\n }, children) : /*#__PURE__*/React.createElement(\"div\", {\n className: styles$7.list\n }, /*#__PURE__*/React.createElement(\"ul\", {\n className: \"list-group bg-light\"\n }, maxedList.map(function (_ref2) {\n var item = _ref2.item;\n return /*#__PURE__*/React.createElement(\"li\", {\n className: classNames(['list-group-item', styles$7.item]),\n key: \"auto-\".concat(item.label)\n }, /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n className: \"btn btn-link\",\n \"data-value\": item.label,\n onClick: onClick\n }, item.label));\n })));\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames([styles$7.container, _defineProperty({}, className, className !== null)])\n }, /*#__PURE__*/React.createElement(TextField$1, {\n value: value,\n buttonClassName: styles$7.button,\n placeholder: placeholder,\n onChange: onInputChange\n }), open ? listItems : null);\n};\n\nAutocompleteField.propTypes = propTypes$q;\nAutocompleteField.defaultProps = defaultProps$q;\n\n/* eslint-disable react/jsx-props-no-spreading */\nvar propTypes$p = {};\nvar defaultProps$p = {};\n\nvar ContainerStyleField = function ContainerStyleField(props) {\n return /*#__PURE__*/React.createElement(Fields, Object.assign({\n isList: true\n }, props));\n};\n\nContainerStyleField.propTypes = propTypes$p;\nContainerStyleField.defaultProps = defaultProps$p;\n\nvar propTypes$o = {\n name: PropTypes$1.string,\n fields: PropTypes.formFields,\n value: PropTypes$1.object,\n // eslint-disable-line react/forbid-prop-types\n isList: PropTypes$1.bool,\n gotoFieldForm: PropTypes$1.func,\n closeFieldForm: PropTypes$1.func,\n onChange: PropTypes$1.func\n};\nvar defaultProps$o = {\n name: null,\n fields: [],\n value: null,\n isList: false,\n gotoFieldForm: null,\n closeFieldForm: null,\n onChange: null\n};\n\nvar ElementField = function ElementField(_ref) {\n var name = _ref.name,\n formFields = _ref.fields,\n value = _ref.value,\n gotoFieldForm = _ref.gotoFieldForm,\n closeFieldForm = _ref.closeFieldForm,\n isList = _ref.isList,\n onChange = _ref.onChange;\n var fields = formFields || []; // console.log('debug fields', fields);\n\n var settingsNames = useMemo(function () {\n return fields ? fields.filter(function (_ref2) {\n var _ref2$setting = _ref2.setting,\n setting = _ref2$setting === void 0 ? false : _ref2$setting;\n return setting;\n }).map(function (it) {\n return it.name;\n }) : [];\n }, [fields]);\n var componentFields = useMemo(function () {\n return fields.filter(function (_ref3) {\n var _ref3$setting = _ref3.setting,\n setting = _ref3$setting === void 0 ? false : _ref3$setting;\n return !setting;\n });\n }, [fields]);\n var componentValue = useMemo(function () {\n if (value === null || settingsNames === null) {\n return value;\n }\n\n return Object.keys(value).reduce(function (scopedValue, key) {\n return settingsNames.indexOf(key) === -1 ? _objectSpread(_objectSpread({}, scopedValue), {}, _defineProperty({}, key, value[key])) : scopedValue;\n }, null);\n }, [fields, settingsNames, value]);\n var componentOnChange = useCallback(function (newComponentValue) {\n var newValue = _objectSpread(_objectSpread({}, value), newComponentValue);\n\n if (onChange !== null) {\n onChange(newValue);\n }\n }, [value, onChange]);\n return /*#__PURE__*/React.createElement(Fields, {\n name: name,\n fields: componentFields,\n value: componentValue,\n gotoFieldForm: gotoFieldForm,\n closeFieldForm: closeFieldForm,\n onChange: componentOnChange,\n isList: isList\n });\n};\n\nElementField.propTypes = propTypes$o;\nElementField.defaultProps = defaultProps$o;\n\n/* eslint-disable react/jsx-props-no-spreading */\nvar propTypes$n = {};\nvar defaultProps$n = {};\n\nvar ElementList = function ElementList(props) {\n return /*#__PURE__*/React.createElement(ElementField, Object.assign({\n isList: true\n }, props));\n};\n\nElementList.propTypes = propTypes$n;\nElementList.defaultProps = defaultProps$n;\n\nvar styles$6 = {\"container\":\"micromag-fields-grid-layout-container\",\"button\":\"micromag-fields-grid-layout-button\",\"grid\":\"micromag-fields-grid-layout-grid\",\"column\":\"micromag-fields-grid-layout-column\"};\n\nvar propTypes$m = {\n grids: PropTypes$1.arrayOf(PropTypes.gridLayout),\n value: PropTypes$1.arrayOf(PropTypes$1.shape({\n rows: PropTypes$1.number,\n columns: PropTypes$1.arrayOf(PropTypes$1.number)\n })),\n className: PropTypes$1.string,\n onChange: PropTypes$1.func\n};\nvar defaultProps$m = {\n grids: [],\n value: null,\n className: null,\n onChange: null\n};\n\nvar GridLayout = function GridLayout(_ref) {\n var grids = _ref.grids,\n value = _ref.value,\n className = _ref.className,\n onChange = _ref.onChange;\n return /*#__PURE__*/React.createElement(Radios, {\n options: grids.map(function (layout) {\n return {\n value: layout,\n label: /*#__PURE__*/React.createElement(Grid, {\n layout: layout,\n className: styles$6.grid,\n columnClassName: styles$6.column\n })\n };\n }),\n value: value !== null ? grids.find(function (it) {\n return getGridLayoutName(it) === getGridLayoutName(value);\n }) || null : null,\n className: classNames([styles$6.container, _defineProperty({}, className, className !== null)]),\n buttonClassName: styles$6.button,\n onChange: onChange\n });\n};\n\nGridLayout.propTypes = propTypes$m;\nGridLayout.defaultProps = defaultProps$m;\n\n/* eslint-disable react/jsx-props-no-spreading */\nvar propTypes$l = {};\nvar defaultProps$l = {};\n\nvar ImageStyleField = function ImageStyleField(props) {\n return /*#__PURE__*/React.createElement(Fields, Object.assign({\n isList: true\n }, props));\n};\n\nImageStyleField.propTypes = propTypes$l;\nImageStyleField.defaultProps = defaultProps$l;\n\n/* eslint-disable react/jsx-props-no-spreading */\nvar propTypes$k = {};\nvar defaultProps$k = {};\n\nvar MapField = function MapField(props) {\n return /*#__PURE__*/React.createElement(Fields, props);\n};\n\nMapField.propTypes = propTypes$k;\nMapField.defaultProps = defaultProps$k;\n\nvar styles$5 = {\"container\":\"micromag-fields-margin-container\",\"icon\":\"micromag-fields-margin-icon\",\"slider\":\"micromag-fields-margin-slider\"};\n\nvar propTypes$j = {\n value: PropTypes$1.number,\n unit: PropTypes$1.string,\n direction: PropTypes$1.oneOf(['top', 'bottom']),\n min: PropTypes$1.number,\n max: PropTypes$1.number,\n marksStep: PropTypes$1.number,\n className: PropTypes$1.string,\n onChange: PropTypes$1.func\n};\nvar defaultProps$j = {\n value: null,\n unit: 'pt',\n direction: 'top',\n min: 0,\n max: 20,\n marksStep: 5,\n className: null,\n onChange: null\n};\n\nvar MarginField = function MarginField(_ref) {\n var value = _ref.value,\n unit = _ref.unit,\n direction = _ref.direction,\n min = _ref.min,\n max = _ref.max,\n marksStep = _ref.marksStep,\n className = _ref.className,\n _onChange = _ref.onChange;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames([styles$5.container, _defineProperty({}, className, className !== null)])\n }, /*#__PURE__*/React.createElement(FontAwesomeIcon, {\n icon: direction === 'top' ? faArrowUp : faArrowDown,\n className: styles$5.icon\n }), /*#__PURE__*/React.createElement(SliderField, {\n value: value,\n min: min,\n max: max,\n marksStep: marksStep,\n marksStyle: {\n top: -2,\n fontSize: 8\n },\n withInput: true,\n unit: unit,\n onChange: function onChange(newValue) {\n return _onChange !== null ? _onChange(newValue !== 0 ? newValue : null) : null;\n },\n className: styles$5.slider\n }));\n};\n\nMarginField.propTypes = propTypes$j;\nMarginField.defaultProps = defaultProps$j;\nMarginField.isHorizontal = true;\n\nvar styles$4 = {\"container\":\"micromag-fields-marker-container\",\"noValue\":\"micromag-fields-marker-noValue\",\"value\":\"micromag-fields-marker-value\",\"panel\":\"micromag-fields-marker-panel\"};\n\nvar propTypes$i = {\n value: PropTypes$1.shape({\n text: PropTypes$1.string\n }),\n isForm: PropTypes$1.bool,\n className: PropTypes$1.string\n};\nvar defaultProps$i = {\n value: null,\n isForm: false,\n className: null\n};\n\nvar MarkerField = function MarkerField(_ref) {\n var isForm = _ref.isForm,\n value = _ref.value,\n className = _ref.className,\n props = _objectWithoutProperties(_ref, [\"isForm\", \"value\", \"className\"]);\n\n var _ref2 = value || {},\n _ref2$title = _ref2.title,\n title = _ref2$title === void 0 ? null : _ref2$title;\n\n return isForm ? /*#__PURE__*/React.createElement(\"div\", {\n className: classNames([styles$4.panel, _defineProperty({}, className, className !== null)])\n }, /*#__PURE__*/React.createElement(Fields, Object.assign({}, props, {\n value: value\n }))) : /*#__PURE__*/React.createElement(\"div\", {\n className: classNames([styles$4.container, _defineProperty({}, className, className !== null)])\n }, title !== null ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"span\", {\n className: styles$4.value\n }, title.body)) : /*#__PURE__*/React.createElement(\"span\", {\n className: styles$4.noValue\n }, \"Entrez les infos...\"));\n};\n\nMarkerField.propTypes = propTypes$i;\nMarkerField.defaultProps = defaultProps$i;\n\n/* eslint-disable react/jsx-props-no-spreading */\nvar propTypes$h = {};\nvar defaultProps$h = {};\n\nvar MarkersField = function MarkersField(props) {\n return /*#__PURE__*/React.createElement(ItemsField, Object.assign({\n noItemLabel: /*#__PURE__*/React.createElement(FormattedMessage, {\n id: \"3E57H7\",\n defaultMessage: [{\n \"type\": 0,\n \"value\": \"No marker...\"\n }]\n }),\n addItemLabel: /*#__PURE__*/React.createElement(FormattedMessage, {\n id: \"qKQCxc\",\n defaultMessage: [{\n \"type\": 0,\n \"value\": \"Add a marker\"\n }]\n }),\n itemComponent: MarkerField\n }, props));\n};\n\nMarkersField.propTypes = propTypes$h;\nMarkersField.defaultProps = defaultProps$h;\n\nvar propTypes$g = {\n type: PropTypes$1.oneOfType([PropTypes.mediaTypes, PropTypes$1.arrayOf(PropTypes.mediaTypes)]),\n value: PropTypes.media,\n fields: PropTypes.formFields,\n noValueLabel: PropTypes.label,\n withoutThumbnail: PropTypes$1.bool,\n onChange: PropTypes$1.func,\n closeForm: PropTypes$1.func\n};\nvar defaultProps$g = {\n type: null,\n value: null,\n fields: null,\n noValueLabel: /*#__PURE__*/React.createElement(FormattedMessage, {\n id: \"EoVdMy\",\n defaultMessage: [{\n \"type\": 0,\n \"value\": \"Edit content...\"\n }]\n }),\n withoutThumbnail: false,\n onChange: null,\n closeForm: null\n};\n\nvar MessageField = function MessageField(_ref) {\n _ref.type;\n var value = _ref.value,\n fields = _ref.fields,\n noValueLabel = _ref.noValueLabel;\n _ref.withoutThumbnail;\n var onChange = _ref.onChange;\n _ref.closeForm;\n var props = _objectWithoutProperties(_ref, [\"type\", \"value\", \"fields\", \"noValueLabel\", \"withoutThumbnail\", \"onChange\", \"closeForm\"]);\n\n var context = useFieldContext();\n\n var _ref2 = context || {},\n options = _ref2.options;\n\n var label = value !== null ? value.name || getFileName(value.url) || null : null;\n return /*#__PURE__*/React.createElement(FieldWithForm, Object.assign({\n value: value,\n onChange: onChange,\n noValueLabel: noValueLabel,\n label: label,\n thumbnailPath: \"thumbnail_url\",\n fields: fields.map(function (field) {\n return field.name === 'speaker' ? _objectSpread(_objectSpread({}, field), {}, {\n options: options\n }) : field;\n })\n }, props));\n};\n\nMessageField.propTypes = propTypes$g;\nMessageField.defaultProps = defaultProps$g;\nMessageField.withForm = true;\n\nvar styles$3 = {\"container\":\"micromag-fields-position-container\",\"button\":\"micromag-fields-position-button\",\"rotateLeft\":\"micromag-fields-position-rotateLeft\",\"rotateRight\":\"micromag-fields-position-rotateRight\"};\n\nvar propTypes$f = {\n name: PropTypes$1.string,\n value: PropTypes$1.string,\n axisOptions: PropTypes$1.arrayOf(PropTypes$1.string),\n crossOptions: PropTypes$1.arrayOf(PropTypes$1.string),\n className: PropTypes$1.string,\n buttonClassName: PropTypes$1.string,\n onChange: PropTypes$1.func\n};\nvar defaultProps$f = {\n name: null,\n value: null,\n axisOptions: ['top', 'center', 'bottom'],\n crossOptions: ['left', 'center', 'right'],\n className: null,\n buttonClassName: null,\n onChange: null\n};\n\nvar Icon = function Icon(_ref) {\n var label = _ref.label;\n\n switch (label) {\n case 'top-left':\n return /*#__PURE__*/React.createElement(FontAwesomeIcon, {\n icon: faArrowUp,\n className: styles$3.rotateLeft\n });\n\n case 'top-center':\n return /*#__PURE__*/React.createElement(FontAwesomeIcon, {\n icon: faArrowUp,\n className: styles$3.icon\n });\n\n case 'top-right':\n return /*#__PURE__*/React.createElement(FontAwesomeIcon, {\n icon: faArrowUp,\n className: styles$3.rotateRight\n });\n\n case 'center-left':\n return /*#__PURE__*/React.createElement(FontAwesomeIcon, {\n icon: faArrowLeft,\n className: styles$3.icon\n });\n\n case 'center-center':\n return /*#__PURE__*/React.createElement(FontAwesomeIcon, {\n icon: faDotCircle,\n className: styles$3.icon\n });\n\n case 'center-right':\n return /*#__PURE__*/React.createElement(FontAwesomeIcon, {\n icon: faArrowRight,\n className: styles$3.icon\n });\n\n case 'bottom-left':\n return /*#__PURE__*/React.createElement(FontAwesomeIcon, {\n icon: faArrowDown,\n className: styles$3.rotateRight\n });\n\n case 'bottom-center':\n return /*#__PURE__*/React.createElement(FontAwesomeIcon, {\n icon: faArrowDown,\n className: styles$3.icon\n });\n\n case 'bottom-right':\n return /*#__PURE__*/React.createElement(FontAwesomeIcon, {\n icon: faArrowDown,\n className: styles$3.rotateLeft\n });\n }\n\n return null;\n};\n\nIcon.propTypes = {\n label: PropTypes$1.string.isRequired\n};\n\nvar Position = function Position(_ref2) {\n var name = _ref2.name,\n value = _ref2.value,\n vertical = _ref2.axisOptions,\n horizontal = _ref2.crossOptions,\n className = _ref2.className,\n buttonClassName = _ref2.buttonClassName,\n _onChange = _ref2.onChange;\n var axisOptions = useMemo(function () {\n return getSelectOptions(vertical);\n }, [vertical]);\n var crossOptions = useMemo(function () {\n return getSelectOptions(horizontal);\n }, [horizontal]);\n\n var _ref3 = value || {},\n _ref3$axisAlign = _ref3.axisAlign,\n axisAlign = _ref3$axisAlign === void 0 ? null : _ref3$axisAlign,\n _ref3$crossAlign = _ref3.crossAlign,\n crossAlign = _ref3$crossAlign === void 0 ? null : _ref3$crossAlign;\n\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(['btn-group', 'btn-group-toggle', styles$3.container, _defineProperty({}, className, className !== null)]),\n \"data-toggle\": \"buttons\"\n }, axisOptions.map(function (_ref5) {\n var axisOption = _ref5.value,\n axisLabel = _ref5.label;\n return crossOptions.map(function (_ref6) {\n var _ref7;\n\n var crossOption = _ref6.value,\n crossLabel = _ref6.label;\n return /*#__PURE__*/React.createElement(\"label\", {\n key: \"radio-\".concat(axisOption, \"-\").concat(crossOption),\n className: classNames(['btn', 'btn-outline-secondary', (_ref7 = {}, _defineProperty(_ref7, styles$3.button, true), _defineProperty(_ref7, \"active\", axisOption === axisAlign && crossOption === crossAlign), _defineProperty(_ref7, buttonClassName, buttonClassName !== null), _ref7)])\n }, /*#__PURE__*/React.createElement(\"input\", {\n type: \"radio\",\n name: name,\n autoComplete: \"off\",\n value: \"\".concat(axisOption, \"-\").concat(crossOption),\n onChange: function onChange(e) {\n if (_onChange !== null) {\n _onChange(e.currentTarget.checked ? {\n axisAlign: axisOption,\n crossAlign: crossOption\n } : value);\n }\n },\n checked: axisOption === axisAlign && crossOption === crossAlign\n }), ' ', /*#__PURE__*/React.createElement(Icon, {\n label: \"\".concat(axisLabel, \"-\").concat(crossLabel)\n }));\n });\n }));\n};\n\nPosition.propTypes = propTypes$f;\nPosition.defaultProps = defaultProps$f;\n\n/* eslint-disable react/jsx-props-no-spreading */\nvar propTypes$e = {};\nvar defaultProps$e = {};\n\nvar QuestionField = function QuestionField(props) {\n return /*#__PURE__*/React.createElement(Fields, Object.assign({\n isList: true\n }, props));\n};\n\nQuestionField.propTypes = propTypes$e;\nQuestionField.defaultProps = defaultProps$e;\n\nvar styles$2 = {};\n\nvar propTypes$d = {\n value: PropTypes$1.string,\n options: PropTypes.selectOptions,\n disabled: PropTypes$1.bool,\n className: PropTypes$1.string,\n onChange: PropTypes$1.func\n};\nvar defaultProps$d = {\n value: null,\n options: [],\n disabled: false,\n className: null,\n onChange: null\n};\n\nvar SelectField = function SelectField(_ref) {\n var value = _ref.value,\n options = _ref.options,\n disabled = _ref.disabled,\n className = _ref.className,\n _onChange = _ref.onChange;\n var finalOptions = useMemo(function () {\n return getSelectOptions(options);\n }, [options]);\n return /*#__PURE__*/React.createElement(\"select\", {\n className: classNames([styles$2.container, 'custom-select', _defineProperty({}, className, className !== null)]),\n value: value || '',\n disabled: disabled,\n onChange: function onChange(e) {\n return _onChange !== null ? _onChange(e.currentTarget.value !== '' ? e.currentTarget.value : null) : null;\n }\n }, /*#__PURE__*/React.createElement(\"option\", {\n value: \"\"\n }, \"--\"), finalOptions.map(function (_ref3) {\n var optionValue = _ref3.value,\n optionLabel = _ref3.label;\n return /*#__PURE__*/React.createElement(\"option\", {\n key: \"select-\".concat(optionValue),\n value: optionValue\n }, optionLabel);\n }));\n};\n\nSelectField.propTypes = propTypes$d;\nSelectField.defaultProps = defaultProps$d;\n\nvar propTypes$c = {\n value: PropTypes$1.shape({\n text: PropTypes$1.string,\n image: PropTypes.imageMedia\n }),\n isForm: PropTypes$1.bool,\n className: PropTypes$1.string\n};\nvar defaultProps$c = {\n value: null,\n isForm: false,\n className: null\n};\n\nvar SlideField = function SlideField(_ref) {\n var value = _ref.value,\n isForm = _ref.isForm,\n className = _ref.className,\n props = _objectWithoutProperties(_ref, [\"value\", \"isForm\", \"className\"]);\n\n var _ref2 = value || {},\n _ref2$text = _ref2.text,\n text = _ref2$text === void 0 ? null : _ref2$text;\n\n return isForm ? /*#__PURE__*/React.createElement(\"div\", {\n className: classNames([styles$8.panel, _defineProperty({}, className, className !== null)])\n }, /*#__PURE__*/React.createElement(Fields, Object.assign({\n className: classNames([{\n 'p-2': isForm,\n className: className !== null\n }])\n }, props, {\n value: value\n }))) : /*#__PURE__*/React.createElement(\"div\", {\n className: classNames([styles$8.container, _defineProperty({}, className, className !== null)])\n }, text !== null ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"span\", {\n className: styles$8.value\n }, text)) : /*#__PURE__*/React.createElement(\"span\", {\n className: styles$8.noValue\n }, \"Entrez les infos...\"));\n};\n\nSlideField.propTypes = propTypes$c;\nSlideField.defaultProps = defaultProps$c;\n\n/* eslint-disable react/no-array-index-key, react/button-has-type, react/jsx-props-no-spreading */\nvar propTypes$b = {\n unit: PropTypes$1.string,\n withInput: PropTypes$1.bool\n};\nvar defaultProps$b = {\n unit: 'px',\n withInput: true\n};\n\nvar SliderPixelField$1 = function SliderPixelField(props) {\n return /*#__PURE__*/React.createElement(SliderField, props);\n};\n\nSliderPixelField$1.propTypes = propTypes$b;\nSliderPixelField$1.defaultProps = defaultProps$b;\n\n/* eslint-disable react/no-array-index-key, react/button-has-type, react/jsx-props-no-spreading */\nvar propTypes$a = {\n unit: PropTypes$1.string,\n withInput: PropTypes$1.bool\n};\nvar defaultProps$a = {\n unit: '%',\n withInput: true\n};\n\nvar SliderPixelField = function SliderPixelField(props) {\n return /*#__PURE__*/React.createElement(SliderField, props);\n};\n\nSliderPixelField.propTypes = propTypes$a;\nSliderPixelField.defaultProps = defaultProps$a;\n\n/* eslint-disable react/no-array-index-key, react/button-has-type, react/jsx-props-no-spreading */\nvar propTypes$9 = {\n unit: PropTypes$1.string,\n withInput: PropTypes$1.bool\n};\nvar defaultProps$9 = {\n unit: 'pt',\n withInput: true\n};\n\nvar SliderPointField = function SliderPointField(props) {\n return /*#__PURE__*/React.createElement(SliderField, props);\n};\n\nSliderPointField.propTypes = propTypes$9;\nSliderPointField.defaultProps = defaultProps$9;\n\n/* eslint-disable react/jsx-props-no-spreading */\nvar propTypes$8 = {};\nvar defaultProps$8 = {};\n\nvar SlidesField = function SlidesField(props) {\n return /*#__PURE__*/React.createElement(ItemsField, Object.assign({\n noItemLabel: /*#__PURE__*/React.createElement(FormattedMessage, {\n id: \"OdcEna\",\n defaultMessage: [{\n \"type\": 0,\n \"value\": \"No slide...\"\n }]\n }),\n addItemLabel: /*#__PURE__*/React.createElement(FormattedMessage, {\n id: \"tAYwqp\",\n defaultMessage: [{\n \"type\": 0,\n \"value\": \"Add a slide\"\n }]\n }),\n itemComponent: SlideField\n }, props));\n};\n\nSlidesField.propTypes = propTypes$8;\nSlidesField.defaultProps = defaultProps$8;\n\n/* eslint-disable react/no-array-index-key, react/button-has-type, react/jsx-props-no-spreading */\nvar propTypes$7 = {\n value: PropTypes$1.number,\n className: PropTypes$1.string,\n onChange: PropTypes$1.func\n};\nvar defaultProps$7 = {\n value: null,\n className: null,\n onChange: null\n};\n\nvar Spacing = function Spacing(_ref) {\n var value = _ref.value,\n className = _ref.className,\n onChange = _ref.onChange;\n return /*#__PURE__*/React.createElement(InputGroup, {\n append: \"px\"\n }, /*#__PURE__*/React.createElement(NumberField, {\n value: value,\n min: 0,\n max: 20,\n className: className,\n onChange: onChange\n }));\n};\n\nSpacing.propTypes = propTypes$7;\nSpacing.defaultProps = defaultProps$7;\n\nvar styles$1 = {\"container\":\"micromag-fields-static-field-container\",\"icon\":\"micromag-fields-static-field-icon\"};\n\nvar propTypes$6 = {\n value: PropTypes$1.oneOfType([PropTypes$1.string, PropTypes$1.number, PropTypes$1.array]),\n name: PropTypes$1.string,\n className: PropTypes$1.string\n};\nvar defaultProps$6 = {\n value: null,\n name: null,\n className: null\n};\n\nvar StaticField = function StaticField(_ref) {\n var value = _ref.value,\n name = _ref.name,\n className = _ref.className;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames([styles$1.container, _defineProperty({}, className, className !== null)])\n }, name === 'user' ? /*#__PURE__*/React.createElement(\"div\", {\n className: styles$1.icon\n }) : null, /*#__PURE__*/React.createElement(\"div\", {\n className: styles$1.field\n }, value !== null ? value : null));\n};\n\nStaticField.propTypes = propTypes$6;\nStaticField.defaultProps = defaultProps$6;\n\n/* eslint-disable react/no-array-index-key, react/button-has-type, react/jsx-props-no-spreading */\nvar propTypes$5 = {\n options: PropTypes$1.arrayOf(PropTypes$1.string),\n isForm: PropTypes$1.bool,\n value: PropTypes$1.string,\n className: PropTypes$1.string,\n onChange: PropTypes$1.func\n};\nvar defaultProps$5 = {\n options: ['_blank', 'self'],\n isForm: false,\n value: null,\n className: null,\n onChange: null\n};\n\nvar TargetField = function TargetField(_ref) {\n var options = _ref.options,\n value = _ref.value,\n isForm = _ref.isForm,\n className = _ref.className,\n onChange = _ref.onChange;\n return isForm ? /*#__PURE__*/React.createElement(\"div\", null, /*#__PURE__*/React.createElement(SelectField, {\n options: options,\n value: value,\n className: className,\n onChange: onChange\n })) : /*#__PURE__*/React.createElement(\"div\", null, value);\n};\n\nTargetField.propTypes = propTypes$5;\nTargetField.defaultProps = defaultProps$5;\nTargetField.withForm = true;\n\n/**\n * Locale loader\n */\n\nvar packageCache$1 = null;\n\nvar useCKEditor$1 = function useCKEditor() {\n // transport\n var _useState = useState({\n \"package\": packageCache$1\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('@ckeditor/ckeditor5-react').then(function (_ref) {\n var CKEditor = _ref.CKEditor;\n packageCache$1 = CKEditor;\n\n if (!canceled) {\n setLoadedPackage({\n \"package\": CKEditor\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 packageCache = null;\n\nvar useCKEditor = function useCKEditor() {\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('@ckeditor/ckeditor5-build-inline').then(function (_ref) {\n var InlineEditor = _ref[\"default\"];\n packageCache = InlineEditor;\n\n if (!canceled) {\n setLoadedPackage({\n \"package\": InlineEditor\n });\n }\n });\n return function () {\n canceled = true;\n };\n }, [loadedPackage, setLoadedPackage]);\n return loadedPackage;\n};\n\nvar styles = {\"container\":\"micromag-fields-text-editor-container\",\"size-sm\":\"micromag-fields-text-editor-size-sm\",\"size-lg\":\"micromag-fields-text-editor-size-lg\"};\n\nvar propTypes$4 = {\n value: PropTypes$1.string,\n size: PropTypes.formControlSize,\n className: PropTypes$1.string,\n onChange: PropTypes$1.func,\n inline: PropTypes$1.bool,\n editorConfig: PropTypes$1.shape({})\n};\nvar defaultProps$4 = {\n value: null,\n size: null,\n className: null,\n onChange: null,\n inline: false,\n editorConfig: {\n removePlugins: ['Autoformat'],\n toolbar: ['bold', 'italic', '|', 'link'],\n language: 'fr',\n link: {\n addTargetToExternalLinks: true\n }\n }\n};\n\nvar TextEditorField = function TextEditorField(_ref) {\n var _ref2;\n\n var value = _ref.value,\n size = _ref.size,\n className = _ref.className,\n editorConfig = _ref.editorConfig,\n inline = _ref.inline,\n onChange = _ref.onChange;\n\n var _useIntl = useIntl(),\n locale = _useIntl.locale;\n\n var CKEditor = useCKEditor$1();\n var InlineEditor = useCKEditor();\n var finalEditorConfig = useMemo(function () {\n return _objectSpread(_objectSpread({}, editorConfig), {}, {\n language: locale\n });\n }, [editorConfig, locale]);\n var onEditorReady = useCallback( // eslint-disable-next-line no-unused-vars\n function (editor) {\n }, [inline]);\n var onEditorChange = useCallback(function (event, editor) {\n var data = editor.getData();\n\n if (onChange !== null) {\n onChange(data);\n }\n }, [onChange, inline]);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames([styles.container, (_ref2 = {}, _defineProperty(_ref2, styles[\"size-\".concat(size)], size !== null), _defineProperty(_ref2, className, className !== null), _ref2)])\n }, CKEditor !== null && InlineEditor !== null ? /*#__PURE__*/React.createElement(CKEditor, {\n editor: InlineEditor,\n config: finalEditorConfig,\n data: value || '',\n onReady: onEditorReady,\n onChange: onEditorChange\n }) : null);\n};\n\nTextEditorField.propTypes = propTypes$4;\nTextEditorField.defaultProps = defaultProps$4;\n\nvar propTypes$3 = {\n value: PropTypes.textElement,\n inline: PropTypes$1.bool,\n textOnly: PropTypes$1.bool,\n onChange: PropTypes$1.func\n};\nvar defaultProps$3 = {\n inline: true,\n textOnly: false,\n value: null,\n onChange: null\n};\n\nvar TextElement = function TextElement(_ref) {\n var value = _ref.value,\n onChange = _ref.onChange,\n inline = _ref.inline,\n textOnly = _ref.textOnly,\n props = _objectWithoutProperties(_ref, [\"value\", \"onChange\", \"inline\", \"textOnly\"]);\n\n var bodyValue = value !== null ? value.body || null : null;\n var onBodyChange = useCallback(function (newBody) {\n var newValue = _objectSpread(_objectSpread({}, value), {}, {\n body: newBody\n });\n\n if (onChange !== null) {\n onChange(newValue);\n }\n }, [value, onChange]);\n\n if (textOnly) {\n return inline ? /*#__PURE__*/React.createElement(TextField$1, Object.assign({}, props, {\n value: bodyValue,\n onChange: onBodyChange\n })) : /*#__PURE__*/React.createElement(TextareaField, Object.assign({}, props, {\n value: bodyValue,\n onChange: onBodyChange\n }));\n }\n\n return /*#__PURE__*/React.createElement(TextEditorField, Object.assign({}, props, {\n inline: inline,\n value: bodyValue,\n onChange: onBodyChange\n }));\n};\n\nTextElement.propTypes = propTypes$3;\nTextElement.defaultProps = defaultProps$3;\n\nvar propTypes$2 = {\n value: PropTypes$1.shape({}),\n fontStyleName: PropTypes$1.string,\n alignName: PropTypes$1.string,\n stylesOptions: PropTypes$1.arrayOf(PropTypes$1.object),\n alignOptions: PropTypes$1.arrayOf(PropTypes$1.object),\n className: PropTypes$1.string,\n onChange: PropTypes$1.func\n};\nvar defaultProps$2 = {\n fontStyleName: 'fontStyle',\n alignName: 'align',\n stylesOptions: [{\n value: 'bold',\n label: /*#__PURE__*/React.createElement(FontAwesomeIcon, {\n icon: faBold\n })\n }, {\n value: 'italic',\n label: /*#__PURE__*/React.createElement(FontAwesomeIcon, {\n icon: faItalic\n })\n }, {\n value: 'underline',\n label: /*#__PURE__*/React.createElement(FontAwesomeIcon, {\n icon: faUnderline\n })\n }],\n alignOptions: [{\n value: 'left',\n label: /*#__PURE__*/React.createElement(FontAwesomeIcon, {\n icon: faAlignLeft\n })\n }, {\n value: 'center',\n label: /*#__PURE__*/React.createElement(FontAwesomeIcon, {\n icon: faAlignCenter\n })\n }, {\n value: 'right',\n label: /*#__PURE__*/React.createElement(FontAwesomeIcon, {\n icon: faAlignRight\n })\n }],\n value: null,\n className: null,\n onChange: null\n};\n\nvar FontStyles = function FontStyles(_ref) {\n var value = _ref.value,\n fontStyleName = _ref.fontStyleName,\n alignName = _ref.alignName,\n stylesOptions = _ref.stylesOptions;\n _ref.alignOptions;\n var className = _ref.className,\n onChange = _ref.onChange;\n var styleKeys = useMemo(function () {\n return stylesOptions.map(function (it) {\n return it.value;\n });\n }, [stylesOptions]);\n var fontStyleValue = value !== null ? value[fontStyleName] || null : null;\n var alignValue = value !== null ? value[alignName] || null : null;\n useCallback(function (newFontStyleValue) {\n var newValue = _objectSpread(_objectSpread({}, value), {}, _defineProperty({}, fontStyleName, _objectSpread(_objectSpread({}, fontStyleValue), styleKeys.reduce(function (valueMap, styleKey) {\n return _objectSpread(_objectSpread({}, valueMap), {}, _defineProperty({}, styleKey, newFontStyleValue !== null && newFontStyleValue.indexOf(styleKey) !== -1));\n }, {}))));\n\n if (onChange !== null) {\n onChange(newValue);\n }\n }, [value, styleKeys, fontStyleValue, fontStyleName, onChange]);\n var onAlignChange = useCallback(function (newAlignValue) {\n var newValue = _objectSpread(_objectSpread({}, value), {}, _defineProperty({}, alignName, newAlignValue));\n\n if (onChange !== null) {\n onChange(newValue);\n }\n }, [value, alignName, onChange]);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(['d-flex', _defineProperty({}, className, className !== null)])\n }, /*#__PURE__*/React.createElement(Radios, {\n value: alignValue,\n options: options,\n className: \"ml-auto\",\n onChange: onAlignChange\n }));\n};\n\nFontStyles.propTypes = propTypes$2;\nFontStyles.defaultProps = defaultProps$2;\n\n/* eslint-disable react/jsx-props-no-spreading */\nvar propTypes$1 = {\n value: PropTypes.imageMedias\n};\nvar defaultProps$1 = {\n value: null\n};\n\nvar VisualsWithCaptionField = function VisualsWithCaptionField(props) {\n return /*#__PURE__*/React.createElement(ItemsField, Object.assign({\n noItemLabel: /*#__PURE__*/React.createElement(FormattedMessage, {\n id: \"3wiL2y\",\n defaultMessage: [{\n \"type\": 0,\n \"value\": \"No image...\"\n }]\n }),\n addItemLabel: /*#__PURE__*/React.createElement(FormattedMessage, {\n id: \"9n9+yP\",\n defaultMessage: [{\n \"type\": 0,\n \"value\": \"Add an image\"\n }]\n })\n }, props));\n};\n\nVisualsWithCaptionField.propTypes = propTypes$1;\nVisualsWithCaptionField.defaultProps = defaultProps$1;\n\nvar components = /*#__PURE__*/Object.freeze({\n __proto__: null,\n AdFormat: AdFormatField,\n Answer: AnswerField,\n Answers: AnswersField,\n Audio: AudioField,\n Autocomplete: AutocompleteField,\n BorderStyle: BorderStyle,\n BorderWidth: BorderWidth,\n BorderRadius: BorderRadius,\n CallToAction: CallToAction,\n Checkboxes: Checkboxes,\n ClosedCaptions: ClosedCaptionField,\n Color: ColorField,\n ColorPicker: ColorPickerField,\n ContainerStyle: ContainerStyleField,\n Element: ElementField,\n ElementList: ElementList,\n Fields: Fields,\n FieldWithForm: FieldWithForm,\n Font: FontField,\n FontFamily: FontFamily,\n Fonts: FontsField,\n FontSize: FontSize,\n FontStyleWithAlign: FontStyles$1,\n GeoPosition: GeoPosition,\n GridLayout: GridLayout,\n Image: ImageField,\n Images: ImagesField,\n ImageStyle: ImageStyleField,\n InputElement: TextElement$1,\n InputGroup: InputGroup,\n Items: ItemsField,\n Map: MapField,\n Margin: MarginField,\n Markers: MarkersField,\n Marker: MarkerField,\n Message: MessageField,\n Number: NumberField,\n Fit: ObjectFitSize,\n Radios: Radios,\n Position: Position,\n Question: QuestionField,\n ScreenLayout: ScreenLayoutField,\n Select: SelectField,\n SelectAdvanced: SelectAdvancedField,\n Slide: SlideField,\n Slider: SliderField,\n SliderPixel: SliderPixelField$1,\n SliderPercentage: SliderPixelField,\n SliderPoint: SliderPointField,\n Slides: SlidesField,\n Spacing: Spacing,\n StaticField: StaticField,\n Target: TargetField,\n Text: TextField$1,\n TextEditor: TextEditorField,\n TextElement: TextElement,\n TextTransform: FontStyles,\n Toggle: ToggleField,\n Tokens: Tokens,\n Url: UrlField,\n Video: VideoField,\n Visual: VisualField,\n Visuals: VisualsField,\n VisualsWithCaption: VisualsWithCaptionField\n});\n\n/* eslint-disable react/jsx-props-no-spreading */\nvar propTypes = {\n children: PropTypes$1.node.isRequired\n};\nvar defaultProps = {};\n\nvar FieldsProvider = function FieldsProvider(_ref) {\n var children = _ref.children;\n return /*#__PURE__*/React.createElement(ComponentsProvider, {\n namespace: FIELDS_NAMESPACE,\n components: components\n }, /*#__PURE__*/React.createElement(FieldsProvider$1, {\n manager: manager\n }, children));\n};\n\nFieldsProvider.propTypes = propTypes;\nFieldsProvider.defaultProps = defaultProps;\n\nexport default manager;\nexport { AdFormatField as AdFormat, AnswerField as Answer, AnswersField as Answers, AudioField as Audio, AutocompleteField as Autocomplete, BorderRadius, BorderStyle, BorderWidth, CallToAction, Checkboxes, ClosedCaptionField as ClosedCaptions, ColorField as Color, ColorPickerField as ColorPicker, ContainerStyleField as ContainerStyle, ElementField as Element, ElementList, FieldWithForm, Fields, FieldsProvider, ObjectFitSize as Fit, FontField as Font, FontFamily, FontSize, FontStyles$1 as FontStyleWithAlign, FontsField as Fonts, GeoPosition, GridLayout, ImageField as Image, ImageStyleField as ImageStyle, ImagesField as Images, TextElement$1 as InputElement, InputGroup, ItemsField as Items, MapField as Map, MarginField as Margin, MarkerField as Marker, MarkersField as Markers, MessageField as Message, NumberField as Number, Position, QuestionField as Question, Radios, ScreenLayoutField as ScreenLayout, SelectField as Select, SelectAdvancedField as SelectAdvanced, SlideField as Slide, SliderField as Slider, SliderPixelField as SliderPercentage, SliderPixelField$1 as SliderPixel, SliderPointField as SliderPoint, SlidesField as Slides, Spacing, StaticField, TargetField as Target, TextField$1 as Text, TextEditorField as TextEditor, TextElement, FontStyles as TextTransform, ToggleField as Toggle, Tokens, UrlField as Url, VideoField as Video, VisualField as Visual, VisualsField as Visuals, VisualsWithCaptionField as VisualsWithCaption };\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';\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 { Helmet } from 'react-helmet';\nimport classNames from 'classnames';\nimport { useIntl, FormattedMessage } from 'react-intl';\nimport { useDrag } from 'react-use-gesture';\nimport { useSpring, config } from '@react-spring/core';\nimport { animated } from '@react-spring/web';\nimport { useDocumentEvent, useParsedStory, useLoadedFonts, useTrackScreenView, useTrackEvent, useScreenSizeFromElement, useResizeObserver, useFullscreen } from '@micromag/core/hooks';\nimport { getStyleFromColor, getStyleFromText, getDeviceScreens } from '@micromag/core/utils';\nimport { Screen, Button, ScreenPreview, Meta, FontFaces } from '@micromag/core/components';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faTimes, faShare, faCompress, faExpand } from '@fortawesome/free-solid-svg-icons';\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-screen-container\",\"current\":\"micromag-viewer-screen-current\"};\n\nvar propTypes$8 = {\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};\nvar defaultProps$8 = {\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};\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 return screen !== null ? /*#__PURE__*/React.createElement(\"div\", {\n className: classNames([styles$6.container, (_ref2 = {}, _defineProperty(_ref2, styles$6.active, active), _defineProperty(_ref2, styles$6.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 })) : null;\n};\n\nViewerScreen.propTypes = propTypes$8;\nViewerScreen.defaultProps = defaultProps$8;\n\nvar styles$5 = {};\n\nvar propTypes$7 = {\n size: PropTypes.number,\n spacing: PropTypes.number,\n color: PropTypes.string,\n className: PropTypes.string\n};\nvar defaultProps$7 = {\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$5.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$7;\nMenuIcon.defaultProps = defaultProps$7;\n\nvar styles$4 = {\"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 propTypes$6 = {\n direction: PropTypes.oneOf(['horizontal', 'vertical']),\n withShadow: PropTypes.bool,\n items: PropTypes$1.menuItems,\n current: PropTypes.number,\n onClickItem: PropTypes.func,\n colorAccent: PropTypes.string,\n colorBackground: PropTypes.string,\n closeable: PropTypes.bool,\n onClose: PropTypes.func,\n className: PropTypes.string\n};\nvar defaultProps$6 = {\n direction: 'horizontal',\n withShadow: false,\n items: [],\n current: 0,\n onClickItem: null,\n colorAccent: 'rgba(255, 255, 255, 1)',\n colorBackground: 'rgba(200, 200, 200, 0.5)',\n closeable: false,\n onClose: null,\n className: null\n};\n\nvar ViewerMenuDots = function ViewerMenuDots(_ref) {\n var _ref2;\n\n var direction = _ref.direction,\n withShadow = _ref.withShadow,\n items = _ref.items,\n current = _ref.current,\n onClickItem = _ref.onClickItem,\n colorAccent = _ref.colorAccent,\n colorBackground = _ref.colorBackground,\n closeable = _ref.closeable,\n onClose = _ref.onClose,\n className = _ref.className;\n var intl = useIntl();\n return /*#__PURE__*/React.createElement(\"nav\", {\n className: classNames([styles$4.container, (_ref2 = {}, _defineProperty(_ref2, className, className !== null), _defineProperty(_ref2, styles$4.vertical, direction === 'vertical'), _defineProperty(_ref2, styles$4.withShadow, withShadow), _ref2)]),\n \"aria-label\": intl.formatMessage({\n \"id\": \"wCsW9o\",\n \"defaultMessage\": [{\n \"type\": 0,\n \"value\": \"Screen shortcuts list\"\n }]\n })\n }, /*#__PURE__*/React.createElement(\"ul\", {\n className: styles$4.items\n }, items.map(function (item, index) {\n return /*#__PURE__*/React.createElement(\"li\", {\n className: classNames([styles$4.item, _defineProperty({}, styles$4.active, current === index)]),\n key: \"item-\".concat(index)\n }, /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n className: styles$4.button,\n onClick: function onClick() {\n if (onClickItem !== null) {\n onClickItem(index);\n }\n },\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: index + 1\n })\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: styles$4.dot,\n style: {\n backgroundColor: index <= current ? colorAccent : colorBackground\n }\n })));\n }), /*#__PURE__*/React.createElement(\"li\", {\n className: styles$4.menu\n }, /*#__PURE__*/React.createElement(MenuIcon, {\n className: styles$4.menuIcon,\n color: colorAccent\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$4.menuButton,\n onClick: function onClick() {\n if (onClickItem !== null) {\n onClickItem(null);\n }\n }\n })), closeable ? /*#__PURE__*/React.createElement(\"li\", {\n className: styles$4.closeButton,\n style: {\n color: colorAccent\n }\n }, /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n className: styles$4.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$6;\nViewerMenuDots.defaultProps = defaultProps$6;\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$5 = {\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$5 = {\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$5;\nShareModal.defaultProps = defaultProps$5;\n\nvar styles$2 = {\"container\":\"micromag-viewer-partials-share-button-container\",\"shareModal\":\"micromag-viewer-partials-share-button-shareModal\"};\n\nvar propTypes$4 = {\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$4 = {\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$4;\nShareButton.defaultProps = defaultProps$4;\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\",\"disabled\":\"micromag-viewer-menus-menu-preview-disabled\",\"header\":\"micromag-viewer-menus-menu-preview-header\",\"button\":\"micromag-viewer-menus-menu-preview-button\",\"shareButton\":\"micromag-viewer-menus-menu-preview-shareButton\",\"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$3 = {\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$3 = {\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 brandImageUrl = _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 tabIndex: focusable ? '0' : '-1'\n }));\n })))))) : null;\n};\n\nViewerMenuPreview.propTypes = propTypes$3;\nViewerMenuPreview.defaultProps = defaultProps$3;\n\nvar styles = {\"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 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 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 className: null\n};\n\nvar Viewer = function Viewer(_ref) {\n var _ref14;\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 className = _ref.className;\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 trackScreenView = useTrackScreenView();\n var trackEvent = useTrackEvent();\n var contentRef = useRef(null); // Get screen size\n\n var _useScreenSizeFromEle = useScreenSizeFromElement({\n width: width,\n height: height,\n screens: deviceScreens\n }),\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 useEffect(function () {\n if (onViewModeChange !== null) {\n onViewModeChange({\n landscape: landscape\n });\n }\n }, [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; // Screen index\n\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 var changeIndex = useCallback(function (index) {\n if (index === screenIndex) {\n return;\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 onScreenPrevious = useCallback(function () {\n changeIndex(Math.max(0, screenIndex - 1));\n }, [changeIndex]);\n var onScreenNext = useCallback(function () {\n changeIndex(Math.min(screens.length - 1, screenIndex + 1));\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 useEffect(function () {\n setScreensInteractionEnabled(_toConsumableArray(Array(screensCount).keys()).map(function () {\n return true;\n }));\n }, [screensCount]);\n var currentScreenInteractionEnabled = screensInteractionEnabled[screenIndex];\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 }); // 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 setMenuSpring.start({\n y: menuOpened.current ? 0 : 1\n });\n menuOpened.current = !menuOpened.current;\n setPreviewMenuOpen(menuOpened.current);\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, screenId, screenType, onInteractionPrivate]); // handle preview menu item click\n\n var onClickPreviewMenuItem = useCallback(function (index) {\n changeIndex(index);\n setMenuSpring.start({\n y: 0\n });\n menuOpened.current = false;\n setPreviewMenuOpen(false);\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 closePreviewMenu = useCallback(function () {\n if (menuOpened.current) {\n setMenuSpring.start({\n y: 0\n });\n menuOpened.current = false;\n setPreviewMenuOpen(false);\n }\n }, [setMenuSpring, setPreviewMenuOpen]);\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 withoutScreensTransforms = isStatic || isCapture;\n var hasSize = screenWidth > 0 && screenHeight > 0;\n var ready = hasSize; // && fontsLoaded;\n\n var menuVisible = screensCount === 0 || currentScreenInteractionEnabled;\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 keyCode = e.keyCode;\n\n switch (keyCode) {\n case 27:\n closePreviewMenu();\n break;\n\n case 37:\n // left\n onScreenPrevious();\n break;\n\n case 39: // right\n\n case 32:\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 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.container, screenSize.screens.map(function (screenName) {\n return \"story-screen-\".concat(screenName);\n }), (_ref14 = {}, _defineProperty(_ref14, styles.landscape, landscape), _defineProperty(_ref14, styles.hideMenu, !menuVisible), _defineProperty(_ref14, styles.ready, ready || withoutScreensTransforms), _defineProperty(_ref14, className, className), _ref14)]),\n ref: containerRef,\n onContextMenu: onContextMenu\n }, !withoutMenu ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"div\", Object.assign({\n className: styles.menuDotsContainer,\n ref: menuDotsContainerRef,\n style: {\n width: screenWidth\n }\n }, menuDragBind()), /*#__PURE__*/React.createElement(ViewerMenuDots, {\n direction: \"horizontal\",\n withShadow: menuOverScreen,\n items: screens,\n current: screenIndex,\n onClickItem: onClickDotsMenuItem,\n closeable: closeable,\n onClose: onClose,\n className: styles.menuDots\n })), /*#__PURE__*/React.createElement(animated.div, {\n className: styles.menuPreviewContainer,\n style: menuPreviewStyle,\n ref: menuPreviewContainerRef\n }, /*#__PURE__*/React.createElement(ViewerMenuPreview, {\n viewerTheme: viewerTheme,\n title: title,\n shareUrl: shareUrl,\n className: styles.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.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 });\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(\"div\", {\n key: key,\n style: {\n width: landscape ? screenWidth : null,\n height: landscape ? screenHeight : null,\n transform: !withoutScreensTransforms ? screenTransform : null\n },\n className: classNames([styles.screen, _defineProperty({}, styles.current, current)]),\n onClick: function onClick(e) {\n onScreenClick(e, i);\n }\n }, viewerScreen, current && screenIndex > 0 ? /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n className: \"sr-only\",\n onClick: onScreenPrevious\n }, /*#__PURE__*/React.createElement(FormattedMessage, {\n id: \"zYH/31\",\n defaultMessage: [{\n \"type\": 0,\n \"value\": \"Go to previous screen\"\n }]\n })) : null, current && screenIndex < screens.length ? /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n className: \"sr-only\",\n onClick: onScreenNext\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 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, [\"children\", \"onScreenChange\"]);\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 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, [\"story\", \"memoryRouter\", \"basePath\", \"routes\", \"withoutRouter\", \"googleApiKey\", \"trackingVariables\", \"locale\", \"locales\", \"translations\"]);\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 return _objectSpread({\n storyId: id,\n storySlug: slug,\n storyTitle: title\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 default ViewerContainer;\nexport { Viewer };\n","import React from 'react';\nimport { render } from 'react-dom';\nimport Viewer from '@micromag/viewer';\nimport '@micromag/viewer/scss/styles.scss';\nimport './index.css';\n\nfunction renderStory(story, props = {}) {\n render(\n React.createElement(Viewer, {\n ...(typeof window.MICROMAG_VIEWER_PROPS !== 'undefined'\n ? window.MICROMAG_VIEWER_PROPS\n : null),\n ...props,\n story,\n }),\n document.getElementById('root'),\n );\n}\n\nif (typeof window.MICROMAG_STORY !== 'undefined') {\n renderStory(window.MICROMAG_STORY);\n} else {\n window.renderStory = renderStory;\n}\n"],"sourceRoot":""}