pageflow 16.0.0 → 16.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +86 -33
- data/README.md +6 -6
- data/Rakefile +1 -1
- data/admins/pageflow/entry.rb +0 -1
- data/admins/pageflow/sites.rb +3 -0
- data/app/assets/images/pageflow/admin/icons/published_with_noindex.svg +4 -0
- data/app/assets/javascripts/pageflow/dist/ui.js +299 -72
- data/app/assets/stylesheets/pageflow/admin/active_admin_patches.scss +1 -1
- data/app/assets/stylesheets/pageflow/admin/entries.scss +4 -0
- data/app/assets/stylesheets/pageflow/admin/permalink_input.scss +10 -0
- data/app/assets/stylesheets/pageflow/admin/publication_state_indicator.scss +4 -0
- data/app/assets/stylesheets/pageflow/editor/base.scss +0 -1
- data/app/assets/stylesheets/pageflow/editor/drop_down_button.scss +61 -7
- data/app/assets/stylesheets/pageflow/editor/file_meta_data.scss +12 -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 +4 -4
- data/app/assets/stylesheets/pageflow/{editor/wysihtml5.scss → ui/input/text_area_input.scss} +13 -1
- data/app/assets/stylesheets/pageflow/ui.scss +1 -0
- data/app/controllers/pageflow/chapters_controller.rb +2 -2
- data/app/controllers/pageflow/editor/entry_publications_controller.rb +5 -1
- data/app/controllers/pageflow/editor/file_import_controller.rb +1 -1
- data/app/controllers/pageflow/editor/files_controller.rb +1 -1
- data/app/controllers/pageflow/entries_controller.rb +12 -2
- 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 +4 -1
- data/app/helpers/pageflow/feeds_helper.rb +66 -0
- data/app/helpers/pageflow/meta_tags_helper.rb +2 -1
- data/app/helpers/pageflow/page_types_helper.rb +10 -10
- data/app/helpers/pageflow/revision_file_helper.rb +3 -3
- data/app/helpers/pageflow/social_share_helper.rb +2 -2
- data/app/inputs/pageflow_permalink_input.rb +15 -3
- data/app/models/concerns/pageflow/entry_publication_states.rb +9 -0
- data/app/models/concerns/pageflow/reusable_file.rb +3 -3
- data/app/models/concerns/pageflow/uploadable_file.rb +5 -0
- 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/entry.rb +7 -5
- data/app/models/pageflow/entry_at_revision.rb +2 -0
- data/app/models/pageflow/image_file.rb +34 -8
- data/app/models/pageflow/image_file_url_templates.rb +7 -1
- 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 +6 -0
- data/app/models/pageflow/site.rb +8 -0
- data/app/models/pageflow/sitemaps.rb +14 -0
- data/app/models/pageflow/used_file.rb +10 -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 +2 -2
- data/app/views/components/pageflow/admin/revisions_tab.rb +8 -0
- data/app/views/components/pageflow/admin/sites_tab.rb +3 -0
- data/app/views/pageflow/editor/config/_seeds.json.jbuilder +2 -0
- data/app/views/pageflow/editor/entries/_entry.json.jbuilder +1 -0
- data/app/views/pageflow/editor/entry_publications/check.json.jbuilder +1 -0
- data/app/views/pageflow/feeds/index.atom.builder +20 -0
- data/app/views/pageflow/image_files/_image_file.json.jbuilder +1 -0
- data/app/views/pageflow/meta_tags/_entry.html.erb +1 -0
- data/app/views/pageflow/sitemaps/index.xml.builder +9 -0
- data/config/initializers/features.rb +3 -0
- data/config/initializers/paperclip.rb +8 -0
- data/config/locales/de.yml +77 -6
- data/config/locales/en.yml +79 -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/db/migrate/20231024062501_add_output_presences_to_image_files.rb +5 -0
- data/db/migrate/20231128124523_add_noindex_to_revisions.rb +5 -0
- data/entry_types/paged/app/assets/javascripts/pageflow_paged/dist/editor.js +710 -259
- data/entry_types/paged/app/assets/javascripts/pageflow_paged/dist/frontend.js +34 -5
- data/entry_types/paged/app/assets/javascripts/pageflow_paged/dist/react-client.js +1 -1
- data/entry_types/paged/app/assets/javascripts/pageflow_paged/dist/react-server.js +1 -1
- 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 +2 -1
- 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 +13 -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 +11 -3
- 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 +8 -5
- data/entry_types/scrolled/app/helpers/pageflow_scrolled/packs_helper.rb +17 -12
- 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 +1 -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 +1 -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 +7 -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 +225 -8
- data/entry_types/scrolled/config/locales/en.yml +239 -2
- data/entry_types/scrolled/config/routes.rb +4 -0
- data/entry_types/scrolled/lib/generators/pageflow_scrolled/install/install_generator.rb +69 -44
- data/entry_types/scrolled/lib/pageflow_scrolled/additional_packs.rb +2 -1
- 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 +13 -1
- data/entry_types/scrolled/lib/pageflow_scrolled/plugin.rb +30 -0
- data/entry_types/scrolled/lib/pageflow_scrolled/react_widget_type.rb +6 -1
- data/entry_types/scrolled/lib/pageflow_scrolled/web_app_manifest.rb +1 -1
- data/entry_types/scrolled/lib/tasks/pageflow_scrolled/dummy.rake +1 -1
- data/entry_types/scrolled/lib/tasks/pageflow_scrolled/storybook.rake +1 -2
- data/entry_types/scrolled/package/config/webpack.js +26 -0
- data/entry_types/scrolled/package/contentElements-editor.js +330 -32
- data/entry_types/scrolled/package/contentElements-frontend.css +1 -1
- data/entry_types/scrolled/package/contentElements-frontend.js +920 -145
- data/entry_types/scrolled/package/editor.js +819 -239
- data/entry_types/scrolled/package/frontend/{EditableInlineText.module-14c7b097.js → EditableInlineText.module-6ee0e024.js} +1975 -1792
- data/entry_types/scrolled/package/frontend/PhonePlatformContext-b28d991a.js +32 -0
- data/entry_types/scrolled/package/frontend/ToggleFullscreenCornerButton-8242f213.js +107 -0
- data/entry_types/scrolled/package/frontend/Viewer-32cd1ac1.js +154 -0
- data/entry_types/scrolled/package/frontend/{Viewer-b6becc57.js → Viewer-6e4d14ed.js} +32 -161
- data/entry_types/scrolled/package/frontend/arrowRight-e42e6011.js +77 -0
- data/entry_types/scrolled/package/frontend/{components-b3160dd7.js → components-24363f97.js} +188 -47
- data/entry_types/scrolled/package/frontend/{PhonePlatformContext-f6093cc6.js → i18n-71c39823.js} +191 -111
- data/entry_types/scrolled/package/frontend/index-fc4b13e6.js +118 -0
- data/entry_types/scrolled/package/frontend/index.css +1 -1
- data/entry_types/scrolled/package/frontend/index.js +252 -76
- data/entry_types/scrolled/package/frontend/useContentElementEditorState-245f1986.js +52 -0
- data/entry_types/scrolled/package/package.json +6 -4
- data/entry_types/scrolled/package/testHelpers.js +11 -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 +2 -2
- data/entry_types/scrolled/package/widgets/defaultNavigation.js +39 -4
- data/entry_types/scrolled/package/widgets/iconInlineFileRights.css +1 -0
- data/entry_types/scrolled/package/widgets/iconInlineFileRights.js +49 -0
- data/entry_types/scrolled/package/widgets/textInlineFileRights.css +1 -0
- data/entry_types/scrolled/package/widgets/textInlineFileRights.js +37 -0
- data/lib/generators/pageflow/resque/resque_generator.rb +1 -1
- data/lib/generators/pageflow/resque/templates/resque.rake +1 -1
- data/lib/generators/pageflow/resque/templates/resque.rb +1 -1
- data/lib/generators/pageflow/routes/routes_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 +29 -1
- data/lib/pageflow/engine.rb +18 -40
- 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/page_type.rb +1 -1
- data/lib/pageflow/paperclip_processors/webp.rb +63 -0
- data/lib/pageflow/rails_version.rb +19 -0
- data/lib/pageflow/seeds.rb +10 -7
- data/lib/pageflow/user_mixin.rb +1 -1
- data/lib/pageflow/version.rb +1 -1
- data/lib/pageflow/widget_types.rb +4 -0
- data/package/config/jest/index.js +3 -1
- data/package/config/webpack5.js +14 -0
- data/package/editor.js +410 -181
- data/package/frontend.js +34 -4
- data/package/testHelpers.js +1 -1
- data/package/ui.js +297 -71
- data/spec/factories/entries.rb +34 -3
- data/spec/factories/sites.rb +3 -0
- data/vendor/assets/javascripts/iscroll.js +4 -7
- metadata +118 -80
- data/app/helpers/pageflow/admin/permalinks_helper.rb +0 -15
- data/entry_types/scrolled/package/frontend/arrowRight-78a7cee4.js +0 -42
data/entry_types/scrolled/package/frontend/{components-b3160dd7.js → components-24363f97.js}
RENAMED
@@ -1,16 +1,19 @@
|
|
1
1
|
import 'regenerator-runtime';
|
2
|
-
import {
|
2
|
+
import { ae as ContentElementEditorCommandEmitterContext, b as usePostMessageListener, af as MotifAreaVisibilityProvider, ag as ForcePaddingContext, ah as ContentElementConfigurationUpdateContext, D as api, l as widths, ai as LayoutWithoutInlineEditing, ad as SectionThumbnail, aj as renderElement, ak as renderLeaf$1, H as useContentElementEditorCommandSubscription, a0 as Text$1, r as frontendStyles } from './EditableInlineText.module-6ee0e024.js';
|
3
3
|
import 'pageflow/frontend';
|
4
4
|
import React, { useMemo, useState, useCallback, useContext, useRef, useEffect, createContext, memo } from 'react';
|
5
|
-
import {
|
6
|
-
import 'i18n-js';
|
7
|
-
import 'use-context-selector';
|
8
|
-
import 'reselect';
|
9
|
-
import 'slugify';
|
5
|
+
import { _ as _slicedToArray, p as useEntryStateDispatch, b as _defineProperty, e as _objectWithoutProperties, u as useI18n, D as updateContentElementConfiguration, o as useChapter, i as useFile, a as _objectSpread2, n as _toConsumableArray, F as _unsupportedIterableToArray } from './i18n-71c39823.js';
|
10
6
|
import classNames from 'classnames';
|
7
|
+
import { C as ContentElementEditorStateContext, a as useContentElementEditorState } from './useContentElementEditorState-245f1986.js';
|
11
8
|
import './createSuper-d0f30da3.js';
|
12
9
|
import BackboneEvents from 'backbone-events-standalone';
|
10
|
+
import 'use-context-selector';
|
11
|
+
import 'reselect';
|
12
|
+
import 'slugify';
|
13
|
+
import 'i18n-js';
|
14
|
+
import 'striptags';
|
13
15
|
import 'react-measure';
|
16
|
+
import { P as PhonePlatformContext } from './PhonePlatformContext-b28d991a.js';
|
14
17
|
import { DndProvider, useDrop, useDrag } from 'react-dnd';
|
15
18
|
import { HTML5Backend } from 'react-dnd-html5-backend';
|
16
19
|
import { Range, Editor, Transforms, Node, Element, Path, Text, createEditor } from 'slate';
|
@@ -193,7 +196,7 @@ function MessageHandler(_ref) {
|
|
193
196
|
return null;
|
194
197
|
}
|
195
198
|
|
196
|
-
var styles = {"wrapper":"SectionDecorator-module_wrapper__3sTk3","selected":"SectionDecorator-module_selected__1gcmF","transitionSelected":"SectionDecorator-module_transitionSelected__Wklk6","controls":"SectionDecorator-module_controls__LVEJG","
|
199
|
+
var styles = {"wrapper":"SectionDecorator-module_wrapper__3sTk3","selected":"SectionDecorator-module_selected__1gcmF","transitionSelected":"SectionDecorator-module_transitionSelected__Wklk6","controls":"SectionDecorator-module_controls__LVEJG","transitionToolbar-after":"SectionDecorator-module_transitionToolbar-after__2_DVO SectionDecorator-module_toolbar__2Va1D","toolbar":"SectionDecorator-module_toolbar__2Va1D","transitionToolbar-before":"SectionDecorator-module_transitionToolbar-before__KipOO SectionDecorator-module_toolbar__2Va1D"};
|
197
200
|
|
198
201
|
var styles$1 = {"wrapper":"ContentElementDecorator-module_wrapper__NQgFN"};
|
199
202
|
|
@@ -298,7 +301,7 @@ function SectionDecorator(_ref) {
|
|
298
301
|
isLastContentElementSelected = _useEditorSelection2.isSelected;
|
299
302
|
|
300
303
|
function selectIfOutsideContentItem(event) {
|
301
|
-
if (!event.target.closest(".".concat(styles$1.wrapper))) {
|
304
|
+
if (!event.target.closest(".".concat(styles$1.wrapper)) && !event.target.closest('#fullscreenRoot')) {
|
302
305
|
isSelected ? resetSelection() : select();
|
303
306
|
}
|
304
307
|
}
|
@@ -770,7 +773,7 @@ function DefaultSelectionRect(props) {
|
|
770
773
|
scrollPoint: isSelected,
|
771
774
|
drag: drag,
|
772
775
|
dragHandleTitle: t('pageflow_scrolled.inline_editing.drag_content_element'),
|
773
|
-
full: props.
|
776
|
+
full: props.width === widths.full || props.customMargin,
|
774
777
|
ariaLabel: t('pageflow_scrolled.inline_editing.select_content_element'),
|
775
778
|
insertButtonTitles: t('pageflow_scrolled.inline_editing.insert_content_element'),
|
776
779
|
onClick: function onClick() {
|
@@ -930,7 +933,8 @@ var styles$6 = {"placeholder":"TextPlaceholder-module_placeholder__sgVwx"};
|
|
930
933
|
|
931
934
|
function TextPlaceholder(_ref) {
|
932
935
|
var text = _ref.text,
|
933
|
-
visible = _ref.visible
|
936
|
+
visible = _ref.visible,
|
937
|
+
className = _ref.className;
|
934
938
|
|
935
939
|
if (!text || !visible) {
|
936
940
|
return null;
|
@@ -938,7 +942,9 @@ function TextPlaceholder(_ref) {
|
|
938
942
|
|
939
943
|
return /*#__PURE__*/React.createElement("div", {
|
940
944
|
className: styles$6.placeholder
|
941
|
-
}, /*#__PURE__*/React.createElement("div",
|
945
|
+
}, /*#__PURE__*/React.createElement("div", {
|
946
|
+
className: className
|
947
|
+
}, text));
|
942
948
|
}
|
943
949
|
|
944
950
|
function withCustomInsertBreak(editor) {
|
@@ -977,7 +983,7 @@ function withCustomInsertBreak(editor) {
|
|
977
983
|
return editor;
|
978
984
|
}
|
979
985
|
|
980
|
-
var styles$7 = {"container":"index-module_container__3dD9z","shy":"index-module_shy__KgWjc","selected":"index-module_selected__mE58y","hoveringToolbar":"index-module_hoveringToolbar__31Xpd","selection":"index-module_selection__3dUiD","linkTooltip":"index-module_linkTooltip__36m1K","linkTooltipThumbnail":"index-module_linkTooltipThumbnail__2v-cf","linkTooltipThumbnailClickMask":"index-module_linkTooltipThumbnailClickMask__2Z3ff","linkTooltipNewTab":"index-module_linkTooltipNewTab__4tnLF","linkTooltipChapterNumber":"index-module_linkTooltipChapterNumber__2CsQA"};
|
986
|
+
var styles$7 = {"container":"index-module_container__3dD9z","shy":"index-module_shy__KgWjc","selected":"index-module_selected__mE58y","hoveringToolbarContainer":"index-module_hoveringToolbarContainer__3xVEz","hoveringToolbar":"index-module_hoveringToolbar__31Xpd","selection":"index-module_selection__3dUiD","linkTooltip":"index-module_linkTooltip__36m1K","linkTooltip-below":"index-module_linkTooltip-below__1wvl7","linkTooltip-above":"index-module_linkTooltip-above__P3YfD","linkTooltipThumbnail":"index-module_linkTooltipThumbnail__2v-cf","linkTooltipThumbnailClickMask":"index-module_linkTooltipThumbnailClickMask__2Z3ff","linkTooltipNewTab":"index-module_linkTooltipNewTab__4tnLF","linkTooltipChapterNumber":"index-module_linkTooltipChapterNumber__2CsQA"};
|
981
987
|
|
982
988
|
function _extends$3() {
|
983
989
|
_extends$3 = Object.assign || function (target) {
|
@@ -1018,6 +1024,7 @@ var UpdateContext = createContext();
|
|
1018
1024
|
function LinkTooltipProvider(_ref) {
|
1019
1025
|
var editor = _ref.editor,
|
1020
1026
|
disabled = _ref.disabled,
|
1027
|
+
position = _ref.position,
|
1021
1028
|
children = _ref.children;
|
1022
1029
|
|
1023
1030
|
var _useState = useState(),
|
@@ -1037,7 +1044,8 @@ function LinkTooltipProvider(_ref) {
|
|
1037
1044
|
setState({
|
1038
1045
|
href: href,
|
1039
1046
|
openInNewTab: openInNewTab,
|
1040
|
-
top: linkRect.bottom - outerRect.top + 10,
|
1047
|
+
top: position === 'below' ? linkRect.bottom - outerRect.top + 10 : 'auto',
|
1048
|
+
bottom: position === 'above' ? outerRect.bottom - linkRect.top + 10 : 'auto',
|
1041
1049
|
left: linkRect.left - outerRect.left
|
1042
1050
|
});
|
1043
1051
|
},
|
@@ -1054,7 +1062,7 @@ function LinkTooltipProvider(_ref) {
|
|
1054
1062
|
}
|
1055
1063
|
}
|
1056
1064
|
};
|
1057
|
-
}, []);
|
1065
|
+
}, [position]);
|
1058
1066
|
return /*#__PURE__*/React.createElement(UpdateContext.Provider, {
|
1059
1067
|
value: update
|
1060
1068
|
}, /*#__PURE__*/React.createElement("div", {
|
@@ -1062,7 +1070,8 @@ function LinkTooltipProvider(_ref) {
|
|
1062
1070
|
}, /*#__PURE__*/React.createElement(LinkTooltip, {
|
1063
1071
|
editor: editor,
|
1064
1072
|
state: state,
|
1065
|
-
disabled: disabled
|
1073
|
+
disabled: disabled,
|
1074
|
+
position: position
|
1066
1075
|
}), children));
|
1067
1076
|
}
|
1068
1077
|
function LinkPreview(_ref2) {
|
@@ -1087,6 +1096,7 @@ function LinkPreview(_ref2) {
|
|
1087
1096
|
function LinkTooltip(_ref3) {
|
1088
1097
|
var editor = _ref3.editor,
|
1089
1098
|
disabled = _ref3.disabled,
|
1099
|
+
position = _ref3.position,
|
1090
1100
|
state = _ref3.state;
|
1091
1101
|
|
1092
1102
|
var _useContext2 = useContext(UpdateContext),
|
@@ -1098,11 +1108,12 @@ function LinkTooltip(_ref3) {
|
|
1098
1108
|
}
|
1099
1109
|
|
1100
1110
|
return /*#__PURE__*/React.createElement("div", {
|
1101
|
-
className: classNames(styles$7.linkTooltip, styles$7.hoveringToolbar),
|
1111
|
+
className: classNames(styles$7.linkTooltip, styles$7["linkTooltip-".concat(position)], styles$7.hoveringToolbar),
|
1102
1112
|
onMouseEnter: keep,
|
1103
1113
|
onMouseLeave: deactivate,
|
1104
1114
|
style: {
|
1105
1115
|
top: state.top,
|
1116
|
+
bottom: state.bottom,
|
1106
1117
|
left: state.left,
|
1107
1118
|
opacity: 1
|
1108
1119
|
}
|
@@ -1124,6 +1135,10 @@ function LinkDestination(_ref4) {
|
|
1124
1135
|
return /*#__PURE__*/React.createElement(SectionLinkDestination, {
|
1125
1136
|
permaId: href.section
|
1126
1137
|
});
|
1138
|
+
} else if (href === null || href === void 0 ? void 0 : href.file) {
|
1139
|
+
return /*#__PURE__*/React.createElement(FileLinkDestination, {
|
1140
|
+
fileOptions: href.file
|
1141
|
+
});
|
1127
1142
|
} else {
|
1128
1143
|
return /*#__PURE__*/React.createElement(ExternalLinkDestination, {
|
1129
1144
|
href: href,
|
@@ -1144,7 +1159,7 @@ function ChapterLinkDestination(_ref5) {
|
|
1144
1159
|
t = _useI18n.t;
|
1145
1160
|
|
1146
1161
|
if (!chapter) {
|
1147
|
-
return
|
1162
|
+
return /*#__PURE__*/React.createElement("span", null, t('pageflow_scrolled.inline_editing.link_tooltip.deleted_chapter'));
|
1148
1163
|
}
|
1149
1164
|
|
1150
1165
|
return /*#__PURE__*/React.createElement("a", {
|
@@ -1197,6 +1212,29 @@ function ExternalLinkDestination(_ref7) {
|
|
1197
1212
|
}, openInNewTab ? t('pageflow_scrolled.inline_editing.link_tooltip.opens_in_new_tab') : t('pageflow_scrolled.inline_editing.link_tooltip.opens_in_same_tab')));
|
1198
1213
|
}
|
1199
1214
|
|
1215
|
+
function FileLinkDestination(_ref8) {
|
1216
|
+
var fileOptions = _ref8.fileOptions;
|
1217
|
+
var file = useFile(fileOptions);
|
1218
|
+
|
1219
|
+
var _useI18n4 = useI18n({
|
1220
|
+
locale: 'ui'
|
1221
|
+
}),
|
1222
|
+
t = _useI18n4.t;
|
1223
|
+
|
1224
|
+
if (!file) {
|
1225
|
+
return /*#__PURE__*/React.createElement("span", null, t('pageflow_scrolled.inline_editing.link_tooltip.deleted_file'));
|
1226
|
+
}
|
1227
|
+
|
1228
|
+
return /*#__PURE__*/React.createElement("a", {
|
1229
|
+
href: file.urls.original,
|
1230
|
+
target: "_blank",
|
1231
|
+
rel: "noopener noreferrer"
|
1232
|
+
}, file.urls.original.split('/').pop(), /*#__PURE__*/React.createElement(ExternalLinkIcon, {
|
1233
|
+
width: 10,
|
1234
|
+
height: 10
|
1235
|
+
}));
|
1236
|
+
}
|
1237
|
+
|
1200
1238
|
function withLinks(editor) {
|
1201
1239
|
var isInline = editor.isInline;
|
1202
1240
|
|
@@ -1258,20 +1296,28 @@ function useDropTargetsActive() {
|
|
1258
1296
|
return [dropTargetsActive, drop];
|
1259
1297
|
}
|
1260
1298
|
|
1299
|
+
var abortPreviousCall;
|
1261
1300
|
function useSelectLinkDestination() {
|
1262
1301
|
return function () {
|
1263
1302
|
return new Promise(function (resolve, reject) {
|
1303
|
+
if (abortPreviousCall) {
|
1304
|
+
abortPreviousCall();
|
1305
|
+
}
|
1306
|
+
|
1307
|
+
abortPreviousCall = function abortPreviousCall() {
|
1308
|
+
window.removeEventListener('message', receive);
|
1309
|
+
reject();
|
1310
|
+
};
|
1311
|
+
|
1264
1312
|
postSelectLinkDestinationMessage();
|
1265
1313
|
window.addEventListener('message', receive);
|
1266
1314
|
|
1267
1315
|
function receive(message) {
|
1268
1316
|
if (window.location.href.indexOf(message.origin) === 0) {
|
1269
1317
|
if (message.data.type === 'LINK_DESTINATION_SELECTED') {
|
1318
|
+
abortPreviousCall = null;
|
1270
1319
|
window.removeEventListener('message', receive);
|
1271
1320
|
resolve(message.data.payload);
|
1272
|
-
} else if (message.data.type === 'LINK_DESTINATION_SELECTION_ABORTED') {
|
1273
|
-
window.removeEventListener('message', receive);
|
1274
|
-
reject();
|
1275
1321
|
}
|
1276
1322
|
}
|
1277
1323
|
}
|
@@ -1454,7 +1500,8 @@ var LinkIcon = (function (_ref) {
|
|
1454
1500
|
}));
|
1455
1501
|
});
|
1456
1502
|
|
1457
|
-
function HoveringToolbar() {
|
1503
|
+
function HoveringToolbar(_ref) {
|
1504
|
+
var position = _ref.position;
|
1458
1505
|
var ref = useRef();
|
1459
1506
|
var outerRef = useRef();
|
1460
1507
|
var editor = useSlate();
|
@@ -1482,11 +1529,19 @@ function HoveringToolbar() {
|
|
1482
1529
|
var rect = domRange.getBoundingClientRect();
|
1483
1530
|
var outerRect = outerRef.current.getBoundingClientRect();
|
1484
1531
|
el.style.opacity = 1;
|
1485
|
-
el.style.top = "".concat(rect.bottom - outerRect.top + 10, "px");
|
1486
1532
|
el.style.left = "".concat(rect.left - outerRect.left, "px");
|
1533
|
+
|
1534
|
+
if (position === 'above') {
|
1535
|
+
el.style.top = 'auto';
|
1536
|
+
el.style.bottom = "".concat(outerRect.bottom - rect.top + 5, "px");
|
1537
|
+
} else {
|
1538
|
+
el.style.bottom = 'auto';
|
1539
|
+
el.style.top = "".concat(rect.bottom - outerRect.top + 5, "px");
|
1540
|
+
}
|
1487
1541
|
});
|
1488
1542
|
return /*#__PURE__*/React.createElement("div", {
|
1489
|
-
ref: outerRef
|
1543
|
+
ref: outerRef,
|
1544
|
+
className: styles$7.hoveringToolbarContainer
|
1490
1545
|
}, /*#__PURE__*/React.createElement("div", {
|
1491
1546
|
ref: ref,
|
1492
1547
|
className: styles$7.hoveringToolbar
|
@@ -1532,9 +1587,9 @@ function handleButtonClick(editor, format, selectLinkDestination) {
|
|
1532
1587
|
if (isLinkActive(editor)) {
|
1533
1588
|
unwrapLink(editor);
|
1534
1589
|
} else {
|
1535
|
-
selectLinkDestination().then(function (
|
1536
|
-
var href =
|
1537
|
-
openInNewTab =
|
1590
|
+
selectLinkDestination().then(function (_ref2) {
|
1591
|
+
var href = _ref2.href,
|
1592
|
+
openInNewTab = _ref2.openInNewTab;
|
1538
1593
|
wrapLink(editor, href, openInNewTab);
|
1539
1594
|
}, function () {});
|
1540
1595
|
}
|
@@ -1704,21 +1759,30 @@ function toggleBlock(editor, format) {
|
|
1704
1759
|
var block = _objectSpread2({
|
1705
1760
|
type: format,
|
1706
1761
|
children: []
|
1707
|
-
},
|
1762
|
+
}, preserveColorAndTypograpyhVariant(editor));
|
1708
1763
|
|
1709
1764
|
Transforms.wrapNodes(editor, block);
|
1710
1765
|
}
|
1711
1766
|
}
|
1712
1767
|
function applyTypograpyhVariant(editor, variant) {
|
1713
|
-
|
1768
|
+
applyProperties(editor, {
|
1714
1769
|
variant: variant
|
1715
|
-
}
|
1770
|
+
});
|
1771
|
+
}
|
1772
|
+
function applyColor(editor, color) {
|
1773
|
+
applyProperties(editor, {
|
1774
|
+
color: color
|
1775
|
+
});
|
1776
|
+
}
|
1777
|
+
|
1778
|
+
function applyProperties(editor, properties) {
|
1779
|
+
Transforms.setNodes(editor, properties, {
|
1716
1780
|
mode: 'highest'
|
1717
1781
|
});
|
1718
|
-
|
1782
|
+
applyPropertiesToListItems(editor, properties);
|
1719
1783
|
}
|
1720
1784
|
|
1721
|
-
function
|
1785
|
+
function applyPropertiesToListItems(editor, properties) {
|
1722
1786
|
var lists = Editor.nodes(editor, {
|
1723
1787
|
match: function match(n) {
|
1724
1788
|
return listTypes.includes(n.type);
|
@@ -1748,9 +1812,7 @@ function applyTypograpyhVariantToListItems(editor, variant) {
|
|
1748
1812
|
var _step2$value = _slicedToArray(_step2.value, 2),
|
1749
1813
|
itemPath = _step2$value[1];
|
1750
1814
|
|
1751
|
-
Transforms.setNodes(editor, {
|
1752
|
-
variant: variant
|
1753
|
-
}, {
|
1815
|
+
Transforms.setNodes(editor, properties, {
|
1754
1816
|
at: itemPath
|
1755
1817
|
});
|
1756
1818
|
}
|
@@ -1767,16 +1829,24 @@ function applyTypograpyhVariantToListItems(editor, variant) {
|
|
1767
1829
|
}
|
1768
1830
|
}
|
1769
1831
|
|
1770
|
-
function
|
1832
|
+
function preserveColorAndTypograpyhVariant(editor) {
|
1771
1833
|
var nodeEntry = Editor.above(editor, {
|
1772
1834
|
at: Range.start(editor.selection),
|
1773
1835
|
match: function match(n) {
|
1774
1836
|
return !!n.type;
|
1775
1837
|
}
|
1776
1838
|
});
|
1777
|
-
|
1778
|
-
|
1779
|
-
|
1839
|
+
var result = {};
|
1840
|
+
|
1841
|
+
if (nodeEntry && nodeEntry[0].variant) {
|
1842
|
+
result.variant = nodeEntry[0].variant;
|
1843
|
+
}
|
1844
|
+
|
1845
|
+
if (nodeEntry && nodeEntry[0].color) {
|
1846
|
+
result.color = nodeEntry[0].color;
|
1847
|
+
}
|
1848
|
+
|
1849
|
+
return result;
|
1780
1850
|
}
|
1781
1851
|
|
1782
1852
|
function withBlockNormalization(_ref, editor) {
|
@@ -2027,7 +2097,7 @@ function Selection(props) {
|
|
2027
2097
|
range = _useContentElementEdi.range;
|
2028
2098
|
|
2029
2099
|
useEffect(function () {
|
2030
|
-
var _getUniformSelectedNo;
|
2100
|
+
var _getUniformSelectedNo, _getUniformSelectedNo2;
|
2031
2101
|
|
2032
2102
|
var selection = editor.selection;
|
2033
2103
|
|
@@ -2084,7 +2154,8 @@ function Selection(props) {
|
|
2084
2154
|
setTransientState({
|
2085
2155
|
editableTextIsSingleBlock: editor.children.length <= 1,
|
2086
2156
|
exampleNode: getUniformSelectedNode(editor, 'type'),
|
2087
|
-
typographyVariant: (_getUniformSelectedNo = getUniformSelectedNode(editor, 'variant')) === null || _getUniformSelectedNo === void 0 ? void 0 : _getUniformSelectedNo.variant
|
2157
|
+
typographyVariant: (_getUniformSelectedNo = getUniformSelectedNode(editor, 'variant')) === null || _getUniformSelectedNo === void 0 ? void 0 : _getUniformSelectedNo.variant,
|
2158
|
+
color: (_getUniformSelectedNo2 = getUniformSelectedNode(editor, 'color')) === null || _getUniformSelectedNo2 === void 0 ? void 0 : _getUniformSelectedNo2.color
|
2088
2159
|
});
|
2089
2160
|
boundsRef.current = {
|
2090
2161
|
start: start,
|
@@ -2463,13 +2534,24 @@ var EditableText = React.memo(function EditableText(_ref) {
|
|
2463
2534
|
placeholder = _ref.placeholder,
|
2464
2535
|
onChange = _ref.onChange,
|
2465
2536
|
selectionRect = _ref.selectionRect,
|
2466
|
-
className = _ref.className
|
2537
|
+
className = _ref.className,
|
2538
|
+
placeholderClassName = _ref.placeholderClassName,
|
2539
|
+
_ref$scaleCategory = _ref.scaleCategory,
|
2540
|
+
scaleCategory = _ref$scaleCategory === void 0 ? 'body' : _ref$scaleCategory,
|
2541
|
+
autoFocus = _ref.autoFocus,
|
2542
|
+
_ref$floatingControls = _ref.floatingControlsPosition,
|
2543
|
+
floatingControlsPosition = _ref$floatingControls === void 0 ? 'below' : _ref$floatingControls;
|
2467
2544
|
var editor = useMemo(function () {
|
2468
2545
|
return withLinks(withCustomInsertBreak(withBlockNormalization({
|
2469
2546
|
onlyParagraphs: !selectionRect
|
2470
2547
|
}, withLineBreakNormalization(withReact(createEditor())))));
|
2471
2548
|
}, [selectionRect]);
|
2472
2549
|
var handleLineBreaks = useLineBreakHandler(editor);
|
2550
|
+
useEffect(function () {
|
2551
|
+
if (autoFocus) {
|
2552
|
+
ReactEditor.focus(editor);
|
2553
|
+
}
|
2554
|
+
}, [autoFocus, editor]);
|
2473
2555
|
|
2474
2556
|
var _useCachedValue = useCachedValue(value, {
|
2475
2557
|
defaultValue: [{
|
@@ -2495,8 +2577,14 @@ var EditableText = React.memo(function EditableText(_ref) {
|
|
2495
2577
|
Transforms.removeNodes(editor, {
|
2496
2578
|
mode: 'highest'
|
2497
2579
|
});
|
2498
|
-
} else if (command.type === 'TRANSIENT_STATE_UPDATE'
|
2499
|
-
|
2580
|
+
} else if (command.type === 'TRANSIENT_STATE_UPDATE') {
|
2581
|
+
if ('typographyVariant' in command.payload) {
|
2582
|
+
applyTypograpyhVariant(editor, command.payload.typographyVariant);
|
2583
|
+
}
|
2584
|
+
|
2585
|
+
if ('color' in command.payload) {
|
2586
|
+
applyColor(editor, command.payload.color);
|
2587
|
+
}
|
2500
2588
|
}
|
2501
2589
|
});
|
2502
2590
|
|
@@ -2506,7 +2594,7 @@ var EditableText = React.memo(function EditableText(_ref) {
|
|
2506
2594
|
ref = _useDropTargetsActive2[1];
|
2507
2595
|
|
2508
2596
|
return /*#__PURE__*/React.createElement(Text$1, {
|
2509
|
-
scaleCategory:
|
2597
|
+
scaleCategory: scaleCategory
|
2510
2598
|
}, /*#__PURE__*/React.createElement("div", {
|
2511
2599
|
className: classNames(styles$7.container, _defineProperty({}, styles$7.selected, isSelected)),
|
2512
2600
|
ref: ref
|
@@ -2515,12 +2603,15 @@ var EditableText = React.memo(function EditableText(_ref) {
|
|
2515
2603
|
value: cachedValue,
|
2516
2604
|
onChange: setCachedValue
|
2517
2605
|
}, /*#__PURE__*/React.createElement(LinkTooltipProvider, {
|
2518
|
-
editor: editor
|
2606
|
+
editor: editor,
|
2607
|
+
position: floatingControlsPosition
|
2519
2608
|
}, selectionRect && /*#__PURE__*/React.createElement(Selection, {
|
2520
2609
|
contentElementId: contentElementId
|
2521
2610
|
}), dropTargetsActive && /*#__PURE__*/React.createElement(DropTargets$1, {
|
2522
2611
|
contentElementId: contentElementId
|
2523
|
-
}), /*#__PURE__*/React.createElement(HoveringToolbar,
|
2612
|
+
}), /*#__PURE__*/React.createElement(HoveringToolbar, {
|
2613
|
+
position: floatingControlsPosition
|
2614
|
+
}), /*#__PURE__*/React.createElement(Editable, {
|
2524
2615
|
className: className,
|
2525
2616
|
decorate: decorateLineBreaks,
|
2526
2617
|
onKeyDown: handleLineBreaks,
|
@@ -2528,6 +2619,7 @@ var EditableText = React.memo(function EditableText(_ref) {
|
|
2528
2619
|
renderLeaf: renderLeafWithLineBreakDecoration
|
2529
2620
|
}))), /*#__PURE__*/React.createElement(TextPlaceholder, {
|
2530
2621
|
text: placeholder,
|
2622
|
+
className: placeholderClassName,
|
2531
2623
|
visible: isBlank(cachedValue)
|
2532
2624
|
})));
|
2533
2625
|
});
|
@@ -2679,6 +2771,55 @@ function renderLeaf(_ref2) {
|
|
2679
2771
|
return /*#__PURE__*/React.createElement("span", attributes, children);
|
2680
2772
|
}
|
2681
2773
|
|
2774
|
+
var styles$a = {"button":"ActionButton-module_button__8gy6J","position-outside":"ActionButton-module_position-outside__1E_lp","position-outsideIndented":"ActionButton-module_position-outsideIndented__3vf-7","position-inside":"ActionButton-module_position-inside__28_gp"};
|
2775
|
+
|
2776
|
+
function _extends$e() {
|
2777
|
+
_extends$e = Object.assign || function (target) {
|
2778
|
+
for (var i = 1; i < arguments.length; i++) {
|
2779
|
+
var source = arguments[i];
|
2780
|
+
|
2781
|
+
for (var key in source) {
|
2782
|
+
if (Object.prototype.hasOwnProperty.call(source, key)) {
|
2783
|
+
target[key] = source[key];
|
2784
|
+
}
|
2785
|
+
}
|
2786
|
+
}
|
2787
|
+
|
2788
|
+
return target;
|
2789
|
+
};
|
2790
|
+
|
2791
|
+
return _extends$e.apply(this, arguments);
|
2792
|
+
}
|
2793
|
+
var pencil = (function (_ref) {
|
2794
|
+
var _ref$styles = _ref.styles,
|
2795
|
+
props = _objectWithoutProperties(_ref, ["styles"]);
|
2796
|
+
|
2797
|
+
return /*#__PURE__*/React.createElement("svg", _extends$e({
|
2798
|
+
xmlns: "http://www.w3.org/2000/svg",
|
2799
|
+
viewBox: "0 0 512 512"
|
2800
|
+
}, props), /*#__PURE__*/React.createElement("path", {
|
2801
|
+
d: "M410.3 231l11.3-11.3-33.9-33.9-62.1-62.1-33.9-33.9-11.3 11.3-22.6 22.6L58.6 322.9c-10.4 10.4-18 23.3-22.2 37.4L1 480.7c-2.5 8.4-.2 17.5 6.1 23.7s15.3 8.5 23.7 6.1l120.3-35.4c14.1-4.2 27-11.8 37.4-22.2l199.2-199.2 22.6-22.7zM160 399.4l-9.1 22.7c-4 3.1-8.5 5.4-13.3 6.9l-78.2 23 23-78.1c1.4-4.9 3.8-9.4 6.9-13.3l22.7-9.1v32c0 8.8 7.2 16 16 16h32zM362.7 18.7l-14.4 14.5-22.6 22.6-11.4 11.3 33.9 33.9 62.1 62.1 33.9 33.9 11.3-11.3 22.6-22.6 14.5-14.5c25-25 25-65.5 0-90.5l-39.3-39.4c-25-25-65.5-25-90.5 0zm-47.4 168l-144 144c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l144-144c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z"
|
2802
|
+
}));
|
2803
|
+
});
|
2804
|
+
|
2805
|
+
var icons = {
|
2806
|
+
pencil: pencil
|
2807
|
+
};
|
2808
|
+
function ActionButton(_ref) {
|
2809
|
+
var icon = _ref.icon,
|
2810
|
+
text = _ref.text,
|
2811
|
+
position = _ref.position,
|
2812
|
+
onClick = _ref.onClick;
|
2813
|
+
var Icon = icons[icon];
|
2814
|
+
return /*#__PURE__*/React.createElement("button", {
|
2815
|
+
className: classNames(styles$a.button, styles$a["position-".concat(position)]),
|
2816
|
+
onClick: onClick
|
2817
|
+
}, /*#__PURE__*/React.createElement(Icon, {
|
2818
|
+
width: 15,
|
2819
|
+
height: 15
|
2820
|
+
}), text);
|
2821
|
+
}
|
2822
|
+
|
2682
2823
|
function PhonePlatformProvider(_ref) {
|
2683
2824
|
var children = _ref.children;
|
2684
2825
|
|
@@ -2709,4 +2850,4 @@ function PhonePlatformProvider(_ref) {
|
|
2709
2850
|
}, children);
|
2710
2851
|
}
|
2711
2852
|
|
2712
|
-
export { ContentDecorator, ContentElementDecorator, EditableInlineText, EditableText, LayoutWithPlaceholder, PhonePlatformProvider, SectionDecorator };
|
2853
|
+
export { ActionButton, ContentDecorator, ContentElementDecorator, EditableInlineText, EditableText, LayoutWithPlaceholder, PhonePlatformProvider, SectionDecorator };
|