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
@@ -0,0 +1,32 @@
|
|
1
|
+
import { browser } from 'pageflow/frontend';
|
2
|
+
import React, { createContext, useContext, useState, useEffect } from 'react';
|
3
|
+
import { _ as _slicedToArray } from './i18n-71c39823.js';
|
4
|
+
|
5
|
+
var BrowserFeaturesAvailableContext = createContext(); // Browser feature detection is not available during server side
|
6
|
+
// rendering. To prevent mismatches during hydration, we keep features
|
7
|
+
// disabled in the initial render. Since hydration only starts after
|
8
|
+
// feature detection has finished, we can immediately re-render once
|
9
|
+
// the provider has mounted.
|
10
|
+
|
11
|
+
function BrowserFeaturesProvider(_ref) {
|
12
|
+
var children = _ref.children;
|
13
|
+
|
14
|
+
var _useState = useState(false),
|
15
|
+
_useState2 = _slicedToArray(_useState, 2),
|
16
|
+
isAvailable = _useState2[0],
|
17
|
+
setIsAvailable = _useState2[1];
|
18
|
+
|
19
|
+
useEffect(function () {
|
20
|
+
return setIsAvailable(true);
|
21
|
+
}, []);
|
22
|
+
return /*#__PURE__*/React.createElement(BrowserFeaturesAvailableContext.Provider, {
|
23
|
+
value: isAvailable
|
24
|
+
}, children);
|
25
|
+
}
|
26
|
+
function useBrowserFeature(name) {
|
27
|
+
return useContext(BrowserFeaturesAvailableContext) && browser.has(name);
|
28
|
+
}
|
29
|
+
|
30
|
+
var PhonePlatformContext = React.createContext(false);
|
31
|
+
|
32
|
+
export { BrowserFeaturesProvider as B, PhonePlatformContext as P, useBrowserFeature as u };
|
@@ -0,0 +1,107 @@
|
|
1
|
+
import React from 'react';
|
2
|
+
import { e as _objectWithoutProperties, u as useI18n } from './i18n-71c39823.js';
|
3
|
+
|
4
|
+
function _extends() {
|
5
|
+
_extends = Object.assign || function (target) {
|
6
|
+
for (var i = 1; i < arguments.length; i++) {
|
7
|
+
var source = arguments[i];
|
8
|
+
|
9
|
+
for (var key in source) {
|
10
|
+
if (Object.prototype.hasOwnProperty.call(source, key)) {
|
11
|
+
target[key] = source[key];
|
12
|
+
}
|
13
|
+
}
|
14
|
+
}
|
15
|
+
|
16
|
+
return target;
|
17
|
+
};
|
18
|
+
|
19
|
+
return _extends.apply(this, arguments);
|
20
|
+
}
|
21
|
+
var EnterFullscreenIcon = (function (_ref) {
|
22
|
+
var _ref$styles = _ref.styles,
|
23
|
+
styles = _ref$styles === void 0 ? {} : _ref$styles,
|
24
|
+
props = _objectWithoutProperties(_ref, ["styles"]);
|
25
|
+
|
26
|
+
return /*#__PURE__*/React.createElement("svg", _extends({
|
27
|
+
"aria-hidden": "true",
|
28
|
+
"data-prefix": "fas",
|
29
|
+
"data-icon": "expand",
|
30
|
+
className: (styles["svg-inline--fa"] || "svg-inline--fa") + " " + (styles["fa-expand"] || "fa-expand") + " " + (styles["fa-w-14"] || "fa-w-14"),
|
31
|
+
xmlns: "http://www.w3.org/2000/svg",
|
32
|
+
viewBox: "0 0 448 512"
|
33
|
+
}, props), /*#__PURE__*/React.createElement("path", {
|
34
|
+
fill: "currentColor",
|
35
|
+
d: "M0 180V56c0-13.3 10.7-24 24-24h124c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H64v84c0 6.6-5.4 12-12 12H12c-6.6 0-12-5.4-12-12zM288 44v40c0 6.6 5.4 12 12 12h84v84c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12V56c0-13.3-10.7-24-24-24H300c-6.6 0-12 5.4-12 12zm148 276h-40c-6.6 0-12 5.4-12 12v84h-84c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h124c13.3 0 24-10.7 24-24V332c0-6.6-5.4-12-12-12zM160 468v-40c0-6.6-5.4-12-12-12H64v-84c0-6.6-5.4-12-12-12H12c-6.6 0-12 5.4-12 12v124c0 13.3 10.7 24 24 24h124c6.6 0 12-5.4 12-12z"
|
36
|
+
}));
|
37
|
+
});
|
38
|
+
|
39
|
+
function _extends$1() {
|
40
|
+
_extends$1 = Object.assign || function (target) {
|
41
|
+
for (var i = 1; i < arguments.length; i++) {
|
42
|
+
var source = arguments[i];
|
43
|
+
|
44
|
+
for (var key in source) {
|
45
|
+
if (Object.prototype.hasOwnProperty.call(source, key)) {
|
46
|
+
target[key] = source[key];
|
47
|
+
}
|
48
|
+
}
|
49
|
+
}
|
50
|
+
|
51
|
+
return target;
|
52
|
+
};
|
53
|
+
|
54
|
+
return _extends$1.apply(this, arguments);
|
55
|
+
}
|
56
|
+
var ExitFullscreenIcon = (function (_ref) {
|
57
|
+
var _ref$styles = _ref.styles,
|
58
|
+
styles = _ref$styles === void 0 ? {} : _ref$styles,
|
59
|
+
props = _objectWithoutProperties(_ref, ["styles"]);
|
60
|
+
|
61
|
+
return /*#__PURE__*/React.createElement("svg", _extends$1({
|
62
|
+
"aria-hidden": "true",
|
63
|
+
"data-prefix": "fas",
|
64
|
+
"data-icon": "compress",
|
65
|
+
className: (styles["svg-inline--fa"] || "svg-inline--fa") + " " + (styles["fa-compress"] || "fa-compress") + " " + (styles["fa-w-14"] || "fa-w-14"),
|
66
|
+
xmlns: "http://www.w3.org/2000/svg",
|
67
|
+
viewBox: "0 0 448 512"
|
68
|
+
}, props), /*#__PURE__*/React.createElement("path", {
|
69
|
+
fill: "currentColor",
|
70
|
+
d: "M436 192H312c-13.3 0-24-10.7-24-24V44c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v84h84c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12zm-276-24V44c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v84H12c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h124c13.3 0 24-10.7 24-24zm0 300V344c0-13.3-10.7-24-24-24H12c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h84v84c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm192 0v-84h84c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12H312c-13.3 0-24 10.7-24 24v124c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12z"
|
71
|
+
}));
|
72
|
+
});
|
73
|
+
|
74
|
+
var styles = {"button":"ToggleFullscreenButton-module_button__2n69- utils-module_unstyledButton__3rgne"};
|
75
|
+
|
76
|
+
function ToggleFullscreenButton(props) {
|
77
|
+
var _useI18n = useI18n(),
|
78
|
+
t = _useI18n.t;
|
79
|
+
|
80
|
+
return /*#__PURE__*/React.createElement("button", {
|
81
|
+
className: styles.button,
|
82
|
+
title: t(props.isFullscreen ? 'exit_fullscreen' : 'enter_fullscreen', {
|
83
|
+
scope: 'pageflow_scrolled.public'
|
84
|
+
}),
|
85
|
+
onClick: function onClick() {
|
86
|
+
return props.isFullscreen ? props.onExit() : props.onEnter();
|
87
|
+
}
|
88
|
+
}, icon(props));
|
89
|
+
}
|
90
|
+
|
91
|
+
function icon(props) {
|
92
|
+
if (props.isFullscreen) {
|
93
|
+
return /*#__PURE__*/React.createElement(ExitFullscreenIcon, null);
|
94
|
+
} else {
|
95
|
+
return /*#__PURE__*/React.createElement(EnterFullscreenIcon, null);
|
96
|
+
}
|
97
|
+
}
|
98
|
+
|
99
|
+
var styles$1 = {"corner":"ToggleFullscreenCornerButton-module_corner__CxAAH"};
|
100
|
+
|
101
|
+
function ToggleFullscreenCornerButton(props) {
|
102
|
+
return /*#__PURE__*/React.createElement("div", {
|
103
|
+
className: styles$1.corner
|
104
|
+
}, /*#__PURE__*/React.createElement(ToggleFullscreenButton, props));
|
105
|
+
}
|
106
|
+
|
107
|
+
export { ToggleFullscreenCornerButton as T };
|
@@ -0,0 +1,154 @@
|
|
1
|
+
import React, { useRef, useCallback, useState } from 'react';
|
2
|
+
import 'react-dom';
|
3
|
+
import { _ as _slicedToArray, b as _defineProperty } from './i18n-71c39823.js';
|
4
|
+
import classNames from 'classnames';
|
5
|
+
import { a as useContentElementEditorState } from './useContentElementEditorState-245f1986.js';
|
6
|
+
import 'use-context-selector';
|
7
|
+
import 'reselect';
|
8
|
+
import 'slugify';
|
9
|
+
import 'i18n-js';
|
10
|
+
import { T as ToggleFullscreenCornerButton } from './ToggleFullscreenCornerButton-8242f213.js';
|
11
|
+
import { F as FullscreenViewer } from './index-fc4b13e6.js';
|
12
|
+
import QuickPinchZoom, { make3dTransformValue } from 'react-quick-pinch-zoom';
|
13
|
+
|
14
|
+
var styles = {"outer":"SwipeToClose-module_outer__1fl2h","inner":"SwipeToClose-module_inner__NOg1v"};
|
15
|
+
|
16
|
+
function SwipeToClose(_ref) {
|
17
|
+
var onClose = _ref.onClose,
|
18
|
+
children = _ref.children;
|
19
|
+
var start = useRef();
|
20
|
+
var inner = useRef();
|
21
|
+
var ratio = useRef(0);
|
22
|
+
var handleTouchStart = useCallback(function (event) {
|
23
|
+
start.current = event.touches[0].pageY;
|
24
|
+
}, []);
|
25
|
+
var handleTouchMove = useCallback(function (event) {
|
26
|
+
var offset = Math.max(-200, Math.min(200, event.touches[0].pageY - start.current));
|
27
|
+
ratio.current = Math.abs(offset / 200);
|
28
|
+
requestAnimationFrame(function () {
|
29
|
+
if (inner.current) {
|
30
|
+
inner.current.style.setProperty('transition', "none");
|
31
|
+
inner.current.style.setProperty('transform', "translate3d(0, ".concat(offset, "px, 0)"));
|
32
|
+
inner.current.style.setProperty('opacity', 1 - ratio.current);
|
33
|
+
}
|
34
|
+
});
|
35
|
+
}, []);
|
36
|
+
var handleTouchEnd = useCallback(function (event) {
|
37
|
+
event.preventDefault();
|
38
|
+
|
39
|
+
if (ratio.current > 0.5) {
|
40
|
+
onClose();
|
41
|
+
}
|
42
|
+
|
43
|
+
requestAnimationFrame(function () {
|
44
|
+
if (inner.current) {
|
45
|
+
inner.current.style.setProperty('transition', "opacity 0.2s linear, transform 0.2s ease");
|
46
|
+
inner.current.style.setProperty('transform', "translate3d(0, 0, 0)");
|
47
|
+
inner.current.style.setProperty('opacity', 1);
|
48
|
+
}
|
49
|
+
});
|
50
|
+
}, [onClose]);
|
51
|
+
return /*#__PURE__*/React.createElement("div", {
|
52
|
+
className: styles.outer,
|
53
|
+
onClick: onClose,
|
54
|
+
onTouchStart: handleTouchStart,
|
55
|
+
onTouchMove: handleTouchMove,
|
56
|
+
onTouchEnd: handleTouchEnd
|
57
|
+
}, /*#__PURE__*/React.createElement("div", {
|
58
|
+
className: styles.inner,
|
59
|
+
ref: inner
|
60
|
+
}, children));
|
61
|
+
}
|
62
|
+
|
63
|
+
var styles$1 = {"full":"ZoomableImage-module_full__1YJoO","container":"ZoomableImage-module_container__RTuPI","img":"ZoomableImage-module_img__3Vnst","visible":"ZoomableImage-module_visible__2ez0D"};
|
64
|
+
|
65
|
+
function ZoomableImage(_ref) {
|
66
|
+
var onClose = _ref.onClose,
|
67
|
+
imageFile = _ref.imageFile;
|
68
|
+
var imgRef = useRef();
|
69
|
+
|
70
|
+
var _useState = useState(true),
|
71
|
+
_useState2 = _slicedToArray(_useState, 2),
|
72
|
+
isVisible = _useState2[0],
|
73
|
+
setIsVisible = _useState2[1];
|
74
|
+
|
75
|
+
var onUpdate = useCallback(function (_ref2) {
|
76
|
+
var x = _ref2.x,
|
77
|
+
y = _ref2.y,
|
78
|
+
scale = _ref2.scale;
|
79
|
+
|
80
|
+
if (imgRef.current) {
|
81
|
+
imgRef.current.style.setProperty('transform', make3dTransformValue({
|
82
|
+
x: x,
|
83
|
+
y: y,
|
84
|
+
scale: scale
|
85
|
+
}));
|
86
|
+
}
|
87
|
+
}, []);
|
88
|
+
var handleClose = useCallback(function () {
|
89
|
+
onClose();
|
90
|
+
setIsVisible(false);
|
91
|
+
}, [onClose]);
|
92
|
+
return /*#__PURE__*/React.createElement("div", {
|
93
|
+
className: styles$1.full
|
94
|
+
}, /*#__PURE__*/React.createElement(SwipeToClose, {
|
95
|
+
onClose: handleClose
|
96
|
+
}, /*#__PURE__*/React.createElement(QuickPinchZoom, {
|
97
|
+
containerProps: {
|
98
|
+
className: styles$1.container
|
99
|
+
},
|
100
|
+
onUpdate: onUpdate,
|
101
|
+
isTouch: function isTouch() {
|
102
|
+
return true;
|
103
|
+
},
|
104
|
+
minZoom: 0.8,
|
105
|
+
maxZoom: 5,
|
106
|
+
tapZoomFactor: 1.5,
|
107
|
+
draggableUnZoomed: false,
|
108
|
+
doubleTapToggleZoom: true,
|
109
|
+
enforceBoundsDuringZoom: true,
|
110
|
+
centerContained: true
|
111
|
+
}, /*#__PURE__*/React.createElement("img", {
|
112
|
+
src: imageFile.urls.large,
|
113
|
+
width: imageFile.width,
|
114
|
+
height: imageFile.height,
|
115
|
+
alt: "img",
|
116
|
+
ref: imgRef,
|
117
|
+
className: classNames(styles$1.img, _defineProperty({}, styles$1.visible, isVisible))
|
118
|
+
}))));
|
119
|
+
}
|
120
|
+
|
121
|
+
function Viewer(_ref) {
|
122
|
+
var imageFile = _ref.imageFile,
|
123
|
+
contentElementId = _ref.contentElementId,
|
124
|
+
children = _ref.children;
|
125
|
+
|
126
|
+
var _useContentElementEdi = useContentElementEditorState(),
|
127
|
+
isEditable = _useContentElementEdi.isEditable,
|
128
|
+
isSelected = _useContentElementEdi.isSelected;
|
129
|
+
|
130
|
+
return /*#__PURE__*/React.createElement(FullscreenViewer, {
|
131
|
+
contentElementId: contentElementId,
|
132
|
+
renderChildren: function renderChildren(_ref2) {
|
133
|
+
var enterFullscreen = _ref2.enterFullscreen;
|
134
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
|
135
|
+
onClick: enterFullscreen,
|
136
|
+
style: {
|
137
|
+
pointerEvents: isEditable && !isSelected ? 'none' : undefined
|
138
|
+
}
|
139
|
+
}, children), /*#__PURE__*/React.createElement(ToggleFullscreenCornerButton, {
|
140
|
+
isFullscreen: false,
|
141
|
+
onEnter: enterFullscreen
|
142
|
+
}));
|
143
|
+
},
|
144
|
+
renderFullscreenChildren: function renderFullscreenChildren(_ref3) {
|
145
|
+
var exitFullscreen = _ref3.exitFullscreen;
|
146
|
+
return /*#__PURE__*/React.createElement(ZoomableImage, {
|
147
|
+
onClose: exitFullscreen,
|
148
|
+
imageFile: imageFile
|
149
|
+
});
|
150
|
+
}
|
151
|
+
});
|
152
|
+
}
|
153
|
+
|
154
|
+
export default Viewer;
|
@@ -1,112 +1,19 @@
|
|
1
1
|
import 'pageflow/frontend';
|
2
2
|
import React, { useMemo, useEffect, useRef, useState } from 'react';
|
3
3
|
import ReactDOM from 'react-dom';
|
4
|
-
import {
|
5
|
-
import '
|
4
|
+
import { b as _defineProperty, e as _objectWithoutProperties, _ as _slicedToArray } from './i18n-71c39823.js';
|
5
|
+
import classNames from 'classnames';
|
6
6
|
import 'use-context-selector';
|
7
7
|
import 'reselect';
|
8
8
|
import 'slugify';
|
9
|
-
import
|
10
|
-
import {
|
9
|
+
import 'i18n-js';
|
10
|
+
import { u as useBrowserFeature } from './PhonePlatformContext-b28d991a.js';
|
11
|
+
import { T as ToggleFullscreenCornerButton } from './ToggleFullscreenCornerButton-8242f213.js';
|
12
|
+
import { a as ArrowLeftIcon, A as ArrowRightIcon, u as usePhonePlatform } from './arrowRight-e42e6011.js';
|
11
13
|
import { PanoViewer } from '@egjs/view360';
|
12
14
|
import screenfull from 'screenfull';
|
13
15
|
|
14
|
-
|
15
|
-
_extends = Object.assign || function (target) {
|
16
|
-
for (var i = 1; i < arguments.length; i++) {
|
17
|
-
var source = arguments[i];
|
18
|
-
|
19
|
-
for (var key in source) {
|
20
|
-
if (Object.prototype.hasOwnProperty.call(source, key)) {
|
21
|
-
target[key] = source[key];
|
22
|
-
}
|
23
|
-
}
|
24
|
-
}
|
25
|
-
|
26
|
-
return target;
|
27
|
-
};
|
28
|
-
|
29
|
-
return _extends.apply(this, arguments);
|
30
|
-
}
|
31
|
-
var EnterFullscreenIcon = (function (_ref) {
|
32
|
-
var _ref$styles = _ref.styles,
|
33
|
-
styles = _ref$styles === void 0 ? {} : _ref$styles,
|
34
|
-
props = _objectWithoutProperties(_ref, ["styles"]);
|
35
|
-
|
36
|
-
return /*#__PURE__*/React.createElement("svg", _extends({
|
37
|
-
"aria-hidden": "true",
|
38
|
-
"data-prefix": "fas",
|
39
|
-
"data-icon": "expand",
|
40
|
-
className: (styles["svg-inline--fa"] || "svg-inline--fa") + " " + (styles["fa-expand"] || "fa-expand") + " " + (styles["fa-w-14"] || "fa-w-14"),
|
41
|
-
xmlns: "http://www.w3.org/2000/svg",
|
42
|
-
viewBox: "0 0 448 512"
|
43
|
-
}, props), /*#__PURE__*/React.createElement("path", {
|
44
|
-
fill: "currentColor",
|
45
|
-
d: "M0 180V56c0-13.3 10.7-24 24-24h124c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H64v84c0 6.6-5.4 12-12 12H12c-6.6 0-12-5.4-12-12zM288 44v40c0 6.6 5.4 12 12 12h84v84c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12V56c0-13.3-10.7-24-24-24H300c-6.6 0-12 5.4-12 12zm148 276h-40c-6.6 0-12 5.4-12 12v84h-84c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h124c13.3 0 24-10.7 24-24V332c0-6.6-5.4-12-12-12zM160 468v-40c0-6.6-5.4-12-12-12H64v-84c0-6.6-5.4-12-12-12H12c-6.6 0-12 5.4-12 12v124c0 13.3 10.7 24 24 24h124c6.6 0 12-5.4 12-12z"
|
46
|
-
}));
|
47
|
-
});
|
48
|
-
|
49
|
-
function _extends$1() {
|
50
|
-
_extends$1 = Object.assign || function (target) {
|
51
|
-
for (var i = 1; i < arguments.length; i++) {
|
52
|
-
var source = arguments[i];
|
53
|
-
|
54
|
-
for (var key in source) {
|
55
|
-
if (Object.prototype.hasOwnProperty.call(source, key)) {
|
56
|
-
target[key] = source[key];
|
57
|
-
}
|
58
|
-
}
|
59
|
-
}
|
60
|
-
|
61
|
-
return target;
|
62
|
-
};
|
63
|
-
|
64
|
-
return _extends$1.apply(this, arguments);
|
65
|
-
}
|
66
|
-
var ExitFullscreenIcon = (function (_ref) {
|
67
|
-
var _ref$styles = _ref.styles,
|
68
|
-
styles = _ref$styles === void 0 ? {} : _ref$styles,
|
69
|
-
props = _objectWithoutProperties(_ref, ["styles"]);
|
70
|
-
|
71
|
-
return /*#__PURE__*/React.createElement("svg", _extends$1({
|
72
|
-
"aria-hidden": "true",
|
73
|
-
"data-prefix": "fas",
|
74
|
-
"data-icon": "compress",
|
75
|
-
className: (styles["svg-inline--fa"] || "svg-inline--fa") + " " + (styles["fa-compress"] || "fa-compress") + " " + (styles["fa-w-14"] || "fa-w-14"),
|
76
|
-
xmlns: "http://www.w3.org/2000/svg",
|
77
|
-
viewBox: "0 0 448 512"
|
78
|
-
}, props), /*#__PURE__*/React.createElement("path", {
|
79
|
-
fill: "currentColor",
|
80
|
-
d: "M436 192H312c-13.3 0-24-10.7-24-24V44c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v84h84c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12zm-276-24V44c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v84H12c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h124c13.3 0 24-10.7 24-24zm0 300V344c0-13.3-10.7-24-24-24H12c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h84v84c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm192 0v-84h84c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12H312c-13.3 0-24 10.7-24 24v124c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12z"
|
81
|
-
}));
|
82
|
-
});
|
83
|
-
|
84
|
-
var styles = {"button":"ToggleFullscreenButton-module_button__3iBr8 utils-module_unstyledButton__3rgne"};
|
85
|
-
|
86
|
-
function ToggleFullscreenButton(props) {
|
87
|
-
var _useI18n = useI18n(),
|
88
|
-
t = _useI18n.t;
|
89
|
-
|
90
|
-
return /*#__PURE__*/React.createElement("button", {
|
91
|
-
className: styles.button,
|
92
|
-
title: t(props.isFullscreen ? 'exit_fullscreen' : 'enter_fullscreen', {
|
93
|
-
scope: 'pageflow_scrolled.public'
|
94
|
-
}),
|
95
|
-
onClick: function onClick() {
|
96
|
-
return props.isFullscreen ? props.onExit() : props.onEnter();
|
97
|
-
}
|
98
|
-
}, icon(props));
|
99
|
-
}
|
100
|
-
|
101
|
-
function icon(props) {
|
102
|
-
if (props.isFullscreen) {
|
103
|
-
return /*#__PURE__*/React.createElement(ExitFullscreenIcon, null);
|
104
|
-
} else {
|
105
|
-
return /*#__PURE__*/React.createElement(EnterFullscreenIcon, null);
|
106
|
-
}
|
107
|
-
}
|
108
|
-
|
109
|
-
var styles$1 = {"wrapper":"Fullscreen-module_wrapper__300hJ"};
|
16
|
+
var styles = {"wrapper":"Fullscreen-module_wrapper__300hJ"};
|
110
17
|
|
111
18
|
function Fullscreen(_ref) {
|
112
19
|
var isFullscreen = _ref.isFullscreen,
|
@@ -124,108 +31,74 @@ function Fullscreen(_ref) {
|
|
124
31
|
|
125
32
|
if (isFullscreen) {
|
126
33
|
return ReactDOM.createPortal( /*#__PURE__*/React.createElement("div", {
|
127
|
-
className: styles
|
34
|
+
className: styles.wrapper
|
128
35
|
}, children), root);
|
129
36
|
} else {
|
130
37
|
return children;
|
131
38
|
}
|
132
39
|
}
|
133
40
|
|
134
|
-
|
135
|
-
_extends$2 = Object.assign || function (target) {
|
136
|
-
for (var i = 1; i < arguments.length; i++) {
|
137
|
-
var source = arguments[i];
|
138
|
-
|
139
|
-
for (var key in source) {
|
140
|
-
if (Object.prototype.hasOwnProperty.call(source, key)) {
|
141
|
-
target[key] = source[key];
|
142
|
-
}
|
143
|
-
}
|
144
|
-
}
|
145
|
-
|
146
|
-
return target;
|
147
|
-
};
|
148
|
-
|
149
|
-
return _extends$2.apply(this, arguments);
|
150
|
-
}
|
151
|
-
var ArrowLeftIcon = (function (_ref) {
|
152
|
-
var _ref$styles = _ref.styles,
|
153
|
-
styles = _ref$styles === void 0 ? {} : _ref$styles,
|
154
|
-
props = _objectWithoutProperties(_ref, ["styles"]);
|
155
|
-
|
156
|
-
return /*#__PURE__*/React.createElement("svg", _extends$2({
|
157
|
-
xmlns: "http://www.w3.org/2000/svg",
|
158
|
-
className: (styles["h-5"] || "h-5") + " " + (styles["w-5"] || "w-5"),
|
159
|
-
viewBox: "0 0 20 20",
|
160
|
-
fill: "currentColor"
|
161
|
-
}, props), /*#__PURE__*/React.createElement("path", {
|
162
|
-
fillRule: "evenodd",
|
163
|
-
d: "M12.707 5.293a1 1 0 010 1.414L9.414 10l3.293 3.293a1 1 0 01-1.414 1.414l-4-4a1 1 0 010-1.414l4-4a1 1 0 011.414 0z",
|
164
|
-
clipRule: "evenodd"
|
165
|
-
}));
|
166
|
-
});
|
167
|
-
|
168
|
-
var styles$2 = {"indicator":"PanoramaIndicator-module_indicator__3A90v","visible":"PanoramaIndicator-module_visible__3LOgm","arrow":"PanoramaIndicator-module_arrow__QV1Pd","arrowLeft":"PanoramaIndicator-module_arrowLeft__Jh7GC PanoramaIndicator-module_arrow__QV1Pd","arrowRight":"PanoramaIndicator-module_arrowRight__ZZBtO PanoramaIndicator-module_arrow__QV1Pd","nudgeLeft":"PanoramaIndicator-module_nudgeLeft__IU_Iy","nudgeRight":"PanoramaIndicator-module_nudgeRight__3XzNu","text":"PanoramaIndicator-module_text__2FzUy"};
|
41
|
+
var styles$1 = {"indicator":"PanoramaIndicator-module_indicator__3A90v","visible":"PanoramaIndicator-module_visible__3LOgm","arrow":"PanoramaIndicator-module_arrow__QV1Pd","arrowLeft":"PanoramaIndicator-module_arrowLeft__Jh7GC PanoramaIndicator-module_arrow__QV1Pd","arrowRight":"PanoramaIndicator-module_arrowRight__ZZBtO PanoramaIndicator-module_arrow__QV1Pd","nudgeLeft":"PanoramaIndicator-module_nudgeLeft__IU_Iy","nudgeRight":"PanoramaIndicator-module_nudgeRight__3XzNu","text":"PanoramaIndicator-module_text__2FzUy"};
|
169
42
|
|
170
43
|
function PanoramaIndicator(_ref) {
|
171
44
|
var visible = _ref.visible;
|
172
45
|
var size = 40;
|
173
46
|
return /*#__PURE__*/React.createElement("div", {
|
174
|
-
className: classNames(styles$
|
47
|
+
className: classNames(styles$1.indicator, _defineProperty({}, styles$1.visible, visible))
|
175
48
|
}, /*#__PURE__*/React.createElement("div", {
|
176
|
-
className: styles$
|
49
|
+
className: styles$1.arrowLeft
|
177
50
|
}, /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(ArrowLeftIcon, {
|
178
51
|
width: size,
|
179
52
|
height: size
|
180
53
|
}))), /*#__PURE__*/React.createElement("div", {
|
181
|
-
className: styles$
|
54
|
+
className: styles$1.arrowRight
|
182
55
|
}, /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(ArrowRightIcon, {
|
183
56
|
width: size,
|
184
57
|
height: size
|
185
58
|
}))), /*#__PURE__*/React.createElement("div", {
|
186
|
-
className: styles$
|
59
|
+
className: styles$1.text
|
187
60
|
}, "360\xB0"));
|
188
61
|
}
|
189
62
|
|
190
|
-
var styles$
|
63
|
+
var styles$2 = {"indicator":"FullscreenIndicator-module_indicator__2Jl_-","visible":"FullscreenIndicator-module_visible__2ywsZ","icon":"FullscreenIndicator-module_icon__2Ddof","icons":"FullscreenIndicator-module_icons__3-Xm6","text":"FullscreenIndicator-module_text__3wCW3","pulse":"FullscreenIndicator-module_pulse__1qujU","iconTopLeft":"FullscreenIndicator-module_iconTopLeft__2u7-j FullscreenIndicator-module_icon__2Ddof","iconTopRight":"FullscreenIndicator-module_iconTopRight__14nUk FullscreenIndicator-module_icon__2Ddof","iconBottomRight":"FullscreenIndicator-module_iconBottomRight__lEtN6 FullscreenIndicator-module_icon__2Ddof","iconBottomLeft":"FullscreenIndicator-module_iconBottomLeft__voLm_ FullscreenIndicator-module_icon__2Ddof"};
|
191
64
|
|
192
65
|
function FullscreenIndicator(_ref) {
|
193
66
|
var visible = _ref.visible,
|
194
67
|
onClick = _ref.onClick;
|
195
68
|
var size = 50;
|
196
69
|
return /*#__PURE__*/React.createElement("div", {
|
197
|
-
className: classNames(styles$
|
70
|
+
className: classNames(styles$2.indicator, _defineProperty({}, styles$2.visible, visible))
|
198
71
|
}, /*#__PURE__*/React.createElement("div", {
|
199
|
-
className: styles$
|
72
|
+
className: styles$2.icons
|
200
73
|
}, /*#__PURE__*/React.createElement("div", {
|
201
|
-
className: styles$
|
74
|
+
className: styles$2.iconTopLeft
|
202
75
|
}, /*#__PURE__*/React.createElement(ArrowLeftIcon, {
|
203
76
|
width: size,
|
204
77
|
height: size
|
205
78
|
})), /*#__PURE__*/React.createElement("div", {
|
206
|
-
className: styles$
|
79
|
+
className: styles$2.iconTopRight
|
207
80
|
}, /*#__PURE__*/React.createElement(ArrowLeftIcon, {
|
208
81
|
width: size,
|
209
82
|
height: size
|
210
83
|
})), /*#__PURE__*/React.createElement("div", {
|
211
|
-
className: styles$
|
84
|
+
className: styles$2.iconBottomRight
|
212
85
|
}, /*#__PURE__*/React.createElement(ArrowLeftIcon, {
|
213
86
|
width: size,
|
214
87
|
height: size
|
215
88
|
})), /*#__PURE__*/React.createElement("div", {
|
216
|
-
className: styles$
|
89
|
+
className: styles$2.iconBottomLeft
|
217
90
|
}, /*#__PURE__*/React.createElement(ArrowLeftIcon, {
|
218
91
|
width: size,
|
219
92
|
height: size
|
220
93
|
}))), /*#__PURE__*/React.createElement("div", {
|
221
|
-
className: styles$
|
94
|
+
className: styles$2.text
|
222
95
|
}, "360\xB0"));
|
223
96
|
}
|
224
97
|
|
225
|
-
var styles$
|
98
|
+
var styles$3 = {"full":"Viewer-module_full__1q18y","container":"Viewer-module_container__3eJ34 Viewer-module_full__1q18y","spinner":"Viewer-module_spinner__2oRve","spin":"Viewer-module_spin__3jBR2","isLoading":"Viewer-module_isLoading__sQuGw"};
|
226
99
|
|
227
|
-
function _extends
|
228
|
-
_extends
|
100
|
+
function _extends() {
|
101
|
+
_extends = Object.assign || function (target) {
|
229
102
|
for (var i = 1; i < arguments.length; i++) {
|
230
103
|
var source = arguments[i];
|
231
104
|
|
@@ -239,13 +112,13 @@ function _extends$3() {
|
|
239
112
|
return target;
|
240
113
|
};
|
241
114
|
|
242
|
-
return _extends
|
115
|
+
return _extends.apply(this, arguments);
|
243
116
|
}
|
244
117
|
var SpinnerIcon = (function (_ref) {
|
245
118
|
var _ref$styles = _ref.styles,
|
246
119
|
props = _objectWithoutProperties(_ref, ["styles"]);
|
247
120
|
|
248
|
-
return /*#__PURE__*/React.createElement("svg", _extends
|
121
|
+
return /*#__PURE__*/React.createElement("svg", _extends({
|
249
122
|
xmlns: "http://www.w3.org/2000/svg",
|
250
123
|
fill: "none",
|
251
124
|
viewBox: "0 0 24 24"
|
@@ -299,7 +172,7 @@ function Viewer(_ref) {
|
|
299
172
|
function appendViewerTo(parentNode) {
|
300
173
|
if (!elRef.current) {
|
301
174
|
elRef.current = document.createElement('div');
|
302
|
-
elRef.current.className = styles$
|
175
|
+
elRef.current.className = styles$3.full;
|
303
176
|
viewerRef.current = new PanoViewer(elRef.current, {
|
304
177
|
image: imageFile.urls.ultra,
|
305
178
|
projectionType: imageFile.configuration.projection === 'equirectangular_stereo' ? PanoViewer.PROJECTION_TYPE.STEREOSCOPIC_EQUI : PanoViewer.PROJECTION_TYPE.EQUIRECTANGULAR,
|
@@ -424,25 +297,23 @@ function Viewer(_ref) {
|
|
424
297
|
return /*#__PURE__*/React.createElement(Fullscreen, {
|
425
298
|
isFullscreen: isFullscreen
|
426
299
|
}, /*#__PURE__*/React.createElement("div", {
|
427
|
-
className: styles$
|
300
|
+
className: styles$3.container,
|
428
301
|
onKeyDown: preventDefaultForArrowUpDown,
|
429
302
|
onClick: function onClick() {
|
430
303
|
isPhonePlatform && enterFullscreen();
|
431
304
|
}
|
432
305
|
}, /*#__PURE__*/React.createElement(DOMNodeContainer, {
|
433
|
-
className: styles$
|
306
|
+
className: styles$3.full,
|
434
307
|
onUpdate: function onUpdate(el) {
|
435
308
|
return appendViewerTo(el);
|
436
309
|
}
|
437
310
|
})), /*#__PURE__*/React.createElement(SpinnerIcon, {
|
438
|
-
className: classNames(styles$
|
439
|
-
}), (!isPhonePlatform || isFullscreen) && /*#__PURE__*/React.createElement(
|
440
|
-
className: styles$4.controls
|
441
|
-
}, /*#__PURE__*/React.createElement(ToggleFullscreenButton, {
|
311
|
+
className: classNames(styles$3.spinner, _defineProperty({}, styles$3.isLoading, isLoading))
|
312
|
+
}), (!isPhonePlatform || isFullscreen) && /*#__PURE__*/React.createElement(ToggleFullscreenCornerButton, {
|
442
313
|
isFullscreen: isFullscreen,
|
443
314
|
onEnter: enterFullscreen,
|
444
315
|
onExit: exitFullscreen
|
445
|
-
})
|
316
|
+
}), /*#__PURE__*/React.createElement(PanoramaIndicator, {
|
446
317
|
visible: !isLoading && !isPhonePlatform && !isFullscreen && !hidePanoramaIndicator
|
447
318
|
}), /*#__PURE__*/React.createElement(FullscreenIndicator, {
|
448
319
|
visible: !isLoading && isPhonePlatform && !isFullscreen
|
@@ -0,0 +1,77 @@
|
|
1
|
+
import React from 'react';
|
2
|
+
import { e as _objectWithoutProperties } from './i18n-71c39823.js';
|
3
|
+
import { P as PhonePlatformContext } from './PhonePlatformContext-b28d991a.js';
|
4
|
+
|
5
|
+
function usePhonePlatform() {
|
6
|
+
return React.useContext(PhonePlatformContext);
|
7
|
+
}
|
8
|
+
|
9
|
+
function _extends() {
|
10
|
+
_extends = Object.assign || function (target) {
|
11
|
+
for (var i = 1; i < arguments.length; i++) {
|
12
|
+
var source = arguments[i];
|
13
|
+
|
14
|
+
for (var key in source) {
|
15
|
+
if (Object.prototype.hasOwnProperty.call(source, key)) {
|
16
|
+
target[key] = source[key];
|
17
|
+
}
|
18
|
+
}
|
19
|
+
}
|
20
|
+
|
21
|
+
return target;
|
22
|
+
};
|
23
|
+
|
24
|
+
return _extends.apply(this, arguments);
|
25
|
+
}
|
26
|
+
var ArrowLeftIcon = (function (_ref) {
|
27
|
+
var _ref$styles = _ref.styles,
|
28
|
+
styles = _ref$styles === void 0 ? {} : _ref$styles,
|
29
|
+
props = _objectWithoutProperties(_ref, ["styles"]);
|
30
|
+
|
31
|
+
return /*#__PURE__*/React.createElement("svg", _extends({
|
32
|
+
xmlns: "http://www.w3.org/2000/svg",
|
33
|
+
className: (styles["h-5"] || "h-5") + " " + (styles["w-5"] || "w-5"),
|
34
|
+
viewBox: "0 0 20 20",
|
35
|
+
fill: "currentColor"
|
36
|
+
}, props), /*#__PURE__*/React.createElement("path", {
|
37
|
+
fillRule: "evenodd",
|
38
|
+
d: "M12.707 5.293a1 1 0 010 1.414L9.414 10l3.293 3.293a1 1 0 01-1.414 1.414l-4-4a1 1 0 010-1.414l4-4a1 1 0 011.414 0z",
|
39
|
+
clipRule: "evenodd"
|
40
|
+
}));
|
41
|
+
});
|
42
|
+
|
43
|
+
function _extends$1() {
|
44
|
+
_extends$1 = Object.assign || function (target) {
|
45
|
+
for (var i = 1; i < arguments.length; i++) {
|
46
|
+
var source = arguments[i];
|
47
|
+
|
48
|
+
for (var key in source) {
|
49
|
+
if (Object.prototype.hasOwnProperty.call(source, key)) {
|
50
|
+
target[key] = source[key];
|
51
|
+
}
|
52
|
+
}
|
53
|
+
}
|
54
|
+
|
55
|
+
return target;
|
56
|
+
};
|
57
|
+
|
58
|
+
return _extends$1.apply(this, arguments);
|
59
|
+
}
|
60
|
+
var ArrowRightIcon = (function (_ref) {
|
61
|
+
var _ref$styles = _ref.styles,
|
62
|
+
styles = _ref$styles === void 0 ? {} : _ref$styles,
|
63
|
+
props = _objectWithoutProperties(_ref, ["styles"]);
|
64
|
+
|
65
|
+
return /*#__PURE__*/React.createElement("svg", _extends$1({
|
66
|
+
xmlns: "http://www.w3.org/2000/svg",
|
67
|
+
className: (styles["h-5"] || "h-5") + " " + (styles["w-5"] || "w-5"),
|
68
|
+
viewBox: "0 0 20 20",
|
69
|
+
fill: "currentColor"
|
70
|
+
}, props), /*#__PURE__*/React.createElement("path", {
|
71
|
+
fillRule: "evenodd",
|
72
|
+
d: "M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z",
|
73
|
+
clipRule: "evenodd"
|
74
|
+
}));
|
75
|
+
});
|
76
|
+
|
77
|
+
export { ArrowRightIcon as A, ArrowLeftIcon as a, usePhonePlatform as u };
|