pageflow 16.0.0 → 16.1.0
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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +210 -33
- data/README.md +0 -1
- data/Rakefile +1 -1
- data/admins/pageflow/entry.rb +0 -1
- data/admins/pageflow/sites.rb +3 -0
- data/app/assets/javascripts/pageflow/dist/ui.js +298 -72
- data/app/assets/stylesheets/pageflow/admin/permalink_input.scss +10 -0
- data/app/assets/stylesheets/pageflow/editor/drop_down_button.scss +6 -1
- data/app/assets/stylesheets/pageflow/editor/file_thumbnails.scss +4 -0
- data/app/assets/stylesheets/pageflow/editor/help.scss +3 -3
- data/app/assets/stylesheets/pageflow/editor/info_box.scss +7 -0
- data/app/assets/stylesheets/pageflow/editor/inputs/file_input.scss +0 -5
- data/app/assets/stylesheets/pageflow/ui/forms.scss +1 -1
- data/app/controllers/pageflow/chapters_controller.rb +2 -2
- data/app/controllers/pageflow/editor/files_controller.rb +1 -1
- data/app/controllers/pageflow/entries_controller.rb +10 -0
- data/app/controllers/pageflow/feeds_controller.rb +18 -0
- data/app/controllers/pageflow/pages_controller.rb +2 -2
- data/app/controllers/pageflow/sitemaps_controller.rb +15 -0
- data/app/controllers/pageflow/storylines_controller.rb +2 -2
- data/app/helpers/pageflow/entries_helper.rb +2 -1
- data/app/helpers/pageflow/feeds_helper.rb +66 -0
- data/app/helpers/pageflow/page_types_helper.rb +9 -9
- data/app/inputs/pageflow_permalink_input.rb +15 -3
- data/app/models/concerns/pageflow/reusable_file.rb +3 -3
- data/app/models/pageflow/account.rb +8 -0
- data/app/models/pageflow/audio_file_url_templates.rb +2 -1
- data/app/models/pageflow/draft_entry.rb +1 -1
- data/app/models/pageflow/entries_feed.rb +32 -0
- data/app/models/pageflow/image_file.rb +14 -3
- data/app/models/pageflow/membership.rb +3 -2
- data/app/models/pageflow/other_file.rb +5 -0
- data/app/models/pageflow/other_file_url_templates.rb +16 -0
- data/app/models/pageflow/published_entry.rb +6 -0
- data/app/models/pageflow/revision.rb +4 -0
- data/app/models/pageflow/site.rb +8 -0
- data/app/models/pageflow/sitemaps.rb +13 -0
- data/app/models/pageflow/used_file.rb +2 -2
- data/app/models/pageflow/video_file_url_templates.rb +3 -1
- data/app/models/pageflow/widget.rb +9 -1
- data/app/views/admin/entries/_permalink_inputs.html.erb +1 -2
- data/app/views/admin/sites/_attributes_table.html.arb +3 -0
- data/app/views/admin/sites/_fields.html.erb +6 -0
- data/app/views/components/pageflow/admin/extensible_attributes_table.rb +8 -2
- data/app/views/components/pageflow/admin/sites_tab.rb +3 -0
- data/app/views/pageflow/editor/config/_seeds.json.jbuilder +1 -0
- data/app/views/pageflow/feeds/index.atom.builder +20 -0
- data/app/views/pageflow/sitemaps/index.xml.builder +9 -0
- data/config/initializers/features.rb +1 -0
- data/config/initializers/paperclip.rb +4 -0
- data/config/locales/de.yml +27 -6
- data/config/locales/en.yml +30 -4
- data/config/routes.rb +3 -0
- data/config/spring.rb +1 -1
- data/db/migrate/20230120092923_create_other_files.rb +23 -0
- data/db/migrate/20230323115745_add_feeds_enabled_to_sites.rb +5 -0
- data/db/migrate/20230323154323_add_sitemap_enabled_to_sites.rb +5 -0
- data/db/migrate/20230331103823_add_title_to_sites.rb +5 -0
- data/db/migrate/20230405103612_add_custom_feed_url_to_sites.rb +5 -0
- data/entry_types/paged/app/assets/javascripts/pageflow_paged/dist/editor.js +445 -109
- data/entry_types/paged/app/assets/javascripts/pageflow_paged/dist/frontend.js +26 -3
- data/entry_types/paged/app/controllers/pageflow_paged/editor/entries_controller.rb +0 -2
- data/entry_types/paged/app/controllers/pageflow_paged/entries_controller.rb +1 -0
- data/entry_types/paged/app/views/pageflow_paged/entries/show.html.erb +1 -0
- data/entry_types/paged/config/initializers/features.rb +0 -1
- data/entry_types/paged/lib/pageflow_paged/engine.rb +17 -1
- data/entry_types/scrolled/app/controllers/pageflow_scrolled/editor/chapters_controller.rb +2 -2
- data/entry_types/scrolled/app/controllers/pageflow_scrolled/editor/content_elements_controller.rb +3 -4
- data/entry_types/scrolled/app/controllers/pageflow_scrolled/editor/sections_controller.rb +13 -6
- data/entry_types/scrolled/app/controllers/pageflow_scrolled/entries_controller.rb +2 -0
- data/entry_types/scrolled/app/helpers/pageflow_scrolled/cache_helper.rb +11 -0
- data/entry_types/scrolled/app/helpers/pageflow_scrolled/editor/entry_json_seed_helper.rb +42 -0
- data/entry_types/scrolled/app/helpers/pageflow_scrolled/editor/seed_html_helper.rb +3 -0
- data/entry_types/scrolled/app/helpers/pageflow_scrolled/packs_helper.rb +31 -10
- data/entry_types/scrolled/app/helpers/pageflow_scrolled/react_server_side_rendering_helper.rb +9 -1
- data/entry_types/scrolled/app/helpers/pageflow_scrolled/themes_helper.rb +3 -1
- data/entry_types/scrolled/app/models/pageflow_scrolled/chapter.rb +23 -0
- data/entry_types/scrolled/app/views/pageflow_scrolled/editor/entries/_head.html.erb +6 -1
- data/entry_types/scrolled/app/views/pageflow_scrolled/editor/entries/_seed.json.jbuilder +1 -5
- data/entry_types/scrolled/app/views/pageflow_scrolled/editor/sections/_section_with_content_elements.json.jbuilder +10 -0
- data/entry_types/scrolled/app/views/pageflow_scrolled/entries/show.html.erb +44 -41
- data/entry_types/scrolled/app/views/pageflow_scrolled/entry_json_seed/_consent_vendors.json.jbuilder +16 -0
- data/entry_types/scrolled/app/views/pageflow_scrolled/entry_json_seed/_entry.json.jbuilder +3 -0
- data/entry_types/scrolled/config/initializers/features.rb +5 -0
- data/entry_types/scrolled/config/locales/consent_widget.de.yml +4 -0
- data/entry_types/scrolled/config/locales/consent_widget.en.yml +4 -0
- data/entry_types/scrolled/config/locales/de.yml +189 -8
- data/entry_types/scrolled/config/locales/en.yml +207 -2
- data/entry_types/scrolled/config/routes.rb +4 -0
- data/entry_types/scrolled/lib/generators/pageflow_scrolled/install/install_generator.rb +97 -5
- data/entry_types/scrolled/lib/pageflow_scrolled/additional_seed_data.rb +1 -1
- data/entry_types/scrolled/lib/pageflow_scrolled/configuration.rb +96 -0
- data/entry_types/scrolled/lib/pageflow_scrolled/content_element_consent_vendors.rb +38 -0
- data/entry_types/scrolled/lib/pageflow_scrolled/engine.rb +17 -1
- data/entry_types/scrolled/lib/pageflow_scrolled/plugin.rb +24 -0
- data/entry_types/scrolled/lib/pageflow_scrolled/react_widget_type.rb +6 -1
- data/entry_types/scrolled/lib/tasks/pageflow_scrolled/storybook.rake +1 -2
- data/entry_types/scrolled/package/contentElements-editor.js +307 -22
- data/entry_types/scrolled/package/contentElements-frontend.css +1 -1
- data/entry_types/scrolled/package/contentElements-frontend.js +690 -71
- data/entry_types/scrolled/package/editor.js +616 -220
- data/entry_types/scrolled/package/frontend/{EditableInlineText.module-14c7b097.js → EditableInlineText.module-fa9e3aff.js} +1669 -1674
- data/entry_types/scrolled/package/frontend/PhonePlatformContext-10a1d600.js +32 -0
- data/entry_types/scrolled/package/frontend/ToggleFullscreenCornerButton-727cce0d.js +107 -0
- data/entry_types/scrolled/package/frontend/Viewer-169e14ca.js +154 -0
- data/entry_types/scrolled/package/frontend/{Viewer-b6becc57.js → Viewer-ee1aa590.js} +32 -161
- data/entry_types/scrolled/package/frontend/arrowRight-92a34ccc.js +77 -0
- data/entry_types/scrolled/package/frontend/{components-b3160dd7.js → components-4a09bfa3.js} +185 -45
- data/entry_types/scrolled/package/frontend/{PhonePlatformContext-f6093cc6.js → i18n-ddd92820.js} +149 -107
- data/entry_types/scrolled/package/frontend/index-02378634.js +118 -0
- data/entry_types/scrolled/package/frontend/index.css +1 -1
- data/entry_types/scrolled/package/frontend/index.js +206 -54
- data/entry_types/scrolled/package/frontend/useContentElementEditorState-63045393.js +52 -0
- data/entry_types/scrolled/package/package.json +2 -1
- data/entry_types/scrolled/package/testHelpers.js +9 -2
- data/entry_types/scrolled/package/values/colors.module.css +15 -0
- data/entry_types/scrolled/package/widgets/consentBar.css +1 -0
- data/entry_types/scrolled/package/widgets/consentBar.js +426 -0
- data/entry_types/scrolled/package/widgets/defaultNavigation.css +1 -1
- data/lib/generators/pageflow/resque/resque_generator.rb +1 -1
- data/lib/pageflow/ability_mixin.rb +5 -5
- data/lib/pageflow/active_admin_can_can_fix.rb +2 -2
- data/lib/pageflow/built_in_file_type.rb +7 -0
- data/lib/pageflow/configuration.rb +21 -0
- data/lib/pageflow/engine.rb +60 -39
- data/lib/pageflow/entry_export_import/revision_serialization.rb +1 -1
- data/lib/pageflow/file_type.rb +2 -2
- data/lib/pageflow/global_config_api.rb +2 -2
- data/lib/pageflow/nested_revision_component.rb +23 -5
- data/lib/pageflow/rails_version.rb +19 -0
- data/lib/pageflow/seeds.rb +10 -7
- data/lib/pageflow/version.rb +1 -1
- data/lib/pageflow/widget_types.rb +4 -0
- data/package/config/webpack5.js +14 -0
- data/package/editor.js +141 -30
- data/package/frontend.js +26 -2
- data/package/testHelpers.js +1 -1
- data/package/ui.js +296 -71
- data/spec/factories/entries.rb +17 -3
- data/spec/factories/sites.rb +3 -0
- data/vendor/assets/javascripts/iscroll.js +4 -7
- metadata +65 -49
- data/app/helpers/pageflow/admin/permalinks_helper.rb +0 -15
- data/entry_types/scrolled/package/frontend/arrowRight-78a7cee4.js +0 -42
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import 'regenerator-runtime';
|
|
2
|
-
import { E as EventContextDataProvider, C as ConnectedSection, u as usePrevious, g as getEventObject, w as withInlineEditingDecorator, a as useCurrentSectionIndexState, b as usePostMessageListener, c as contentStyles, A as AtmoProvider, S as ScrollToSectionContext, d as api,
|
|
3
|
-
export {
|
|
2
|
+
import { E as EventContextDataProvider, C as ConnectedSection, u as usePrevious, g as getEventObject, w as withInlineEditingDecorator, a as useCurrentSectionIndexState, b as usePostMessageListener, c as contentStyles, A as AtmoProvider, S as ScrollToSectionContext, d as api, _ as _asyncToGenerator, e as _regeneratorRuntime, f as withInlineEditingAlternative, h as useDarkBackground, i as EditableText, j as useContentElementConfigurationUpdate, k as useContentElementAttributes, l as widths, m as useTextTracks, n as useMediaMuted, o as useFocusOutlineVisible, p as useVideoQualitySetting, q as useIsomorphicLayoutEffect, r as frontendStyles, s as useFullscreenDimensions, t as information, v as camelize, x as styles$a, R as RootProviders, y as registerVendors, z as loadInlineEditingComponents } from './EditableInlineText.module-fa9e3aff.js';
|
|
3
|
+
export { a3 as Atmo, a4 as AtmoContext, A as AtmoProvider, a1 as AudioPlayer, i as EditableText, V as Image, X as MediaPlayer, K as PhonePlatformProvider, P as PlayerEventContextDataProvider, R as RootProviders, a8 as SectionThumbnail, a7 as StandaloneSectionThumbnail, W as Text, O as ThirdPartyOptIn, L as ThirdPartyOptOutInfo, a0 as VideoPlayer, U as contentElementWidthName, l as contentElementWidths, d as frontend, Q as getAvailableTransitionNames, Y as getInitialPlayerState, N as getTransitionNames, T as paletteColor, Z as playerStateReducer, a2 as processSources, y as registerConsentVendors, a5 as useAtmo, B as useAudioFocus, M as useConsentRequested, j as useContentElementConfigurationUpdate, D as useContentElementEditorCommandSubscription, F as useContentElementLifecycle, G as useCurrentChapter, h as useDarkBackground, H as useIsStaticPreview, n as useMediaMuted, a6 as useOnScreen, I as useOnUnmuteMedia, $ as usePlayerState, J as usePortraitOrientation } from './EditableInlineText.module-fa9e3aff.js';
|
|
4
4
|
import 'core-js/modules/es.symbol';
|
|
5
5
|
import 'core-js/modules/es.symbol.description';
|
|
6
6
|
import 'core-js/modules/es.symbol.async-iterator';
|
|
@@ -74,23 +74,28 @@ import 'core-js/modules/esnext.symbol.pattern-match';
|
|
|
74
74
|
import 'core-js/modules/web.dom-collections.iterator';
|
|
75
75
|
import 'regenerator-runtime/runtime.js';
|
|
76
76
|
import { browser, events, consent, features } from 'pageflow/frontend';
|
|
77
|
-
import React, { useRef, useState, useEffect, useCallback, Suspense, useContext } from 'react';
|
|
77
|
+
import React, { useRef, useState, useEffect, useCallback, useMemo, Suspense, useContext } from 'react';
|
|
78
78
|
import ReactDOM from 'react-dom';
|
|
79
|
-
import {
|
|
80
|
-
export { L as LocaleProvider,
|
|
81
|
-
import '
|
|
79
|
+
import { _ as _slicedToArray, j as useSectionsWithChapter, p as useEntryStructure, q as useWidget, r as getFileUrlTemplateHost, u as useI18n, b as _defineProperty, a as _objectSpread2, e as _objectWithoutProperties, g as useTheme, l as _toConsumableArray, s as useAvailableQualities, t as setupI18n } from './i18n-ddd92820.js';
|
|
80
|
+
export { L as LocaleProvider, t as setupI18n, i as useAdditionalSeedData, v as useChapters, w as useCredits, n as useEntryStateDispatch, f as useFile, x as useFileRights, u as useI18n, y as useLegalInfo, B as useLocale, z as useShareProviders, A as useShareUrl, g as useTheme } from './i18n-ddd92820.js';
|
|
81
|
+
import classNames from 'classnames';
|
|
82
|
+
import { a as useContentElementEditorState } from './useContentElementEditorState-63045393.js';
|
|
83
|
+
export { a as useContentElementEditorState } from './useContentElementEditorState-63045393.js';
|
|
82
84
|
import 'use-context-selector';
|
|
83
85
|
import 'reselect';
|
|
84
86
|
import 'slugify';
|
|
85
|
-
import classNames from 'classnames';
|
|
86
87
|
import './createSuper-d0f30da3.js';
|
|
87
88
|
import 'backbone-events-standalone';
|
|
89
|
+
import 'i18n-js';
|
|
90
|
+
import './PhonePlatformContext-10a1d600.js';
|
|
91
|
+
import stripTags from 'striptags';
|
|
88
92
|
import Measure from 'react-measure';
|
|
89
93
|
import { DraggableCore } from 'react-draggable';
|
|
90
|
-
|
|
91
|
-
export {
|
|
94
|
+
export { T as ToggleFullscreenCornerButton } from './ToggleFullscreenCornerButton-727cce0d.js';
|
|
95
|
+
export { F as FullscreenViewer } from './index-02378634.js';
|
|
96
|
+
import { A as ArrowRightIcon, a as ArrowLeftIcon } from './arrowRight-92a34ccc.js';
|
|
97
|
+
export { u as usePhonePlatform } from './arrowRight-92a34ccc.js';
|
|
92
98
|
import invert from 'invert-color';
|
|
93
|
-
import stripTags from 'striptags';
|
|
94
99
|
|
|
95
100
|
var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
|
|
96
101
|
|
|
@@ -326,7 +331,9 @@ function Widget(_ref) {
|
|
|
326
331
|
}
|
|
327
332
|
|
|
328
333
|
function Entry() {
|
|
329
|
-
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(
|
|
334
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Widget, {
|
|
335
|
+
role: "consent"
|
|
336
|
+
}), /*#__PURE__*/React.createElement(Widget, {
|
|
330
337
|
role: "header"
|
|
331
338
|
}), /*#__PURE__*/React.createElement(Content, null), /*#__PURE__*/React.createElement(Widget, {
|
|
332
339
|
role: "footer"
|
|
@@ -374,27 +381,92 @@ function hlsHostSupportedByAndroid(seed) {
|
|
|
374
381
|
return getFileUrlTemplateHost(seed, 'videoFiles', 'hls-playlist').indexOf('_') < 0;
|
|
375
382
|
}
|
|
376
383
|
|
|
377
|
-
var
|
|
384
|
+
var ActionButton = withInlineEditingAlternative('ActionButton', function ActionButton() {
|
|
385
|
+
return null;
|
|
386
|
+
});
|
|
387
|
+
|
|
388
|
+
function isBlank(html) {
|
|
389
|
+
return !!stripTags(html).match(/^\s*$/);
|
|
390
|
+
}
|
|
391
|
+
function presence(html) {
|
|
392
|
+
return isBlank(html) ? null : html;
|
|
393
|
+
}
|
|
394
|
+
function isBlankEditableTextValue(value) {
|
|
395
|
+
var _value$0$children$;
|
|
396
|
+
|
|
397
|
+
return !value || value.length === 0 || value.length === 1 && value[0].children.length <= 1 && !((_value$0$children$ = value[0].children[0]) === null || _value$0$children$ === void 0 ? void 0 : _value$0$children$.text);
|
|
398
|
+
}
|
|
399
|
+
|
|
400
|
+
var styles = {"darkContentSurfaceColor":"var(--theme-dark-content-surface-color, #101010)","lightContentSurfaceColor":"var(--theme-light-content-surface-color, #fff)","darkContentTextColor":"var(--theme-dark-content-text-color, #222)","lightContentTextColor":"var(--theme-light-content-text-color, #fff)","contentColorScope":"colors-module_contentColorScope__2Zizr","contentLinkColor":"var(--content-link-color)","root":"Figure-module_root__3FC-x colors-module_contentColorScope__2Zizr","invert":"Figure-module_invert___0BJP"};
|
|
378
401
|
|
|
379
402
|
/**
|
|
380
403
|
* Render a figure with a caption text attached.
|
|
381
404
|
*
|
|
382
405
|
* @param {Object} props
|
|
383
406
|
* @param {string} props.children - Content of figure.
|
|
384
|
-
* @param {string} props.
|
|
407
|
+
* @param {Object[]|string} props.caption - Formatted text data as provided by onCaptionChange.
|
|
408
|
+
* @param {Function} props.onCaptionChange - Receives updated value when it changes.
|
|
409
|
+
* @param {boolean} [props.addCaptionButtonVisible=true] - Control visiblility of action button.
|
|
410
|
+
* @param {string} [props.captionButtonPosition='outside'] - Position of action button.
|
|
385
411
|
*/
|
|
386
412
|
|
|
387
413
|
function Figure(_ref) {
|
|
388
414
|
var children = _ref.children,
|
|
389
|
-
caption = _ref.caption
|
|
415
|
+
caption = _ref.caption,
|
|
416
|
+
onCaptionChange = _ref.onCaptionChange,
|
|
417
|
+
_ref$addCaptionButton = _ref.addCaptionButtonVisible,
|
|
418
|
+
addCaptionButtonVisible = _ref$addCaptionButton === void 0 ? true : _ref$addCaptionButton,
|
|
419
|
+
_ref$addCaptionButton2 = _ref.addCaptionButtonPosition,
|
|
420
|
+
addCaptionButtonPosition = _ref$addCaptionButton2 === void 0 ? 'outside' : _ref$addCaptionButton2;
|
|
390
421
|
var darkBackground = useDarkBackground();
|
|
391
422
|
|
|
392
|
-
|
|
423
|
+
var _useContentElementEdi = useContentElementEditorState(),
|
|
424
|
+
isSelected = _useContentElementEdi.isSelected,
|
|
425
|
+
isEditable = _useContentElementEdi.isEditable;
|
|
426
|
+
|
|
427
|
+
var _useState = useState(false),
|
|
428
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
429
|
+
isEditingCaption = _useState2[0],
|
|
430
|
+
setIsEditingCaption = _useState2[1];
|
|
431
|
+
|
|
432
|
+
var _useI18n = useI18n({
|
|
433
|
+
locale: 'ui'
|
|
434
|
+
}),
|
|
435
|
+
t = _useI18n.t;
|
|
436
|
+
|
|
437
|
+
caption = useMemo(function () {
|
|
438
|
+
return typeof caption === 'string' ? [{
|
|
439
|
+
type: 'paragraph',
|
|
440
|
+
children: [{
|
|
441
|
+
text: caption
|
|
442
|
+
}]
|
|
443
|
+
}] : caption;
|
|
444
|
+
}, [caption]);
|
|
445
|
+
|
|
446
|
+
if (!isBlankEditableTextValue(caption) || isEditable) {
|
|
393
447
|
return /*#__PURE__*/React.createElement("figure", {
|
|
394
448
|
className: classNames(styles.root, _defineProperty({}, styles.invert, !darkBackground))
|
|
395
|
-
}, children,
|
|
396
|
-
|
|
397
|
-
|
|
449
|
+
}, children, isBlankEditableTextValue(caption) && isSelected && !isEditingCaption && addCaptionButtonVisible && /*#__PURE__*/React.createElement(ActionButton, {
|
|
450
|
+
position: addCaptionButtonPosition,
|
|
451
|
+
icon: "pencil",
|
|
452
|
+
text: t('pageflow_scrolled.inline_editing.add_caption'),
|
|
453
|
+
onClick: function onClick() {
|
|
454
|
+
return setIsEditingCaption(true);
|
|
455
|
+
}
|
|
456
|
+
}), (!isBlankEditableTextValue(caption) || isEditingCaption) && /*#__PURE__*/React.createElement("figcaption", {
|
|
457
|
+
onBlur: function onBlur() {
|
|
458
|
+
return setIsEditingCaption(false);
|
|
459
|
+
}
|
|
460
|
+
}, /*#__PURE__*/React.createElement(EditableText, {
|
|
461
|
+
autoFocus: isEditingCaption,
|
|
462
|
+
value: caption,
|
|
463
|
+
scaleCategory: "caption",
|
|
464
|
+
onChange: onCaptionChange,
|
|
465
|
+
onlyParagraphs: true,
|
|
466
|
+
hyphens: "none",
|
|
467
|
+
floatingControlsPosition: "above",
|
|
468
|
+
placeholder: t('pageflow_scrolled.inline_editing.type_text')
|
|
469
|
+
})));
|
|
398
470
|
} else {
|
|
399
471
|
return children;
|
|
400
472
|
}
|
|
@@ -417,6 +489,31 @@ function ContentElementBox(_ref) {
|
|
|
417
489
|
}, children);
|
|
418
490
|
}
|
|
419
491
|
|
|
492
|
+
/**
|
|
493
|
+
* @param {Object} props
|
|
494
|
+
* @param {Object} props.configuration - Configuration of the content element.
|
|
495
|
+
* @param {string} props.children - Content of box.
|
|
496
|
+
*/
|
|
497
|
+
|
|
498
|
+
function ContentElementFigure(_ref) {
|
|
499
|
+
var configuration = _ref.configuration,
|
|
500
|
+
children = _ref.children;
|
|
501
|
+
var updateConfiguration = useContentElementConfigurationUpdate();
|
|
502
|
+
|
|
503
|
+
var _useContentElementAtt = useContentElementAttributes(),
|
|
504
|
+
width = _useContentElementAtt.width;
|
|
505
|
+
|
|
506
|
+
return /*#__PURE__*/React.createElement(Figure, {
|
|
507
|
+
caption: configuration.caption,
|
|
508
|
+
onCaptionChange: function onCaptionChange(caption) {
|
|
509
|
+
return updateConfiguration({
|
|
510
|
+
caption: caption
|
|
511
|
+
});
|
|
512
|
+
},
|
|
513
|
+
addCaptionButtonPosition: width === widths.full ? 'outsideIndented' : 'outside'
|
|
514
|
+
}, children);
|
|
515
|
+
}
|
|
516
|
+
|
|
420
517
|
function MediaInteractionTracking(_ref) {
|
|
421
518
|
var playerState = _ref.playerState,
|
|
422
519
|
playerActions = _ref.playerActions,
|
|
@@ -1185,8 +1282,7 @@ function MediaPlayerControls(props) {
|
|
|
1185
1282
|
}, props));
|
|
1186
1283
|
}
|
|
1187
1284
|
MediaPlayerControls.defaultProps = {
|
|
1188
|
-
configuration: {}
|
|
1189
|
-
sectionProps: {}
|
|
1285
|
+
configuration: {}
|
|
1190
1286
|
};
|
|
1191
1287
|
|
|
1192
1288
|
function getTextTracksMenuItems(textTracks, t) {
|
|
@@ -1256,7 +1352,7 @@ function AudioPlayerControls(_ref) {
|
|
|
1256
1352
|
}
|
|
1257
1353
|
|
|
1258
1354
|
var Viewer = React.lazy(function () {
|
|
1259
|
-
return import('./Viewer-
|
|
1355
|
+
return import('./Viewer-ee1aa590.js');
|
|
1260
1356
|
});
|
|
1261
1357
|
function Panorama(props) {
|
|
1262
1358
|
return /*#__PURE__*/React.createElement(Suspense, {
|
|
@@ -1264,6 +1360,22 @@ function Panorama(props) {
|
|
|
1264
1360
|
}, /*#__PURE__*/React.createElement(Viewer, props));
|
|
1265
1361
|
}
|
|
1266
1362
|
|
|
1363
|
+
var Viewer$1 = React.lazy(function () {
|
|
1364
|
+
return import('./Viewer-169e14ca.js');
|
|
1365
|
+
});
|
|
1366
|
+
function ExpandableImage(_ref) {
|
|
1367
|
+
var enabled = _ref.enabled,
|
|
1368
|
+
props = _objectWithoutProperties(_ref, ["enabled"]);
|
|
1369
|
+
|
|
1370
|
+
if (!enabled) {
|
|
1371
|
+
return props.children;
|
|
1372
|
+
}
|
|
1373
|
+
|
|
1374
|
+
return /*#__PURE__*/React.createElement(Suspense, {
|
|
1375
|
+
fallback: /*#__PURE__*/React.createElement("div", null)
|
|
1376
|
+
}, /*#__PURE__*/React.createElement(Viewer$1, props));
|
|
1377
|
+
}
|
|
1378
|
+
|
|
1267
1379
|
// from https://github.com/n8tb1t/use-scroll-position
|
|
1268
1380
|
var isBrowser = typeof window !== "undefined";
|
|
1269
1381
|
|
|
@@ -1370,6 +1482,7 @@ var AspectRatioContext = React.createContext();
|
|
|
1370
1482
|
* @param {Object} props
|
|
1371
1483
|
* @param {number} [props.aspectRatio] - Aspect ratio of div.
|
|
1372
1484
|
* @param {Object} [props.file] - Use width/height of file to calculate aspect ratio.
|
|
1485
|
+
* @param {number} [props.scale] - Only take up fraction of the viewport height supplied as value between 0 and 1.
|
|
1373
1486
|
* @param {Object} [props.opaque] - Render black background behind content.
|
|
1374
1487
|
*/
|
|
1375
1488
|
|
|
@@ -1377,7 +1490,9 @@ function FitViewport(_ref) {
|
|
|
1377
1490
|
var file = _ref.file,
|
|
1378
1491
|
aspectRatio = _ref.aspectRatio,
|
|
1379
1492
|
opaque = _ref.opaque,
|
|
1380
|
-
children = _ref.children
|
|
1493
|
+
children = _ref.children,
|
|
1494
|
+
_ref$scale = _ref.scale,
|
|
1495
|
+
scale = _ref$scale === void 0 ? 1 : _ref$scale;
|
|
1381
1496
|
|
|
1382
1497
|
var _useFullscreenDimensi = useFullscreenDimensions(),
|
|
1383
1498
|
height = _useFullscreenDimensi.height;
|
|
@@ -1388,10 +1503,10 @@ function FitViewport(_ref) {
|
|
|
1388
1503
|
|
|
1389
1504
|
if (height) {
|
|
1390
1505
|
// thumbnail view/fixed size: calculate absolute width in px
|
|
1391
|
-
maxWidthCSS = height / aspectRatio + 'px';
|
|
1506
|
+
maxWidthCSS = height / aspectRatio * scale + 'px';
|
|
1392
1507
|
} else {
|
|
1393
1508
|
// published view: set max width to specific aspect ratio depending on viewport height
|
|
1394
|
-
maxWidthCSS = 100 / aspectRatio + 'vh';
|
|
1509
|
+
maxWidthCSS = 100 / aspectRatio * scale + 'vh';
|
|
1395
1510
|
}
|
|
1396
1511
|
|
|
1397
1512
|
return /*#__PURE__*/React.createElement("div", {
|
|
@@ -1615,15 +1730,15 @@ function _extends$8() {
|
|
|
1615
1730
|
|
|
1616
1731
|
return _extends$8.apply(this, arguments);
|
|
1617
1732
|
}
|
|
1618
|
-
var
|
|
1733
|
+
var gear = (function (_ref) {
|
|
1619
1734
|
var _ref$styles = _ref.styles,
|
|
1620
1735
|
props = _objectWithoutProperties(_ref, ["styles"]);
|
|
1621
1736
|
|
|
1622
1737
|
return /*#__PURE__*/React.createElement("svg", _extends$8({
|
|
1623
1738
|
xmlns: "http://www.w3.org/2000/svg",
|
|
1624
|
-
viewBox: "
|
|
1739
|
+
viewBox: "-3 -3 30 30"
|
|
1625
1740
|
}, props), /*#__PURE__*/React.createElement("path", {
|
|
1626
|
-
d: "
|
|
1741
|
+
d: "M19.43 12.98c.04-.32.07-.64.07-.98s-.03-.66-.07-.98l2.11-1.65c.19-.15.24-.42.12-.64l-2-3.46c-.12-.22-.39-.3-.61-.22l-2.49 1c-.52-.4-1.08-.73-1.69-.98l-.38-2.65A.488.488 0 0014 2h-4c-.25 0-.46.18-.49.42l-.38 2.65c-.61.25-1.17.59-1.69.98l-2.49-1c-.23-.09-.49 0-.61.22l-2 3.46c-.13.22-.07.49.12.64l2.11 1.65c-.04.32-.07.65-.07.98s.03.66.07.98l-2.11 1.65c-.19.15-.24.42-.12.64l2 3.46c.12.22.39.3.61.22l2.49-1c.52.4 1.08.73 1.69.98l.38 2.65c.03.24.24.42.49.42h4c.25 0 .46-.18.49-.42l.38-2.65c.61-.25 1.17-.59 1.69-.98l2.49 1c.23.09.49 0 .61-.22l2-3.46c.12-.22.07-.49-.12-.64l-2.11-1.65zM12 15.5c-1.93 0-3.5-1.57-3.5-3.5s1.57-3.5 3.5-3.5 3.5 1.57 3.5 3.5-1.57 3.5-3.5 3.5z"
|
|
1627
1742
|
}));
|
|
1628
1743
|
});
|
|
1629
1744
|
|
|
@@ -1644,15 +1759,15 @@ function _extends$9() {
|
|
|
1644
1759
|
|
|
1645
1760
|
return _extends$9.apply(this, arguments);
|
|
1646
1761
|
}
|
|
1647
|
-
var
|
|
1762
|
+
var email = (function (_ref) {
|
|
1648
1763
|
var _ref$styles = _ref.styles,
|
|
1649
1764
|
props = _objectWithoutProperties(_ref, ["styles"]);
|
|
1650
1765
|
|
|
1651
1766
|
return /*#__PURE__*/React.createElement("svg", _extends$9({
|
|
1652
1767
|
xmlns: "http://www.w3.org/2000/svg",
|
|
1653
|
-
viewBox: "0 0
|
|
1768
|
+
viewBox: "0 0 612 612"
|
|
1654
1769
|
}, props), /*#__PURE__*/React.createElement("path", {
|
|
1655
|
-
d: "
|
|
1770
|
+
d: "M573.75 57.375H38.25C17.136 57.375 0 74.511 0 95.625v420.75c0 21.133 17.136 38.25 38.25 38.25h535.5c21.133 0 38.25-17.117 38.25-38.25V95.625c0-21.114-17.117-38.25-38.25-38.25zM554.625 497.25H57.375V204.657l224.03 187.999c7.134 5.967 15.874 8.97 24.595 8.97 8.74 0 17.461-3.003 24.595-8.97l224.03-187.999V497.25zm0-367.487L306 338.379 57.375 129.763V114.75h497.25v15.013z"
|
|
1656
1771
|
}));
|
|
1657
1772
|
});
|
|
1658
1773
|
|
|
@@ -1673,15 +1788,15 @@ function _extends$a() {
|
|
|
1673
1788
|
|
|
1674
1789
|
return _extends$a.apply(this, arguments);
|
|
1675
1790
|
}
|
|
1676
|
-
var
|
|
1791
|
+
var facebook = (function (_ref) {
|
|
1677
1792
|
var _ref$styles = _ref.styles,
|
|
1678
1793
|
props = _objectWithoutProperties(_ref, ["styles"]);
|
|
1679
1794
|
|
|
1680
1795
|
return /*#__PURE__*/React.createElement("svg", _extends$a({
|
|
1681
1796
|
xmlns: "http://www.w3.org/2000/svg",
|
|
1682
|
-
viewBox: "0 0 430.
|
|
1797
|
+
viewBox: "0 0 430.113 430.114"
|
|
1683
1798
|
}, props), /*#__PURE__*/React.createElement("path", {
|
|
1684
|
-
d: "
|
|
1799
|
+
d: "M158.081 83.3v59.218h-43.385v72.412h43.385v215.183h89.122V214.936h59.805s5.601-34.721 8.316-72.685H247.54V92.74c0-7.4 9.717-17.354 19.321-17.354h48.557V.001h-66.021C155.878-.004 158.081 72.48 158.081 83.3z"
|
|
1685
1800
|
}));
|
|
1686
1801
|
});
|
|
1687
1802
|
|
|
@@ -1702,15 +1817,15 @@ function _extends$b() {
|
|
|
1702
1817
|
|
|
1703
1818
|
return _extends$b.apply(this, arguments);
|
|
1704
1819
|
}
|
|
1705
|
-
var
|
|
1820
|
+
var linkedIn = (function (_ref) {
|
|
1706
1821
|
var _ref$styles = _ref.styles,
|
|
1707
1822
|
props = _objectWithoutProperties(_ref, ["styles"]);
|
|
1708
1823
|
|
|
1709
1824
|
return /*#__PURE__*/React.createElement("svg", _extends$b({
|
|
1710
1825
|
xmlns: "http://www.w3.org/2000/svg",
|
|
1711
|
-
viewBox: "0 0
|
|
1826
|
+
viewBox: "0 0 430.117 430.117"
|
|
1712
1827
|
}, props), /*#__PURE__*/React.createElement("path", {
|
|
1713
|
-
d: "
|
|
1828
|
+
d: "M430.117 261.543V420.56h-92.188V272.193c0-37.271-13.334-62.707-46.703-62.707-25.473 0-40.632 17.142-47.301 33.724-2.432 5.928-3.058 14.179-3.058 22.477V420.56h-92.219s1.242-251.285 0-277.32h92.21v39.309c-.187.294-.43.611-.606.896h.606v-.896c12.251-18.869 34.13-45.824 83.102-45.824 60.673-.001 106.157 39.636 106.157 124.818zM52.183 9.558C20.635 9.558 0 30.251 0 57.463c0 26.619 20.038 47.94 50.959 47.94h.616c32.159 0 52.159-21.317 52.159-47.94-.606-27.212-20-47.905-51.551-47.905zM5.477 420.56h92.184V143.24H5.477v277.32z"
|
|
1714
1829
|
}));
|
|
1715
1830
|
});
|
|
1716
1831
|
|
|
@@ -1731,15 +1846,15 @@ function _extends$c() {
|
|
|
1731
1846
|
|
|
1732
1847
|
return _extends$c.apply(this, arguments);
|
|
1733
1848
|
}
|
|
1734
|
-
var
|
|
1849
|
+
var telegram = (function (_ref) {
|
|
1735
1850
|
var _ref$styles = _ref.styles,
|
|
1736
1851
|
props = _objectWithoutProperties(_ref, ["styles"]);
|
|
1737
1852
|
|
|
1738
1853
|
return /*#__PURE__*/React.createElement("svg", _extends$c({
|
|
1739
1854
|
xmlns: "http://www.w3.org/2000/svg",
|
|
1740
|
-
viewBox: "0 0
|
|
1855
|
+
viewBox: "0 0 512.004 512.004"
|
|
1741
1856
|
}, props), /*#__PURE__*/React.createElement("path", {
|
|
1742
|
-
d: "
|
|
1857
|
+
d: "M508.194 20.517c-4.43-4.96-11.42-6.29-17.21-3.76l-482 211a15.01 15.01 0 00-8.98 13.41 15.005 15.005 0 008.38 13.79l115.09 56.6 28.68 172.06c.93 6.53 6.06 11.78 12.74 12.73 4.8.69 9.57-1 12.87-4.4l90.86-90.86 129.66 92.62a15.02 15.02 0 0014.24 1.74 15.01 15.01 0 009.19-11.01l90-451c.89-4.47-.26-9.26-3.52-12.92zm-372.84 263.45l-84.75-41.68 334.82-146.57-250.07 188.25zm46.94 44.59l-13.95 69.75-15.05-90.3 183.97-138.49-150.88 151.39c-2.12 2.12-3.53 4.88-4.09 7.65zm9.13 107.3l15.74-78.67 36.71 26.22-52.45 52.45zm205.41 19.94l-176.73-126.23 252.47-253.31-75.74 379.54z"
|
|
1743
1858
|
}));
|
|
1744
1859
|
});
|
|
1745
1860
|
|
|
@@ -1760,11 +1875,40 @@ function _extends$d() {
|
|
|
1760
1875
|
|
|
1761
1876
|
return _extends$d.apply(this, arguments);
|
|
1762
1877
|
}
|
|
1763
|
-
var
|
|
1878
|
+
var twitter = (function (_ref) {
|
|
1764
1879
|
var _ref$styles = _ref.styles,
|
|
1765
1880
|
props = _objectWithoutProperties(_ref, ["styles"]);
|
|
1766
1881
|
|
|
1767
1882
|
return /*#__PURE__*/React.createElement("svg", _extends$d({
|
|
1883
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
1884
|
+
viewBox: "0 0 612 612"
|
|
1885
|
+
}, props), /*#__PURE__*/React.createElement("path", {
|
|
1886
|
+
d: "M612 116.258a250.714 250.714 0 01-72.088 19.772c25.929-15.527 45.777-40.155 55.184-69.411-24.322 14.379-51.169 24.82-79.775 30.48-22.907-24.437-55.49-39.658-91.63-39.658-69.334 0-125.551 56.217-125.551 125.513 0 9.828 1.109 19.427 3.251 28.606-104.326-5.24-196.835-55.223-258.75-131.174-10.823 18.51-16.98 40.078-16.98 63.101 0 43.559 22.181 81.993 55.835 104.479a125.556 125.556 0 01-56.867-15.756v1.568c0 60.806 43.291 111.554 100.693 123.104-10.517 2.83-21.607 4.398-33.08 4.398-8.107 0-15.947-.803-23.634-2.333 15.985 49.907 62.336 86.199 117.253 87.194-42.947 33.654-97.099 53.655-155.916 53.655-10.134 0-20.116-.612-29.944-1.721 55.567 35.681 121.536 56.485 192.438 56.485 230.948 0 357.188-191.291 357.188-357.188l-.421-16.253c24.666-17.593 46.005-39.697 62.794-64.861z"
|
|
1887
|
+
}));
|
|
1888
|
+
});
|
|
1889
|
+
|
|
1890
|
+
function _extends$e() {
|
|
1891
|
+
_extends$e = Object.assign || function (target) {
|
|
1892
|
+
for (var i = 1; i < arguments.length; i++) {
|
|
1893
|
+
var source = arguments[i];
|
|
1894
|
+
|
|
1895
|
+
for (var key in source) {
|
|
1896
|
+
if (Object.prototype.hasOwnProperty.call(source, key)) {
|
|
1897
|
+
target[key] = source[key];
|
|
1898
|
+
}
|
|
1899
|
+
}
|
|
1900
|
+
}
|
|
1901
|
+
|
|
1902
|
+
return target;
|
|
1903
|
+
};
|
|
1904
|
+
|
|
1905
|
+
return _extends$e.apply(this, arguments);
|
|
1906
|
+
}
|
|
1907
|
+
var whatsApp = (function (_ref) {
|
|
1908
|
+
var _ref$styles = _ref.styles,
|
|
1909
|
+
props = _objectWithoutProperties(_ref, ["styles"]);
|
|
1910
|
+
|
|
1911
|
+
return /*#__PURE__*/React.createElement("svg", _extends$e({
|
|
1768
1912
|
xmlns: "http://www.w3.org/2000/svg",
|
|
1769
1913
|
viewBox: "0 0 90 90"
|
|
1770
1914
|
}, props), /*#__PURE__*/React.createElement("path", {
|
|
@@ -1778,24 +1922,32 @@ var icons = {
|
|
|
1778
1922
|
muted: muted,
|
|
1779
1923
|
share: share,
|
|
1780
1924
|
unmuted: unmuted,
|
|
1925
|
+
gear: gear,
|
|
1781
1926
|
email: email,
|
|
1782
1927
|
facebook: facebook,
|
|
1783
1928
|
linkedIn: linkedIn,
|
|
1784
1929
|
telegram: telegram,
|
|
1785
1930
|
twitter: twitter,
|
|
1786
|
-
whatsApp: whatsApp
|
|
1931
|
+
whatsApp: whatsApp,
|
|
1932
|
+
arrowLeft: ArrowLeftIcon,
|
|
1933
|
+
arrowRight: ArrowRightIcon
|
|
1787
1934
|
};
|
|
1788
1935
|
/**
|
|
1789
1936
|
* Render an SVG icon that can be customized in themes.
|
|
1790
1937
|
*
|
|
1791
1938
|
* @param {Object} props
|
|
1792
1939
|
* @param {string} props.name -
|
|
1793
|
-
* Either: expand, information, muted, share, unmuted,
|
|
1794
|
-
* email, facebook, linkedIn, telegram, twitter, whatsApp
|
|
1940
|
+
* Either: expand, gear, information, muted, share, unmuted,
|
|
1941
|
+
* email, facebook, linkedIn, telegram, twitter, whatsApp,
|
|
1942
|
+
* arrowLeft, arrowRight,
|
|
1943
|
+
* @params {number} [props.width] - Image width.
|
|
1944
|
+
* @params {number} [props.height] - Image height.
|
|
1795
1945
|
*/
|
|
1796
1946
|
|
|
1797
1947
|
function ThemeIcon(_ref) {
|
|
1798
|
-
var name = _ref.name
|
|
1948
|
+
var name = _ref.name,
|
|
1949
|
+
width = _ref.width,
|
|
1950
|
+
height = _ref.height;
|
|
1799
1951
|
var theme = useTheme();
|
|
1800
1952
|
var FallbackIcon = icons[name];
|
|
1801
1953
|
var themeAsset = theme.assets.icons[name];
|
|
@@ -1805,11 +1957,17 @@ function ThemeIcon(_ref) {
|
|
|
1805
1957
|
}
|
|
1806
1958
|
|
|
1807
1959
|
if (themeAsset) {
|
|
1808
|
-
return /*#__PURE__*/React.createElement("svg",
|
|
1960
|
+
return /*#__PURE__*/React.createElement("svg", {
|
|
1961
|
+
width: width,
|
|
1962
|
+
height: height
|
|
1963
|
+
}, /*#__PURE__*/React.createElement("use", {
|
|
1809
1964
|
xlinkHref: "".concat(themeAsset, "#icon")
|
|
1810
1965
|
}));
|
|
1811
1966
|
} else {
|
|
1812
|
-
return /*#__PURE__*/React.createElement(FallbackIcon,
|
|
1967
|
+
return /*#__PURE__*/React.createElement(FallbackIcon, {
|
|
1968
|
+
width: width,
|
|
1969
|
+
height: height
|
|
1970
|
+
});
|
|
1813
1971
|
}
|
|
1814
1972
|
}
|
|
1815
1973
|
|
|
@@ -1822,16 +1980,10 @@ function registerTemplateWidgetType (typeName, callback) {
|
|
|
1822
1980
|
callback(element);
|
|
1823
1981
|
}
|
|
1824
1982
|
|
|
1825
|
-
function isBlank(html) {
|
|
1826
|
-
return !!stripTags(html).match(/^\s*$/);
|
|
1827
|
-
}
|
|
1828
|
-
function presence(html) {
|
|
1829
|
-
return isBlank(html) ? null : html;
|
|
1830
|
-
}
|
|
1831
|
-
|
|
1832
1983
|
var utils = {
|
|
1833
1984
|
camelize: camelize,
|
|
1834
1985
|
isBlank: isBlank,
|
|
1986
|
+
isBlankEditableTextValue: isBlankEditableTextValue,
|
|
1835
1987
|
presence: presence
|
|
1836
1988
|
};
|
|
1837
1989
|
|
|
@@ -1922,4 +2074,4 @@ function Root(_ref2) {
|
|
|
1922
2074
|
}, /*#__PURE__*/React.createElement(Entry, null));
|
|
1923
2075
|
}
|
|
1924
2076
|
|
|
1925
|
-
export { AudioPlayerControls, ClassicPlayerControls, ContentElementBox, EditableInlineText, Entry, Figure, FitViewport, MediaInteractionTracking, MediaPlayerControls, Panorama, PlayerControls, Root, ThemeIcon, Tooltip, VideoPlayerControls, WaveformPlayerControls, Widget, registerTemplateWidgetType, textColorForBackgroundColor, useScrollPosition, utils, withShadowClassName };
|
|
2077
|
+
export { AudioPlayerControls, ClassicPlayerControls, ContentElementBox, ContentElementFigure, EditableInlineText, Entry, ExpandableImage, Figure, FitViewport, MediaInteractionTracking, MediaPlayerControls, Panorama, PlayerControls, Root, ThemeIcon, Tooltip, VideoPlayerControls, WaveformPlayerControls, Widget, registerTemplateWidgetType, textColorForBackgroundColor, useScrollPosition, utils, withShadowClassName };
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { useState, useRef, useEffect, createContext, useContext } from 'react';
|
|
2
|
+
import { _ as _slicedToArray } from './i18n-ddd92820.js';
|
|
3
|
+
|
|
4
|
+
function useDelayedBoolean(value, _ref) {
|
|
5
|
+
var fromFalseToTrue = _ref.fromFalseToTrue,
|
|
6
|
+
fromTrueToFalse = _ref.fromTrueToFalse;
|
|
7
|
+
|
|
8
|
+
var _useState = useState(false),
|
|
9
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
10
|
+
setFlag = _useState2[1];
|
|
11
|
+
|
|
12
|
+
var timeoutRef = useRef(null);
|
|
13
|
+
var ref = useRef(value);
|
|
14
|
+
useEffect(function () {
|
|
15
|
+
if (value && !fromFalseToTrue || !value && !fromTrueToFalse) {
|
|
16
|
+
ref.current = value;
|
|
17
|
+
} else if (ref.current !== value) {
|
|
18
|
+
timeoutRef.current = setTimeout(function () {
|
|
19
|
+
ref.current = value;
|
|
20
|
+
setFlag(function (flag) {
|
|
21
|
+
return !flag;
|
|
22
|
+
});
|
|
23
|
+
}, ref.current ? fromTrueToFalse : fromFalseToTrue);
|
|
24
|
+
return function () {
|
|
25
|
+
return clearTimeout(timeoutRef.current);
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
}, [value, fromTrueToFalse, fromFalseToTrue]);
|
|
29
|
+
return !fromFalseToTrue && value || ref.current && (!!fromTrueToFalse || value);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
var ContentElementEditorStateContext = createContext({
|
|
33
|
+
isSelected: false,
|
|
34
|
+
isEditable: false,
|
|
35
|
+
setTransientState: function setTransientState() {}
|
|
36
|
+
});
|
|
37
|
+
/**
|
|
38
|
+
* Use inside a content element component to determine whether the
|
|
39
|
+
* component is being rendered inside the editor iframe, and whether
|
|
40
|
+
* the content element is currently selected. This can be used to
|
|
41
|
+
* implement simple inline editing capabilities like displaying extra
|
|
42
|
+
* information when the content element is selected.
|
|
43
|
+
*
|
|
44
|
+
* @example
|
|
45
|
+
* const {isEditable, isSelected} = useContentElementEditorState();
|
|
46
|
+
*/
|
|
47
|
+
|
|
48
|
+
function useContentElementEditorState() {
|
|
49
|
+
return useContext(ContentElementEditorStateContext);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
export { ContentElementEditorStateContext as C, useContentElementEditorState as a, useDelayedBoolean as u };
|
|
@@ -21,6 +21,7 @@
|
|
|
21
21
|
"react-draggable": "^4.4.2",
|
|
22
22
|
"react-measure": "^2.3.0",
|
|
23
23
|
"react-player": "^1.15.2",
|
|
24
|
+
"react-quick-pinch-zoom": "^4.8.0",
|
|
24
25
|
"react-tooltip": "^3.11.1",
|
|
25
26
|
"react_ujs": "^2.6.1",
|
|
26
27
|
"reselect": "^4.0.0",
|
|
@@ -30,7 +31,7 @@
|
|
|
30
31
|
"slugify": "^1.4.6",
|
|
31
32
|
"striptags": "^3.1.1",
|
|
32
33
|
"use-context-selector": "^1.2.11",
|
|
33
|
-
"video.js": "https://github.com/tf/video.js#pageflow-scrolled-
|
|
34
|
+
"video.js": "https://github.com/tf/video.js#pageflow-scrolled-8",
|
|
34
35
|
"wavesurfer.js": "6.1.0",
|
|
35
36
|
"whatwg-fetch": "^3.0.0"
|
|
36
37
|
},
|
|
@@ -65,6 +65,9 @@ function _objectSpread2(target) {
|
|
|
65
65
|
* @param {Object} [options.legalInfo] - imprint, copyright and privacy information of entry.
|
|
66
66
|
* @param {Object} [options.themeOptions] - Options set via theme registration.
|
|
67
67
|
* @param {Object} [options.themeAssets] - Paths to theme assets.
|
|
68
|
+
* @param {Object} [options.additionalSeedData] - Seed data by name.
|
|
69
|
+
* @param {Array} [options.consentVendors] - Server rendered consent vendor data.
|
|
70
|
+
* @param {Object} [options.contentElementConsentVendors] - Consent vendor name by content element id.
|
|
68
71
|
* @param {Object} [options.entry] - attributes of entry.
|
|
69
72
|
* @param {Array} [options.imageFiles] - Array of objects with image file attributes of entry.
|
|
70
73
|
* @param {Array} [options.videoFiles] - Array of objects with video file attributes of entry.
|
|
@@ -96,7 +99,9 @@ function normalizeSeed() {
|
|
|
96
99
|
sections = _ref.sections,
|
|
97
100
|
contentElements = _ref.contentElements,
|
|
98
101
|
widgets = _ref.widgets,
|
|
99
|
-
additionalSeedData = _ref.additionalSeedData
|
|
102
|
+
additionalSeedData = _ref.additionalSeedData,
|
|
103
|
+
consentVendors = _ref.consentVendors,
|
|
104
|
+
contentElementConsentVendors = _ref.contentElementConsentVendors;
|
|
100
105
|
|
|
101
106
|
var entries = entry ? [entry] : [{}];
|
|
102
107
|
var normalizedEntries = normalizeCollection(entries);
|
|
@@ -130,7 +135,9 @@ function normalizeSeed() {
|
|
|
130
135
|
}),
|
|
131
136
|
additionalSeedData: additionalSeedData || {
|
|
132
137
|
frontendVersion: 1
|
|
133
|
-
}
|
|
138
|
+
},
|
|
139
|
+
consentVendors: consentVendors || [],
|
|
140
|
+
contentElementConsentVendors: contentElementConsentVendors || {}
|
|
134
141
|
},
|
|
135
142
|
collections: {
|
|
136
143
|
entries: normalizedEntries,
|
|
@@ -3,3 +3,18 @@
|
|
|
3
3
|
|
|
4
4
|
@value lightContentTextColor: var(--theme-light-content-text-color, #fff);
|
|
5
5
|
@value darkContentTextColor: var(--theme-dark-content-text-color, #222);
|
|
6
|
+
|
|
7
|
+
@value lightContentLinkColor: var(--theme-light-content-link-color, var(--theme-content-link-color, currentColor));
|
|
8
|
+
@value darkContentLinkColor: var(--theme-dark-content-link-color, var(--theme-content-link-color, currentColor));
|
|
9
|
+
|
|
10
|
+
@value contentLinkColor: var(--content-link-color);
|
|
11
|
+
@value contentTextColor: var(--content-text-color);
|
|
12
|
+
|
|
13
|
+
/* see src/frontend/global.module.css */
|
|
14
|
+
|
|
15
|
+
.contentColorScope {
|
|
16
|
+
--theme-light-content-surface-color: var(--root-light-content-surface-color);
|
|
17
|
+
--theme-dark-content-surface-color: var(--root-dark-content-surface-color);
|
|
18
|
+
--theme-light-content-text-color: var(--root-light-content-text-color);
|
|
19
|
+
--theme-dark-content-text-color: var(--root-dark-content-text-color);
|
|
20
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.Toggle-module_toggle__2N5XY{border:none;background:transparent;padding:0;position:absolute;top:3px;right:40px;cursor:pointer}.Toggle-module_toggle__2N5XY svg{display:block;fill:var(--theme-widget-on-surface-color);color:var(--theme-widget-surface-color)}.Toggle-module_toggle__2N5XY[aria-checked=true] svg{fill:var(--theme-widget-primary-color);color:var(--theme-widget-on-primary-color)}.ConsentBar-module_bar__YiYoC{position:fixed;bottom:0;left:0;width:100%;box-sizing:border-box;z-index:10;padding:10px 20px;font-family:var(--theme-widget-font-family);font-size:15px;background-color:var(--theme-widget-surface-color);color:var(--theme-widget-on-surface-color)}.ConsentBar-module_text__2GSPP{margin-top:10px;margin-bottom:10px}.ConsentBar-module_text__2GSPP a{color:var(--theme-accent-color)}.ConsentBar-module_button__2LVnY{border:none;border-radius:3px;margin:10px 5px 5px;padding:10px 15px;font:inherit;cursor:pointer;background-color:var(--theme-widget-secondary-color)}.ConsentBar-module_acceptAllButton__1rSdh{background-color:var(--theme-widget-primary-color);color:var(--theme-widget-on-primary-color)}.ConsentBar-module_configureButton__1VBqX{margin-left:0}.ConsentBar-module_configureButton__1VBqX svg{fill:currentColor;margin-right:6px;margin-bottom:1px;vertical-align:bottom}.ConsentBar-module_vendorsBox__Jckbl h3{margin:.5em 0;font-size:1em}.ConsentBar-module_vendorList__3Z4jU{overflow:auto;max-height:40vh;padding-right:5px;margin:5px 0}.ConsentBar-module_vendor__2hPAk{position:relative;margin-bottom:5px;padding:8px 0;min-height:20px}.ConsentBar-module_vendor__2hPAk p{font-size:13px}.ConsentBar-module_vendor__2hPAk a{color:inherit}.ConsentBar-module_expandVendor__hSkAD{border:none;background:transparent;position:absolute;right:5px;top:3px;padding:0;cursor:pointer}.ConsentBar-module_expandVendor__hSkAD svg{fill:currentColor;display:block}.ConsentBar-module_expandVendor__hSkAD:active svg,.ConsentBar-module_expandVendor__hSkAD:focus svg,.ConsentBar-module_expandVendor__hSkAD:hover svg{fill:var(--theme-widget-primary-color)}@media (max-width:780px){.ConsentBar-module_button__2LVnY{display:block;width:100%;margin:10px 0}}@media (min-width:781px){.ConsentBar-module_vendorsBox__Jckbl{position:absolute;bottom:100%;right:5px;margin-bottom:5px;max-width:400px;width:90%;box-sizing:border-box;padding:10px 20px;background-color:inherit;color:inherit;border-radius:5px}.ConsentBar-module_saveButton__16b97{float:right}.ConsentBar-module_decisionButtons__I4T8q{float:right;display:inline-block;white-space:nowrap}}
|