entry_types/scrolled/package/src/frontend/index.js
import './webpackPublicPath';
import './polyfills';
import './globalNotices.module.css';
import React from 'react';
import ReactDOM from 'react-dom';
import {Entry} from './Entry';
import {setupI18n} from './i18n';
import './global.module.css';
import styles from './foregroundBoxes/GradientBox.module.css';
import {RootProviders} from './RootProviders';
import {loadInlineEditingComponents} from './inlineEditing';
import {loadDashUnlessHlsSupported} from './dash';
import {registerConsentVendors} from './thirdPartyConsent';
import {browser, consent, features} from 'pageflow/frontend';
import {api} from './api';
const editMode = (typeof window !== 'undefined') && window.location.pathname.indexOf('/editor/entries') === 0;
export const withShadowClassName = styles.withShadow;
export {api as frontend} from './api';
export * from './Image';
export * from './Figure';
export * from './Text';
export * from './MediaPlayer';
export * from './VideoPlayer';
export * from './AudioPlayer';
export * from './Atmo';
export * from './useAtmo';
export {ContentElementBox} from './ContentElementBox';
export {ContentElementFigure} from './ContentElementFigure';
export {MediaInteractionTracking} from './MediaInteractionTracking';
export {MediaPlayerControls} from './MediaPlayerControls';
export {VideoPlayerControls} from './VideoPlayerControls';
export {AudioPlayerControls} from './AudioPlayerControls';
export {PlayerControls, ClassicPlayerControls, WaveformPlayerControls} from './PlayerControls';
export {PlayerEventContextDataProvider} from './useEventContextData';
export {Panorama} from './Panorama';
export {ExpandableImage} from './ExpandableImage';
export {ToggleFullscreenCornerButton} from './ToggleFullscreenCornerButton';
export {FullscreenViewer} from './FullscreenViewer';
export * from './useOnScreen';
export * from './i18n';
export * from './SectionThumbnail';
export {Entry} from './Entry';
export {useAudioFocus} from './useAudioFocus';
export {useDarkBackground} from './backgroundColor';
export {
useAdditionalSeedData,
useChapters,
useCredits,
useEntryMetadata,
useEntryStateDispatch,
useEntryTranslations,
useFile,
useFileRights,
useFileWithInlineRights,
useLegalInfo,
useTheme,
useShareProviders,
useShareUrl
} from '../entryState';
export {useContentElementConfigurationUpdate} from './useContentElementConfigurationUpdate';
export {useContentElementEditorCommandSubscription} from './useContentElementEditorCommandSubscription';
export {useContentElementEditorState} from './useContentElementEditorState';
export {useContentElementLifecycle} from './useContentElementLifecycle';
export {useCurrentChapter} from './useCurrentChapter';
export {useIsStaticPreview} from './useScrollPositionLifecycle';
export {useMediaMuted, useOnUnmuteMedia} from './useMediaMuted';
export {usePortraitOrientation} from './usePortraitOrientation';
export {useScrollPosition} from './useScrollPosition';
export {usePhonePlatform} from './usePhonePlatform';
export {EditableText} from './EditableText';
export {EditableInlineText} from './EditableInlineText';
export {PhonePlatformProvider} from './PhonePlatformProvider';
export {
OptIn as ThirdPartyOptIn,
OptOutInfo as ThirdPartyOptOutInfo,
useConsentRequested
} from './thirdPartyConsent';
export {FitViewport} from './FitViewport';
export {Tooltip} from './Tooltip';
export {ThemeIcon} from './ThemeIcon';
export {InlineFileRights} from './InlineFileRights';
export {textColorForBackgroundColor} from './textColorForBackgroundColor';
export {getTransitionNames, getAvailableTransitionNames} from './transitions';
export {RootProviders, registerConsentVendors};
export {default as registerTemplateWidgetType} from './registerTemplateWidgetType';
export {Widget} from './Widget';
export {utils} from './utils';
export {paletteColor} from './paletteColor';
export {
widths as contentElementWidths,
widthName as contentElementWidthName
} from './layouts';
global.pageflowScrolledRender = async function(seed) {
setupI18n(seed.i18n);
features.enable('frontend', seed.config.enabledFeatureNames)
await browser.detectFeatures();
await loadDashUnlessHlsSupported(seed);
if (editMode) {
await loadInlineEditingComponents();
}
else {
registerConsentVendors({
contentElementTypes: api.contentElementTypes,
consent,
seed
});
}
render(seed);
}
global.pageflowScrolledRegisterUpdateSeedHandler = function() {
if (window.parent !== window) {
window.addEventListener('message', receive);
}
function receive(message) {
if (window.location.href.indexOf(message.origin) === 0) {
if (message.data.type === 'UPDATE_SEED') {
render(message.data.payload);
}
}
}
}
function render(seed) {
if (editMode) {
ReactDOM.render(<Root seed={seed} />, document.getElementById('root'));
}
else {
ReactDOM.hydrate(<Root seed={seed} />, document.getElementById('root'));
}
}
export function Root({seed}) {
return (
<RootProviders seed={seed}>
<Entry />
</RootProviders>
);
}