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
data/entry_types/scrolled/package/frontend/{components-b3160dd7.js → components-4a09bfa3.js}
RENAMED
|
@@ -1,15 +1,17 @@
|
|
|
1
1
|
import 'regenerator-runtime';
|
|
2
|
-
import {
|
|
2
|
+
import { a9 as ContentElementEditorCommandEmitterContext, b as usePostMessageListener, aa as MotifAreaVisibilityProvider, ab as ForcePaddingContext, ac as ContentElementConfigurationUpdateContext, d as api, l as widths, ad as LayoutWithoutInlineEditing, a8 as SectionThumbnail, ae as renderElement, af as renderLeaf$1, D as useContentElementEditorCommandSubscription, W as Text$1, r as frontendStyles } from './EditableInlineText.module-fa9e3aff.js';
|
|
3
3
|
import 'pageflow/frontend';
|
|
4
4
|
import React, { useMemo, useState, useCallback, useContext, useRef, useEffect, createContext, memo } from 'react';
|
|
5
|
-
import {
|
|
6
|
-
import '
|
|
5
|
+
import { _ as _slicedToArray, n as useEntryStateDispatch, b as _defineProperty, e as _objectWithoutProperties, u as useI18n, C as updateContentElementConfiguration, m as useChapter, f as useFile, a as _objectSpread2, l as _toConsumableArray, D as _unsupportedIterableToArray } from './i18n-ddd92820.js';
|
|
6
|
+
import classNames from 'classnames';
|
|
7
|
+
import { C as ContentElementEditorStateContext, a as useContentElementEditorState } from './useContentElementEditorState-63045393.js';
|
|
7
8
|
import 'use-context-selector';
|
|
8
9
|
import 'reselect';
|
|
9
10
|
import 'slugify';
|
|
10
|
-
import classNames from 'classnames';
|
|
11
11
|
import './createSuper-d0f30da3.js';
|
|
12
12
|
import BackboneEvents from 'backbone-events-standalone';
|
|
13
|
+
import 'i18n-js';
|
|
14
|
+
import { P as PhonePlatformContext } from './PhonePlatformContext-10a1d600.js';
|
|
13
15
|
import 'react-measure';
|
|
14
16
|
import { DndProvider, useDrop, useDrag } from 'react-dnd';
|
|
15
17
|
import { HTML5Backend } from 'react-dnd-html5-backend';
|
|
@@ -193,7 +195,7 @@ function MessageHandler(_ref) {
|
|
|
193
195
|
return null;
|
|
194
196
|
}
|
|
195
197
|
|
|
196
|
-
var styles = {"wrapper":"SectionDecorator-module_wrapper__3sTk3","selected":"SectionDecorator-module_selected__1gcmF","transitionSelected":"SectionDecorator-module_transitionSelected__Wklk6","controls":"SectionDecorator-module_controls__LVEJG","
|
|
198
|
+
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
199
|
|
|
198
200
|
var styles$1 = {"wrapper":"ContentElementDecorator-module_wrapper__NQgFN"};
|
|
199
201
|
|
|
@@ -298,7 +300,7 @@ function SectionDecorator(_ref) {
|
|
|
298
300
|
isLastContentElementSelected = _useEditorSelection2.isSelected;
|
|
299
301
|
|
|
300
302
|
function selectIfOutsideContentItem(event) {
|
|
301
|
-
if (!event.target.closest(".".concat(styles$1.wrapper))) {
|
|
303
|
+
if (!event.target.closest(".".concat(styles$1.wrapper)) && !event.target.closest('#fullscreenRoot')) {
|
|
302
304
|
isSelected ? resetSelection() : select();
|
|
303
305
|
}
|
|
304
306
|
}
|
|
@@ -770,7 +772,7 @@ function DefaultSelectionRect(props) {
|
|
|
770
772
|
scrollPoint: isSelected,
|
|
771
773
|
drag: drag,
|
|
772
774
|
dragHandleTitle: t('pageflow_scrolled.inline_editing.drag_content_element'),
|
|
773
|
-
full: props.
|
|
775
|
+
full: props.width === widths.full || props.customMargin,
|
|
774
776
|
ariaLabel: t('pageflow_scrolled.inline_editing.select_content_element'),
|
|
775
777
|
insertButtonTitles: t('pageflow_scrolled.inline_editing.insert_content_element'),
|
|
776
778
|
onClick: function onClick() {
|
|
@@ -930,7 +932,8 @@ var styles$6 = {"placeholder":"TextPlaceholder-module_placeholder__sgVwx"};
|
|
|
930
932
|
|
|
931
933
|
function TextPlaceholder(_ref) {
|
|
932
934
|
var text = _ref.text,
|
|
933
|
-
visible = _ref.visible
|
|
935
|
+
visible = _ref.visible,
|
|
936
|
+
className = _ref.className;
|
|
934
937
|
|
|
935
938
|
if (!text || !visible) {
|
|
936
939
|
return null;
|
|
@@ -938,7 +941,9 @@ function TextPlaceholder(_ref) {
|
|
|
938
941
|
|
|
939
942
|
return /*#__PURE__*/React.createElement("div", {
|
|
940
943
|
className: styles$6.placeholder
|
|
941
|
-
}, /*#__PURE__*/React.createElement("div",
|
|
944
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
945
|
+
className: className
|
|
946
|
+
}, text));
|
|
942
947
|
}
|
|
943
948
|
|
|
944
949
|
function withCustomInsertBreak(editor) {
|
|
@@ -977,7 +982,7 @@ function withCustomInsertBreak(editor) {
|
|
|
977
982
|
return editor;
|
|
978
983
|
}
|
|
979
984
|
|
|
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"};
|
|
985
|
+
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
986
|
|
|
982
987
|
function _extends$3() {
|
|
983
988
|
_extends$3 = Object.assign || function (target) {
|
|
@@ -1018,6 +1023,7 @@ var UpdateContext = createContext();
|
|
|
1018
1023
|
function LinkTooltipProvider(_ref) {
|
|
1019
1024
|
var editor = _ref.editor,
|
|
1020
1025
|
disabled = _ref.disabled,
|
|
1026
|
+
position = _ref.position,
|
|
1021
1027
|
children = _ref.children;
|
|
1022
1028
|
|
|
1023
1029
|
var _useState = useState(),
|
|
@@ -1037,7 +1043,8 @@ function LinkTooltipProvider(_ref) {
|
|
|
1037
1043
|
setState({
|
|
1038
1044
|
href: href,
|
|
1039
1045
|
openInNewTab: openInNewTab,
|
|
1040
|
-
top: linkRect.bottom - outerRect.top + 10,
|
|
1046
|
+
top: position === 'below' ? linkRect.bottom - outerRect.top + 10 : 'auto',
|
|
1047
|
+
bottom: position === 'above' ? outerRect.bottom - linkRect.top + 10 : 'auto',
|
|
1041
1048
|
left: linkRect.left - outerRect.left
|
|
1042
1049
|
});
|
|
1043
1050
|
},
|
|
@@ -1054,7 +1061,7 @@ function LinkTooltipProvider(_ref) {
|
|
|
1054
1061
|
}
|
|
1055
1062
|
}
|
|
1056
1063
|
};
|
|
1057
|
-
}, []);
|
|
1064
|
+
}, [position]);
|
|
1058
1065
|
return /*#__PURE__*/React.createElement(UpdateContext.Provider, {
|
|
1059
1066
|
value: update
|
|
1060
1067
|
}, /*#__PURE__*/React.createElement("div", {
|
|
@@ -1062,7 +1069,8 @@ function LinkTooltipProvider(_ref) {
|
|
|
1062
1069
|
}, /*#__PURE__*/React.createElement(LinkTooltip, {
|
|
1063
1070
|
editor: editor,
|
|
1064
1071
|
state: state,
|
|
1065
|
-
disabled: disabled
|
|
1072
|
+
disabled: disabled,
|
|
1073
|
+
position: position
|
|
1066
1074
|
}), children));
|
|
1067
1075
|
}
|
|
1068
1076
|
function LinkPreview(_ref2) {
|
|
@@ -1087,6 +1095,7 @@ function LinkPreview(_ref2) {
|
|
|
1087
1095
|
function LinkTooltip(_ref3) {
|
|
1088
1096
|
var editor = _ref3.editor,
|
|
1089
1097
|
disabled = _ref3.disabled,
|
|
1098
|
+
position = _ref3.position,
|
|
1090
1099
|
state = _ref3.state;
|
|
1091
1100
|
|
|
1092
1101
|
var _useContext2 = useContext(UpdateContext),
|
|
@@ -1098,11 +1107,12 @@ function LinkTooltip(_ref3) {
|
|
|
1098
1107
|
}
|
|
1099
1108
|
|
|
1100
1109
|
return /*#__PURE__*/React.createElement("div", {
|
|
1101
|
-
className: classNames(styles$7.linkTooltip, styles$7.hoveringToolbar),
|
|
1110
|
+
className: classNames(styles$7.linkTooltip, styles$7["linkTooltip-".concat(position)], styles$7.hoveringToolbar),
|
|
1102
1111
|
onMouseEnter: keep,
|
|
1103
1112
|
onMouseLeave: deactivate,
|
|
1104
1113
|
style: {
|
|
1105
1114
|
top: state.top,
|
|
1115
|
+
bottom: state.bottom,
|
|
1106
1116
|
left: state.left,
|
|
1107
1117
|
opacity: 1
|
|
1108
1118
|
}
|
|
@@ -1124,6 +1134,10 @@ function LinkDestination(_ref4) {
|
|
|
1124
1134
|
return /*#__PURE__*/React.createElement(SectionLinkDestination, {
|
|
1125
1135
|
permaId: href.section
|
|
1126
1136
|
});
|
|
1137
|
+
} else if (href === null || href === void 0 ? void 0 : href.file) {
|
|
1138
|
+
return /*#__PURE__*/React.createElement(FileLinkDestination, {
|
|
1139
|
+
fileOptions: href.file
|
|
1140
|
+
});
|
|
1127
1141
|
} else {
|
|
1128
1142
|
return /*#__PURE__*/React.createElement(ExternalLinkDestination, {
|
|
1129
1143
|
href: href,
|
|
@@ -1144,7 +1158,7 @@ function ChapterLinkDestination(_ref5) {
|
|
|
1144
1158
|
t = _useI18n.t;
|
|
1145
1159
|
|
|
1146
1160
|
if (!chapter) {
|
|
1147
|
-
return
|
|
1161
|
+
return /*#__PURE__*/React.createElement("span", null, t('pageflow_scrolled.inline_editing.link_tooltip.deleted_chapter'));
|
|
1148
1162
|
}
|
|
1149
1163
|
|
|
1150
1164
|
return /*#__PURE__*/React.createElement("a", {
|
|
@@ -1197,6 +1211,29 @@ function ExternalLinkDestination(_ref7) {
|
|
|
1197
1211
|
}, openInNewTab ? t('pageflow_scrolled.inline_editing.link_tooltip.opens_in_new_tab') : t('pageflow_scrolled.inline_editing.link_tooltip.opens_in_same_tab')));
|
|
1198
1212
|
}
|
|
1199
1213
|
|
|
1214
|
+
function FileLinkDestination(_ref8) {
|
|
1215
|
+
var fileOptions = _ref8.fileOptions;
|
|
1216
|
+
var file = useFile(fileOptions);
|
|
1217
|
+
|
|
1218
|
+
var _useI18n4 = useI18n({
|
|
1219
|
+
locale: 'ui'
|
|
1220
|
+
}),
|
|
1221
|
+
t = _useI18n4.t;
|
|
1222
|
+
|
|
1223
|
+
if (!file) {
|
|
1224
|
+
return /*#__PURE__*/React.createElement("span", null, t('pageflow_scrolled.inline_editing.link_tooltip.deleted_file'));
|
|
1225
|
+
}
|
|
1226
|
+
|
|
1227
|
+
return /*#__PURE__*/React.createElement("a", {
|
|
1228
|
+
href: file.urls.original,
|
|
1229
|
+
target: "_blank",
|
|
1230
|
+
rel: "noopener noreferrer"
|
|
1231
|
+
}, file.urls.original.split('/').pop(), /*#__PURE__*/React.createElement(ExternalLinkIcon, {
|
|
1232
|
+
width: 10,
|
|
1233
|
+
height: 10
|
|
1234
|
+
}));
|
|
1235
|
+
}
|
|
1236
|
+
|
|
1200
1237
|
function withLinks(editor) {
|
|
1201
1238
|
var isInline = editor.isInline;
|
|
1202
1239
|
|
|
@@ -1258,20 +1295,28 @@ function useDropTargetsActive() {
|
|
|
1258
1295
|
return [dropTargetsActive, drop];
|
|
1259
1296
|
}
|
|
1260
1297
|
|
|
1298
|
+
var abortPreviousCall;
|
|
1261
1299
|
function useSelectLinkDestination() {
|
|
1262
1300
|
return function () {
|
|
1263
1301
|
return new Promise(function (resolve, reject) {
|
|
1302
|
+
if (abortPreviousCall) {
|
|
1303
|
+
abortPreviousCall();
|
|
1304
|
+
}
|
|
1305
|
+
|
|
1306
|
+
abortPreviousCall = function abortPreviousCall() {
|
|
1307
|
+
window.removeEventListener('message', receive);
|
|
1308
|
+
reject();
|
|
1309
|
+
};
|
|
1310
|
+
|
|
1264
1311
|
postSelectLinkDestinationMessage();
|
|
1265
1312
|
window.addEventListener('message', receive);
|
|
1266
1313
|
|
|
1267
1314
|
function receive(message) {
|
|
1268
1315
|
if (window.location.href.indexOf(message.origin) === 0) {
|
|
1269
1316
|
if (message.data.type === 'LINK_DESTINATION_SELECTED') {
|
|
1317
|
+
abortPreviousCall = null;
|
|
1270
1318
|
window.removeEventListener('message', receive);
|
|
1271
1319
|
resolve(message.data.payload);
|
|
1272
|
-
} else if (message.data.type === 'LINK_DESTINATION_SELECTION_ABORTED') {
|
|
1273
|
-
window.removeEventListener('message', receive);
|
|
1274
|
-
reject();
|
|
1275
1320
|
}
|
|
1276
1321
|
}
|
|
1277
1322
|
}
|
|
@@ -1454,7 +1499,8 @@ var LinkIcon = (function (_ref) {
|
|
|
1454
1499
|
}));
|
|
1455
1500
|
});
|
|
1456
1501
|
|
|
1457
|
-
function HoveringToolbar() {
|
|
1502
|
+
function HoveringToolbar(_ref) {
|
|
1503
|
+
var position = _ref.position;
|
|
1458
1504
|
var ref = useRef();
|
|
1459
1505
|
var outerRef = useRef();
|
|
1460
1506
|
var editor = useSlate();
|
|
@@ -1482,11 +1528,19 @@ function HoveringToolbar() {
|
|
|
1482
1528
|
var rect = domRange.getBoundingClientRect();
|
|
1483
1529
|
var outerRect = outerRef.current.getBoundingClientRect();
|
|
1484
1530
|
el.style.opacity = 1;
|
|
1485
|
-
el.style.top = "".concat(rect.bottom - outerRect.top + 10, "px");
|
|
1486
1531
|
el.style.left = "".concat(rect.left - outerRect.left, "px");
|
|
1532
|
+
|
|
1533
|
+
if (position === 'above') {
|
|
1534
|
+
el.style.top = 'auto';
|
|
1535
|
+
el.style.bottom = "".concat(outerRect.bottom - rect.top + 5, "px");
|
|
1536
|
+
} else {
|
|
1537
|
+
el.style.bottom = 'auto';
|
|
1538
|
+
el.style.top = "".concat(rect.bottom - outerRect.top + 5, "px");
|
|
1539
|
+
}
|
|
1487
1540
|
});
|
|
1488
1541
|
return /*#__PURE__*/React.createElement("div", {
|
|
1489
|
-
ref: outerRef
|
|
1542
|
+
ref: outerRef,
|
|
1543
|
+
className: styles$7.hoveringToolbarContainer
|
|
1490
1544
|
}, /*#__PURE__*/React.createElement("div", {
|
|
1491
1545
|
ref: ref,
|
|
1492
1546
|
className: styles$7.hoveringToolbar
|
|
@@ -1532,9 +1586,9 @@ function handleButtonClick(editor, format, selectLinkDestination) {
|
|
|
1532
1586
|
if (isLinkActive(editor)) {
|
|
1533
1587
|
unwrapLink(editor);
|
|
1534
1588
|
} else {
|
|
1535
|
-
selectLinkDestination().then(function (
|
|
1536
|
-
var href =
|
|
1537
|
-
openInNewTab =
|
|
1589
|
+
selectLinkDestination().then(function (_ref2) {
|
|
1590
|
+
var href = _ref2.href,
|
|
1591
|
+
openInNewTab = _ref2.openInNewTab;
|
|
1538
1592
|
wrapLink(editor, href, openInNewTab);
|
|
1539
1593
|
}, function () {});
|
|
1540
1594
|
}
|
|
@@ -1704,21 +1758,30 @@ function toggleBlock(editor, format) {
|
|
|
1704
1758
|
var block = _objectSpread2({
|
|
1705
1759
|
type: format,
|
|
1706
1760
|
children: []
|
|
1707
|
-
},
|
|
1761
|
+
}, preserveColorAndTypograpyhVariant(editor));
|
|
1708
1762
|
|
|
1709
1763
|
Transforms.wrapNodes(editor, block);
|
|
1710
1764
|
}
|
|
1711
1765
|
}
|
|
1712
1766
|
function applyTypograpyhVariant(editor, variant) {
|
|
1713
|
-
|
|
1767
|
+
applyProperties(editor, {
|
|
1714
1768
|
variant: variant
|
|
1715
|
-
}
|
|
1769
|
+
});
|
|
1770
|
+
}
|
|
1771
|
+
function applyColor(editor, color) {
|
|
1772
|
+
applyProperties(editor, {
|
|
1773
|
+
color: color
|
|
1774
|
+
});
|
|
1775
|
+
}
|
|
1776
|
+
|
|
1777
|
+
function applyProperties(editor, properties) {
|
|
1778
|
+
Transforms.setNodes(editor, properties, {
|
|
1716
1779
|
mode: 'highest'
|
|
1717
1780
|
});
|
|
1718
|
-
|
|
1781
|
+
applyPropertiesToListItems(editor, properties);
|
|
1719
1782
|
}
|
|
1720
1783
|
|
|
1721
|
-
function
|
|
1784
|
+
function applyPropertiesToListItems(editor, properties) {
|
|
1722
1785
|
var lists = Editor.nodes(editor, {
|
|
1723
1786
|
match: function match(n) {
|
|
1724
1787
|
return listTypes.includes(n.type);
|
|
@@ -1748,9 +1811,7 @@ function applyTypograpyhVariantToListItems(editor, variant) {
|
|
|
1748
1811
|
var _step2$value = _slicedToArray(_step2.value, 2),
|
|
1749
1812
|
itemPath = _step2$value[1];
|
|
1750
1813
|
|
|
1751
|
-
Transforms.setNodes(editor, {
|
|
1752
|
-
variant: variant
|
|
1753
|
-
}, {
|
|
1814
|
+
Transforms.setNodes(editor, properties, {
|
|
1754
1815
|
at: itemPath
|
|
1755
1816
|
});
|
|
1756
1817
|
}
|
|
@@ -1767,16 +1828,24 @@ function applyTypograpyhVariantToListItems(editor, variant) {
|
|
|
1767
1828
|
}
|
|
1768
1829
|
}
|
|
1769
1830
|
|
|
1770
|
-
function
|
|
1831
|
+
function preserveColorAndTypograpyhVariant(editor) {
|
|
1771
1832
|
var nodeEntry = Editor.above(editor, {
|
|
1772
1833
|
at: Range.start(editor.selection),
|
|
1773
1834
|
match: function match(n) {
|
|
1774
1835
|
return !!n.type;
|
|
1775
1836
|
}
|
|
1776
1837
|
});
|
|
1777
|
-
|
|
1778
|
-
|
|
1779
|
-
|
|
1838
|
+
var result = {};
|
|
1839
|
+
|
|
1840
|
+
if (nodeEntry && nodeEntry[0].variant) {
|
|
1841
|
+
result.variant = nodeEntry[0].variant;
|
|
1842
|
+
}
|
|
1843
|
+
|
|
1844
|
+
if (nodeEntry && nodeEntry[0].color) {
|
|
1845
|
+
result.color = nodeEntry[0].color;
|
|
1846
|
+
}
|
|
1847
|
+
|
|
1848
|
+
return result;
|
|
1780
1849
|
}
|
|
1781
1850
|
|
|
1782
1851
|
function withBlockNormalization(_ref, editor) {
|
|
@@ -2027,7 +2096,7 @@ function Selection(props) {
|
|
|
2027
2096
|
range = _useContentElementEdi.range;
|
|
2028
2097
|
|
|
2029
2098
|
useEffect(function () {
|
|
2030
|
-
var _getUniformSelectedNo;
|
|
2099
|
+
var _getUniformSelectedNo, _getUniformSelectedNo2;
|
|
2031
2100
|
|
|
2032
2101
|
var selection = editor.selection;
|
|
2033
2102
|
|
|
@@ -2084,7 +2153,8 @@ function Selection(props) {
|
|
|
2084
2153
|
setTransientState({
|
|
2085
2154
|
editableTextIsSingleBlock: editor.children.length <= 1,
|
|
2086
2155
|
exampleNode: getUniformSelectedNode(editor, 'type'),
|
|
2087
|
-
typographyVariant: (_getUniformSelectedNo = getUniformSelectedNode(editor, 'variant')) === null || _getUniformSelectedNo === void 0 ? void 0 : _getUniformSelectedNo.variant
|
|
2156
|
+
typographyVariant: (_getUniformSelectedNo = getUniformSelectedNode(editor, 'variant')) === null || _getUniformSelectedNo === void 0 ? void 0 : _getUniformSelectedNo.variant,
|
|
2157
|
+
color: (_getUniformSelectedNo2 = getUniformSelectedNode(editor, 'color')) === null || _getUniformSelectedNo2 === void 0 ? void 0 : _getUniformSelectedNo2.color
|
|
2088
2158
|
});
|
|
2089
2159
|
boundsRef.current = {
|
|
2090
2160
|
start: start,
|
|
@@ -2463,13 +2533,24 @@ var EditableText = React.memo(function EditableText(_ref) {
|
|
|
2463
2533
|
placeholder = _ref.placeholder,
|
|
2464
2534
|
onChange = _ref.onChange,
|
|
2465
2535
|
selectionRect = _ref.selectionRect,
|
|
2466
|
-
className = _ref.className
|
|
2536
|
+
className = _ref.className,
|
|
2537
|
+
placeholderClassName = _ref.placeholderClassName,
|
|
2538
|
+
_ref$scaleCategory = _ref.scaleCategory,
|
|
2539
|
+
scaleCategory = _ref$scaleCategory === void 0 ? 'body' : _ref$scaleCategory,
|
|
2540
|
+
autoFocus = _ref.autoFocus,
|
|
2541
|
+
_ref$floatingControls = _ref.floatingControlsPosition,
|
|
2542
|
+
floatingControlsPosition = _ref$floatingControls === void 0 ? 'below' : _ref$floatingControls;
|
|
2467
2543
|
var editor = useMemo(function () {
|
|
2468
2544
|
return withLinks(withCustomInsertBreak(withBlockNormalization({
|
|
2469
2545
|
onlyParagraphs: !selectionRect
|
|
2470
2546
|
}, withLineBreakNormalization(withReact(createEditor())))));
|
|
2471
2547
|
}, [selectionRect]);
|
|
2472
2548
|
var handleLineBreaks = useLineBreakHandler(editor);
|
|
2549
|
+
useEffect(function () {
|
|
2550
|
+
if (autoFocus) {
|
|
2551
|
+
ReactEditor.focus(editor);
|
|
2552
|
+
}
|
|
2553
|
+
}, [autoFocus, editor]);
|
|
2473
2554
|
|
|
2474
2555
|
var _useCachedValue = useCachedValue(value, {
|
|
2475
2556
|
defaultValue: [{
|
|
@@ -2495,8 +2576,14 @@ var EditableText = React.memo(function EditableText(_ref) {
|
|
|
2495
2576
|
Transforms.removeNodes(editor, {
|
|
2496
2577
|
mode: 'highest'
|
|
2497
2578
|
});
|
|
2498
|
-
} else if (command.type === 'TRANSIENT_STATE_UPDATE'
|
|
2499
|
-
|
|
2579
|
+
} else if (command.type === 'TRANSIENT_STATE_UPDATE') {
|
|
2580
|
+
if ('typographyVariant' in command.payload) {
|
|
2581
|
+
applyTypograpyhVariant(editor, command.payload.typographyVariant);
|
|
2582
|
+
}
|
|
2583
|
+
|
|
2584
|
+
if ('color' in command.payload) {
|
|
2585
|
+
applyColor(editor, command.payload.color);
|
|
2586
|
+
}
|
|
2500
2587
|
}
|
|
2501
2588
|
});
|
|
2502
2589
|
|
|
@@ -2506,7 +2593,7 @@ var EditableText = React.memo(function EditableText(_ref) {
|
|
|
2506
2593
|
ref = _useDropTargetsActive2[1];
|
|
2507
2594
|
|
|
2508
2595
|
return /*#__PURE__*/React.createElement(Text$1, {
|
|
2509
|
-
scaleCategory:
|
|
2596
|
+
scaleCategory: scaleCategory
|
|
2510
2597
|
}, /*#__PURE__*/React.createElement("div", {
|
|
2511
2598
|
className: classNames(styles$7.container, _defineProperty({}, styles$7.selected, isSelected)),
|
|
2512
2599
|
ref: ref
|
|
@@ -2515,12 +2602,15 @@ var EditableText = React.memo(function EditableText(_ref) {
|
|
|
2515
2602
|
value: cachedValue,
|
|
2516
2603
|
onChange: setCachedValue
|
|
2517
2604
|
}, /*#__PURE__*/React.createElement(LinkTooltipProvider, {
|
|
2518
|
-
editor: editor
|
|
2605
|
+
editor: editor,
|
|
2606
|
+
position: floatingControlsPosition
|
|
2519
2607
|
}, selectionRect && /*#__PURE__*/React.createElement(Selection, {
|
|
2520
2608
|
contentElementId: contentElementId
|
|
2521
2609
|
}), dropTargetsActive && /*#__PURE__*/React.createElement(DropTargets$1, {
|
|
2522
2610
|
contentElementId: contentElementId
|
|
2523
|
-
}), /*#__PURE__*/React.createElement(HoveringToolbar,
|
|
2611
|
+
}), /*#__PURE__*/React.createElement(HoveringToolbar, {
|
|
2612
|
+
position: floatingControlsPosition
|
|
2613
|
+
}), /*#__PURE__*/React.createElement(Editable, {
|
|
2524
2614
|
className: className,
|
|
2525
2615
|
decorate: decorateLineBreaks,
|
|
2526
2616
|
onKeyDown: handleLineBreaks,
|
|
@@ -2528,6 +2618,7 @@ var EditableText = React.memo(function EditableText(_ref) {
|
|
|
2528
2618
|
renderLeaf: renderLeafWithLineBreakDecoration
|
|
2529
2619
|
}))), /*#__PURE__*/React.createElement(TextPlaceholder, {
|
|
2530
2620
|
text: placeholder,
|
|
2621
|
+
className: placeholderClassName,
|
|
2531
2622
|
visible: isBlank(cachedValue)
|
|
2532
2623
|
})));
|
|
2533
2624
|
});
|
|
@@ -2679,6 +2770,55 @@ function renderLeaf(_ref2) {
|
|
|
2679
2770
|
return /*#__PURE__*/React.createElement("span", attributes, children);
|
|
2680
2771
|
}
|
|
2681
2772
|
|
|
2773
|
+
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"};
|
|
2774
|
+
|
|
2775
|
+
function _extends$e() {
|
|
2776
|
+
_extends$e = Object.assign || function (target) {
|
|
2777
|
+
for (var i = 1; i < arguments.length; i++) {
|
|
2778
|
+
var source = arguments[i];
|
|
2779
|
+
|
|
2780
|
+
for (var key in source) {
|
|
2781
|
+
if (Object.prototype.hasOwnProperty.call(source, key)) {
|
|
2782
|
+
target[key] = source[key];
|
|
2783
|
+
}
|
|
2784
|
+
}
|
|
2785
|
+
}
|
|
2786
|
+
|
|
2787
|
+
return target;
|
|
2788
|
+
};
|
|
2789
|
+
|
|
2790
|
+
return _extends$e.apply(this, arguments);
|
|
2791
|
+
}
|
|
2792
|
+
var pencil = (function (_ref) {
|
|
2793
|
+
var _ref$styles = _ref.styles,
|
|
2794
|
+
props = _objectWithoutProperties(_ref, ["styles"]);
|
|
2795
|
+
|
|
2796
|
+
return /*#__PURE__*/React.createElement("svg", _extends$e({
|
|
2797
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
2798
|
+
viewBox: "0 0 512 512"
|
|
2799
|
+
}, props), /*#__PURE__*/React.createElement("path", {
|
|
2800
|
+
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"
|
|
2801
|
+
}));
|
|
2802
|
+
});
|
|
2803
|
+
|
|
2804
|
+
var icons = {
|
|
2805
|
+
pencil: pencil
|
|
2806
|
+
};
|
|
2807
|
+
function ActionButton(_ref) {
|
|
2808
|
+
var icon = _ref.icon,
|
|
2809
|
+
text = _ref.text,
|
|
2810
|
+
position = _ref.position,
|
|
2811
|
+
onClick = _ref.onClick;
|
|
2812
|
+
var Icon = icons[icon];
|
|
2813
|
+
return /*#__PURE__*/React.createElement("button", {
|
|
2814
|
+
className: classNames(styles$a.button, styles$a["position-".concat(position)]),
|
|
2815
|
+
onClick: onClick
|
|
2816
|
+
}, /*#__PURE__*/React.createElement(Icon, {
|
|
2817
|
+
width: 15,
|
|
2818
|
+
height: 15
|
|
2819
|
+
}), text);
|
|
2820
|
+
}
|
|
2821
|
+
|
|
2682
2822
|
function PhonePlatformProvider(_ref) {
|
|
2683
2823
|
var children = _ref.children;
|
|
2684
2824
|
|
|
@@ -2709,4 +2849,4 @@ function PhonePlatformProvider(_ref) {
|
|
|
2709
2849
|
}, children);
|
|
2710
2850
|
}
|
|
2711
2851
|
|
|
2712
|
-
export { ContentDecorator, ContentElementDecorator, EditableInlineText, EditableText, LayoutWithPlaceholder, PhonePlatformProvider, SectionDecorator };
|
|
2852
|
+
export { ActionButton, ContentDecorator, ContentElementDecorator, EditableInlineText, EditableText, LayoutWithPlaceholder, PhonePlatformProvider, SectionDecorator };
|